Mercurial > hg > Members > kono > nitros9-code
annotate defs/systype @ 1480:3df50a75a675
Fixed typo
author | boisy |
---|---|
date | Mon, 15 Dec 2003 15:27:46 +0000 |
parents | 8056d7e1c562 |
children | 8d4b5ee1cee4 |
rev | line source |
---|---|
1147 | 1 IFEQ SYSTYPE |
373
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
2 |
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
3 SYSTYPE set 1 |
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
4 |
1200 | 5 ******************************************************************** |
1377 | 6 * SysType - NitrOS-9 System Specific Definitions |
1200 | 7 * |
8 * $Id$ | |
9 * | |
10 * Edt/Rev YYYY/MM/DD Modified by | |
11 * Comment | |
12 * ------------------------------------------------------------------ | |
13 * 1998/10/13 Boisy G. Pitre | |
14 * Added defs by Bruce Isted from his Eliminator archive. | |
15 * | |
16 * 1998/10/31 Boisy G. Pitre | |
17 * Merged cc3global.defs into this file. | |
18 * | |
19 * 2002/04/30 Boisy G. Pitre | |
20 * Merged Level One and Level Two sysdefs. | |
1216 | 21 * |
22 * 2002/06/22 Boisy G. Pitre | |
23 * Removed PIA.U4 and PIA.U8, improved comments | |
1417 | 24 * |
25 * 2003/11/05 Robert Gault | |
26 * Made changes in window globals and grfdrv memory to handle regW | |
27 * in 6809 systems. | |
28 * | |
29 * 2003/11/30 Boisy G. Pitre | |
30 * Statics now are prefaced with V. to identify them easier in source. | |
1200 | 31 |
61 | 32 nam SysType |
1147 | 33 IFEQ Level-1 |
1363 | 34 ttl NitrOS-9 Level 1 System Type Definitions |
1439 | 35 ELSE |
1147 | 36 IFEQ Level-2 |
1363 | 37 ttl NitrOS-9 Level 2 System Type Definitions |
1386 | 38 ENDC |
39 IFEQ Level-3 | |
1363 | 40 ttl NitrOS-9 Level 3 System Type Definitions |
1147 | 41 ENDC |
1439 | 42 ENDC |
61 | 43 |
44 | |
45 ********************** | |
46 * CPU Type Definitions | |
47 * | |
48 Color set 1 | |
49 Color3 set 2 | |
1147 | 50 IFEQ Level-1 |
61 | 51 CPUType set Color |
1147 | 52 ELSE |
61 | 53 CPUType set Color3 |
1147 | 54 ENDC |
55 | |
61 | 56 |
57 ****************************** | |
58 * Clock Speed Type Definitions | |
59 * | |
60 OneMHz equ 1 | |
61 TwoMHz equ 2 | |
1147 | 62 IFEQ CPUType-Color |
61 | 63 CPUSpeed set OneMHz |
1147 | 64 ELSE |
61 | 65 CPUSpeed set TwoMHz |
1147 | 66 ENDC |
67 | |
61 | 68 |
69 ********************************** | |
70 * Power Line Frequency Definitions | |
71 * | |
72 Hz50 equ 1 Assemble clock for 50 hz power | |
73 Hz60 equ 2 Assemble clock for 60 hz power | |
74 PwrLnFrq set Hz60 Set to Appropriate freq | |
75 | |
1147 | 76 |
61 | 77 ********************************** |
78 * Ticks per second | |
79 * | |
1147 | 80 IFEQ PwrLnFrq-Hz50 |
1269 | 81 TkPerSec set 50 |
1147 | 82 ELSE |
1269 | 83 TkPerSec set 60 |
1147 | 84 ENDC |
85 | |
61 | 86 |
87 ****************** | |
88 * ACIA type set up | |
89 * | |
90 org 1 | |
91 ACIA6850 rmb 1 MC6850 acia. | |
92 ACIA6551 rmb 1 SY6551 acia. | |
93 ACIA2661 rmb 1 SC2661 acia. | |
94 ACIATYPE set ACIA6551 | |
95 | |
1147 | 96 |
61 | 97 **************************************** |
98 * Special character Bit position equates | |
99 * | |
100 SHIFTBIT equ %00000001 | |
101 CNTRLBIT equ %00000010 | |
102 ALTERBIT equ %00000100 | |
103 UPBIT equ %00001000 | |
104 DOWNBIT equ %00010000 | |
105 LEFTBIT equ %00100000 | |
106 RIGHTBIT equ %01000000 | |
107 SPACEBIT equ %10000000 | |
108 | |
1147 | 109 |
61 | 110 ****************** |
1216 | 111 * Device addresses for miscellaneous hardware |
61 | 112 * |
113 A.AciaP set $FF68 Aciapak Address | |
114 A.ModP set $FF6C ModPak Address | |
115 DPort set $FF40 Disk controller base address | |
116 MPI.Slct set $FF7F Multi-Pak slot select | |
117 MPI.Slot set $03 Multi-Pak default slot | |
64 | 118 PIA0Base equ $FF00 |
119 PIA1Base equ $FF20 | |
1216 | 120 |
61 | 121 |
1147 | 122 ****************** |
61 | 123 * VDG Devices |
124 * | |
125 A.TermV set $FFC0 VDG Term | |
126 A.V1 set $FFC1 Possible additional VDG Devices | |
127 A.V2 set $FFC2 | |
128 A.V3 set $FFC3 | |
129 A.V4 set $FFC4 | |
130 A.V5 set $FFC5 | |
131 A.V6 set $FFC6 | |
132 A.V7 set $FFC7 | |
133 | |
1200 | 134 |
1147 | 135 IFEQ Level-1 |
61 | 136 |
137 ************************************************* | |
138 * | |
1417 | 139 * NitrOS-9 Level 1 Section |
61 | 140 * |
141 ************************************************* | |
142 | |
143 HW.Page set $FF Device descriptor hardware page | |
144 | |
1147 | 145 ELSE |
61 | 146 |
147 ************************************************* | |
148 * | |
1417 | 149 * NitrOS-9 Level 2 Section |
61 | 150 * |
151 ************************************************* | |
152 | |
153 **************************************** | |
154 * Dynamic Address Translator Definitions | |
155 * | |
156 DAT.BlCt equ 8 D.A.T. blocks/address space | |
157 DAT.BlSz equ (256/DAT.BlCt)*256 D.A.T. block size | |
158 DAT.ImSz equ DAT.BlCt*2 D.A.T. Image size | |
159 DAT.Addr equ -(DAT.BlSz/256) D.A.T. MSB Address bits | |
160 DAT.Task equ $FF91 Task Register address | |
161 DAT.TkCt equ 32 Number of DAT Tasks | |
162 DAT.Regs equ $FFA0 DAT Block Registers base address | |
163 DAT.Free equ $333E Free Block Number | |
164 DAT.BlMx equ $3F Maximum Block number | |
165 DAT.BMSz equ $40 Memory Block Map size | |
166 DAT.WrPr equ 0 no write protect | |
167 DAT.WrEn equ 0 no write enable | |
168 SysTask equ 0 Coco System Task number | |
169 IOBlock equ $3F | |
170 ROMBlock equ $3F | |
171 IOAddr equ $7F | |
172 ROMCount equ 1 number of blocks of ROM (High RAM Block) | |
173 RAMCount equ 1 initial blocks of RAM | |
174 MoveBlks equ DAT.BlCt-ROMCount-2 Block numbers used for copies | |
175 BlockTyp equ 1 chk only first bytes of RAM block | |
176 ByteType equ 2 chk entire block of RAM | |
177 Limited equ 1 chk only upper memory for ROM modules | |
178 UnLimitd equ 2 chk all NotRAM for modules | |
179 * NOTE: this check assumes any NotRAM with a module will | |
180 * always start with $87CD in first two bytes of block | |
181 RAMCheck equ BlockTyp chk only beg bytes of block | |
182 ROMCheck equ Limited chk only upper few blocks for ROM | |
183 LastRAM equ IOBlock maximum RAM block number | |
184 | |
185 *************************** | |
186 * Color Computer 3 Specific | |
187 * | |
1242
bdd2f61d5dbc
Fixed case issues in several files (thanks Rodney H.)
boisy
parents:
1216
diff
changeset
|
188 MappedIO equ true (Actually False but it works better this way) |
61 | 189 |
190 ******************** | |
191 * Hardware addresses | |
192 * | |
193 GIMERegs equ $FF00 Base address of GIME registers | |
194 IrqEnR equ $FF92 GIME IRQ enable/status register | |
195 BordReg equ $FF9A Border color register | |
196 PalAdr equ $FFB0 Palette registers | |
197 | |
198 HW.Page set $07 Device descriptor hardware page | |
199 | |
200 * | |
201 * Window Devices | |
202 * | |
203 org $FF9F | |
204 A.W rmb 1 $FF9F Generic Window Descriptor | |
205 A.TermW rmb 1 $FFA0 Windowing Term | |
206 A.W1 rmb 1 $FFA1 | |
207 A.W2 rmb 1 $FFA2 | |
208 A.W3 rmb 1 $FFA3 | |
209 A.W4 rmb 1 $FFA4 | |
210 A.W5 rmb 1 $FFA5 | |
211 A.W6 rmb 1 $FFA6 | |
212 A.W7 rmb 1 $FFA7 | |
213 A.W8 rmb 1 $FFA8 | |
214 A.W9 rmb 1 $FFA9 | |
215 A.W10 rmb 1 $FFAA | |
216 A.W11 rmb 1 $FFAB | |
217 A.W12 rmb 1 $FFAC | |
218 A.W13 rmb 1 $FFAD | |
219 A.W14 rmb 1 $FFAE | |
220 A.W15 rmb 1 $FFAF | |
221 | |
222 ********************************** | |
223 * Pointer Device Packet Definition | |
224 * | |
225 org 0 | |
226 Pt.Valid rmb 1 Is returned info valid (0=no/1=yes) | |
227 Pt.Actv rmb 1 Active Side 0=off/1=Right/2=left | |
228 Pt.ToTm rmb 1 Time out Initial value | |
229 rmb 2 reserved | |
230 Pt.TTTo rmb 1 Time Till Timeout | |
231 Pt.TSSt rmb 2 Time Since Start Counter | |
232 Pt.CBSA rmb 1 Current Button State Button A | |
233 Pt.CBSB rmb 1 Current Button State Button B | |
234 Pt.CCtA rmb 1 Click Count Button A | |
235 Pt.CCtB rmb 1 Click Count Button B | |
236 Pt.TTSA rmb 1 Time This State Counter Button A | |
237 Pt.TTSB rmb 1 Time This State Counter Button B | |
238 Pt.TLSA rmb 1 Time Last State Counter Button A | |
239 Pt.TLSB rmb 1 Time Last State Counter Button B | |
240 rmb 2 Reserved | |
241 Pt.BDX rmb 2 Button down X value EXPERIMENTAL | |
242 Pt.BDY rmb 2 Button down Y value | |
243 Pt.Stat rmb 1 Window Pointer type location | |
244 Pt.Res rmb 1 Resolution (0..640 by: 0=ten/1=one) | |
245 Pt.AcX rmb 2 Actual X Value | |
246 Pt.AcY rmb 2 Actual Y Value | |
247 Pt.WRX rmb 2 Window Relative X | |
248 Pt.WRY rmb 2 Window Relative Y | |
249 Pt.Siz equ . Packet Size 32 bytes | |
250 | |
251 ************************** | |
252 * window regions for mouse | |
253 * | |
254 WR.Cntnt equ 0 content region | |
255 WR.Cntrl equ 1 control region | |
256 WR.OfWin equ 2 off window | |
257 | |
258 ************************************* | |
259 * Standard system get/put buffer defs | |
260 * | |
261 * | |
262 * system group numbers | |
263 * | |
264 org 200 | |
265 Grp.Fnt rmb 1 font group | |
266 Grp.Clip rmb 1 clipboard group | |
267 Grp.Ptr rmb 1 pointer group | |
268 Grp.Pat2 rmb 1 pattern group 2 color | |
269 Grp.Pat4 rmb 1 pattern group 4 color | |
270 Grp.Pat6 rmb 1 pattern group 16 color | |
271 * | |
272 * font buffer numbers | |
273 * | |
274 org 1 | |
275 Fnt.S8x8 rmb 1 standard 8x8 font | |
276 Fnt.S6x8 rmb 1 standard 6x8 font | |
277 Fnt.G8x8 rmb 1 standard graphics 8x8 font | |
278 * | |
279 * pattern buffer numbers | |
280 * | |
281 org 1 | |
282 Pat.Dot rmb 1 | |
283 Pat.Vrt rmb 1 | |
284 Pat.Hrz rmb 1 | |
285 Pat.XHtc rmb 1 | |
286 Pat.LSnt rmb 1 | |
287 Pat.RSnt rmb 1 | |
288 Pat.SDot rmb 1 | |
289 Pat.BDot rmb 1 | |
290 * | |
291 * pointer buffer numbers | |
292 * | |
293 org 1 | |
294 Ptr.Arr rmb 1 Arrow pointer | |
295 Ptr.Pen rmb 1 Pencil pointer | |
296 Ptr.LCH rmb 1 Large cross hair pointer | |
297 Ptr.Slp rmb 1 Wait timer pointer | |
298 Ptr.Ill rmb 1 Illegal action pointer | |
299 Ptr.Txt rmb 1 Text pointer | |
300 Ptr.SCH rmb 1 Small cross hair pointer | |
301 | |
302 ******************************** | |
303 * Window/Menu Bar Data Structure | |
304 * | |
305 * To be used in SS.WnSet SETSTAT to set up a Framed Window | |
306 * for use in the high level windowing package. | |
307 * | |
308 NUMMENS equ 10 maximum number of menus on menu bar | |
309 NUMITMS equ 20 maximum number of items in a menu | |
310 MXTTLEN equ 15 max chars for menu and item names | |
311 WINSYNC equ $C0C0 synch bytes for window validation | |
312 * | |
313 * Menu Item Descriptor : (MN.ITEMS) | |
314 * one required for each item within the menu | |
315 * | |
316 org 0 | |
317 MI.TTL rmb MXTTLEN item name | |
318 MI.ENBL rmb 1 enable flag | |
319 MI.RES rmb 5 reserved bytes | |
320 MI.SIZ equ . size of menu item descriptor | |
321 * | |
322 * Menu Descriptor : | |
323 * one for each menu on the manu bar | |
324 * each is pointed to by MB.MPTR below | |
325 * | |
326 org 0 | |
327 MN.TTL rmb MXTTLEN menu title | |
328 MN.ID rmb 1 menu id number (1-255) | |
329 MN.XSIZ rmb 1 horiz. size of desired pull down | |
330 MN.NITS rmb 1 number of items in menu | |
331 MN.ENBL rmb 1 enable flag | |
332 MN.RES rmb 2 reserved bytes | |
333 MN.ITEMS rmb 2 pointer to array of menu items | |
334 MN.SIZ equ . size of menu descriptor | |
335 * | |
336 * Window Descriptor: | |
337 * one required for each application in a framed window | |
338 * | |
339 org 0 | |
340 WN.TTL rmb 20 title of window for title bar | |
341 WN.NMNS rmb 1 number of menus in menu bar | |
342 WN.XMIN rmb 1 minimal horiz. size for application to run | |
343 WN.YMIN rmb 1 minimal vert. size for application to run | |
344 WN.SYNC rmb 2 synch bytes ($C0C0) | |
345 WN.RES rmb 7 reserved bytes | |
346 WN.BAR rmb 2 pointer to arry of menu descriptors | |
347 WN.SIZ equ . size of window/menu bar descriptor | |
348 | |
349 ************************* | |
350 * Window Type Definitions | |
351 * | |
352 * To be used in setting up the border of the window in | |
353 * the SS.WnSel SETSTAT | |
354 * | |
355 org 0 | |
356 WT.NBox rmb 1 No Box | |
357 WT.FWin rmb 1 Framed Window | |
358 WT.FSWin rmb 1 Framed Window w/Scroll Bars | |
359 WT.SBox rmb 1 Shadowed Box | |
360 WT.DBox rmb 1 Double Box | |
361 WT.PBox rmb 1 Plain Box | |
362 | |
363 ************************************* | |
364 * Pre-Defined Menu IDs for the system | |
365 * | |
366 org 1 | |
367 MId.Mov rmb 1 move box | |
368 MId.Cls rmb 1 close box | |
369 MId.Grw rmb 1 grow box | |
370 MId.SUp rmb 1 scroll up | |
371 MId.SDn rmb 1 scroll down | |
372 MId.SRt rmb 1 scroll right | |
373 MId.SLt rmb 1 scroll left | |
374 MId.Chr rmb 1 character was depressed | |
375 org 20 | |
376 MId.Tdy rmb 1 Tandy menu | |
377 MId.Fil rmb 1 Files Menu | |
378 MId.Edt rmb 1 Edit Menu | |
379 MId.Sty rmb 1 Styles menu | |
380 MId.Fnt rmb 1 Font menu | |
381 | |
382 | |
383 ****************************************************************************** | |
384 ****************************************************************************** | |
385 ** ** | |
1377 | 386 ** NitrOS-9 Windowing system Global data definitions ** |
61 | 387 ** ** |
388 ****************************************************************************** | |
389 ****************************************************************************** | |
390 ** ** | |
391 ** System memory block 0 layout: ** | |
392 ** ** | |
393 ** $0000-$0001 : FHL/Isted WD 1002-05 - interface base address ** | |
394 ** $0002 : FHL/Isted WD 1002-05 - boot device physical drive # ** | |
395 ** $0008 : Bruce Isted Serial mouse - button counter & rx count ** | |
396 ** $0009-$000B : Bruce Isted Serial mouse - RX buffer ** | |
397 ** $000C-$000D : Bruce Isted Serial mouse - Current X position ** | |
398 ** $000E-$000F : Bruce Isted Serial mouse - Current Y position ** | |
399 ** $0010-$001F : unused (User definable) ** | |
400 ** $0020-$00FF : system direct page & some IRQ vectors ** | |
401 ** $0100-$011F : Task usage table ** | |
402 ** $0120-$01FF : Virtual DAT tasks (pointed to by <D.TskIPt) ** | |
403 ** $0200-$02FF : memory block usage map ($80=Not RAM,$01=in use,$02=module) ** | |
404 ** $0300-$03FF : system's system call dispatch table ** | |
405 ** $0400-$04FF : user's sysem call dispatch table ** | |
406 ** $0500-$05FF : process descriptor pointer table ** | |
407 ** $0600-$07FF : System task (Task 0, ID 1) process descriptor ** | |
408 ** $0800-$08FF : System's stack space (initial ptr is $0900) ** | |
409 ** $0900-$09FF : SMAP table ($01=in used, $80=NOT RAM) ** | |
410 ** $0A00-$0FFF : module directory DAT Images (8 bytes each) ** | |
411 ** $1000-$10FF : System Global memory (pointed to by D.CCMem) ** | |
412 ** $1100-$11FF : GRFDRV global memory (DP=$11 in GRFDRV) ** | |
413 ** $1200-$1247 : shared buffer between Grf/WindInt & GRFDRV (GP buffers) ** | |
414 ** $1248-$127F : ???? ** | |
415 ** $1280-$1A7F : the window tables (32 of $40 bytes each) ** | |
416 ** $1A80-$1C7F : the screen tables (16 of $20 bytes each) ** | |
417 ** $1C80-$2000 : the CC3 global mem stack (for windowing) ** | |
418 ** ** | |
419 ****************************************************************************** | |
420 ****************************************************************************** | |
421 | |
422 * User settable values for CC3IO/TC9IO/GrfInt/WindInt & GrfDrv | |
423 MaxLines equ 25 Max. Y coord text value | |
424 Meg set false "true" if 1 or 2 meg machine | |
425 | |
426 COMP equ 0 composite monitor | |
427 RGB equ 1 RGB Analog monitor | |
428 MONO equ 2 monochrome monitor | |
429 | |
430 Monitor set RGB | |
431 | |
432 * Global definitions | |
433 KeyMse equ %00000001 keyboard mouse enabled | |
434 NumLck equ %00000010 Numlock enabled (TC-9 use only) | |
435 CapsLck equ %00000100 Capslock enabled | |
436 MaxRows equ 640 maximum X co-ordinate allowed on mouse | |
1147 | 437 IFEQ MaxLines-25 |
61 | 438 MaxLine equ 198 maximum Y co-ordinate allowed on mouse |
1147 | 439 ELSE |
61 | 440 MaxLine equ 191 maximum Y co-ordinate allowed on mouse |
1147 | 441 ENDC |
61 | 442 |
443 ***************************************************************************** | |
444 * Static memory area for each window (CC3IO/TC9IO) | |
445 * Should set up a write buffer (using parm area?) between SCF, CC3IO & Grfdrv | |
446 * so we can 'burst mode' text output (copy up to 48 chars to Grfdrv's parm | |
447 * area, and have grfdrv loop through & write all 48 chars to screen in 1 loop | |
448 * May have to have smaller limit for text to gfx screens, as it will run much | |
449 * slower, unless GrfDrv is made Partially/Fully Re-Entrant | |
450 * | |
451 * STRONG CAUTION: scfdefs MUST be included first before this file if | |
452 * V.SCF is to be resolved properly in pass 1!! | |
1417 | 453 org V.SCF |
454 V.WinType rmb 1 window type (0=Windint/GrfInt,2=VDGInt) $1D | |
455 V.InfVld rmb 1 Rest of info here valid? (0=NO, >0 = YES) $1E | |
456 V.DevPar rmb 2 high bit=window device $1F | |
457 V.ULCase rmb 1 special key flags (Capslck & keyboard mouse) $21 | |
458 V.KySnsFlg rmb 1 flag for key sense setstat $22 | |
459 V.ScrChg rmb 1 screen change flag $23 | |
460 V.SSigID rmb 1 data ready process ID $24 | |
461 V.SSigSg rmb 1 data ready signal code $25 | |
462 V.MSigID rmb 1 mouse signal process ID $26 | |
463 V.MSigSg rmb 1 mouse signal signal code $27 | |
464 V.MSmpl rmb 1 mouse sample rate $28 | |
465 V.MTime rmb 1 mouse timeout value $29 | |
466 rmb 1 unused $2A | |
467 V.MAutoF rmb 1 auto follow mouse flag $2B | |
468 V.ParmCnt rmb 1 parameter count $2C | |
469 V.ParmVct rmb 2 parameter vector $2D | |
470 V.PrmStrt rmb 2 pointer to params start $2F | |
471 V.NxtPrm rmb 2 pointer to next param storage $31 | |
472 V.EndPtr rmb 1 last character read offset $33 | |
473 V.InpPtr rmb 1 next character read offset $34 | |
474 V.WinNum rmb 1 window table entry # $35 | |
475 V.DWNum rmb 1 dwnum from descriptor $36 | |
476 V.CallCde rmb 1 internal comod call code # $37 | |
477 CC3Parm rmb 128-. global parameter area | |
478 ReadBuf rmb 256-. read input buffer (keyboard) | |
479 CC3DSiz equ . | |
61 | 480 |
481 ***************************************************************************** | |
482 * GrfInt/WindInt global memory area | |
483 * This area sits in system block 0 from $1000 to $10ff | |
484 WGlobal equ $1000 useful value (points to address starting below) | |
485 org 0 | |
486 G.CurTik rmb 1 Constant - # Clock ticks/cursor updates (2) | |
487 G.CntTik rmb 1 Current tick count for cursor updates | |
488 G.GfBusy rmb 1 Grfdrv is busy flag (1=busy) | |
489 g0003 rmb 2 NEW: UNUSED | |
1417 | 490 g0005 rmb 2 Temp save in Windint RG |
61 | 491 G.GrfStk rmb 2 grfdrv stack pointer ($07) |
492 G.MonTyp rmb 1 monitor type | |
493 g000A equ . Old label for compatibility | |
494 G.CrDvFl rmb 1 Are we current device flag (only set when all | |
495 * Parms have been moved to Dev Mem) | |
496 * 0=We are not on our device | |
497 * 1=We are the current device | |
498 * (Used by comod (GRF/WIND/VDGInt) to determine | |
499 * whether or not to update GIME regs themselves | |
500 * If not current device, they don't.) | |
1423 | 501 G.WinType rmb 1 current device's V.TYPE |
61 | 502 G.CurDvM rmb 2 current device memory pointer for co-module use |
503 G.WIBusy rmb 1 WindInt is busy flag (1=busy) | |
504 G.AlPckt rmb 6 F$Alarm time packet | |
505 G.AlPID rmb 1 F$Alarm proc ID ($15) | |
506 G.AlSig rmb 1 F$Alarm signal code ($16) | |
507 G.BelVec rmb 2 BELL routine vector | |
508 G.DefPal rmb 2 pointer to default palette data in global mem | |
509 G.TnCnt rmb 1 SS.Tone duration counter | |
510 G.BelTnF rmb 1 BELL tone flag | |
511 g001D rmb 3 | |
512 G.CurDev rmb 2 current device's static memory pointer ($20) | |
513 G.PrWMPt rmb 2 previous window static mem pointer $(22) | |
514 G.BCFFlg rmb 1 bit coded co-module found flags ($24) | |
515 * 00000010 : VDGInt found | |
516 * 10000000 : GrfDrv found | |
517 g0025 rmb 1 | |
518 G.KTblLC rmb 1 Key table entry# last checked (1-3) | |
1147 | 519 * IFEQ TC9-true |
61 | 520 *CurLght rmb 1 current keyboard light settings |
1147 | 521 * ELSE |
61 | 522 G.LastCh rmb 1 last keyboard character (ASCII value) |
1147 | 523 * ENDC |
61 | 524 G.LKeyCd rmb 1 last keyboard code |
525 G.KyRept rmb 1 key repeat counter | |
526 * A secondary 3 key table (same format as g002D below) | |
359 | 527 G.2Key1 rmb 1 $2A |
528 G.2Key2 rmb 1 $2B | |
61 | 529 G.2Key3 rmb 1 |
530 * Up to 3 keys can be registerd at once, and they are stored here. If more | |
531 * than 3 are hit, the last key is overwritten with the very last key down that | |
532 * was checked. Format for all three is the same as the PIA column/row byte @ | |
533 * KeyFlag below. | |
534 G.Key1 rmb 1 Key 1 being held down (Row/Column #) | |
535 G.Key2 rmb 1 Key 2 being held down (Row/Column #) | |
536 G.Key3 rmb 1 Key 3 being held down (Row/Column #) | |
537 G.ShftDn rmb 1 SHIFT key down flag (COM'd) ($30) | |
538 G.CntlDn rmb 1 CTRL key down flag (0=NO) | |
539 G.KeyFlg rmb 1 Keyboard PIA bit #'s for columns/rows | |
540 * %00000111-Column # (Output, 0-7) | |
541 * %00111000-Row # (Input, 0-6) | |
542 G.AltDwn rmb 1 ALT key down flag (0=NO) | |
543 G.KySns rmb 1 key sense byte | |
544 G.KySame rmb 1 same key flag | |
545 G.CapLok rmb 1 CapsLock/SysRq key down flag | |
546 rmb 1 | |
547 g0038 rmb 1 grfdrv initialized flag | |
548 rmb 2 | |
549 G.MSmpRt rmb 1 Current mouse sample # (# ticks till next read) | |
550 G.Mouse rmb Pt.Siz mouse packet ($3C) | |
551 g005C rmb 2 Temp for relative mouse X coord calculation | |
552 g005E rmb 2 Temp for relative mouse Y coord calculation | |
553 G.MSmpRV rmb 1 Mouse sample reset value (# ticks till next read) | |
1264 | 554 G.KyDly rmb 1 initial key repeat delay constant ($61) |
61 | 555 G.KySpd rmb 1 secondary key repeat delay constant |
1147 | 556 * IFEQ TC9-true |
61 | 557 *KeyParm rmb 1 keyboard command parameter byte |
1147 | 558 * ELSE |
1264 | 559 G.KyMse rmb 1 keyboard mouse flag ($63) |
1147 | 560 * ENDC |
1264 | 561 G.Clear rmb 1 "one-shot" CapsLock/SysRq key flag ($64) |
562 G.KyButt rmb 1 keyboard F1 and F2 "fire" button info ($65) | |
61 | 563 G.AutoMs rmb 1 Auto-follow mouse flag for current device (0=NO) |
1264 | 564 G.MseMv rmb 1 mouse moved flag ($67) |
565 G.CoTble rmb 6 co-module table ($68) | |
61 | 566 G.GrfEnt rmb 2 GRFDRV Entry address ($6E) |
567 g0070 rmb 1 # bytes to move in 1 block (1-72) | |
568 G.WUseTb rmb 4 windows in use bit table (0=unused, 32 windows) ($71) | |
569 G.GfxTbl rmb 2 Pointer to GFX tables ($75) | |
570 G.WrkWTb rmb $40 Work window table. WindInt only ($77) | |
571 g00B7 rmb 2 Current Device static mem ptr for WindInt | |
572 g00B9 rmb 2 Current window table ptr for WindInt | |
573 g00BB rmb 2 Pointer to work window table (g0077+$10) | |
574 g00BD rmb 1 Current screen type for work window table | |
575 g00BE rmb 1 Topmost overlay window # when check for title bars | |
576 g00BF rmb 1 Flag for keypress while processing menu select | |
577 g00C0 rmb 2 Ptr to current path descriptor | |
578 G.WindBk rmb 2 shift-clear routine vector | |
579 G.MsInit rmb 2 set mouse routine vector | |
580 G.MsSig rmb 1 mouse signal flag | |
581 G.DefPls rmb 16 Default palettes (2 repeats of 8 is default) ($C7) | |
1264 | 582 g00D7 rmb 9 |
583 G.KeyEnt rmb 2 entry to keydrv subroutine module ($E0) | |
584 G.KeyMem rmb 8 static memory for keydrv subroutine module | |
585 G.JoyEnt rmb 2 entry to joydrv subroutine module ($EA) | |
586 G.JoyMem rmb 8 static memory for joydrv subroutine module | |
587 G.SndEnt rmb 2 entry to snddrv subroutine module ($F4) | |
588 G.SndMem rmb 8 static memory for snddrv subroutine module | |
61 | 589 |
590 ***************************************************************************** | |
591 * GrfDrv global memory data definitions | |
592 * This area sits in system block 0 from $1100 to $119E | |
593 GrfMem equ $1100 useful label used to point to mem starting below | |
594 org 0 | |
595 gr0000 rmb 1 Pixel mask for 1st byte of GP line | |
596 gr0001 rmb 1 Pixel mask for last byte of a GP line | |
597 gr0002 rmb 2 Ptr to table of bit masks for colors | |
598 gr0004 rmb 1 # of bytes wide GP buffer is (including partials) | |
599 gr0005 rmb 1 # pixels per byte in GP Buffer | |
600 gr0006 rmb 1 # of pixels used in 1st byte of GP buffer line | |
601 gr0007 rmb 1 # of pixels used in last byte of GP buffer line | |
602 gr0008 rmb 1 Bit mask that is common to both screen & GP buffer | |
603 gr0009 rmb 1 # bytes for width of overlay window | |
604 gr000A rmb 1 # bytes to offset to get to next line after | |
605 * overlay width has been copied | |
606 gr000B rmb 1 | |
607 gr000C rmb 2 Cursor address for proportional spacing? | |
608 gr000E rmb 1 | |
609 gr000F rmb 1 Left-based bit mask for proportional spacing? | |
610 gr0010 rmb 2 Vector for text to gfx screen (either prop. or normal) | |
611 gr0012 rmb 6 | |
612 gr0018 rmb 2 Working Center X coord for Circle/Ellipse | |
613 gr001A rmb 2 Working Center Y coord for Circle/Ellipse | |
614 gr001C rmb 2 Some variable for Circle/Ellipse (initially 0) | |
615 gr001E rmb 2 Working Y radius value for Circle/Ellipse | |
616 gr0020 rmb 2 Arc 'clip line' X01 | |
617 gr0022 rmb 2 Arc 'clip line' Y01 | |
618 gr0024 rmb 2 Arc 'clip line' X02 | |
619 gr0026 rmb 2 Arc 'clip line' Y02 | |
620 gr0028 rmb 1 full-byte background color to FFILL on mask | |
621 gr0029 rmb 1 pixels per byte: set up by FFILL | |
622 gr002A rmb 1 Flag for FFill: 1=no error, 0=Stack overflow error | |
623 gr002B rmb 1 current Y-direction to travel in FFILL | |
624 gr002C rmb 2 | |
625 gr002E rmb 2 current window table entry | |
626 gr0030 rmb 2 current screen table ptr | |
627 gr0032 rmb 1 Last block # we used for buffers | |
628 gr0033 rmb 2 Last offset we used for buffers | |
629 gr0035 rmb 1 group | |
630 gr0036 rmb 2 offset | |
631 gr0038 rmb 1 group returned (new) | |
632 gr0039 rmb 1 0=Text cursor inverted off, >0 is inverted on | |
633 gr003A rmb 1 0=Graphics cursor XOR'd off,>0 is XOR'd on scrn | |
634 gr003B rmb 2 end of vars ptr? | |
635 gr003D rmb 2 Last X coordinate Graphics cursor was ON at | |
636 gr003F rmb 2 Last Y coordinate Graphics cursor was ON at | |
637 gr0041 rmb 2 Screen address for start of current gfx cursor | |
638 gr0043 rmb 1 Pixel mask for start of gfx cursor | |
639 gr0044 rmb 1 Block # Graphics cursor is in | |
640 gr0045 rmb 2 Offset in block Graphics cursor is in | |
641 gr0047 rmb 2 'Working' X coordinate | |
642 gr0049 rmb 2 'Working' Y coordinate | |
643 gr004B rmb 2 current X | |
644 gr004D rmb 2 current Y | |
645 gr004F rmb 2 X Size (in bytes) | |
646 gr0051 rmb 2 Y Size (in bytes) | |
647 gr0053 rmb 2 Horizontal radius (circle/ellipse/arc) | |
648 gr0055 rmb 2 Vertical radius (circle/ellipse/arc) | |
649 gr0057 rmb 1 group | |
650 gr0058 rmb 1 buffer # | |
651 gr0059 rmb 1 save switch for overlay | |
652 gr005A rmb 1 PRN | |
653 gr005B rmb 2 X coordinate of Graphics cursor | |
654 gr005D rmb 2 Y coordinate of Graphics cursor | |
655 gr005F rmb 1 ATD: new video mode for 24/25/28-line windows | |
656 Gr.STYMk rmb 1 STY marker | |
657 gr0061 rmb 1 foreground RGB data | |
658 gr0062 rmb 1 background RGB data | |
659 gr0063 rmb 1 bytes/row (on current screen...not window) | |
660 gr0064 rmb 2 PSet vector | |
661 gr0066 rmb 2 pset offset | |
662 gr0068 rmb 2 LSet vector | |
663 gr006A rmb 2 max X co-ordinate | |
664 gr006C rmb 2 max Y co-ordinate | |
665 gr006E rmb 2 X pixel count | |
666 gr0070 rmb 2 Y pixel count | |
667 gr0072 rmb 2 Screen address of pixel we are doing | |
668 gr0074 rmb 1 Pixel mask for pixel we are doing | |
669 gr0075 rmb 2 ??? Pixel mask for last byte of GP buffer? | |
670 gr0077 rmb 2 Vector for right direction FFill | |
671 gr0079 rmb 1 bit mask for 1st pixel in byte for right dir. FFill | |
672 gr007A rmb 2 Vector for left direction FFill | |
673 gr007C rmb 1 bit mask for last pixel in byte for left dir. FFill | |
674 gr007D rmb 1 buffer block # | |
675 gr007E rmb 2 buffer offset # | |
676 gr0080 rmb 2 Buffer length (in bytes) | |
677 gr0082 rmb 3 3 byte extended screen address | |
678 gr0085 rmb 2 temp | |
679 gr0087 rmb 16 grfdrv (sysmap 1) DAT image | |
680 gr0097 rmb 1 temp | |
681 gr0098 rmb 1 temp | |
682 * In ARC, 97-98 is the width of the clip line in pixels (after scaling) | |
683 gr0099 rmb 2 temp | |
684 * In ARC, 99-9A is the height of the clip line in pixels (after scaling) | |
685 gr009B rmb 1 counter temp | |
686 gr009C rmb 1 | |
687 gr009D rmb 2 offset to buffer in block | |
688 gr009F rmb 1 | |
689 gr00A0 rmb 1 # lines left to do of GP buffer onto screen | |
690 gr00A1 rmb 2 vector routine for (changes lots) | |
691 * In ARC A1-A2 is the vector to the proper clipping routine | |
692 gr00A3 rmb 2 Vector for shifting GP buffers | |
693 gr00A5 rmb 2 Vector for shifting GP buffers (can dupe A1) | |
694 gr00A7 rmb 2 | |
695 gr00A9 rmb 2 NEW: Window tbl ptr for last window GRFDRV used | |
373
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
696 grBigFnt rmb 2 Flag for 224 char font/gfx mode on (0=No) V2.00a |
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
697 gr00AD rmb 2 FFill:orig. start X coord|Circ/Ell saved start X |
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
698 gr00AF rmb 2 FFill:orig. start Y coord|Circ/Ell saved end X |
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
699 gr00B1 rmb 1 Flag in FFill: 1=1st time through, 0=not 1st time |
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
700 gr00B2 rmb 1 Filled (circle,ellipse) flag 0=Not filled |
1417 | 701 *gr00B3 rmb 256-. ??? UNUSED |
702 gr00B3 rmb 1 temp veriable grfdrv | |
703 gr00B4 rmb 1 temp veriable grfdrv | |
704 gr00B5 rmb 1 regW for grfdrv | |
705 gr00B6 rmb 1 | |
706 gr00B7 rmb 2 | |
707 gr00B9 rmb 2 previously used in grfdrv at $B2 but not for Filled Flag | |
708 gr00BB rmb 2 previously used in grfdrv at $B4 | |
709 gr00BD rmb 2 previously used in grfdrv at $B6 | |
710 gr00BF rmb 256-. | |
61 | 711 * GPLoad buffer - $1200 in system block 0 |
712 GPBuf rmb 72 common move buffer for gpload/get/put | |
713 gb0000 equ 72 Size of get/put buffer ($48) | |
714 | |
715 ***************************************************************************** | |
716 * Window table entry structure | |
717 * These tables sit in system block 0 and there is 1 for every window init'd | |
718 * including any overlay windows. | |
719 MaxWind equ 32 maximum allowable window tables | |
720 WinBase equ $1290 base address to start of window tables | |
721 org -$10 | |
722 Wt.STbl rmb 2 Screen table pointer ($FFFF=Not used) -$10 | |
723 Wt.BLnk rmb 1 overlay window parent entry # ($FF=base) -$0E | |
724 Wt.LStrt rmb 2 screen logical start address -$0D | |
725 Wt.CPX rmb 1 current X coord. start -$0B | |
726 Wt.CPY rmb 1 current Y coord. start -$0A | |
727 Wt.SZX rmb 1 current X size (CWArea) -$09 | |
728 Wt.SZY rmb 1 current Y size (CWArea) -$08 | |
729 Wt.SXFct rmb 1 X scaling factor -$07 | |
730 Wt.SYFct rmb 1 Y scaling factor (0=no scaling) -$06 | |
731 Wt.Cur rmb 2 cursor physical address on screen -$05 | |
732 Wt.FMsk rmb 1 font bit mask (based from left) -$03 | |
733 Wt.CurX rmb 2 X coord of cursor -$02 | |
734 Wt.CurY rmb 2 Y Coord of cursor $00 | |
735 Wt.XBCnt rmb 1 width of window (in bytes) $02 | |
736 Wt.CWTmp rmb 1 bytes wide each text chr (1,2,4) $03 | |
737 Wt.BRow rmb 2 bytes/text row (8x width in gfx) $04 | |
738 Wt.Fore rmb 1 foreground palette # $06 | |
739 Wt.Back rmb 1 background palette # $07 | |
740 Wt.Attr rmb 1 default attributes (FUTTTBBB) $08 | |
741 Wt.BSW rmb 1 character BSW switches $09 | |
742 Wt.LSet rmb 1 LSet type $0A | |
743 Wt.FBlk rmb 1 Font memory block # $0B | |
744 Wt.FOff rmb 2 Font offset in block $0C | |
745 Wt.PBlk rmb 1 PSet memory block # $0E | |
746 Wt.POff rmb 2 PSet offset in block $0F | |
747 Wt.OBlk rmb 1 Overlay memory block # $11 | |
748 Wt.OOff rmb 2 Overlay offset in block $12 | |
749 Wt.LVec rmb 2 LSet vector $14 | |
750 Wt.PVec rmb 2 PSet vector $16 | |
751 Wt.GBlk rmb 1 GCursor memory block # $18 | |
752 Wt.GOff rmb 2 GCursor offset in block $19 | |
753 Wt.MaxX rmb 2 Maximum X cord. (0-79,0-639) $1B | |
754 Wt.MaxY rmb 2 Maximum Y cord. (0-24,0-191) $1D | |
755 Wt.BLen rmb 2 bytes left in GPLoad block below $1F | |
756 Wt.NBlk rmb 1 memory block # for next GPLoad $21 | |
757 Wt.NOff rmb 2 Offset in block for next GPLoad $22 | |
758 Wt.LStDf rmb 2 screen logical start default $24 | |
759 * NOTE: The following default settings are what the window was initialized | |
760 * with, and thus are the MAXIMUM start/size the window can handle | |
761 * until it is restarted (DWEnd & DWSet) | |
762 * They also appear to be used in WindInt to determine the coords & | |
763 * sizes for control+content regions | |
764 Wt.DfCPX rmb 1 default X cord. start $26 | |
765 Wt.DfCPY rmb 1 default Y cord. start $27 | |
766 Wt.DfSZX rmb 1 default X size $28 | |
767 Wt.DfSZY rmb 1 default Y size $29 | |
768 Wt.Res rmb 6 unused $2A-$2F | |
769 Wt.Siz equ .+$10 | |
770 | |
771 ***************************************************************************** | |
772 * Screen table entrys | |
773 * These tables sit in system block 0 base=$1A80 | |
774 | |
775 STblMax equ 16 Maximum number of screen tables | |
776 STblBse equ $1A80 base address of screen tables | |
777 org 0 | |
778 St.Sty rmb 1 Screen type $00 | |
779 St.SBlk rmb 1 Ram block start # $01 | |
780 St.LStrt rmb 2 Screen logical start (for GIME) $02 | |
781 St.BRow rmb 1 Bytes per row $04 | |
782 St.Brdr rmb 1 Border palette register # $05 | |
783 St.Fore rmb 1 Foreground palette register # $06 | |
784 St.Back rmb 1 Background palette register # $07 | |
785 St.ScSiz rmb 1 screen size: 24..28 lines $08 | |
786 St.Res rmb 7 UNUSED??? $09 | |
787 * NOTE: SHOULD USE ONE OF THESE UNUSED BYTES TO KEEP THE # OF DEVICE WINDOW | |
788 * TABLES THAT ARE USING THIS SCREEN TABLE. DWSET & DWEND WOULD KEEP TRACK OF | |
789 * THESE, AND THE WINDINT TITLE BAR ROUTINE WOULD CHECK IT. IF IT IS ONLY 1, | |
790 * IT WON'T BOTHER CHANGING THE TITLE BAR WHEN SELECTING WINDOWS | |
791 St.Pals rmb 16 Palette register contents $10 | |
792 St.Siz equ . | |
793 | |
794 ***************************************************************************** | |
795 * Graphics buffer tables | |
796 * They contain a 20 byte header (shown below), followed by the raw pixel | |
797 * data. | |
798 org 0 | |
799 Grf.Bck rmb 1 back block link # $00 | |
800 Grf.Off rmb 2 back block header offset $01 | |
801 Grf.Grp rmb 1 group # $03 | |
802 Grf.Buff rmb 1 buffer # $04 | |
803 Grf.BSz rmb 2 buffer size (not including header) $05 | |
804 Grf.XSz rmb 2 X size (in pixels) $07 | |
805 Grf.YSz rmb 2 Y size (in pixels/bytes) $09 | |
806 Grf.XBSz rmb 1 X size in bytes $0B | |
807 Grf.LfPx rmb 1 # pixels used in first byte of line $0C | |
808 Grf.RtPx rmb 1 # pixels used in last byte of line $0D | |
809 Grf.STY rmb 1 Screen type buffer intended for $0E | |
810 Grf.NBlk rmb 1 number blocks used $0F | |
811 Grf.Pal rmb 16 Copy of palette registers? $10 | |
812 Grf.Siz equ . $20 | |
813 | |
814 ***************************************************************************** | |
815 * GFX tables (1 for each window, 18 ($12) bytes each) pointed to by | |
816 * $1075-$0176 | |
817 * GRFINT only uses gt0001-gt0004, the rest is exclusive to WINDINT | |
818 org 0 | |
819 Gt.WTyp rmb 1 WindInt window type (Framed, Scroll Bar, etc.) $00 | |
820 Gt.GXCur rmb 2 X coord of graphics cursor $01 | |
821 Gt.GYCur rmb 2 Y coord of graphics cursor $03 | |
822 Gt.DPtr rmb 2 Ptr to WindInt window descriptor $05 | |
823 Gt.FClr rmb 1 Foreground color $07 | |
824 Gt.BClr rmb 1 Background color $08 | |
825 Gt.FMsk rmb 1 Foreground mask $09 | |
826 Gt.BMsk rmb 1 Background mask $0A | |
827 Gt.GBlk rmb 1 Block # of graphics cursor $0B | |
828 Gt.GOff rmb 2 Offset into block of graphics cursor $0C | |
829 Gt.Proc rmb 1 Process # of window creator $0E | |
830 Gt.PBlk rmb 1 Process descriptor block # of creator $0F | |
831 Gt.Res rmb 2 ??? RESERVED ??? $10 | |
832 GTabSz equ . | |
833 | |
834 ***************************************************************************** | |
835 * This table is located in the graphics table memory and is offset from | |
836 * graphics table pointer stored at $1075-$1076. This is used exclusively by | |
837 * WindInt. | |
838 * NOTE: USING UNUSED BYTES IN CC3 GLOBAL MEM, SET UP SEPARATE PTRS FOR EACH | |
839 * OF THE BELOW SO WE CAN SPEED UP ACCESS BY NOT HAVING TO DO A LOAD/LEAx | |
840 * COMBINATION EVERY TIME | |
841 org $0240 | |
842 rmb WN.SIZ copy of last accessed window descriptor | |
843 rmb MN.SIZ copy of last accessed menu descriptor | |
844 rmb MI.SIZ copy of last accessed item descriptor | |
845 rmb 65 menu handling table (16 entrys of 4 bytes) | |
846 | |
847 ***************************************************************************** | |
848 * WindInt menu handling table entry definition | |
849 org 0 | |
850 MnuXNum rmb 1 menu # | |
851 MnuXStrt rmb 1 X start text co-ordinate | |
852 MnuXEnd rmb 1 X end text co-ordinate | |
853 rmb 1 unused? | |
854 MnuHSiz equ . | |
855 | |
856 ***************************************************************************** | |
857 * Character binary switches | |
858 TChr equ %10000000 transparent characters | |
859 Under equ %01000000 underline characters | |
860 Bold equ %00100000 bold characters | |
861 Prop equ %00010000 proportional spacing of characters | |
862 Scale equ %00001000 automatic window scaling | |
863 Invers equ %00000100 inverse characters | |
864 NoCurs equ %00000010 no cursor display | |
865 Protect equ %00000001 device window protection | |
866 | |
867 ***************************************************************************** | |
868 * Screen types (high bit set=hardware text, else graphics) in GRFDRV | |
869 Current equ $ff Current screen | |
870 * equ 1 640x200x2 | |
871 * equ 2 320x200x4 | |
872 * equ 3 640x200x4 | |
873 * equ 4 320x200x16 | |
874 * equ $85 80 column text | |
875 * equ $86 40 column text | |
876 | |
877 ************************************* | |
878 * Window default palette color codes | |
879 * | |
880 org 0 | |
881 White. rmb 1 | |
882 Blue. rmb 1 | |
883 Black. rmb 1 | |
884 Green. rmb 1 | |
885 Red. rmb 1 | |
886 Yellow. rmb 1 | |
887 Magenta. rmb 1 | |
888 Cyan. rmb 1 | |
889 | |
1147 | 890 ENDC |
891 ENDC | |
373
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
359
diff
changeset
|
892 |