Mercurial > hg > Members > kono > nitros9-code
view lib/os9defs.a @ 2772:0a3f4d8ea6d5
Found ENDC in wrong location in dwread.asm and dwwrite.asm. Corrected.
Moved the native 6309 code in dwread.asm and dwwrite.asm into the H6309 labeled area and changed IFEQ H6309 to IFNE H6309. Also moved the 57600bps 6809 code to the default location. This change had been done in the old dwread.asm and dwwrite.asm files to make it easier to follow. Though these two files were overwritten from the HDBDOS project dwread.asm and dwwrite.asm files. So this conversion needed to be done again so it made the source easier to follow.
author | drencor-xeen |
---|---|
date | Wed, 23 Jan 2013 12:36:55 -0600 |
parents | 11056072a809 |
children |
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$HUP: EQU S$Window Hang up 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: RMB 1 Status 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 Vi.PkSz: EQU * 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$NotRdy: 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