Mercurial > hg > Members > kono > nitros9-code
annotate defs/os9defs @ 2024:e396d4f24b27
Ran each file through pretty print
author | boisy |
---|---|
date | Tue, 14 Mar 2006 12:20:57 +0000 |
parents | 484c5493599a |
children | 46aa4db8204e |
rev | line source |
---|---|
2024 | 1 IFNE OS9DEFS-1 |
373
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
318
diff
changeset
|
2 |
2024 | 3 OS9DEFS SET 1 |
373
c07686556109
Added ifeq statements at top to allow for multiple use's of same def
boisy
parents:
318
diff
changeset
|
4 |
1202 | 5 ******************************************************************** |
1365 | 6 * OS9Defs - NitrOS-9 System Definitions |
1202 | 7 * |
8 * $Id$ | |
9 * | |
10 * Edt/Rev YYYY/MM/DD Modified by | |
11 * Comment | |
12 * ------------------------------------------------------------------ | |
13 * 1985/08/29 KMZ | |
14 * Fixed DT.SBF/NFM values to 3/4 | |
15 * | |
16 * 1985/09/01 KMZ | |
17 * Added SS.FDInf, SS.Attr to accept 68K request thru NET. | |
18 * | |
19 * 1985/09/03 KMZ/Robert F. Doggett | |
20 * Eliminated E$BPrcID, made Error #238 become E$DNE for | |
21 * 68000 compatability. | |
22 * | |
23 * 1986/04/15 Mark G. Hawkins | |
1386 | 24 * F$AlHRAM System call added for COCO. |
1202 | 25 * |
26 * 1986/09/08 Mark G. Hawkins | |
27 * F$Alarm for COCO Clock Module. | |
28 * | |
29 * 1986/09/17 Mark G. Hawkins | |
30 * SS.Tone For COCO. | |
31 * | |
32 * 1986/09/23 Mark G. Hawkins | |
33 * Added F$NMLink and F$NMLoad for COCO. | |
34 * | |
35 * 1986/09/30 Mark G. Hawkins | |
36 * Added Reserved User $70 to $7f in sytem calls. | |
37 * | |
38 * 1986/09/30 Mark G. Hawkins | |
39 * Created Color Computer 3 Version of OS9Defs. | |
40 * | |
41 * 1998/10/03 Boisy G. Pitre | |
42 * Consoldated Level 1/Level 2 os9defs. | |
43 * | |
44 * 2002/04/04 Boisy G. Pitre | |
45 * Consoldated Level 2/Level 2 V3 os9defs. | |
46 * | |
47 * 2002/04/30 Boisy G. Pitre | |
48 * Added NitrOS-9 definitions. | |
49 * | |
50 * 2003/05/30 Boisy G. Pitre | |
51 * Added WD1002 sys vars to Level One section. | |
52 * | |
53 * 2003/06/02 Boisy G. Pitre | |
54 * Fixed incorrectly ordered D.X*** system globals for OS-9 Level One and | |
55 * changed the sizes from 2 to 3 bytes. | |
56 * DT.NFM is now the same for both Level One and Level Two. | |
57 * Added DT.CDFM type for future CD-ROM file manager | |
1417 | 58 * |
59 * 2003/11/05 Robert Gault | |
60 * Fixed MouseInf. Made it rmb 2 as it should be. Also changes to init and cc3io. | |
1903
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
61 * |
2024 | 62 * 2005/11/02 P.Harvey-Smith |
1903
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
63 * Added definitions for boot areas on Dragon computers. |
2005 | 64 * |
2024 | 65 * 2006/03/03 Boisy G. Pitre |
2005 | 66 * Added F$Debug and D.DbgMem areas, common to all levels of NitrOS-9 |
1202 | 67 |
2024 | 68 NAM OS9Defs |
69 IFEQ Level-1 | |
70 TTL NitrOS-9 Level 1 System Symbol Definitions | |
71 ELSE | |
72 IFEQ Level-2 | |
73 TTL NitrOS-9 Level 2 System Symbol Definitions | |
74 ELSE | |
75 TTL NitrOS-9 Level 3 System Symbol Definitions | |
76 ENDC | |
77 ENDC | |
0 | 78 |
1202 | 79 * Common definitions |
2024 | 80 true EQU 1 useful name |
81 false EQU 0 useful name | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
82 |
2024 | 83 PAG |
0 | 84 ***************************************** |
85 * System Service Request Code Definitions | |
86 * | |
2024 | 87 ORG 0 |
88 F$Link RMB 1 Link to Module | |
89 F$Load RMB 1 Load Module from File | |
90 F$UnLink RMB 1 Unlink Module | |
91 F$Fork RMB 1 Start New Process | |
92 F$Wait RMB 1 Wait for Child Process to Die | |
93 F$Chain RMB 1 Chain Process to New Module | |
94 F$Exit RMB 1 Terminate Process | |
95 F$Mem RMB 1 Set Memory Size | |
96 F$Send RMB 1 Send Signal to Process | |
97 F$Icpt RMB 1 Set Signal Intercept | |
98 F$Sleep RMB 1 Suspend Process | |
99 F$SSpd RMB 1 Suspend Process | |
100 F$ID RMB 1 Return Process ID | |
101 F$SPrior RMB 1 Set Process Priority | |
102 F$SSWI RMB 1 Set Software Interrupt | |
103 F$PErr RMB 1 Print Error | |
104 F$PrsNam RMB 1 Parse Pathlist Name | |
105 F$CmpNam RMB 1 Compare Two Names | |
106 F$SchBit RMB 1 Search Bit Map | |
107 F$AllBit RMB 1 Allocate in Bit Map | |
108 F$DelBit RMB 1 Deallocate in Bit Map | |
109 F$Time RMB 1 Get Current Time | |
110 F$STime RMB 1 Set Current Time | |
111 F$CRC RMB 1 Generate CRC ($17) | |
304
c1b167879bb3
Extended Init module for OS-9 Level One to that of OS-9 Level Two V3, clarified
boisy
parents:
298
diff
changeset
|
112 |
2024 | 113 IFGT Level-1 |
304
c1b167879bb3
Extended Init module for OS-9 Level One to that of OS-9 Level Two V3, clarified
boisy
parents:
298
diff
changeset
|
114 |
1377 | 115 * NitrOS-9 Level 2 system calls |
2024 | 116 F$GPrDsc RMB 1 Get Process Descriptor copy ($18) |
117 F$GBlkMp RMB 1 Get System Block Map copy ($19) | |
118 F$GModDr RMB 1 Get Module Directory copy ($1A) | |
119 F$CpyMem RMB 1 Copy External Memory ($1B) | |
120 F$SUser RMB 1 Set User ID number ($1C) | |
121 F$UnLoad RMB 1 Unlink Module by name ($1D) | |
122 F$Alarm RMB 1 Color Computer 3 Alarm Call ($1E) | |
123 RMB 2 Reserved - For overlap of other systems ($1F) | |
124 F$NMLink RMB 1 Color Computer 3 Non-Mapping Link ($21) | |
125 F$NMLoad RMB 1 Color Computer 3 Non-Mapping Load ($22) | |
2011 | 126 |
2024 | 127 ELSE |
2011 | 128 |
129 * NitrOS-9 Level 1 system call padding | |
2024 | 130 RMB 11 |
131 | |
132 ENDC | |
133 | |
134 F$Debug RMB 1 Drop the system into the debugger ($23) | |
135 | |
136 IFGT Level-1 | |
2011 | 137 |
2024 | 138 ORG $25 |
139 F$TPS RMB 1 Return System's Ticks Per Second | |
140 F$TimAlm RMB 1 CoCo individual process alarm call | |
2 | 141 |
2024 | 142 ENDC |
0 | 143 |
2024 | 144 ORG $27 Beginning of System Reserved Calls |
2005 | 145 * NitrOS-9 common system calls |
2024 | 146 F$VIRQ RMB 1 Install/Delete Virtual IRQ |
147 F$SRqMem RMB 1 System Memory Request | |
148 F$SRtMem RMB 1 System Memory Return | |
149 F$IRQ RMB 1 Enter IRQ Polling Table | |
150 F$IOQu RMB 1 Enter I/O Queue | |
151 F$AProc RMB 1 Enter Active Process Queue | |
152 F$NProc RMB 1 Start Next Process | |
153 F$VModul RMB 1 Validate Module | |
154 F$Find64 RMB 1 Find Process/Path Descriptor | |
155 F$All64 RMB 1 Allocate Process/Path Descriptor | |
156 F$Ret64 RMB 1 Return Process/Path Descriptor | |
157 F$SSvc RMB 1 Service Request Table Initialization | |
158 F$IODel RMB 1 Delete I/O Module | |
298
6a282af544e6
Added D.CRC and D.MDREG system globals to OS-9 Level One, conditionalized
boisy
parents:
246
diff
changeset
|
159 |
2024 | 160 IFGT Level-1 |
298
6a282af544e6
Added D.CRC and D.MDREG system globals to OS-9 Level One, conditionalized
boisy
parents:
246
diff
changeset
|
161 |
2024 | 162 F$SLink RMB 1 System Link |
163 F$Boot RMB 1 Bootstrap System | |
164 F$BtMem RMB 1 Bootstrap Memory Request | |
165 F$GProcP RMB 1 Get Process ptr | |
166 F$Move RMB 1 Move Data (low bound first) | |
167 F$AllRAM RMB 1 Allocate RAM blocks | |
168 F$AllImg RMB 1 Allocate Image RAM blocks | |
169 F$DelImg RMB 1 Deallocate Image RAM blocks | |
170 F$SetImg RMB 1 Set Process DAT Image | |
171 F$FreeLB RMB 1 Get Free Low Block | |
172 F$FreeHB RMB 1 Get Free High Block | |
173 F$AllTsk RMB 1 Allocate Process Task number | |
174 F$DelTsk RMB 1 Deallocate Process Task number | |
175 F$SetTsk RMB 1 Set Process Task DAT registers | |
176 F$ResTsk RMB 1 Reserve Task number | |
177 F$RelTsk RMB 1 Release Task number | |
178 F$DATLog RMB 1 Convert DAT Block/Offset to Logical | |
179 F$DATTmp RMB 1 Make temporary DAT image (Obsolete) | |
180 F$LDAXY RMB 1 Load A [X,[Y]] | |
181 F$LDAXYP RMB 1 Load A [X+,[Y]] | |
182 F$LDDDXY RMB 1 Load D [D+X,[Y]] | |
183 F$LDABX RMB 1 Load A from 0,X in task B | |
184 F$STABX RMB 1 Store A at 0,X in task B | |
185 F$AllPrc RMB 1 Allocate Process Descriptor | |
186 F$DelPrc RMB 1 Deallocate Process Descriptor | |
187 F$ELink RMB 1 Link using Module Directory Entry | |
188 F$FModul RMB 1 Find Module Directory Entry | |
189 F$MapBlk RMB 1 Map Specific Block | |
190 F$ClrBlk RMB 1 Clear Specific Block | |
191 F$DelRAM RMB 1 Deallocate RAM blocks | |
192 F$GCMDir RMB 1 Pack module directory | |
193 F$AlHRAM RMB 1 Allocate HIGH RAM Blocks | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
194 |
1142
a9b0f82a69ef
Previous NitrOS9 extensions (system calls, system globals) now part of all
boisy
parents:
1116
diff
changeset
|
195 * Alan DeKok additions |
2024 | 196 F$ReBoot RMB 1 Reboot machine (reload OS9Boot) or drop to RSDOS |
197 F$CRCMod RMB 1 CRC mode, toggle or report current status | |
198 F$XTime RMB 1 Get Extended time packet from RTC (fractions of second) | |
199 F$VBlock RMB 1 Verify modules in a block of memory, add to module directory | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
200 |
2024 | 201 ENDC |
298
6a282af544e6
Added D.CRC and D.MDREG system globals to OS-9 Level One, conditionalized
boisy
parents:
246
diff
changeset
|
202 |
0 | 203 * |
204 * Numbers $70 through $7F are reserved for user definitions | |
205 * | |
2024 | 206 ORG $70 |
2 | 207 |
2024 | 208 IFEQ Level-1 |
2005 | 209 |
2024 | 210 RMB 16 Reserved for user definition |
2005 | 211 |
2024 | 212 ELSE |
2 | 213 |
2024 | 214 F$RegDmp RMB 1 Ron Lammardo's debugging register dump |
215 F$NVRAM RMB 1 Non Volatile RAM (RTC battery backed static) read/write | |
2 | 216 |
2024 | 217 RMB $80-. Reserved for user definitions |
218 ENDC | |
0 | 219 |
2024 | 220 PAG |
0 | 221 ************************************** |
222 * I/O Service Request Code Definitions | |
223 * | |
2024 | 224 ORG $80 |
225 I$Attach RMB 1 Attach I/O Device | |
226 I$Detach RMB 1 Detach I/O Device | |
227 I$Dup RMB 1 Duplicate Path | |
228 I$Create RMB 1 Create New File | |
229 I$Open RMB 1 Open Existing File | |
230 I$MakDir RMB 1 Make Directory File | |
231 I$ChgDir RMB 1 Change Default Directory | |
232 I$Delete RMB 1 Delete File | |
233 I$Seek RMB 1 Change Current Position | |
234 I$Read RMB 1 Read Data | |
235 I$Write RMB 1 Write Data | |
236 I$ReadLn RMB 1 Read Line of ASCII Data | |
237 I$WritLn RMB 1 Write Line of ASCII Data | |
238 I$GetStt RMB 1 Get Path Status | |
239 I$SetStt RMB 1 Set Path Status | |
240 I$Close RMB 1 Close Path | |
241 I$DeletX RMB 1 Delete from current exec dir | |
0 | 242 |
243 ******************* | |
244 * File Access Modes | |
245 * | |
2024 | 246 READ. EQU %00000001 |
247 WRITE. EQU %00000010 | |
248 UPDAT. EQU READ.+WRITE. | |
249 EXEC. EQU %00000100 | |
250 PREAD. EQU %00001000 | |
251 PWRIT. EQU %00010000 | |
252 PEXEC. EQU %00100000 | |
253 SHARE. EQU %01000000 | |
254 DIR. EQU %10000000 | |
255 ISIZ. EQU %00100000 | |
0 | 256 |
257 ************** | |
258 * Signal Codes | |
259 * | |
2024 | 260 ORG 0 |
261 S$Kill RMB 1 Non-Interceptable Abort | |
262 S$Wake RMB 1 Wake-up Sleeping Process | |
263 S$Abort RMB 1 Keyboard Abort | |
264 S$Intrpt RMB 1 Keyboard Interrupt | |
265 S$Window RMB 1 Window Change | |
266 S$Alarm RMB 1 CoCo individual process' alarm signal | |
0 | 267 |
2024 | 268 PAG |
0 | 269 ********************************** |
1594 | 270 * Status Codes for GetStat/GetStat |
0 | 271 * |
2024 | 272 ORG 0 |
273 SS.Opt RMB 1 Read/Write PD Options | |
274 SS.Ready RMB 1 Check for Device Ready | |
275 SS.Size RMB 1 Read/Write File Size | |
276 SS.Reset RMB 1 Device Restore | |
277 SS.WTrk RMB 1 Device Write Track | |
278 SS.Pos RMB 1 Get File Current Position | |
279 SS.EOF RMB 1 Test for End of File | |
280 SS.Link RMB 1 Link to Status routines | |
281 SS.ULink RMB 1 Unlink Status routines | |
282 SS.Feed RMB 1 Issue form feed | |
283 SS.Frz RMB 1 Freeze DD. information | |
284 SS.SPT RMB 1 Set DD.TKS to given value | |
285 SS.SQD RMB 1 Sequence down hard disk | |
286 SS.DCmd RMB 1 Send direct command to disk | |
287 SS.DevNm RMB 1 Return Device name (32-bytes at [X]) | |
288 SS.FD RMB 1 Return File Descriptor (Y-bytes at [X]) | |
289 SS.Ticks RMB 1 Set Lockout honor duration | |
290 SS.Lock RMB 1 Lock/Release record | |
291 SS.DStat RMB 1 Return Display Status (CoCo) | |
292 SS.Joy RMB 1 Return Joystick Value (CoCo) | |
293 SS.BlkRd RMB 1 Block Read | |
294 SS.BlkWr RMB 1 Block Write | |
295 SS.Reten RMB 1 Retension cycle | |
296 SS.WFM RMB 1 Write File Mark | |
297 SS.RFM RMB 1 Read past File Mark | |
298 SS.ELog RMB 1 Read Error Log | |
299 SS.SSig RMB 1 Send signal on data ready | |
300 SS.Relea RMB 1 Release device | |
301 SS.AlfaS RMB 1 Return Alfa Display Status (CoCo, SCF/GetStat) | |
302 SS.Attr EQU SS.AlfaS To serve 68K/RBF/SetStat only, thru NET | |
303 SS.Break RMB 1 Send break signal out acia | |
304 SS.RsBit RMB 1 Reserve bitmap sector (do not allocate in) LSB(X)=sct# | |
305 RMB 1 Reserved | |
306 SS.FDInf EQU $20 To serve 68K/RBF/GetStat only, thru NET | |
307 RMB 4 Reserve $20-$23 for Japanese version (Hoshi) | |
308 SS.SetMF RMB 1 Reserve $24 for Gimix G68 (Flex compatability?) | |
309 SS.Cursr RMB 1 Cursor information for COCO | |
310 SS.ScSiz RMB 1 Return screen size for COCO | |
311 SS.KySns RMB 1 Getstat/SetStat for COCO keyboard | |
312 SS.ComSt RMB 1 Getstat/SetStat for Baud/Parity | |
313 SS.Open RMB 1 SetStat to tell driver a path was opened | |
314 SS.Close RMB 1 SetStat to tell driver a path was closed | |
315 SS.HngUp RMB 1 SetStat to tell driver to hangup phone | |
316 SS.FSig RMB 1 New signal for temp locked files | |
317 SS.DSize EQU SS.ScSiz Return disk size (RBF GetStat) | |
318 SS.VarSect EQU SS.DStat Variable Sector Size (RBF GetStat) | |
405 | 319 |
0 | 320 * System Specific and User defined codes above $80 |
2024 | 321 ORG $80 |
322 SS.AAGBf RMB 1 SetStat to Allocate Additional Graphic Buffer | |
323 SS.SLGBf RMB 1 SetStat to Select a different Graphic Buffer | |
324 SS.Mount RMB 1 Network 4 Mount Setstat | |
325 SS.RdNet RMB 1 Read Raw Sector from Network 4 Omnidrive | |
326 SS.MpGPB RMB 1 SetStat to request a Get/Put Buffer be mapped in workspace | |
327 SS.Slots RMB 1 Network 4 slots? getstat | |
0 | 328 |
2024 | 329 IFGT Level-1 |
0 | 330 |
331 * Level 2 Windowing | |
2024 | 332 SS.WnSet RMB 1 Set up High Level Windowing Information |
333 SS.MnSel RMB 1 Request High level Menu Handler take determine next event | |
334 SS.SBar RMB 1 SetStat to set position block on Window scroll bars | |
335 SS.Mouse RMB 1 Return Mouse information packet (COCO) | |
336 SS.MsSig RMB 1 SetStat to tell driver to send signal on mouse event | |
337 SS.AScrn RMB 1 Allocate a screen for application poking | |
338 SS.DScrn RMB 1 Display a screen allocated by SS.AScrn | |
339 SS.FScrn RMB 1 Free a screen allocated by SS.AScrn | |
340 SS.PScrn RMB 1 Polymorph Screen into different screen type | |
341 SS.ScInf RMB 1 Get Current screen info for direct writes | |
342 RMB 1 Reserved | |
343 SS.Palet RMB 1 Return palette information | |
344 SS.Montr RMB 1 Get and Set Monitor Type | |
345 SS.ScTyp RMB 1 Get screen type information | |
346 SS.GIP RMB 1 Global Input Parameters (SetStat) | |
347 SS.UMBar RMB 1 update menu bar (SetStat) | |
348 SS.FBRgs RMB 1 return color registers (GetStat) | |
349 SS.DfPal RMB 1 set/return default palette registers (Getstat/Setstat) | |
350 SS.Tone RMB 1 Generate a tone using 6 bit sound | |
351 SS.GIP2 RMB 1 Global Input Params #2 (L2V3) | |
352 SS.AnPal RMB 1 Animate palettes (L2V3) | |
353 SS.FndBf RMB 1 Find named buffer (L2V3) | |
1501 | 354 |
355 * sc6551 defined | |
2024 | 356 SS.CDSta EQU SS.GIP2 |
357 SS.CDSig EQU SS.AnPal | |
358 SS.CDRel EQU SS.FndBf | |
359 ELSE | |
1490 | 360 * These are wide open in Level 1 |
2024 | 361 RMB 19 |
2 | 362 |
1490 | 363 * sc6551 defined |
2024 | 364 SS.CDSta RMB 1 |
365 SS.CDSig RMB 1 | |
366 SS.CDRel RMB 1 | |
367 ENDC | |
1501 | 368 |
1490 | 369 |
0 | 370 |
2024 | 371 ORG $A0 |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
372 * |
1363 | 373 * New Default SCF input buffer Set status call |
2024 | 374 SS.Fill RMB 1 Pre-load SCF device input buffer |
375 SS.Hist RMB 1 Enable command-line history easily | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
376 |
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
377 |
2024 | 378 ORG $B0 |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
379 * |
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
380 * New WDDisk get/set status calls |
2024 | 381 SS.ECC RMB 1 ECC corrected data error enable/disable (GetStat/SetStat) |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
382 |
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
383 * |
2024 | 384 IFGT Level-1 |
1490 | 385 |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
386 * VRN get/set status calls. Named by Alan DeKok. |
2024 | 387 SS.VCtr EQU $80 Return FS2 total VIRQ counter |
388 SS.VSig EQU $81 Return FS2 number of signals sent | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
389 |
2024 | 390 SS.FClr EQU $81 Set/clear FS2 VIRQ |
391 SS.FSet EQU $C7 Set FS2+ VIRQ | |
392 SS.KSet EQU $C8 Set KQ3 VIRQ | |
393 SS.KClr EQU $C9 Clr KQ3 VIRQ | |
394 SS.ARAM EQU $CA Allocate RAM blocks | |
395 SS.DRAM EQU $CB De-allocate RAM blocks | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
396 |
481
7d8634d26412
Moved SDisk3 equates further down because they caused a phasing error
boisy
parents:
480
diff
changeset
|
397 * SDisk 3 Definition Equates |
2024 | 398 SS.DRead EQU SS.AAGBf SDisk3 Direct Sector Read ($80) |
399 SS.DWrit EQU SS.DRead SDisk3 Direct sector Write ($80) | |
400 SS.UnFrz EQU SS.SLGBf SDisk3 UNFreeze DD info ($81) | |
401 SS.MOFF EQU SS.Mount SDisk3 fast motor off call ($82) | |
402 SS.MoTim EQU SS.RdNet SDisk3 Set motor shut off time ($83) | |
403 SS.SDRD EQU SS.MpGPB SDisk3 System direct read ($84) | |
404 SS.SDWRT EQU SS.SDRD SDisk3 System direct writes ($84) | |
405 SS.Sleep EQU SS.Slots SDisk3 (DMC ONLY) Enable/disable F$Sleep calls in read/write 1773 I/O ($85) | |
406 SS.DrvCh EQU SS.WnSet SDisk3 (DMC ONLY) Set drive number to cache, or return drive number being cached ($86) | |
481
7d8634d26412
Moved SDisk3 equates further down because they caused a phasing error
boisy
parents:
480
diff
changeset
|
407 |
2024 | 408 ENDC |
0 | 409 |
2024 | 410 TTL Direct Page Definitions |
411 PAG | |
0 | 412 |
413 ********************************** | |
414 * Direct Page Variable Definitions | |
415 * | |
2024 | 416 ORG $00 |
417 D.WDAddr RMB 2 FHL/Isted WD1002-05 interface base address | |
418 D.WDBtDr RMB 1 FHL/Isted WD1002-05 boot physical device drive num. | |
419 D.SWPage RMB 1 SmartWatch page # (see clock2_smart) | |
420 RMB 5 | |
421 D.COCOXT RMB 1 Busy flag for CoCo-XT driver (one drive at a time) | |
422 D.DbgMem RMB 2 Debug memory pointer | |
1185 | 423 |
2024 | 424 ORG $20 |
2005 | 425 |
2024 | 426 IFEQ Level-1 |
427 | |
2005 | 428 * Level 1 DP vars |
2024 | 429 D.FMBM RMB 4 Free memory bit map pointers |
430 D.MLIM RMB 2 Memory limit $24 | |
431 D.ModDir RMB 4 Module directory $26 | |
432 D.Init RMB 2 Rom base address $2A | |
433 D.SWI3 RMB 2 Swi3 vector $2C | |
434 D.SWI2 RMB 2 Swi2 vector $2E | |
435 D.FIRQ RMB 2 Firq vector $30 | |
436 D.IRQ RMB 2 Irq vector $32 | |
437 D.SWI RMB 2 Swi vector $34 | |
438 D.NMI RMB 2 Nmi vector $36 | |
439 D.SvcIRQ RMB 2 Interrupt service entry $38 | |
440 D.Poll RMB 2 Interrupt polling routine $3A | |
441 D.UsrIRQ RMB 2 User irq routine $3C | |
442 D.SysIRQ RMB 2 System irq routine $3E | |
443 D.UsrSvc RMB 2 User service request routine $40 | |
444 D.SysSvc RMB 2 System service request routine $42 | |
445 D.UsrDis RMB 2 User service request dispatch table | |
446 D.SysDis RMB 2 System service reuest dispatch table | |
447 D.Slice RMB 1 Process time slice count $48 | |
448 D.PrcDBT RMB 2 Process descriptor block address $49 | |
449 D.Proc RMB 2 Process descriptor address $4B | |
450 D.AProcQ RMB 2 Active process queue $4D | |
451 D.WProcQ RMB 2 Waiting process queue $4F | |
452 D.SProcQ RMB 2 Sleeping process queue $51 | |
453 D.Time EQU . Time | |
454 D.Year RMB 1 $53 | |
455 D.Month RMB 1 $54 | |
456 D.Day RMB 1 $55 | |
457 D.Hour RMB 1 $56 | |
458 D.Min RMB 1 $57 | |
459 D.Sec RMB 1 $58 | |
460 D.Tick RMB 1 $59 | |
461 D.TSec RMB 1 Ticks / second $5A | |
462 D.TSlice RMB 1 Ticks / time-slice $5B | |
463 D.IOML RMB 2 I/O mgr free memory low bound $5C | |
464 D.IOMH RMB 2 I/O mgr free memory hi bound $5E | |
465 D.DevTbl RMB 2 Device driver table addr $60 | |
466 D.PolTbl RMB 2 Irq polling table addr $62 | |
467 D.PthDBT RMB 2 Path descriptor block table addr $64 | |
468 D.BTLO RMB 2 Bootstrap low address $66 | |
469 D.BTHI RMB 2 Bootstrap hi address $68 | |
470 D.DMAReq RMB 1 DMA in use flag $6A | |
471 D.AltIRQ RMB 2 Alternate IRQ vector (CC) $6B | |
472 D.KbdSta RMB 2 Keyboard scanner static storage (CC) $6D | |
473 D.DskTmr RMB 2 Disk Motor Timer (CC) $6F | |
474 D.CBStrt RMB 16 reserved for CC warmstart ($71) | |
475 D.Clock RMB 2 Address of Clock Tick Routine (CC) $81 | |
476 D.Boot RMB 1 Bootstrap attempted flag | |
477 D.URtoSs RMB 2 address of user to system routine (VIRQ) $84 | |
478 D.CLTb RMB 2 Pointer to clock interrupt table (VIRQ) $86 | |
479 D.MDREG RMB 1 6309 MD (mode) shadow register $88 (added in V2.01.00) | |
480 D.CRC RMB 1 CRC checking mode flag $89 (added in V2.01.00) | |
481 D.Clock2 RMB 2 CC Clock2 entry address | |
0 | 482 |
2024 | 483 ORG $100 |
484 D.XSWI3 RMB 3 | |
485 D.XSWI2 RMB 3 | |
486 D.XSWI RMB 3 | |
487 D.XNMI RMB 3 | |
488 D.XIRQ RMB 3 | |
489 D.XFIRQ RMB 3 | |
246 | 490 |
1198
b4beed49ef37
Fixed incorrectly ordered D.X*** system globals for L-I
boisy
parents:
1185
diff
changeset
|
491 * Table Sizes |
2024 | 492 BMAPSZ EQU 32 Bitmap table size |
493 SVCTNM EQU 2 Number of service request tables | |
494 SVCTSZ EQU (256-BMAPSZ)/SVCTNM-2 Service request table size | |
0 | 495 |
2024 | 496 ELSE |
497 | |
0 | 498 * Level 2 DP vars |
2024 | 499 D.Tasks RMB 2 Task User Table |
500 D.TmpDAT RMB 2 Temporary DAT Image stack | |
501 D.Init RMB 2 Initialization Module ptr | |
502 D.Poll RMB 2 Interrupt Polling Routine ptr | |
503 D.Time EQU . System Time | |
504 D.Year RMB 1 | |
505 D.Month RMB 1 | |
506 D.Day RMB 1 | |
507 D.Hour RMB 1 | |
508 D.Min RMB 1 | |
509 D.Sec RMB 1 | |
510 D.Tick RMB 1 | |
511 D.Slice RMB 1 current slice remaining | |
512 D.TSlice RMB 1 Ticks per Slice | |
513 D.Boot RMB 1 Bootstrap attempted flag | |
514 D.MotOn RMB 1 Floppy Disk Motor-On time out | |
515 D.ErrCod RMB 1 Reset Error Code | |
516 D.Daywk RMB 1 day of week, com-trol clock | |
517 D.TkCnt RMB 1 Tick Counter | |
518 D.BtPtr RMB 2 Address of Boot in System Address space | |
519 D.BtSz RMB 2 Size of Boot | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
520 |
2024 | 521 IFNE H6309 |
522 D.MDREG RMB 1 6309 MD (mode) shadow register | |
523 ELSE | |
524 RMB 1 Currently unused in NitrOS-9/6809 | |
525 ENDC | |
480 | 526 |
2024 | 527 D.CRC RMB 1 CRC checking mode flag |
480 | 528 |
2024 | 529 D.Tenths RMB 1 Tenths and hundredths of second for F$Xtime |
530 D.Task1N RMB 1 Map type 1 task number*2 - offset into [D.TskIPt] | |
531 D.Quick RMB 1 Quick system call return flag - 0 =stack is at $FEE1 | |
532 D.QIRQ RMB 1 Quick IRQ flag - 0 =IRQ wasn't clock, so quick return | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
533 |
2024 | 534 ORG $40 |
535 D.BlkMap RMB 4 Memory Block Map ptr | |
536 D.ModDir RMB 4 Module Directory ptrs | |
537 D.PrcDBT RMB 2 Process Descriptor Block Table ptr | |
538 D.SysPrc RMB 2 System Process Descriptor ptr | |
539 D.SysDAT RMB 2 System DAT Image ptr | |
540 D.SysMem RMB 2 System Memory Map ptr | |
541 D.Proc RMB 2 Current Process ptr | |
542 D.AProcQ RMB 2 Active Process Queue | |
543 D.WProcQ RMB 2 Waiting Process Queue | |
544 D.SProcQ RMB 2 Sleeping Process Queue | |
545 D.ModEnd RMB 2 Module Directory end ptr | |
546 D.ModDAT RMB 2 Module Dir DAT image end ptr | |
547 D.CldRes RMB 2 Cold Restart vector | |
548 D.BtBug RMB 3 Boot debug information | |
549 D.Pipe RMB 2 | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
550 |
2024 | 551 ORG $6B |
552 D.Crash RMB 6 Pointer to CC Crash Routine | |
553 D.CBStrt RMB $B Reserved for CC warmstart ($71) | |
554 D.QCnt RMB 1 Count of number of quick system calls performed | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
555 |
2024 | 556 ORG $80 |
557 D.DevTbl RMB 2 I/O Device Table | |
558 D.PolTbl RMB 2 I/O Polling Table | |
559 RMB 4 reserved | |
560 D.PthDBT RMB 2 Path Descriptor Block Table ptr | |
561 D.DMAReq RMB 1 DMA Request flag | |
0 | 562 |
563 ******** | |
564 * CoCo 3 STUFF COMES NEXT | |
565 * This area is used for the CoCo Hardware Registers | |
566 * | |
2024 | 567 ORG $90 |
568 D.HINIT RMB 1 GIME INIT0 register (hardware setup $FF90) | |
569 D.TINIT RMB 1 GIME INIT1 register (timer/task register $FF91) | |
570 D.IRQER RMB 1 Interrupt enable regsiter ($FF92) | |
571 D.FRQER RMB 1 Fast Interrupt enable register ($FF93) | |
572 D.TIMMS RMB 1 Timer most significant nibble ($FF94) | |
573 D.TIMLS RMB 1 Timer least significant byte ($FF95) | |
574 D.RESV1 RMB 1 reserved register ($FF96) | |
575 D.RESV2 RMB 1 reserved register ($FF97) | |
576 D.VIDMD RMB 1 video mode register ($FF98) | |
577 D.VIDRS RMB 1 video resolution register ($FF99) | |
578 D.BORDR RMB 1 border register ($FF9A) | |
579 D.RESV3 RMB 1 reserved register ($FF9B) | |
580 D.VOFF2 RMB 1 vertical scroll/offset 2 register ($FF9C) | |
581 D.VOFF1 RMB 1 vertical offset 1 register ($FF9D) | |
582 D.VOFF0 RMB 1 vertical offset 0 register ($FF9E) | |
583 D.HOFF0 RMB 1 horizontal offset 0 register ($FF9F) | |
584 D.Speed RMB 1 Speed of COCO CPU 0=slow,1=fast ($A0) | |
585 D.TskIPt RMB 2 Task image Pointer table (CC) ($A1) | |
586 D.MemSz RMB 1 128/512K memory flag (CC) ($A3) | |
587 D.SSTskN RMB 1 System State Task Number (COCO) ($A4) | |
588 D.CCMem RMB 2 Pointer to beginning of CC Memory ($A5) | |
589 D.CCStk RMB 2 Pointer to top of CC Memory ($A7) | |
590 D.Flip0 RMB 2 Change to Task 0 ($A9) | |
591 D.Flip1 RMB 2 Change to reserved Task 1 ($AB) | |
592 D.VIRQ RMB 2 VIRQ Polling routine ($AD) | |
593 D.IRQS RMB 1 IRQ shadow register (CC Temporary) ($AF) | |
594 D.CLTb RMB 2 VIRQ Table address ($B0) | |
595 D.AltIRQ RMB 2 Alternate IRQ Vector (CC) ($B2) | |
596 D.GPoll RMB 2 CC GIME IRQ enable/disable toggle | |
597 D.Clock2 RMB 2 CC Clock2 entry address | |
598 ORG $C0 | |
599 D.SysSvc RMB 2 System Service Routine entry | |
600 D.SysDis RMB 2 System Service Dispatch Table ptr | |
601 D.SysIRQ RMB 2 System IRQ Routine entry | |
602 D.UsrSvc RMB 2 User Service Routine entry | |
603 D.UsrDis RMB 2 User Service Dispatch Table ptr | |
604 D.UsrIRQ RMB 2 User IRQ Routine entry | |
605 D.SysStk RMB 2 System stack | |
606 D.SvcIRQ RMB 2 In-System IRQ service | |
607 D.SysTsk RMB 1 System Task number | |
608 ORG $E0 | |
609 D.Clock RMB 2 | |
610 D.XSWI3 RMB 2 | |
611 D.XSWI2 RMB 2 | |
612 D.XFIRQ RMB 2 | |
613 D.XIRQ RMB 2 | |
614 D.XSWI RMB 2 | |
615 D.XNMI RMB 2 | |
616 D.ErrRst RMB 2 | |
617 D.SysVec RMB 2 F$xxx system call vector for NitrOS-9 Level 3 | |
618 D.SWI3 RMB 2 | |
619 D.SWI2 RMB 2 | |
620 D.FIRQ RMB 2 | |
621 D.IRQ RMB 2 | |
622 D.SWI RMB 2 | |
623 D.NMI RMB 2 | |
0 | 624 |
1365 | 625 ************************* |
626 * Level 2 Block Map flags | |
0 | 627 * |
2024 | 628 NotRAM EQU %10000000 Block Not RAM flag |
629 VidRAM EQU %00000100 Block is being used as Video RAM | |
630 ModBlock EQU %00000010 Module in Block | |
631 RAMinUse EQU %00000001 RAM Block in use flag | |
0 | 632 * |
633 * Service Dispatch Table special entries | |
634 * | |
2024 | 635 IOEntry EQU 254 |
0 | 636 |
2024 | 637 ENDC |
0 | 638 |
2024 | 639 TTL Structure Formats |
640 PAG | |
0 | 641 ************************************ |
642 * Module Directory Entry Definitions | |
643 * | |
2024 | 644 ORG 0 |
645 IFGT Level-1 | |
646 MD$MPDAT RMB 2 Module DAT Image ptr | |
647 MD$MBSiz RMB 2 Memory Block size | |
648 ENDC | |
649 MD$MPtr RMB 2 Module ptr | |
650 MD$Link RMB 2 Module Link count | |
651 MD$ESize EQU . Module Directory Entry size | |
0 | 652 |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
653 ************************************ |
0 | 654 * Module Definitions |
655 * | |
656 * Universal Module Offsets | |
657 * | |
2024 | 658 ORG 0 |
659 M$ID RMB 2 ID Code | |
660 M$Size RMB 2 Module Size | |
661 M$Name RMB 2 Module Name | |
662 M$Type RMB 1 Type / Language | |
663 M$Revs RMB 1 Attributes / Revision Level | |
664 M$Parity RMB 1 Header Parity | |
665 M$IDSize EQU . Module ID Size | |
0 | 666 * |
667 * Type-Dependent Module Offsets | |
668 * | |
669 * System, File Manager, Device Driver, Program Module | |
670 * | |
2024 | 671 M$Exec RMB 2 Execution Entry Offset |
0 | 672 * |
673 * Device Driver, Program Module | |
674 * | |
2024 | 675 M$Mem RMB 2 Stack Requirement |
0 | 676 * |
677 * Device Driver, Device Descriptor Module | |
678 * | |
2024 | 679 M$Mode RMB 1 Device Driver Mode Capabilities |
0 | 680 * |
681 * Device Descriptor Module | |
682 * | |
2024 | 683 ORG M$IDSize |
684 M$FMgr RMB 2 File Manager Name Offset | |
685 M$PDev RMB 2 Device Driver Name Offset | |
686 RMB 1 M$Mode (defined above) | |
687 M$Port RMB 3 Port Address | |
688 M$Opt RMB 1 Device Default Options | |
689 M$DTyp RMB 1 Device Type | |
690 IT.DTP EQU M$DTyp Descriptor type offset | |
0 | 691 * |
692 * Configuration Module Entry Offsets | |
693 * | |
2024 | 694 ORG M$IDSize |
695 MaxMem RMB 3 Maximum Free Memory | |
696 PollCnt RMB 1 Entries in Interrupt Polling Table | |
697 DevCnt RMB 1 Entries in Device Table | |
698 InitStr RMB 2 Initial Module Name | |
699 SysStr RMB 2 System Device Name | |
700 StdStr RMB 2 Standard I/O Pathlist | |
701 BootStr RMB 2 Bootstrap Module name | |
702 ProtFlag RMB 1 Write protect enable flag | |
0 | 703 |
2024 | 704 OSLevel RMB 1 OS level |
705 OSVer RMB 1 OS version | |
706 OSMajor RMB 1 OS major | |
707 OSMinor RMB 1 OS minor | |
708 Feature1 RMB 1 feature byte 1 | |
709 Feature2 RMB 1 feature byte 2 | |
710 RMB 8 reserved for future use | |
2 | 711 |
2024 | 712 IFGT Level-1 |
1933 | 713 * -- VTIO area -- (NitrOS-9 Level 2 and above) * |
2024 | 714 MonType RMB 1 Monitor type (0=CMP,1=RGB,2=MONO) |
715 MouseInf RMB 2 Mouse resolution/Mouse port; was 1, major error RG. | |
716 KeyRptS RMB 1 Key repeat start constant | |
717 KeyRptD RMB 1 Key repeat delay constant | |
718 ENDC | |
2 | 719 |
310 | 720 * Feature1 byte definitions |
2024 | 721 CRCOn EQU %00000001 CRC checking on |
722 CRCOff EQU %00000000 CRC checking off | |
2 | 723 |
2024 | 724 PAG |
0 | 725 ************************** |
726 * Module Field Definitions | |
727 * | |
1377 | 728 * ID Field - First two bytes of a NitrOS-9 module |
0 | 729 * |
2024 | 730 M$ID1 EQU $87 Module ID code byte one |
731 M$ID2 EQU $CD Module ID code byte two | |
732 M$ID12 EQU M$ID1*256+M$ID2 | |
1202 | 733 |
0 | 734 * |
1202 | 735 * Module Type/Language Field Masks |
0 | 736 * |
2024 | 737 TypeMask EQU %11110000 Type Field |
738 LangMask EQU %00001111 Language Field | |
1202 | 739 |
0 | 740 * |
1202 | 741 * Module Type Values |
0 | 742 * |
2024 | 743 Devic EQU $F0 Device Descriptor Module |
744 Drivr EQU $E0 Physical Device Driver | |
745 FlMgr EQU $D0 File Manager | |
746 Systm EQU $C0 System Module | |
747 ShellSub EQU $50 Shell+ shell sub module | |
748 Data EQU $40 Data Module | |
749 Multi EQU $30 Multi-Module | |
750 Sbrtn EQU $20 Subroutine Module | |
751 Prgrm EQU $10 Program Module | |
1202 | 752 |
0 | 753 * |
1202 | 754 * Module Language Values |
0 | 755 * |
2024 | 756 Objct EQU 1 6809 Object Code Module |
757 ICode EQU 2 Basic09 I-code | |
758 PCode EQU 3 Pascal P-code | |
759 CCode EQU 4 C I-code | |
760 CblCode EQU 5 Cobol I-code | |
761 FrtnCode EQU 6 Fortran I-code | |
762 Obj6309 EQU 7 6309 object code | |
0 | 763 * |
764 * Module Attributes / Revision byte | |
765 * | |
766 * Field Masks | |
767 * | |
2024 | 768 AttrMask EQU %11110000 Attributes Field |
769 RevsMask EQU %00001111 Revision Level Field | |
0 | 770 * |
771 * Attribute Flags | |
772 * | |
2024 | 773 ReEnt EQU %10000000 Re-Entrant Module |
774 ModProt EQU %01000000 Gimix Module protect bit (0=protected, 1=write enable) | |
775 ModNat EQU %00100000 6309 native mode attribute | |
0 | 776 |
777 ******************** | |
778 * Device Type Values | |
779 * | |
1202 | 780 * These values define various classes of devices, which are |
781 * managed by a file manager module. The Device Type is embedded | |
782 * in a device's device descriptor. | |
783 * | |
2024 | 784 DT.SCF EQU 0 Sequential Character File Manager |
785 DT.RBF EQU 1 Random Block File Manager | |
786 DT.Pipe EQU 2 Pipe File Manager | |
787 DT.SBF EQU 3 Sequential Block File Manager | |
788 DT.NFM EQU 4 Network File Manager | |
789 DT.CDFM EQU 5 CD-ROM File Manager | |
0 | 790 |
791 | |
792 ********************* | |
793 * CRC Result Constant | |
794 * | |
2024 | 795 CRCCon1 EQU $80 |
796 CRCCon23 EQU $0FE3 | |
0 | 797 |
2024 | 798 TTL Process Information |
799 PAG | |
0 | 800 ******************************** |
801 * Process Descriptor Definitions | |
802 * | |
2024 | 803 IFEQ Level-1 |
0 | 804 |
805 * Level 1 process descriptor defs | |
2024 | 806 DefIOSiz EQU 12 |
807 NumPaths EQU 16 Number of Local Paths | |
0 | 808 |
2024 | 809 ORG 0 |
810 P$ID RMB 1 Process ID | |
811 P$PID RMB 1 Parent's ID | |
812 P$SID RMB 1 Sibling's ID | |
813 P$CID RMB 1 Child's ID | |
814 P$SP RMB 2 Stack ptr | |
815 P$CHAP RMB 1 process chapter number | |
816 P$ADDR RMB 1 user address beginning page number | |
817 P$PagCnt RMB 1 Memory Page Count | |
818 P$User RMB 2 User Index $09 | |
819 P$Prior RMB 1 Priority $0B | |
820 P$Age RMB 1 Age $0C | |
821 P$State RMB 1 Status $0D | |
822 P$Queue RMB 2 Queue Link (Process ptr) $0E | |
823 P$IOQP RMB 1 Previous I/O Queue Link (Process ID) $10 | |
824 P$IOQN RMB 1 Next I/O Queue Link (Process ID) | |
825 P$PModul RMB 2 Primary Module | |
826 P$SWI RMB 2 SWI Entry Point | |
827 P$SWI2 RMB 2 SWI2 Entry Point | |
828 P$SWI3 RMB 2 SWI3 Entry Point $18 | |
829 P$DIO RMB DefIOSiz default I/O ptrs $1A | |
830 P$PATH RMB NumPaths I/O path table $26 | |
831 P$Signal RMB 1 Signal Code $36 | |
832 P$SigVec RMB 2 Signal Intercept Vector | |
833 P$SigDat RMB 2 Signal Intercept Data Address | |
834 P$NIO RMB 4 additional dio pointers for net | |
835 RMB $40-. unused | |
836 P$Size EQU . Size of Process Descriptor | |
0 | 837 |
838 * | |
839 * Process State Flags | |
840 * | |
2024 | 841 SysState EQU %10000000 |
842 TimSleep EQU %01000000 | |
843 TimOut EQU %00100000 | |
844 ImgChg EQU %00010000 | |
845 Condem EQU %00000010 | |
846 Dead EQU %00000001 | |
0 | 847 |
2024 | 848 ELSE |
0 | 849 |
850 * Level 2 process descriptor defs | |
2024 | 851 DefIOSiz EQU 16 Default I/O Data Length |
852 NefIOSiz EQU 12 On-Net Default I/O Data Length | |
853 NumPaths EQU 16 Number of Local Paths | |
0 | 854 |
2024 | 855 ORG 0 |
856 P$ID RMB 1 Process ID | |
857 P$PID RMB 1 Parent's ID | |
858 P$SID RMB 1 Sibling's ID | |
859 P$CID RMB 1 Child's ID | |
860 P$SP RMB 2 Stack ptr | |
861 P$Task RMB 1 Task Number | |
862 P$PagCnt RMB 1 Memory Page Count | |
863 P$User RMB 2 User Index | |
864 P$Prior RMB 1 Priority | |
865 P$Age RMB 1 Age | |
866 P$State RMB 1 Status | |
867 P$Queue RMB 2 Queue Link (Process ptr) | |
868 P$IOQP RMB 1 Previous I/O Queue Link (Process ID) | |
869 P$IOQN RMB 1 Next I/O Queue Link (Process ID) | |
870 P$PModul RMB 2 Primary Module | |
871 P$SWI RMB 2 SWI Entry Point | |
872 P$SWI2 RMB 2 SWI2 Entry Point | |
873 P$SWI3 RMB 2 SWI3 Entry Point | |
874 P$Signal RMB 1 Signal Code | |
875 P$SigVec RMB 2 Signal Intercept Vector | |
876 P$SigDat RMB 2 Signal Intercept Data Address | |
877 P$DeadLk RMB 1 Dominant proc ID if I/O locked | |
878 RMB $20-. unused | |
879 P$DIO RMB DefIOSiz Default I/O ptrs | |
880 P$Path RMB NumPaths I/O Path Table | |
881 P$DATImg RMB 64 DAT Image | |
882 P$Links RMB 32 Block Link counts | |
883 P$NIO RMB 6*2 additional DIO ptrs for net, compatible with 68k | |
884 P$SelP RMB 1 Selected Path for COCO Windows (Default 0) | |
885 P$UTicks RMB 4 proc User Tick counter (L2V3) | |
886 P$STicks RMB 4 proc System Tick counter (L2V3) | |
887 P$FCalls RMB 4 proc F$ call counter (L2V3) | |
888 P$ICalls RMB 4 proc I$ call counter (L2V3) | |
889 P$DatBeg RMB 3 proc Date of creation (Y/M/D) (L2V3) | |
890 P$TimBeg RMB 3 proc Time of creation (H/M/S) (L2V3) | |
891 P$Alarm RMB 6 | |
892 RMB $200-. Local stack | |
893 P$Stack EQU . Top of Stack | |
894 P$Size EQU . Size of Process Descriptor | |
0 | 895 |
896 * | |
897 * Process State Flags | |
898 * | |
2024 | 899 SysState EQU %10000000 |
900 TimSleep EQU %01000000 | |
901 TimOut EQU %00100000 | |
902 ImgChg EQU %00010000 | |
903 Suspend EQU %00001000 | |
904 Condem EQU %00000010 | |
905 Dead EQU %00000001 | |
0 | 906 |
2024 | 907 ENDC |
0 | 908 |
2024 | 909 TTL NitrOS-9 I/O Symbolic Definitions |
910 PAG | |
0 | 911 ************************* |
912 * Path Descriptor Offsets | |
913 * | |
2024 | 914 ORG 0 |
915 PD.PD RMB 1 Path Number | |
916 PD.MOD RMB 1 Mode (Read/Write/Update) | |
917 PD.CNT RMB 1 Number of Open Images | |
918 PD.DEV RMB 2 Device Table Entry Address | |
919 PD.CPR RMB 1 Current Process | |
920 PD.RGS RMB 2 Caller's Register Stack | |
921 PD.BUF RMB 2 Buffer Address | |
922 PD.FST RMB 32-. File Manager's Storage | |
923 PD.OPT EQU . PD GetSts(0) Options | |
924 PD.DTP RMB 1 Device Type | |
925 RMB 64-. Path options | |
926 PDSIZE EQU . | |
0 | 927 |
928 * | |
929 * Pathlist Special Symbols | |
930 * | |
2024 | 931 PDELIM EQU '/ Pathlist Name Separator |
932 PDIR EQU '. Directory | |
933 PENTIR EQU '@ Entire Device | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
934 |
2024 | 935 PAG |
0 | 936 **************************** |
937 * File Manager Entry Offsets | |
938 * | |
2024 | 939 ORG 0 |
940 FMCREA RMB 3 Create (Open New) File | |
941 FMOPEN RMB 3 Open File | |
942 FMMDIR RMB 3 Make Directory | |
943 FMCDIR RMB 3 Change Directory | |
944 FMDLET RMB 3 Delete File | |
945 FMSEEK RMB 3 Position File | |
946 FMREAD RMB 3 Read from File | |
947 FMWRIT RMB 3 Write to File | |
948 FMRDLN RMB 3 ReadLn | |
949 FMWRLN RMB 3 WritLn | |
950 FMGSTA RMB 3 Get File Status | |
951 FMSSTA RMB 3 Set File Status | |
952 FMCLOS RMB 3 Close File | |
0 | 953 |
954 ***************************** | |
955 * Device Driver Entry Offsets | |
956 * | |
2024 | 957 ORG 0 |
958 D$INIT RMB 3 Device Initialization | |
959 D$READ RMB 3 Read from Device | |
960 D$WRIT RMB 3 Write to Device | |
961 D$GSTA RMB 3 Get Device Status | |
962 D$PSTA RMB 3 Put Device Status | |
963 D$TERM RMB 3 Device Termination | |
0 | 964 |
965 ********************* | |
966 * Device Table Format | |
967 * | |
2024 | 968 ORG 0 |
969 V$DRIV RMB 2 Device Driver module | |
970 V$STAT RMB 2 Device Driver Static storage | |
971 V$DESC RMB 2 Device Descriptor module | |
972 V$FMGR RMB 2 File Manager module | |
973 V$USRS RMB 1 use count | |
974 IFGT Level-1 | |
975 V$DRIVEX RMB 2 Device Driver execution address | |
976 V$FMGREX RMB 2 File Manager execution address | |
977 ENDC | |
978 DEVSIZ EQU . | |
0 | 979 |
980 ******************************* | |
981 * Device Static Storage Offsets | |
982 * | |
2024 | 983 ORG 0 |
984 V.PAGE RMB 1 Port Extended Address | |
985 V.PORT RMB 2 Device 'Base' Port Address | |
986 V.LPRC RMB 1 Last Active Process ID | |
987 V.BUSY RMB 1 Active Process ID (0=UnBusy) | |
988 V.WAKE RMB 1 Active PD if Driver MUST Wake-up | |
989 V.USER EQU . Driver Allocation Origin | |
0 | 990 |
991 ******************************** | |
992 * Interrupt Polling Table Format | |
993 * | |
2024 | 994 ORG 0 |
995 Q$POLL RMB 2 Absolute Polling Address | |
996 Q$FLIP RMB 1 Flip (EOR) Byte ..normally Zero | |
997 Q$MASK RMB 1 Polling Mask (after Flip) | |
998 Q$SERV RMB 2 Absolute Service routine Address | |
999 Q$STAT RMB 2 Static Storage Address | |
1000 Q$PRTY RMB 1 Priority (Low Numbers=Top Priority) | |
1001 IFGT Level-1 | |
1002 Q$MAP RMB 2 NitrOS-9 Level 2 and above | |
1003 ENDC | |
1004 POLSIZ EQU . | |
0 | 1005 |
1006 ******************** | |
1007 * VIRQ packet format | |
1008 * | |
2024 | 1009 ORG 0 |
1010 Vi.Cnt RMB 2 count down counter | |
1011 Vi.Rst RMB 2 reset value for counter | |
1012 Vi.Stat RMB 1 status byte | |
0 | 1013 |
2024 | 1014 Vi.IFlag EQU %00000001 status byte virq flag |
0 | 1015 |
2024 | 1016 PAG |
0 | 1017 ************************************* |
1018 * Machine Characteristics Definitions | |
1019 * | |
2024 | 1020 R$CC EQU 0 Condition Codes register |
1021 R$A EQU 1 A Accumulator | |
1022 R$B EQU 2 B Accumulator | |
1023 R$D EQU R$A Combined A:B Accumulator | |
1024 IFNE H6309 | |
1025 R$E EQU 3 E Accumulator | |
1026 R$F EQU 4 F Accumulator | |
1027 R$W EQU R$E Combined E:F Accumulator | |
1028 R$Q EQU R$A Combined A:B:E:F Accumulator | |
1029 R$DP EQU 5 Direct Page register | |
1030 R$X EQU 6 X Index register | |
1031 R$Y EQU 8 Y Index register | |
1032 R$U EQU 10 User Stack register | |
1033 R$PC EQU 12 Program Counter register | |
1034 R$Size EQU 14 Total register package size | |
1035 ELSE | |
1036 R$DP EQU 3 Direct Page register | |
1037 R$X EQU 4 X Index register | |
1038 R$Y EQU 6 Y Index register | |
1039 R$U EQU 8 User Stack register | |
1040 R$PC EQU 10 Program Counter register | |
1041 R$Size EQU 12 Total register package size | |
1042 ENDC | |
2 | 1043 |
1044 * MD register masks | |
1363 | 1045 * 6309 definitions |
2024 | 1046 DIV0 EQU %10000000 division by 0 trap flag : 1 = trap occured |
1047 badinstr EQU %01000000 illegal instruction trap flag : 1 = trap occured | |
0 | 1048 |
2024 | 1049 Entire EQU %10000000 Full Register Stack flag |
1050 FIRQMask EQU %01000000 Fast-Interrupt Mask bit | |
1051 HalfCrry EQU %00100000 Half Carry flag | |
1052 IRQMask EQU %00010000 Interrupt Mask bit | |
1053 Negative EQU %00001000 Negative flag | |
1054 Zero EQU %00000100 Zero flag | |
1055 TwosOvfl EQU %00000010 Two's Comp Overflow flag | |
1056 Carry EQU %00000001 Carry bit | |
1057 IntMasks EQU IRQMask+FIRQMask | |
1058 Sign EQU %10000000 sign bit | |
0 | 1059 |
2024 | 1060 TTL Error Code Definitions |
1061 PAG | |
0 | 1062 ************************ |
1063 * Error Code Definitions | |
1064 * | |
2 | 1065 * Basic09 Error Codes |
1066 * | |
2024 | 1067 ORG 10 |
1068 E$UnkSym RMB 1 Unknown symbol | |
1069 E$ExcVrb RMB 1 Excessive verbage | |
1070 E$IllStC RMB 1 Illegal statement construction | |
1071 E$ICOvf RMB 1 I-code overflow | |
1072 E$IChRef RMB 1 Illegal channel reference | |
1073 E$IllMod RMB 1 Illegal mode | |
1074 E$IllNum RMB 1 Illegal number | |
1075 E$IllPrf RMB 1 Illegal prefix | |
1076 E$IllOpd RMB 1 Illegal operand | |
1077 E$IllOpr RMB 1 Illegal operator | |
1078 E$IllRFN RMB 1 Illegal record field name | |
1079 E$IllDim RMB 1 Illegal dimension | |
1080 E$IllLit RMB 1 Illegal literal | |
1081 E$IllRet RMB 1 Illegal relational | |
1082 E$IllSfx RMB 1 Illegal type suffix | |
1083 E$DimLrg RMB 1 Dimension too large | |
1084 E$LinLrg RMB 1 Line number too large | |
1085 E$NoAssg RMB 1 Missing assignment statement | |
1086 E$NoPath RMB 1 Missing path number | |
1087 E$NoComa RMB 1 Missing coma | |
1088 E$NoDim RMB 1 Missing dimension | |
1089 E$NoDO RMB 1 Missing DO statement | |
1090 E$MFull RMB 1 Memory full | |
1091 E$NoGoto RMB 1 Missing GOTO | |
1092 E$NoLPar RMB 1 Missing left parenthesis | |
1093 E$NoLRef RMB 1 Missing line reference | |
1094 E$NoOprd RMB 1 Missing operand | |
1095 E$NoRPar RMB 1 Missing right parenthesis | |
1096 E$NoTHEN RMB 1 Missing THEN statement | |
1097 E$NoTO RMB 1 Missing TO statement | |
1098 E$NoVRef RMB 1 Missing variable reference | |
1099 E$EndQou RMB 1 Missing end quote | |
1100 E$SubLrg RMB 1 Too many subscripts | |
1101 E$UnkPrc RMB 1 Unknown procedure | |
1102 E$MulPrc RMB 1 Multiply defined procedure | |
1103 E$DivZer RMB 1 Divice by zero | |
1104 E$TypMis RMB 1 Operand type mismatch | |
1105 E$StrOvf RMB 1 String stack overflow | |
1106 E$NoRout RMB 1 Unimplemented routine | |
1107 E$UndVar RMB 1 Undefined variable | |
1108 E$FltOvf RMB 1 Floating Overflow | |
1109 E$LnComp RMB 1 Line with compiler error | |
1110 E$ValRng RMB 1 Value out of range for destination | |
1111 E$SubOvf RMB 1 Subroutine stack overflow | |
1112 E$SubUnd RMB 1 Subroutine stack underflow | |
1113 E$SubRng RMB 1 Subscript out of range | |
1114 E$ParmEr RMB 1 Paraemter error | |
1115 E$SysOvf RMB 1 System stack overflow | |
1116 E$IOMism RMB 1 I/O type mismatch | |
1117 E$IONum RMB 1 I/O numeric input format bad | |
1118 E$IOConv RMB 1 I/O conversion: number out of range | |
1119 E$IllInp RMB 1 Illegal input format | |
1120 E$IOFRpt RMB 1 I/O format repeat error | |
1121 E$IOFSyn RMB 1 I/O format syntax error | |
1122 E$IllPNm RMB 1 Illegal path number | |
1123 E$WrSub RMB 1 Wrong number of subscripts | |
1124 E$NonRcO RMB 1 Non-record type operand | |
1125 E$IllA RMB 1 Illegal argument | |
1126 E$IllCnt RMB 1 Illegal control structure | |
1127 E$UnmCnt RMB 1 Unmatched control structure | |
1128 E$IllFOR RMB 1 Illegal FOR variable | |
1129 E$IllExp RMB 1 Illegal expression type | |
1130 E$IllDec RMB 1 Illegal declarative statement | |
1131 E$ArrOvf RMB 1 Array size overflow | |
1132 E$UndLin RMB 1 Undefined line number | |
1133 E$MltLin RMB 1 Multiply defined line number | |
1134 E$MltVar RMB 1 Multiply defined variable | |
1135 E$IllIVr RMB 1 Illegal input variable | |
1136 E$SeekRg RMB 1 Seek out of range | |
1137 E$NoData RMB 1 Missing data statement | |
2 | 1138 |
0 | 1139 * |
1140 * System Dependent Error Codes | |
1141 * | |
1142 | |
1274 | 1143 * Level 2 windowing error codes |
2024 | 1144 ORG 183 |
1145 E$IWTyp RMB 1 Illegal window type | |
1146 E$WADef RMB 1 Window already defined | |
1147 E$NFont RMB 1 Font not found | |
1148 E$StkOvf RMB 1 Stack overflow | |
1149 E$IllArg RMB 1 Illegal argument | |
1150 RMB 1 reserved | |
1151 E$ICoord RMB 1 Illegal coordinates | |
1152 E$Bug RMB 1 Bug (should never be returned) | |
1153 E$BufSiz RMB 1 Buffer size is too small | |
1154 E$IllCmd RMB 1 Illegal command | |
1155 E$TblFul RMB 1 Screen or window table is full | |
1156 E$BadBuf RMB 1 Bad/Undefined buffer number | |
1157 E$IWDef RMB 1 Illegal window definition | |
1158 E$WUndef RMB 1 Window undefined | |
0 | 1159 |
2024 | 1160 E$Up RMB 1 Up arrow pressed on SCF I$ReadLn with PD.UP enabled |
1161 E$Dn RMB 1 Down arrow pressed on SCF I$ReadLn with PD.DOWN enabled | |
1162 E$Alias RMB 1 | |
0 | 1163 |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
1164 |
0 | 1165 * |
1377 | 1166 * Standard NitrOS-9 Error Codes |
0 | 1167 * |
2024 | 1168 ORG 200 |
1169 E$PthFul RMB 1 Path Table full | |
1170 E$BPNum RMB 1 Bad Path Number | |
1171 E$Poll RMB 1 Polling Table Full | |
1172 E$BMode RMB 1 Bad Mode | |
1173 E$DevOvf RMB 1 Device Table Overflow | |
1174 E$BMID RMB 1 Bad Module ID | |
1175 E$DirFul RMB 1 Module Directory Full | |
1176 E$MemFul RMB 1 Process Memory Full | |
1177 E$UnkSvc RMB 1 Unknown Service Code | |
1178 E$ModBsy RMB 1 Module Busy | |
1179 E$BPAddr RMB 1 Bad Page Address | |
1180 E$EOF RMB 1 End of File | |
1181 RMB 1 | |
1182 E$NES RMB 1 Non-Existing Segment | |
1183 E$FNA RMB 1 File Not Accesible | |
1184 E$BPNam RMB 1 Bad Path Name | |
1185 E$PNNF RMB 1 Path Name Not Found | |
1186 E$SLF RMB 1 Segment List Full | |
1187 E$CEF RMB 1 Creating Existing File | |
1188 E$IBA RMB 1 Illegal Block Address | |
1189 E$HangUp RMB 1 Carrier Detect Lost | |
1190 E$MNF RMB 1 Module Not Found | |
1191 RMB 1 | |
1192 E$DelSP RMB 1 Deleting Stack Pointer memory | |
1193 E$IPrcID RMB 1 Illegal Process ID | |
1194 E$BPrcID EQU E$IPrcID Bad Process ID (formerly #238) | |
1195 RMB 1 | |
1196 E$NoChld RMB 1 No Children | |
1197 E$ISWI RMB 1 Illegal SWI code | |
1198 E$PrcAbt RMB 1 Process Aborted | |
1199 E$PrcFul RMB 1 Process Table Full | |
1200 E$IForkP RMB 1 Illegal Fork Parameter | |
1201 E$KwnMod RMB 1 Known Module | |
1202 E$BMCRC RMB 1 Bad Module CRC | |
1203 E$USigP RMB 1 Unprocessed Signal Pending | |
1204 E$NEMod RMB 1 Non Existing Module | |
1205 E$BNam RMB 1 Bad Name | |
1206 E$BMHP RMB 1 (bad module header parity) | |
1207 E$NoRAM RMB 1 No (System) RAM Available | |
1208 E$DNE RMB 1 Directory not empty | |
1209 E$NoTask RMB 1 No available Task number | |
1210 RMB $F0-. reserved | |
1211 E$Unit RMB 1 Illegal Unit (drive) | |
1212 E$Sect RMB 1 Bad Sector number | |
1213 E$WP RMB 1 Write Protect | |
1214 E$CRC RMB 1 Bad Check Sum | |
1215 E$Read RMB 1 Read Error | |
1216 E$Write RMB 1 Write Error | |
1217 E$NotRdy RMB 1 Device Not Ready | |
1218 E$Seek RMB 1 Seek Error | |
1219 E$Full RMB 1 Media Full | |
1220 E$BTyp RMB 1 Bad Type (incompatable) media | |
1221 E$DevBsy RMB 1 Device Busy | |
1222 E$DIDC RMB 1 Disk ID Change | |
1223 E$Lock RMB 1 Record is busy (locked out) | |
1224 E$Share RMB 1 Non-sharable file busy | |
1225 E$DeadLk RMB 1 I/O Deadlock error | |
0 | 1226 |
1202 | 1227 |
2024 | 1228 IFEQ Level-1 |
1300 | 1229 |
1377 | 1230 ******************************** |
1231 * Boot defs for NitrOS-9 Level 1 | |
1297 | 1232 * |
1233 * These defs are not strictly for 'Boot', but are for booting the | |
1234 * system. | |
1235 * | |
2024 | 1236 Bt.Start EQU $EE00 Start address of the boot track in memory |
1903
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
1237 |
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
1238 * Boot area size on Dragon is only 16 sectors=4K |
2024 | 1239 IFNE DRAGON |
1240 Bt.Size EQU $1000 Max size of boot file | |
1241 ELSE | |
1242 Bt.Size EQU $1080 Maximum size of bootfile | |
1243 ENDC | |
1300 | 1244 |
2024 | 1245 ELSE |
1300 | 1246 |
1377 | 1247 ****************************************** |
1248 * Boot defs for NitrOS-9 Level 2 and above | |
1202 | 1249 * |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
1250 * These defs are not strictly for 'Boot', but are for booting the |
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
1251 * system. |
1202 | 1252 * |
2024 | 1253 Bt.Block EQU $3B Block to map in for the 'OS9BOOT' screen |
1254 Bt.Flag EQU $8A34 Flag in Bt.Block to verify that it's unchanged | |
1255 Bt.Offst EQU 2 Offset into the screen where the current ptr is | |
1256 Bt.Start EQU $ED00 Start address of the boot track in memory | |
1300 | 1257 |
2024 | 1258 ENDC |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
1259 |
1903
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
1260 * Boot area on the Dragon starts on track 0 sector 2, imediatly |
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
1261 * after the blockmap. |
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
1262 * On the CoCo, the boot track is all of track 34 |
cb9a9df15964
Added defs for Dragon boot track, defined conditionally
afra
parents:
1782
diff
changeset
|
1263 |
2024 | 1264 IFNE DRAGON |
1265 Bt.Track EQU 0 Boot track | |
1266 Bt.Sec EQU 2 Start LSN of boot area on boot track | |
1267 ELSE | |
1268 Bt.Track EQU 34 Boot track | |
1269 Bt.Sec EQU 0 Start LSN of boot area on boot track | |
1270 ENDC | |
1306 | 1271 |
1202 | 1272 |
2024 | 1273 IFGT Level-2 |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
1274 *************************** |
1365 | 1275 * Level 3 Defs |
1202 | 1276 * |
1377 | 1277 * These definitions apply to NitrOS-9 Level 3 |
1202 | 1278 * |
2024 | 1279 L3.Start EQU $2000 Start off at slot 1 |
1280 L3.Size EQU $40 Go for 64 pages: 2 slots total | |
1281 L3.Blks EQU L3.Size/$20 Number of slots | |
1282 L3.End EQU L3.Start+L3.Size*$0100 end of L3 memory | |
1283 L3.SCF EQU $0660 SCF block ptr | |
1284 L3.RBF EQU L3.SCF+1 RBF block ptr | |
1285 ENDC | |
60
4b3470f2a2d7
Merged NitrOS-9 defs into os9defs, removed os9defs.n09
boisy
parents:
54
diff
changeset
|
1286 |
2024 | 1287 ENDC |