Mercurial > hg > Members > kono > nitros9-code
view lib/os9defs.a @ 2329:a894bfdef5b3
Updated
author | boisy |
---|---|
date | Wed, 13 Jan 2010 05:22:08 +0000 |
parents | cfb7dcf4322c |
children | 954369121d6e |
line wrap: on
line source
******************************************************************** * OS9Defs - NitrOS-9 System Definitions * * $Id$ * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * 1985/08/29 KMZ * Fixed DT.SBF/NFM values to 3/4 * * 1985/09/01 KMZ * Added SS.FDInf, SS.Attr to accept 68K request thru NET. * * 1985/09/03 KMZ/Robert F. Doggett * Eliminated E$BPrcID, made Error #238 become E$DNE for * 68000 compatability. * * 1986/04/15 Mark G. Hawkins * F$AlHRAM System call added for COCO. * * 1986/09/08 Mark G. Hawkins * F$Alarm for COCO Clock Module. * * 1986/09/17 Mark G. Hawkins * SS.Tone For COCO. * * 1986/09/23 Mark G. Hawkins * Added F$NMLink and F$NMLoad for COCO. * * 1986/09/30 Mark G. Hawkins * Added Reserved User $70 to $7f in sytem calls. * * 1986/09/30 Mark G. Hawkins * Created Color Computer 3 Version of OS9Defs. * * 1998/10/03 Boisy G. Pitre * Consoldated Level 1/Level 2 os9defs. * * 2002/04/04 Boisy G. Pitre * Consoldated Level 2/Level 2 V3 os9defs. * * 2002/04/30 Boisy G. Pitre * Added NitrOS-9 definitions. * * 2003/05/30 Boisy G. Pitre * Added WD1002 sys vars to Level One section. * * 2003/06/02 Boisy G. Pitre * Fixed incorrectly ordered D.X*** system globals for OS-9 Level One and * changed the sizes from 2 to 3 bytes. * DT.NFM is now the same for both Level One and Level Two. * Added DT.CDFM type for future CD-ROM file manager * * 2003/11/05 Robert Gault * Fixed MouseInf. Made it rmb 2 as it should be. Also changes to init and cc3io. * * 2005/11/02 P.Harvey-Smith * Added definitions for boot areas on Dragon computers. * * 2006/03/03 Boisy G. Pitre * Added F$Debug and D.DbgMem areas, common to all levels of NitrOS-9 NAM OS9Defs IFEQ Level-1 TTL NitrOS-9 Level 1 System Symbol Definitions ELSE IFEQ Level-2 TTL NitrOS-9 Level 2 System Symbol Definitions ELSE TTL NitrOS-9 Level 3 System Symbol Definitions ENDC ENDC * Common definitions true: EQU 1 useful name false: EQU 0 useful name PAG ***************************************** * System Service Request Code Definitions * csect F$Link: RMB 1 Link to Module F$Load: RMB 1 Load Module from File F$UnLink: RMB 1 Unlink Module F$Fork: RMB 1 Start New Process F$Wait: RMB 1 Wait for Child Process to Die F$Chain: RMB 1 Chain Process to New Module F$Exit: RMB 1 Terminate Process F$Mem: RMB 1 Set Memory Size F$Send: RMB 1 Send Signal to Process F$Icpt: RMB 1 Set Signal Intercept F$Sleep: RMB 1 Suspend Process F$SSpd: RMB 1 Suspend Process F$ID: RMB 1 Return Process ID F$SPrior: RMB 1 Set Process Priority F$SSWI: RMB 1 Set Software Interrupt F$PErr: RMB 1 Print Error F$PrsNam: RMB 1 Parse Pathlist Name F$CmpNam: RMB 1 Compare Two Names F$SchBit: RMB 1 Search Bit Map F$AllBit: RMB 1 Allocate in Bit Map F$DelBit: RMB 1 Deallocate in Bit Map F$Time: RMB 1 Get Current Time F$STime: RMB 1 Set Current Time F$CRC: RMB 1 Generate CRC ($17) IFGT Level-1 * NitrOS-9 Level 2 system calls F$GPrDsc: RMB 1 Get Process Descriptor copy ($18) F$GBlkMp: RMB 1 Get System Block Map copy ($19) F$GModDr: RMB 1 Get Module Directory copy ($1A) F$CpyMem: RMB 1 Copy External Memory ($1B) F$SUser: RMB 1 Set User ID number ($1C) F$UnLoad: RMB 1 Unlink Module by name ($1D) F$Alarm: RMB 1 Color Computer 3 Alarm Call ($1E) RMB 2 Reserved - For overlap of other systems ($1F) F$NMLink: RMB 1 Color Computer 3 Non-Mapping Link ($21) F$NMLoad: RMB 1 Color Computer 3 Non-Mapping Load ($22) ELSE * NitrOS-9 Level 1 system call padding RMB 11 ENDC F$Debug: RMB 1 Drop the system into the debugger ($23) IFGT Level-1 RMB $25-* F$TPS: RMB 1 Return System's Ticks Per Second F$TimAlm: RMB 1 CoCo individual process alarm call ENDC RMB $27-* Beginning of System Reserved Calls * NitrOS-9 common system calls F$VIRQ: RMB 1 Install/Delete Virtual IRQ F$SRqMem: RMB 1 System Memory Request F$SRtMem: RMB 1 System Memory Return F$IRQ: RMB 1 Enter IRQ Polling Table F$IOQu: RMB 1 Enter I/O Queue F$AProc: RMB 1 Enter Active Process Queue F$NProc: RMB 1 Start Next Process F$VModul: RMB 1 Validate Module F$Find64: RMB 1 Find Process/Path Descriptor F$All64: RMB 1 Allocate Process/Path Descriptor F$Ret64: RMB 1 Return Process/Path Descriptor F$SSvc: RMB 1 Service Request Table Initialization F$IODel: RMB 1 Delete I/O Module IFGT Level-1 F$SLink: RMB 1 System Link F$Boot: RMB 1 Bootstrap System F$BtMem: RMB 1 Bootstrap Memory Request F$GProcP: RMB 1 Get Process ptr F$Move: RMB 1 Move Data (low bound first) F$AllRAM: RMB 1 Allocate RAM blocks F$AllImg: RMB 1 Allocate Image RAM blocks F$DelImg: RMB 1 Deallocate Image RAM blocks F$SetImg: RMB 1 Set Process DAT Image F$FreeLB: RMB 1 Get Free Low Block F$FreeHB: RMB 1 Get Free High Block F$AllTsk: RMB 1 Allocate Process Task number F$DelTsk: RMB 1 Deallocate Process Task number F$SetTsk: RMB 1 Set Process Task DAT registers F$ResTsk: RMB 1 Reserve Task number F$RelTsk: RMB 1 Release Task number F$DATLog: RMB 1 Convert DAT Block/Offset to Logical F$DATTmp: RMB 1 Make temporary DAT image (Obsolete) F$LDAXY: RMB 1 Load A [X,[Y]] F$LDAXYP: RMB 1 Load A [X+,[Y]] F$LDDDXY: RMB 1 Load D [D+X,[Y]] F$LDABX: RMB 1 Load A from 0,X in task B F$STABX: RMB 1 Store A at 0,X in task B F$AllPrc: RMB 1 Allocate Process Descriptor F$DelPrc: RMB 1 Deallocate Process Descriptor F$ELink: RMB 1 Link using Module Directory Entry F$FModul: RMB 1 Find Module Directory Entry F$MapBlk: RMB 1 Map Specific Block F$ClrBlk: RMB 1 Clear Specific Block F$DelRAM: RMB 1 Deallocate RAM blocks F$GCMDir: RMB 1 Pack module directory F$AlHRAM: RMB 1 Allocate HIGH RAM Blocks * Alan DeKok additions F$ReBoot: RMB 1 Reboot machine (reload OS9Boot) or drop to RSDOS F$CRCMod: RMB 1 CRC mode, toggle or report current status F$XTime: RMB 1 Get Extended time packet from RTC (fractions of second) F$VBlock: RMB 1 Verify modules in a block of memory, add to module directory ENDC * * Numbers $70 through $7F are reserved for user definitions * RMB $70-* IFEQ Level-1 RMB 16 Reserved for user definition ELSE F$RegDmp: RMB 1 Ron Lammardo's debugging register dump F$NVRAM: RMB 1 Non Volatile RAM (RTC battery backed static) read/write RMB $80-* Reserved for user definitions ENDC endsect PAG ************************************** * I/O Service Request Code Definitions * csect RMB $80 I$Attach: RMB 1 Attach I/O Device I$Detach: RMB 1 Detach I/O Device I$Dup: RMB 1 Duplicate Path I$Create: RMB 1 Create New File I$Open: RMB 1 Open Existing File I$MakDir: RMB 1 Make Directory File I$ChgDir: RMB 1 Change Default Directory I$Delete: RMB 1 Delete File I$Seek: RMB 1 Change Current Position I$Read: RMB 1 Read Data I$Write: RMB 1 Write Data I$ReadLn: RMB 1 Read Line of ASCII Data I$WritLn: RMB 1 Write Line of ASCII Data I$GetStt: RMB 1 Get Path Status I$SetStt: RMB 1 Set Path Status I$Close: RMB 1 Close Path I$DeletX: RMB 1 Delete from current exec dir endsect ******************* * File Access Modes * READ.: EQU %00000001 WRITE.: EQU %00000010 UPDAT.: EQU READ.+WRITE. EXEC.: EQU %00000100 PREAD.: EQU %00001000 PWRIT.: EQU %00010000 PEXEC.: EQU %00100000 SHARE.: EQU %01000000 DIR.: EQU %10000000 ISIZ.: EQU %00100000 ************** * Signal Codes * csect S$Kill: RMB 1 Non-Interceptable Abort S$Wake: RMB 1 Wake-up Sleeping Process S$Abort: RMB 1 Keyboard Abort S$Intrpt: RMB 1 Keyboard Interrupt S$Window: RMB 1 Window Change S$Peer: EQU S$Window Peer disconnected (scdwt) S$Alarm: RMB 1 CoCo individual process' alarm signal endsect PAG ********************************** * Status Codes for GetStat/GetStat * csect SS.Opt: RMB 1 Read/Write PD Options SS.Ready: RMB 1 Check for Device Ready SS.Size: RMB 1 Read/Write File Size SS.Reset: RMB 1 Device Restore SS.WTrk: RMB 1 Device Write Track SS.Pos: RMB 1 Get File Current Position SS.EOF: RMB 1 Test for End of File SS.Link: RMB 1 Link to Status routines SS.ULink: RMB 1 Unlink Status routines SS.Feed: RMB 1 Issue form feed SS.Frz: RMB 1 Freeze DD. information SS.SPT: RMB 1 Set DD.TKS to given value SS.SQD: RMB 1 Sequence down hard disk SS.DCmd: RMB 1 Send direct command to disk SS.DevNm: RMB 1 Return Device name (32-bytes at [X]) SS.FD: RMB 1 Return File Descriptor (Y-bytes at [X]) SS.Ticks: RMB 1 Set Lockout honor duration SS.Lock: RMB 1 Lock/Release record SS.DStat: RMB 1 Return Display Status (CoCo) SS.Joy: RMB 1 Return Joystick Value (CoCo) SS.BlkRd: RMB 1 Block Read SS.BlkWr: RMB 1 Block Write SS.Reten: RMB 1 Retension cycle SS.WFM: RMB 1 Write File Mark SS.RFM: RMB 1 Read past File Mark SS.ELog: RMB 1 Read Error Log SS.SSig: RMB 1 Send signal on data ready SS.Relea: RMB 1 Release device SS.AlfaS: RMB 1 Return Alfa Display Status (CoCo, SCF/GetStat) SS.Attr: EQU SS.AlfaS To serve 68K/RBF/SetStat only, thru NET SS.Break: RMB 1 Send break signal out acia SS.RsBit: RMB 1 Reserve bitmap sector (do not allocate in) LSB(X)=sct# RMB 1 Reserved SS.FDInf: EQU $20 To serve 68K/RBF/GetStat only, thru NET RMB 4 Reserve $20-$23 for Japanese version (Hoshi) SS.SetMF: RMB 1 Reserve $24 for Gimix G68 (Flex compatability?) SS.Cursr: RMB 1 Cursor information for COCO SS.ScSiz: RMB 1 Return screen size for COCO SS.KySns: RMB 1 Getstat/SetStat for COCO keyboard SS.ComSt: RMB 1 Getstat/SetStat for Baud/Parity SS.Open: RMB 1 SetStat to tell driver a path was opened SS.Close: RMB 1 SetStat to tell driver a path was closed SS.HngUp: RMB 1 SetStat to tell driver to hangup phone SS.FSig: RMB 1 New signal for temp locked files SS.DSize: EQU SS.ScSiz Return disk size (RBF GetStat) SS.VarSect: EQU SS.DStat Variable Sector Size (RBF GetStat) * System Specific and User defined codes above $80 RMB $80-* SS.AAGBf: RMB 1 SetStat to Allocate Additional Graphic Buffer SS.SLGBf: RMB 1 SetStat to Select a different Graphic Buffer SS.Mount: RMB 1 Network 4 Mount Setstat SS.RdNet: RMB 1 Read Raw Sector from Network 4 Omnidrive SS.MpGPB: RMB 1 SetStat to request a Get/Put Buffer be mapped in workspace SS.Slots: RMB 1 Network 4 slots? getstat IFGT Level-1 * Level 2 Windowing SS.WnSet: RMB 1 Set up High Level Windowing Information SS.MnSel: RMB 1 Request High level Menu Handler take determine next event SS.SBar: RMB 1 SetStat to set position block on Window scroll bars SS.Mouse: RMB 1 Return Mouse information packet (COCO) SS.MsSig: RMB 1 SetStat to tell driver to send signal on mouse event SS.AScrn: RMB 1 Allocate a screen for application poking SS.DScrn: RMB 1 Display a screen allocated by SS.AScrn SS.FScrn: RMB 1 Free a screen allocated by SS.AScrn SS.PScrn: RMB 1 Polymorph Screen into different screen type SS.ScInf: RMB 1 Get Current screen info for direct writes RMB 1 Reserved SS.Palet: RMB 1 Return palette information SS.Montr: RMB 1 Get and Set Monitor Type SS.ScTyp: RMB 1 Get screen type information SS.GIP: RMB 1 Global Input Parameters (SetStat) SS.UMBar: RMB 1 update menu bar (SetStat) SS.FBRgs: RMB 1 return color registers (GetStat) SS.DfPal: RMB 1 set/return default palette registers (Getstat/Setstat) SS.Tone: RMB 1 Generate a tone using 6 bit sound SS.GIP2: RMB 1 Global Input Params #2 (L2V3) SS.AnPal: RMB 1 Animate palettes (L2V3) SS.FndBf: RMB 1 Find named buffer (L2V3) * sc6551 defined SS.CDSta: EQU SS.GIP2 SS.CDSig: EQU SS.AnPal SS.CDRel: EQU SS.FndBf ELSE * These are wide open in Level 1 RMB 19 * sc6551 defined SS.CDSta: RMB 1 SS.CDSig: RMB 1 SS.CDRel: RMB 1 ENDC RMB $A0-* * * New Default SCF input buffer Set status call SS.Fill: RMB 1 Pre-load SCF device input buffer SS.Hist: RMB 1 Enable command-line history easily RMB $B0-* * * New WDDisk get/set status calls SS.ECC: RMB 1 ECC corrected data error enable/disable (GetStat/SetStat) endsect * IFGT Level-1 * VRN get/set status calls. Named by Alan DeKok. SS.VCtr: EQU $80 Return FS2 total VIRQ counter SS.VSig: EQU $81 Return FS2 number of signals sent SS.FClr: EQU $81 Set/clear FS2 VIRQ SS.FSet: EQU $C7 Set FS2+ VIRQ SS.KSet: EQU $C8 Set KQ3 VIRQ SS.KClr: EQU $C9 Clr KQ3 VIRQ SS.ARAM: EQU $CA Allocate RAM blocks SS.DRAM: EQU $CB De-allocate RAM blocks * SDisk 3 Definition Equates SS.DRead: EQU SS.AAGBf SDisk3 Direct Sector Read ($80) SS.DWrit: EQU SS.DRead SDisk3 Direct sector Write ($80) SS.UnFrz: EQU SS.SLGBf SDisk3 UNFreeze DD info ($81) SS.MOFF: EQU SS.Mount SDisk3 fast motor off call ($82) SS.MoTim: EQU SS.RdNet SDisk3 Set motor shut off time ($83) SS.SDRD: EQU SS.MpGPB SDisk3 System direct read ($84) SS.SDWRT: EQU SS.SDRD SDisk3 System direct writes ($84) SS.Sleep: EQU SS.Slots SDisk3 (DMC ONLY) Enable/disable F$Sleep calls in read/write 1773 I/O ($85) SS.DrvCh: EQU SS.WnSet SDisk3 (DMC ONLY) Set drive number to cache, or return drive number being cached ($86) ENDC TTL Direct Page Definitions PAG ********************************** * Direct Page Variable Definitions * csect D.WDAddr: RMB 2 FHL/Isted WD1002-05 interface base address D.WDBtDr: RMB 1 FHL/Isted WD1002-05 boot physical device drive num. D.SWPage: RMB 1 SmartWatch page # (see clock2_smart) RMB 5 D.COCOXT: RMB 1 Busy flag for CoCo-XT driver (one drive at a time) D.DbgMem: RMB 2 Debug memory pointer D.DWSubAddr: RMB 2 DriveWire subroutine module pointer D.DWStat: RMB 2 DriveWire statics page RMB $20-* IFEQ Level-1 * Level 1 DP vars D.FMBM: RMB 4 Free memory bit map pointers D.MLIM: RMB 2 Memory limit $24 D.ModDir: RMB 4 Module directory $26 D.Init: RMB 2 Rom base address $2A D.SWI3: RMB 2 Swi3 vector $2C D.SWI2: RMB 2 Swi2 vector $2E D.FIRQ: RMB 2 Firq vector $30 D.IRQ: RMB 2 Irq vector $32 D.SWI: RMB 2 Swi vector $34 D.NMI: RMB 2 Nmi vector $36 D.SvcIRQ: RMB 2 Interrupt service entry $38 D.Poll: RMB 2 Interrupt polling routine $3A D.UsrIRQ: RMB 2 User irq routine $3C D.SysIRQ: RMB 2 System irq routine $3E D.UsrSvc: RMB 2 User service request routine $40 D.SysSvc: RMB 2 System service request routine $42 D.UsrDis: RMB 2 User service request dispatch table D.SysDis: RMB 2 System service reuest dispatch table D.Slice: RMB 1 Process time slice count $48 D.PrcDBT: RMB 2 Process descriptor block address $49 D.Proc: RMB 2 Process descriptor address $4B D.AProcQ: RMB 2 Active process queue $4D D.WProcQ: RMB 2 Waiting process queue $4F D.SProcQ: RMB 2 Sleeping process queue $51 D.Time: EQU * Time D.Year: RMB 1 $53 D.Month: RMB 1 $54 D.Day: RMB 1 $55 D.Hour: RMB 1 $56 D.Min: RMB 1 $57 D.Sec: RMB 1 $58 D.Tick: RMB 1 $59 D.TSec: RMB 1 Ticks / second $5A D.TSlice: RMB 1 Ticks / time-slice $5B D.IOML: RMB 2 I/O mgr free memory low bound $5C D.IOMH: RMB 2 I/O mgr free memory hi bound $5E D.DevTbl: RMB 2 Device driver table addr $60 D.PolTbl: RMB 2 Irq polling table addr $62 D.PthDBT: RMB 2 Path descriptor block table addr $64 D.BTLO: RMB 2 Bootstrap low address $66 D.BTHI: RMB 2 Bootstrap hi address $68 D.DMAReq: RMB 1 DMA in use flag $6A D.AltIRQ: RMB 2 Alternate IRQ vector (CC) $6B D.KbdSta: RMB 2 Keyboard scanner static storage (CC) $6D D.DskTmr: RMB 2 Disk Motor Timer (CC) $6F D.CBStrt: RMB 16 reserved for CC warmstart ($71) D.Clock: RMB 2 Address of Clock Tick Routine (CC) $81 D.Boot: RMB 1 Bootstrap attempted flag D.URtoSs: RMB 2 address of user to system routine (VIRQ) $84 D.CLTb: RMB 2 Pointer to clock interrupt table (VIRQ) $86 D.MDREG: RMB 1 6309 MD (mode) shadow register $88 (added in V2.01.00) D.CRC: RMB 1 CRC checking mode flag $89 (added in V2.01.00) D.Clock2: RMB 2 CC Clock2 entry address RMB $100-* D.XSWI3: RMB 3 D.XSWI2: RMB 3 D.XSWI: RMB 3 D.XNMI: RMB 3 D.XIRQ: RMB 3 D.XFIRQ: RMB 3 * Table Sizes BMAPSZ: EQU 32 Bitmap table size SVCTNM: EQU 2 Number of service request tables SVCTSZ: EQU (256-BMAPSZ)/SVCTNM-2 Service request table size ELSE * Level 2 DP vars D.Tasks: RMB 2 Task User Table D.TmpDAT: RMB 2 Temporary DAT Image stack D.Init: RMB 2 Initialization Module ptr D.Poll: RMB 2 Interrupt Polling Routine ptr D.Time: EQU * System Time D.Year: RMB 1 D.Month: RMB 1 D.Day: RMB 1 D.Hour: RMB 1 D.Min: RMB 1 D.Sec: RMB 1 D.Tick: RMB 1 D.Slice: RMB 1 current slice remaining D.TSlice: RMB 1 Ticks per Slice D.Boot: RMB 1 Bootstrap attempted flag D.MotOn: RMB 1 Floppy Disk Motor-On time out D.ErrCod: RMB 1 Reset Error Code D.Daywk: RMB 1 day of week, com-trol clock D.TkCnt: RMB 1 Tick Counter D.BtPtr: RMB 2 Address of Boot in System Address space D.BtSz: RMB 2 Size of Boot IFNE H6309 D.MDREG: RMB 1 6309 MD (mode) shadow register ELSE RMB 1 Currently unused in NitrOS-9/6809 ENDC D.CRC: RMB 1 CRC checking mode flag D.Tenths: RMB 1 Tenths and hundredths of second for F$Xtime D.Task1N: RMB 1 Map type 1 task number*2 - offset into [D.TskIPt] D.Quick: RMB 1 Quick system call return flag - 0 =stack is at $FEE1 D.QIRQ: RMB 1 Quick IRQ flag - 0 =IRQ wasn't clock, so quick return RMB $40-* D.BlkMap: RMB 4 Memory Block Map ptr D.ModDir: RMB 4 Module Directory ptrs D.PrcDBT: RMB 2 Process Descriptor Block Table ptr D.SysPrc: RMB 2 System Process Descriptor ptr D.SysDAT: RMB 2 System DAT Image ptr D.SysMem: RMB 2 System Memory Map ptr D.Proc: RMB 2 Current Process ptr D.AProcQ: RMB 2 Active Process Queue D.WProcQ: RMB 2 Waiting Process Queue D.SProcQ: RMB 2 Sleeping Process Queue D.ModEnd: RMB 2 Module Directory end ptr D.ModDAT: RMB 2 Module Dir DAT image end ptr D.CldRes: RMB 2 Cold Restart vector D.BtBug: RMB 3 Boot debug information D.Pipe: RMB 2 RMB $6B-* D.Crash: RMB 6 Pointer to CC Crash Routine D.CBStrt: RMB $B Reserved for CC warmstart ($71) D.QCnt: RMB 1 Count of number of quick system calls performed RMB $80-* D.DevTbl: RMB 2 I/O Device Table D.PolTbl: RMB 2 I/O Polling Table RMB 4 reserved D.PthDBT: RMB 2 Path Descriptor Block Table ptr D.DMAReq: RMB 1 DMA Request flag ******** * CoCo 3 STUFF COMES NEXT * This area is used for the CoCo Hardware Registers * RMB $90-* D.HINIT: RMB 1 GIME INIT0 register (hardware setup $FF90) D.TINIT: RMB 1 GIME INIT1 register (timer/task register $FF91) D.IRQER: RMB 1 Interrupt enable regsiter ($FF92) D.FRQER: RMB 1 Fast Interrupt enable register ($FF93) D.TIMMS: RMB 1 Timer most significant nibble ($FF94) D.TIMLS: RMB 1 Timer least significant byte ($FF95) D.RESV1: RMB 1 reserved register ($FF96) D.RESV2: RMB 1 reserved register ($FF97) D.VIDMD: RMB 1 video mode register ($FF98) D.VIDRS: RMB 1 video resolution register ($FF99) D.BORDR: RMB 1 border register ($FF9A) D.RESV3: RMB 1 reserved register ($FF9B) D.VOFF2: RMB 1 vertical scroll/offset 2 register ($FF9C) D.VOFF1: RMB 1 vertical offset 1 register ($FF9D) D.VOFF0: RMB 1 vertical offset 0 register ($FF9E) D.HOFF0: RMB 1 horizontal offset 0 register ($FF9F) D.Speed: RMB 1 Speed of COCO CPU 0=slow,1=fast ($A0) D.TskIPt: RMB 2 Task image Pointer table (CC) ($A1) D.MemSz: RMB 1 128/512K memory flag (CC) ($A3) D.SSTskN: RMB 1 System State Task Number (COCO) ($A4) D.CCMem: RMB 2 Pointer to beginning of CC Memory ($A5) D.CCStk: RMB 2 Pointer to top of CC Memory ($A7) D.Flip0: RMB 2 Change to Task 0 ($A9) D.Flip1: RMB 2 Change to reserved Task 1 ($AB) D.VIRQ: RMB 2 VIRQ Polling routine ($AD) D.IRQS: RMB 1 IRQ shadow register (CC Temporary) ($AF) D.CLTb: RMB 2 VIRQ Table address ($B0) D.AltIRQ: RMB 2 Alternate IRQ Vector (CC) ($B2) D.GPoll: RMB 2 CC GIME IRQ enable/disable toggle D.Clock2: RMB 2 CC Clock2 entry address RMB $C0-* D.SysSvc: RMB 2 System Service Routine entry D.SysDis: RMB 2 System Service Dispatch Table ptr D.SysIRQ: RMB 2 System IRQ Routine entry D.UsrSvc: RMB 2 User Service Routine entry D.UsrDis: RMB 2 User Service Dispatch Table ptr D.UsrIRQ: RMB 2 User IRQ Routine entry D.SysStk: RMB 2 System stack D.SvcIRQ: RMB 2 In-System IRQ service D.SysTsk: RMB 1 System Task number RMB $E0-* D.Clock: RMB 2 D.XSWI3: RMB 2 D.XSWI2: RMB 2 D.XFIRQ: RMB 2 D.XIRQ: RMB 2 D.XSWI: RMB 2 D.XNMI: RMB 2 D.ErrRst: RMB 2 D.SysVec: RMB 2 F$xxx system call vector for NitrOS-9 Level 3 D.SWI3: RMB 2 D.SWI2: RMB 2 D.FIRQ: RMB 2 D.IRQ: RMB 2 D.SWI: RMB 2 D.NMI: RMB 2 ************************* * Level 2 Block Map flags * NotRAM: EQU %10000000 Block Not RAM flag VidRAM: EQU %00000100 Block is being used as Video RAM ModBlock: EQU %00000010 Module in Block RAMinUse: EQU %00000001 RAM Block in use flag * * Service Dispatch Table special entries * IOEntry: EQU 254 ENDC endsect TTL Structure Formats PAG ************************************ * Module Directory Entry Definitions * csect IFGT Level-1 MD$MPDAT: RMB 2 Module DAT Image ptr MD$MBSiz: RMB 2 Memory Block size ENDC MD$MPtr: RMB 2 Module ptr MD$Link: RMB 2 Module Link count MD$ESize: EQU * Module Directory Entry size endsect ************************************ * Module Definitions * * Universal Module Offsets * csect M$ID: RMB 2 ID Code M$Size: RMB 2 Module Size M$Name: RMB 2 Module Name M$Type: RMB 1 Type / Language M$Revs: RMB 1 Attributes / Revision Level M$Parity: RMB 1 Header Parity M$IDSize: EQU * Module ID Size * * Type-Dependent Module Offsets * * System, File Manager, Device Driver, Program Module * M$Exec: RMB 2 Execution Entry Offset * * Device Driver, Program Module * M$Mem: RMB 2 Stack Requirement * * Device Driver, Device Descriptor Module * M$Mode: RMB 1 Device Driver Mode Capabilities * * Device Descriptor Module * RMB M$IDSize-* M$FMgr: RMB 2 File Manager Name Offset M$PDev: RMB 2 Device Driver Name Offset RMB 1 M$Mode (defined above) M$Port: RMB 3 Port Address M$Opt: RMB 1 Device Default Options M$DTyp: RMB 1 Device Type IT.DTP: EQU M$DTyp Descriptor type offset * * Configuration Module Entry Offsets * RMB M$IDSize-* MaxMem: RMB 3 Maximum Free Memory PollCnt: RMB 1 Entries in Interrupt Polling Table DevCnt: RMB 1 Entries in Device Table InitStr: RMB 2 Initial Module Name SysStr: RMB 2 System Device Name StdStr: RMB 2 Standard I/O Pathlist BootStr: RMB 2 Bootstrap Module name ProtFlag: RMB 1 Write protect enable flag OSLevel: RMB 1 OS level OSVer: RMB 1 OS version OSMajor: RMB 1 OS major OSMinor: RMB 1 OS minor Feature1: RMB 1 feature byte 1 Feature2: RMB 1 feature byte 2 OSName: RMB 2 OS revision name string (nul terminated) InstallName: RMB 2 installation name string (nul terminated) RMB 4 reserved for future use IFGT Level-1 * -- VTIO area -- (NitrOS-9 Level 2 and above) * MonType: RMB 1 Monitor type (0=CMP,1=RGB,2=MONO) MouseInf: RMB 2 Mouse resolution/Mouse port; was 1, major error RG. KeyRptS: RMB 1 Key repeat start constant KeyRptD: RMB 1 Key repeat delay constant ENDC endsect * Feature1 byte definitions CRCOn: EQU %00000001 CRC checking on CRCOff: EQU %00000000 CRC checking off Proc6809: EQU %00000000 6809 procesor Proc6309: EQU %00000010 6309 procesor PAG ************************** * Module Field Definitions * * ID Field - First two bytes of a NitrOS-9 module * M$ID1: EQU $87 Module ID code byte one M$ID2: EQU $CD Module ID code byte two M$ID12: EQU M$ID1*256+M$ID2 * * Module Type/Language Field Masks * TypeMask: EQU %11110000 Type Field LangMask: EQU %00001111 Language Field * * Module Type Values * Devic: EQU $F0 Device Descriptor Module Drivr: EQU $E0 Physical Device Driver FlMgr: EQU $D0 File Manager Systm: EQU $C0 System Module ShellSub: EQU $50 Shell+ shell sub module Data: EQU $40 Data Module Multi: EQU $30 Multi-Module Sbrtn: EQU $20 Subroutine Module Prgrm: EQU $10 Program Module * * Module Language Values * Objct: EQU 1 6809 Object Code Module ICode: EQU 2 Basic09 I-code PCode: EQU 3 Pascal P-code CCode: EQU 4 C I-code CblCode: EQU 5 Cobol I-code FrtnCode: EQU 6 Fortran I-code Obj6309: EQU 7 6309 object code * * Module Attributes / Revision byte * * Field Masks * AttrMask: EQU %11110000 Attributes Field RevsMask: EQU %00001111 Revision Level Field * * Attribute Flags * ReEnt: EQU %10000000 Re-Entrant Module ModProt: EQU %01000000 Gimix Module protect bit (0=protected, 1=write enable) ModNat: EQU %00100000 6309 native mode attribute ******************** * Device Type Values * * These values define various classes of devices, which are * managed by a file manager module. The Device Type is embedded * in a device's device descriptor. * DT.SCF: EQU 0 Sequential Character File Manager DT.RBF: EQU 1 Random Block File Manager DT.Pipe: EQU 2 Pipe File Manager DT.SBF: EQU 3 Sequential Block File Manager DT.NFM: EQU 4 Network File Manager DT.CDFM: EQU 5 CD-ROM File Manager ********************* * CRC Result Constant * CRCCon1: EQU $80 CRCCon23: EQU $0FE3 TTL Process Information PAG ******************************** * Process Descriptor Definitions * IFEQ Level-1 * Level 1 process descriptor defs DefIOSiz: EQU 12 NumPaths: EQU 16 Number of Local Paths csect P$ID: RMB 1 Process ID P$PID: RMB 1 Parent's ID P$SID: RMB 1 Sibling's ID P$CID: RMB 1 Child's ID P$SP: RMB 2 Stack ptr P$CHAP: RMB 1 process chapter number P$ADDR: RMB 1 user address beginning page number P$PagCnt: RMB 1 Memory Page Count P$User: RMB 2 User Index $09 P$Prior: RMB 1 Priority $0B P$Age: RMB 1 Age $0C P$State$0D P$Queue: RMB 2 Queue Link (Process ptr) $0E P$IOQP: RMB 1 Previous I/O Queue Link (Process ID) $10 P$IOQN: RMB 1 Next I/O Queue Link (Process ID) P$PModul: RMB 2 Primary Module P$SWI: RMB 2 SWI Entry Point P$SWI2: RMB 2 SWI2 Entry Point P$SWI3: RMB 2 SWI3 Entry Point $18 P$DIO: RMB DefIOSiz default I/O ptrs $1A P$PATH: RMB NumPaths I/O path table $26 P$Signal: RMB 1 Signal Code $36 P$SigVec: RMB 2 Signal Intercept Vector P$SigDat: RMB 2 Signal Intercept Data Address P$NIO: RMB 4 additional dio pointers for net RMB $40-* unused P$Size: EQU * Size of Process Descriptor endsect * * Process State Flags * SysState: EQU %10000000 TimSleep: EQU %01000000 TimOut: EQU %00100000 ImgChg: EQU %00010000 Condem: EQU %00000010 Dead: EQU %00000001 ELSE * Level 2 process descriptor defs DefIOSiz: EQU 16 Default I/O Data Length NefIOSiz: EQU 12 On-Net Default I/O Data Length NumPaths: EQU 16 Number of Local Paths csect P$ID: RMB 1 Process ID P$PID: RMB 1 Parent's ID P$SID: RMB 1 Sibling's ID P$CID: RMB 1 Child's ID P$SP: RMB 2 Stack ptr P$Task: RMB 1 Task Number P$PagCnt: RMB 1 Memory Page Count P$User: RMB 2 User Index P$Prior: RMB 1 Priority P$Age: RMB 1 Age P$State: RMB 1 Status P$Queue: RMB 2 Queue Link (Process ptr) P$IOQP: RMB 1 Previous I/O Queue Link (Process ID) P$IOQN: RMB 1 Next I/O Queue Link (Process ID) P$PModul: RMB 2 Primary Module P$SWI: RMB 2 SWI Entry Point P$SWI2: RMB 2 SWI2 Entry Point P$SWI3: RMB 2 SWI3 Entry Point P$Signal: RMB 1 Signal Code P$SigVec: RMB 2 Signal Intercept Vector P$SigDat: RMB 2 Signal Intercept Data Address P$DeadLk: RMB 1 Dominant proc ID if I/O locked RMB $20-* unused P$DIO: RMB DefIOSiz Default I/O ptrs P$Path: RMB NumPaths I/O Path Table P$DATImg: RMB 64 DAT Image P$Links: RMB 32 Block Link counts P$NIO: RMB 6*2 additional DIO ptrs for net, compatible with 68k P$SelP: RMB 1 Selected Path for COCO Windows (Default 0) P$UTicks: RMB 4 proc User Tick counter (L2V3) P$STicks: RMB 4 proc System Tick counter (L2V3) P$FCalls: RMB 4 proc F$ call counter (L2V3) P$ICalls: RMB 4 proc I$ call counter (L2V3) P$DatBeg: RMB 3 proc Date of creation (Y/M/D) (L2V3) P$TimBeg: RMB 3 proc Time of creation (H/M/S) (L2V3) P$Alarm: RMB 6 RMB $200-* Local stack P$Stack: EQU * Top of Stack P$Size: EQU * Size of Process Descriptor endsect * * Process State Flags * SysState: EQU %10000000 TimSleep: EQU %01000000 TimOut: EQU %00100000 ImgChg: EQU %00010000 Suspend: EQU %00001000 Condem: EQU %00000010 Dead: EQU %00000001 ENDC TTL NitrOS-9 I/O Symbolic Definitions PAG ************************* * Path Descriptor Offsets * csect PD.PD: RMB 1 Path Number PD.MOD: RMB 1 Mode (Read/Write/Update) PD.CNT: RMB 1 Number of Open Images PD.DEV: RMB 2 Device Table Entry Address PD.CPR: RMB 1 Current Process PD.RGS: RMB 2 Caller's Register Stack PD.BUF: RMB 2 Buffer Address PD.FST: RMB 32-* File Manager's Storage PD.OPT: EQU * PD GetSts(0) Options PD.DTP: RMB 1 Device Type RMB 64-* Path options PDSIZE: EQU * endsect * * Pathlist Special Symbols * PDELIM: EQU '/ Pathlist Name Separator PDIR: EQU '. Directory PENTIR: EQU '@ Entire Device PAG **************************** * File Manager Entry Offsets * csect FMCREA: RMB 3 Create (Open New) File FMOPEN: RMB 3 Open File FMMDIR: RMB 3 Make Directory FMCDIR: RMB 3 Change Directory FMDLET: RMB 3 Delete File FMSEEK: RMB 3 Position File FMREAD: RMB 3 Read from File FMWRIT: RMB 3 Write to File FMRDLN: RMB 3 ReadLn FMWRLN: RMB 3 WritLn FMGSTA: RMB 3 Get File Status FMSSTA: RMB 3 Set File Status FMCLOS: RMB 3 Close File endsect ***************************** * Device Driver Entry Offsets * csect D$INIT: RMB 3 Device Initialization D$READ: RMB 3 Read from Device D$WRIT: RMB 3 Write to Device D$GSTA: RMB 3 Get Device Status D$PSTA: RMB 3 Put Device Status D$TERM: RMB 3 Device Termination endsect ********************* * Device Table Format * csect V$DRIV: RMB 2 Device Driver module V$STAT: RMB 2 Device Driver Static storage V$DESC: RMB 2 Device Descriptor module V$FMGR: RMB 2 File Manager module V$USRS: RMB 1 use count IFGT Level-1 V$DRIVEX: RMB 2 Device Driver execution address V$FMGREX: RMB 2 File Manager execution address ENDC DEVSIZ: EQU * endsect ******************************* * Device Static Storage Offsets * csect V.PAGE: RMB 1 Port Extended Address V.PORT: RMB 2 Device 'Base' Port Address V.LPRC: RMB 1 Last Active Process ID V.BUSY: RMB 1 Active Process ID (0=UnBusy) V.WAKE: RMB 1 Active PD if Driver MUST Wake-up V.USER EQU * Driver Allocation Origin endsect ******************************** * Interrupt Polling Table Format * csect Q$POLL: RMB 2 Absolute Polling Address Q$FLIP: RMB 1 Flip (EOR) Byte ..normally Zero Q$MASK: RMB 1 Polling Mask (after Flip) Q$SERV: RMB 2 Absolute Service routine Address Q$STAT: RMB 2 Static Storage Address Q$PRTY: RMB 1 Priority (Low Numbers=Top Priority) IFGT Level-1 Q$MAP: RMB 2 NitrOS-9 Level 2 and above ENDC POLSIZ: EQU * endsect ******************** * VIRQ packet format * csect Vi.Cnt: RMB 2 count down counter Vi.Rst: RMB 2 reset value for counter Vi.Stat: RMB 1 status byte endsect Vi.IFlag: EQU %00000001 status byte virq flag PAG ************************************* * Machine Characteristics Definitions * R$CC: EQU 0 Condition Codes register R$A: EQU 1 A Accumulator R$B: EQU 2 B Accumulator R$D: EQU R$A Combined A:B Accumulator IFNE H6309 R$E: EQU 3 E Accumulator R$F: EQU 4 F Accumulator R$W: EQU R$E Combined E:F Accumulator R$Q: EQU R$A Combined A:B:E:F Accumulator R$DP: EQU 5 Direct Page register R$X: EQU 6 X Index register R$Y: EQU 8 Y Index register R$U: EQU 10 User Stack register R$PC: EQU 12 Program Counter register R$Size: EQU 14 Total register package size ELSE R$DP: EQU 3 Direct Page register R$X: EQU 4 X Index register R$Y: EQU 6 Y Index register R$U: EQU 8 User Stack register R$PC: EQU 10 Program Counter register R$Size: EQU 12 Total register package size ENDC * MD register masks * 6309 definitions DIV0: EQU %10000000 division by 0 trap flag : 1 = trap occured badinstr: EQU %01000000 illegal instruction trap flag : 1 = trap occured Entire: EQU %10000000 Full Register Stack flag FIRQMask: EQU %01000000 Fast-Interrupt Mask bit HalfCrry: EQU %00100000 Half Carry flag IRQMask: EQU %00010000 Interrupt Mask bit Negative: EQU %00001000 Negative flag Zero: EQU %00000100 Zero flag TwosOvfl: EQU %00000010 Two's Comp Overflow flag Carry: EQU %00000001 Carry bit IntMasks: EQU IRQMask+FIRQMask Sign: EQU %10000000 sign bit TTL Error Code Definitions PAG ************************ * Error Code Definitions * * Basic09 Error Codes * csect E$UnkSym: RMB 1 Unknown symbol E$ExcVrb: RMB 1 Excessive verbage E$IllStC: RMB 1 Illegal statement construction E$ICOvf: RMB 1 I-code overflow E$IChRef: RMB 1 Illegal channel reference E$IllMod: RMB 1 Illegal mode E$IllNum: RMB 1 Illegal number E$IllPrf: RMB 1 Illegal prefix E$IllOpd: RMB 1 Illegal operand E$IllOpr: RMB 1 Illegal operator E$IllRFN: RMB 1 Illegal record field name E$IllDim: RMB 1 Illegal dimension E$IllLit: RMB 1 Illegal literal E$IllRet: RMB 1 Illegal relational E$IllSfx: RMB 1 Illegal type suffix E$DimLrg: RMB 1 Dimension too large E$LinLrg: RMB 1 Line number too large E$NoAssg: RMB 1 Missing assignment statement E$NoPath: RMB 1 Missing path number E$NoComa: RMB 1 Missing coma E$NoDim: RMB 1 Missing dimension E$NoDO: RMB 1 Missing DO statement E$MFull: RMB 1 Memory full E$NoGoto: RMB 1 Missing GOTO E$NoLPar: RMB 1 Missing left parenthesis E$NoLRef: RMB 1 Missing line reference E$NoOprd: RMB 1 Missing operand E$NoRPar: RMB 1 Missing right parenthesis E$NoTHEN: RMB 1 Missing THEN statement E$NoTO: RMB 1 Missing TO statement E$NoVRef: RMB 1 Missing variable reference E$EndQou: RMB 1 Missing end quote E$SubLrg: RMB 1 Too many subscripts E$UnkPrc: RMB 1 Unknown procedure E$MulPrc: RMB 1 Multiply defined procedure E$DivZer: RMB 1 Divice by zero E$TypMis: RMB 1 Operand type mismatch E$StrOvf: RMB 1 String stack overflow E$NoRout: RMB 1 Unimplemented routine E$UndVar: RMB 1 Undefined variable E$FltOvf: RMB 1 Floating Overflow E$LnComp: RMB 1 Line with compiler error E$ValRng: RMB 1 Value out of range for destination E$SubOvf: RMB 1 Subroutine stack overflow E$SubUnd: RMB 1 Subroutine stack underflow E$SubRng: RMB 1 Subscript out of range E$ParmEr: RMB 1 Paraemter error E$SysOvf: RMB 1 System stack overflow E$IOMism: RMB 1 I/O type mismatch E$IONum: RMB 1 I/O numeric input format bad E$IOConv: RMB 1 I/O conversion: number out of range E$IllInp: RMB 1 Illegal input format E$IOFRpt: RMB 1 I/O format repeat error E$IOFSyn: RMB 1 I/O format syntax error E$IllPNm: RMB 1 Illegal path number E$WrSub: RMB 1 Wrong number of subscripts E$NonRcO: RMB 1 Non-record type operand E$IllA: RMB 1 Illegal argument E$IllCnt: RMB 1 Illegal control structure E$UnmCnt: RMB 1 Unmatched control structure E$IllFOR: RMB 1 Illegal FOR variable E$IllExp: RMB 1 Illegal expression type E$IllDec: RMB 1 Illegal declarative statement E$ArrOvf: RMB 1 Array size overflow E$UndLin: RMB 1 Undefined line number E$MltLin: RMB 1 Multiply defined line number E$MltVar: RMB 1 Multiply defined variable E$IllIVr: RMB 1 Illegal input variable E$SeekRg: RMB 1 Seek out of range E$NoData: RMB 1 Missing data statement * * System Dependent Error Codes * * Level 2 windowing error codes RMB 183-* E$IWTyp: RMB 1 Illegal window type E$WADef: RMB 1 Window already defined E$NFont: RMB 1 Font not found E$StkOvf: RMB 1 Stack overflow E$IllArg: RMB 1 Illegal argument RMB 1 reserved E$ICoord: RMB 1 Illegal coordinates E$Bug: RMB 1 Bug (should never be returned) E$BufSiz: RMB 1 Buffer size is too small E$IllCmd: RMB 1 Illegal command E$TblFul: RMB 1 Screen or window table is full E$BadBuf: RMB 1 Bad/Undefined buffer number E$IWDef: RMB 1 Illegal window definition E$WUndef: RMB 1 Window undefined E$Up: RMB 1 Up arrow pressed on SCF I$ReadLn with PD.UP enabled E$Dn: RMB 1 Down arrow pressed on SCF I$ReadLn with PD.DOWN enabled E$Alias: RMB 1 * * Standard NitrOS-9 Error Codes * RMB 200-* E$PthFul: RMB 1 Path Table full E$BPNum: RMB 1 Bad Path Number E$Poll: RMB 1 Polling Table Full E$BMode: RMB 1 Bad Mode E$DevOvf: RMB 1 Device Table Overflow E$BMID: RMB 1 Bad Module ID E$DirFul: RMB 1 Module Directory Full E$MemFul: RMB 1 Process Memory Full E$UnkSvc: RMB 1 Unknown Service Code E$ModBsy: RMB 1 Module Busy E$BPAddr: RMB 1 Bad Page Address E$EOF: RMB 1 End of File RMB 1 E$NES: RMB 1 Non-Existing Segment E$FNA: RMB 1 File Not Accesible E$BPNam: RMB 1 Bad Path Name E$PNNF: RMB 1 Path Name Not Found E$SLF: RMB 1 Segment List Full E$CEF: RMB 1 Creating Existing File E$IBA: RMB 1 Illegal Block Address E$HangUp: RMB 1 Carrier Detect Lost E$MNF: RMB 1 Module Not Found RMB 1 E$DelSP: RMB 1 Deleting Stack Pointer memory E$IPrcID: RMB 1 Illegal Process ID E$BPrcID: EQU E$IPrcID Bad Process ID (formerly #238) RMB 1 E$NoChld: RMB 1 No Children E$ISWI: RMB 1 Illegal SWI code E$PrcAbt: RMB 1 Process Aborted E$PrcFul: RMB 1 Process Table Full E$IForkP: RMB 1 Illegal Fork Parameter E$KwnMod: RMB 1 Known Module E$BMCRC: RMB 1 Bad Module CRC E$USigP: RMB 1 Unprocessed Signal Pending E$NEMod: RMB 1 Non Existing Module E$BNam: RMB 1 Bad Name E$BMHP: RMB 1 (bad module header parity) E$NoRAM: RMB 1 No (System) RAM Available E$DNE: RMB 1 Directory not empty E$NoTask: RMB 1 No available Task number RMB $F0-* reserved E$Unit: RMB 1 Illegal Unit (drive) E$Sect: RMB 1 Bad Sector number E$WP: RMB 1 Write Protect E$CRC: RMB 1 Bad Check Sum E$Read: RMB 1 Read Error E$Write: RMB 1 Write Error E$NotRd: RMB 1 Device Not Ready E$Seek: RMB 1 Seek Error E$Full: RMB 1 Media Full E$BTyp: RMB 1 Bad Type (incompatable) media E$DevBsy: RMB 1 Device Busy E$DIDC: RMB 1 Disk ID Change E$Lock: RMB 1 Record is busy (locked out) E$Share: RMB 1 Non-sharable file busy E$DeadLk: RMB 1 I/O Deadlock error endsect IFEQ Level-1 ******************************** * Boot defs for NitrOS-9 Level 1 * * These defs are not strictly for 'Boot', but are for booting the * system. * Bt.Start: EQU $EE00 Start address of the boot track in memory * Boot area size on Dragon is only 16 sectors=4K IFNE DRAGON Bt.Size: EQU $1000 Max size of boot file ELSE Bt.Size: EQU $1080 Maximum size of bootfile ENDC ELSE ****************************************** * Boot defs for NitrOS-9 Level 2 and above * * These defs are not strictly for 'Boot', but are for booting the * system. * Bt.Block: EQU $3B Block to map in for the 'OS9BOOT' screen Bt.Flag: EQU $8A34 Flag in Bt.Block to verify that it's unchanged Bt.Offst: EQU 2 Offset into the screen where the current ptr is Bt.Start: EQU $ED00 Start address of the boot track in memory ENDC * Boot area on the Dragon starts on track 0 sector 2, imediatly * after the blockmap. * On the CoCo, the boot track is all of track 34 IFNE DRAGON Bt.Track: EQU 0 Boot track Bt.Sec: EQU 2 Start LSN of boot area on boot track ELSE Bt.Track: EQU 34 Boot track Bt.Sec: EQU 0 Start LSN of boot area on boot track ENDC IFGT Level-2 *************************** * Level 3 Defs * * These definitions apply to NitrOS-9 Level 3 * L3.Start: EQU $2000 Start off at slot 1 L3.Size: EQU $40 Go for 64 pages: 2 slots total L3.Blks: EQU L3.Size/$20 Number of slots L3.End: EQU L3.Start+L3.Size*$0100 end of L3 memory L3.SCF: EQU $0660 SCF block ptr L3.RBF: EQU L3.SCF+1 RBF block ptr ENDC ENDC