Mercurial > hg > Members > kono > nitros9-code
changeset 2327:035528ccce9e
moved to ../lib
author | boisy |
---|---|
date | Wed, 13 Jan 2010 04:44:01 +0000 |
parents | 932ba568362f |
children | cfb7dcf4322c |
files | defs/makefile defs/os9defs.a |
diffstat | 2 files changed, 0 insertions(+), 1590 deletions(-) [+] |
line wrap: on
line diff
--- a/defs/makefile Wed Jan 13 04:38:41 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -include $(NITROS9DIR)/rules.mak - -all: sys6809l1.l sys6809l2.l sys6309l2.l - -sys6809l1.l: sys6809l1.a - -sys6809l2.l: sys6809l2.a - -sys6309l2.l: sys6309l2.a - -sys6809l1.a: - echo "DRAGON equ 0" > dragon - echo "Level equ 1" > level - echo "H6309 equ 0" > h6309 - $(MERGE) dragon level h6309 os9defs.a > $@ - -sys6809l2.a: - echo "DRAGON equ 0" > dragon - echo "Level equ 2" > level - echo "H6309 equ 0" > h6309 - $(MERGE) dragon level h6309 os9defs.a > $@ - -sys6309l2.a: - echo "DRAGON equ 0" > dragon - echo "Level equ 2" > level - echo "H6309 equ 1" > h6309 - $(MERGE) dragon level h6309 os9defs.a > $@ - -clean: - $(RM) *.l *.r sys6809l1.a sys6809l2.a sys6309l2.a
--- a/defs/os9defs.a Wed Jan 13 04:38:41 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1560 +0,0 @@ -******************************************************************** -* 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 - - psect OS9Defs_a,0,0,0,0,0 - -* 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 - - - - - -******************************************************************** -* SCFDefs - Sequential Character File Manager Definitions -* -* $Id$ -* -* SCF stands for 'Sequential Character Filemanager' and is a package of subroutines -* that define the logical structure of a serial device. -* -* The data structures in this file give SCF its 'personality' and are used -* by SCF itself, as well as applications that will require disk I/O. -* -* Edt/Rev YYYY/MM/DD Modified by -* Comment -* ------------------------------------------------------------------ -* 1984/01/11 YO -* Added V.KANJI, V.KBUF, V.MODADR for new kanji input process. -* -* 1985/04/20 Mark G. Hawkins -* Added V.PDLHd Path Descriptor List Head. -* -* 1985/04/21 Mark G. Hawkins -* Added PD.PLP and PD.PST for modem handling. -* -* 1987/06/23 Kevin K. Darling -* Updated with Dev Desc info. -* -* 1998/10/03 Boisy G. Pitre -* Consolidated L1/L2 scfdefs. -* -* 2003/01/21 Boisy G. Pitre -* Added symbolics for enhanced SCF line editing. -* -* 2003/06/02 Boisy G. Pitre -* Updated comments for clarity. -* -* 2004/05/17 Boisy G. Pitre -* Added higher baud rates. - - NAM SCFDefs - TTL Sequential File Manager Definitions - - PAG -******************************* -* SCF Device Descriptor Offsets -* -* These definitions are for SCF device descriptors. - - csect - RMB M$DTyp -IT.DVC: RMB 1 Device type (DT.SCF) -IT.UPC: RMB 1 Uppercase flag -IT.BSO: RMB 1 Backspace behavior -IT.DLO: RMB 1 Delete behavior -IT.EKO: RMB 1 Echo flag -IT.ALF: RMB 1 Auto linefeed flag -IT.NUL: RMB 1 End-of-line null count -IT.PAU: RMB 1 Page pause flag -IT.PAG: RMB 1 Number of lines per page -IT.BSP: RMB 1 Backspace character -IT.DEL: RMB 1 Delete-line character -IT.EOR: RMB 1 End-of-record character -IT.EOF: RMB 1 End-of-file character -IT.RPR: RMB 1 Reprint-line character -IT.DUP: RMB 1 Duplicate-last-line character -IT.PSC: RMB 1 Pause character -IT.INT: RMB 1 Interrupt character -IT.QUT: RMB 1 Quit character -IT.BSE: RMB 1 Backspace echo character -IT.OVF: RMB 1 Bell character -IT.PAR: RMB 1 Parity -IT.BAU: RMB 1 Baud rate -IT.D2P: RMB 2 Attached device name string offset -IT.XON: RMB 1 X-ON character -IT.XOF: RMB 1 X-OFF character -IT.COL: RMB 1 Number of columns for display -IT.ROW: RMB 1 Number of rows for display -IT.XTYP: RMB 1 Extended type (added by BRI) - -* IFGT Level-1 -* Window Descriptor Additions -* For CoCo window, where IT.PAR = $80 - RMB IT.ROW+1 -IT.WND: RMB 1 Window number (matches device name) ($2E) -IT.VAL: RMB 1 Use defaults on Init (0=no, 1=yes) -IT.STY: RMB 1 Screen type default -IT.CPX: RMB 1 Column start default -IT.CPY: RMB 1 Row start default -IT.FGC: RMB 1 Foreground color default -IT.BGC: RMB 1 Background color default -IT.BDC: RMB 1 Border color default -* ENDC - endsect - - PAG -******************** -* SCF Static Storage -* -* SCF devices must reserve this space for SCF -* - csect - RMB V.USER -V.TYPE: RMB 1 Device type or parity -V.LINE: RMB 1 Lines left until end of page -V.PAUS: RMB 1 Immediate Pause request -V.DEV2: RMB 2 Attached device's static -V.INTR: RMB 1 Interrupt char -V.QUIT: RMB 1 Quit char -V.PCHR: RMB 1 Pause char -V.ERR: RMB 1 Accumulated errors -V.XON: RMB 1 X-On char -V.XOFF: RMB 1 X-Off char -V.KANJI: RMB 1 Kanji mode flag -V.KBUF: RMB 2 Kana - Kanji convert routine work address -V.MODADR: RMB 2 Kana - Kanji convert module address -V.PDLHd: RMB 2 Open path descriptor list head pointer -V.RSV: RMB 5 Reserve bytes for future expansion -V.SCF: EQU * Total SCF manager static overhead - endsect - - PAG -*********************** -* Character Definitions -* -C$NULL: SET 0 Null char -C$RPET: SET $01 (CTRL-A - SOH) Repeat last input line -C$INTR: SET $03 (CTRL-C - ETX) Keyboard interrupt -C$RPRT: SET $04 (CTRL-D - EOT) Reprint current input line -C$QUIT: SET $05 (CTRL-E - ENQ) Keyboard Abort -C$BELL: SET $07 (CTRL-G - BEL) Line overflow warning -C$BSP: SET $08 (CTRL-H - BS ) Back space -C$RARR: SET $09 Right Arrow -C$EL: SET $05 Erase Line -C$LF: SET $0A Line feed -C$HOME: SET $0B Home position Code -C$Clsgr: SET $15 Graphic screen clear (use FM-11) -C$Clsall: SET $16 Graphic & character clear (use FM-11) -C$CR: SET $0D Carriage return -C$FORM: SET $0C (CTRL-L - FF ) Form Feed ... screen clear -C$SI: SET $0F Shift IN Code -C$SO: SET $0E Shift OUT Code -C$DELETE: SET $10 Delete char (for SCF enhanced line editing) -C$XON: SET $11 (CTRL-Q - DC1) Transmit Enable -C$INSERT: SET C$XON Insert char (for SCF enhanced line editing) -C$XOFF: SET $13 (CTRL-S - DC3) Transmit Disable -C$PLINE: SET C$XOFF Print remaining line (for SCF enhanced line editing) -C$PAUS: SET $17 (CTRL-W - ETB) Pause character -C$DEL: SET $18 (CTRL-X - CAN) Delete line -C$SHRARR: SET $19 Shift Right-Arrow -C$EOF: SET $1B (CTRL-[ - ESC) END of file -C$RGT: SET $1C Cursor right -C$LFT: SET $1D Cursor left -C$UP: SET $1E Cursor up -C$DWN: SET $1F Cursor down -C$SPAC: SET $20 Space -C$PERD: SET '. -C$COMA: SET ', - - - PAG -********************************************* -* Sequential Character Path Descriptor Format -* -* A path descriptor is created for every new path that is open -* via the I$Open system call (processed by IOMan). Process -* descriptors track state information of a path. -* - csect - RMB PD.FST -PD.DV2: RMB 2 Output device table pointer -PD.RAW: RMB 1 Read/Write or ReadLn/WritLn mode -PD.MAX: RMB 2 ReadLn high byte count -PD.MIN: RMB 1 Devices are "mine" if clear -PD.STS: RMB 2 Status routine module addr -PD.STM: RMB 2 Reserved for status routine - endsect - - csect - RMB PD.OPT - RMB 1 Device type -PD.UPC: RMB 1 Case (0=both, 1=upper only) -PD.BSO: RMB 1 Backspace (0=BSE, 1=BSE,SP,BSE) -PD.DLO: RMB 1 Delete (0=BSE over line, 1=CRLF) -PD.EKO: RMB 1 Echo (0=No Echo) -PD.ALF: RMB 1 Auto linefeed (0=No auto LF) -PD.NUL: RMB 1 End of Line null count -PD.PAU: RMB 1 Page pause (0=No end of page pause) -PD.PAG: RMB 1 Lines per page -PD.BSP: RMB 1 Backspace character -PD.DEL: RMB 1 Delete Line character -PD.EOR: RMB 1 End of Record character (read only) -PD.EOF: RMB 1 End of File character -PD.RPR: RMB 1 Repront Line character -PD.DUP: RMB 1 Dup Last Line character -PD.PSC: RMB 1 Pause character -PD.INT: RMB 1 Keyboard interrupt character (CTRL-C) -PD.QUT: RMB 1 Keyboard quit character (CTRL-E) -PD.BSE: RMB 1 Backspace echo character -PD.OVF: RMB 1 Line overflow character (BELL) -PD.PAR: RMB 1 Parity code -PD.BAU: RMB 1 ACIA baud rate (Color Computer) -PD.D2P: RMB 2 Offset of DEV2 name -PD.XON: RMB 1 ACIA X-ON character -PD.XOFF: RMB 1 ACIA X-OFF character -OPTCNT EQU *-PD.OPT Total user settable options -PD.ERR: RMB 1 Most recent I/O error status -PD.TBL: RMB 2 Device table addr (copy) -PD.PLP: RMB 2 Path Descriptor List Pointer -PD.PST: RMB 1 Current path status - endsect - -* PD.PST values Path Descriptor Status byte -* -PST.DCD: EQU %00000001 Set if DCD is lost on Serial port - - -* PD.PAR definitions -* -* Parity -PARNONE: EQU %00000000 -PARODD: EQU %00100000 -PAREVEN: EQU %01100000 -PARMARK: EQU %10100000 -PARSPACE: EQU %11100000 - -* PD.BAU definitions -* -* Baud rate -B110: EQU %00000000 -B300: EQU %00000001 -B600: EQU %00000010 -B1200: EQU %00000011 -B2400: EQU %00000100 -B4800: EQU %00000101 -B9600: EQU %00000110 -B19200: EQU %00000111 -B38400: EQU %00001000 -B57600: EQU %00001001 -B115200: EQU %00001010 -* Word size -WORD8: EQU %00000000 -WORD7: EQU %00100000 -* Stop bits -STOP1: EQU %00000000 -STOP2: EQU %00010000 - - endsect