Mercurial > hg > Members > kono > nitros9-code
diff defs/os9defs @ 2024:e396d4f24b27
Ran each file through pretty print
author | boisy |
---|---|
date | Tue, 14 Mar 2006 12:20:57 +0000 |
parents | 484c5493599a |
children | 46aa4db8204e |
line wrap: on
line diff
--- a/defs/os9defs Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/os9defs Tue Mar 14 12:20:57 2006 +0000 @@ -1,6 +1,6 @@ - IFNE OS9DEFS-1 + IFNE OS9DEFS-1 -OS9DEFS set 1 +OS9DEFS SET 1 ******************************************************************** * OS9Defs - NitrOS-9 System Definitions @@ -59,720 +59,720 @@ * 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 +* 2005/11/02 P.Harvey-Smith * Added definitions for boot areas on Dragon computers. * -* 2006/03/03 Boisy G. Pitre +* 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 + 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 +true EQU 1 useful name +false EQU 0 useful name - pag + PAG ***************************************** * System Service Request Code Definitions * - org 0 -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) + ORG 0 +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 + 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) +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 + ELSE * NitrOS-9 Level 1 system call padding - rmb 11 - - ENDC - -F$Debug rmb 1 Drop the system into the debugger ($23) + RMB 11 + + ENDC + +F$Debug RMB 1 Drop the system into the debugger ($23) + + IFGT Level-1 - IFGT Level-1 - - org $25 -F$TPS rmb 1 Return System's Ticks Per Second -F$TimAlm rmb 1 CoCo individual process alarm call + ORG $25 +F$TPS RMB 1 Return System's Ticks Per Second +F$TimAlm RMB 1 CoCo individual process alarm call - ENDC + ENDC - org $27 Beginning of System Reserved Calls + ORG $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 +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 + 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 +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 +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 + ENDC * * Numbers $70 through $7F are reserved for user definitions * - org $70 + ORG $70 - IFEQ Level-1 + IFEQ Level-1 - rmb 16 Reserved for user definition + RMB 16 Reserved for user definition - ELSE + ELSE -F$RegDmp rmb 1 Ron Lammardo's debugging register dump -F$NVRAM rmb 1 Non Volatile RAM (RTC battery backed static) read/write +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 + RMB $80-. Reserved for user definitions + ENDC - pag + PAG ************************************** * I/O Service Request Code Definitions * - org $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 + ORG $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 ******************* * 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 +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 * - org 0 -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$Alarm rmb 1 CoCo individual process' alarm signal + ORG 0 +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$Alarm RMB 1 CoCo individual process' alarm signal - pag + PAG ********************************** * Status Codes for GetStat/GetStat * - org 0 -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) + ORG 0 +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 - org $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 + ORG $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 + 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) +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 +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 + RMB 19 * sc6551 defined -SS.CDSta rmb 1 -SS.CDSig rmb 1 -SS.CDRel rmb 1 - ENDC +SS.CDSta RMB 1 +SS.CDSig RMB 1 +SS.CDRel RMB 1 + ENDC - org $A0 + ORG $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 +SS.Fill RMB 1 Pre-load SCF device input buffer +SS.Hist RMB 1 Enable command-line history easily - org $B0 + ORG $B0 * * New WDDisk get/set status calls -SS.ECC rmb 1 ECC corrected data error enable/disable (GetStat/SetStat) +SS.ECC RMB 1 ECC corrected data error enable/disable (GetStat/SetStat) * - IFGT Level-1 + 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.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 +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) +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 + ENDC - ttl Direct Page Definitions - pag + TTL Direct Page Definitions + PAG ********************************** * Direct Page Variable Definitions * - org $00 -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 + ORG $00 +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 - org $20 + ORG $20 - IFEQ Level-1 - + 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 +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 - org $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 + ORG $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 +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 - + 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 +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 + 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.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 +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 - org $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 + ORG $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 - org $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 + ORG $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 - org $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 + ORG $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 * - org $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 - org $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 - org $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 + ORG $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 + ORG $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 + ORG $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 +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 +IOEntry EQU 254 - ENDC + ENDC - ttl Structure Formats - pag + TTL Structure Formats + PAG ************************************ * Module Directory Entry Definitions * - org 0 - 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 + ORG 0 + 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 ************************************ * Module Definitions * * Universal Module Offsets * - org 0 -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 + ORG 0 +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 +M$Exec RMB 2 Execution Entry Offset * * Device Driver, Program Module * -M$Mem rmb 2 Stack Requirement +M$Mem RMB 2 Stack Requirement * * Device Driver, Device Descriptor Module * -M$Mode rmb 1 Device Driver Mode Capabilities +M$Mode RMB 1 Device Driver Mode Capabilities * * Device Descriptor Module * - org 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 + ORG 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 * - org 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 + ORG 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 - rmb 8 reserved for future use +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 + RMB 8 reserved for future use - IFGT Level-1 + 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 +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 * Feature1 byte definitions -CRCOn equ %00000001 CRC checking on -CRCOff equ %00000000 CRC checking off +CRCOn EQU %00000001 CRC checking on +CRCOff EQU %00000000 CRC checking off - pag + 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 +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 +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 +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 +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 +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 +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 @@ -781,451 +781,451 @@ * 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 +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 +CRCCon1 EQU $80 +CRCCon23 EQU $0FE3 - ttl Process Information - pag + TTL Process Information + PAG ******************************** * Process Descriptor Definitions * - IFEQ Level-1 + IFEQ Level-1 * Level 1 process descriptor defs -DefIOSiz equ 12 -NumPaths equ 16 Number of Local Paths +DefIOSiz EQU 12 +NumPaths EQU 16 Number of Local Paths - org 0 -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 $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 + ORG 0 +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 $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 * * Process State Flags * -SysState equ %10000000 -TimSleep equ %01000000 -TimOut equ %00100000 -ImgChg equ %00010000 -Condem equ %00000010 -Dead equ %00000001 +SysState EQU %10000000 +TimSleep EQU %01000000 +TimOut EQU %00100000 +ImgChg EQU %00010000 +Condem EQU %00000010 +Dead EQU %00000001 - ELSE + 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 +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 - org 0 -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 + ORG 0 +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 * * Process State Flags * -SysState equ %10000000 -TimSleep equ %01000000 -TimOut equ %00100000 -ImgChg equ %00010000 -Suspend equ %00001000 -Condem equ %00000010 -Dead equ %00000001 +SysState EQU %10000000 +TimSleep EQU %01000000 +TimOut EQU %00100000 +ImgChg EQU %00010000 +Suspend EQU %00001000 +Condem EQU %00000010 +Dead EQU %00000001 - ENDC + ENDC - ttl NitrOS-9 I/O Symbolic Definitions - pag + TTL NitrOS-9 I/O Symbolic Definitions + PAG ************************* * Path Descriptor Offsets * - org 0 -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 . + ORG 0 +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 . * * Pathlist Special Symbols * -PDELIM equ '/ Pathlist Name Separator -PDIR equ '. Directory -PENTIR equ '@ Entire Device +PDELIM EQU '/ Pathlist Name Separator +PDIR EQU '. Directory +PENTIR EQU '@ Entire Device - pag + PAG **************************** * File Manager Entry Offsets * - org 0 -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 + ORG 0 +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 ***************************** * Device Driver Entry Offsets * - org 0 -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 + ORG 0 +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 ********************* * Device Table Format * - org 0 -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 . + ORG 0 +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 . ******************************* * Device Static Storage Offsets * - org 0 -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 + ORG 0 +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 ******************************** * Interrupt Polling Table Format * - org 0 -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 . + ORG 0 +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 . ******************** * VIRQ packet format * - org 0 -Vi.Cnt rmb 2 count down counter -Vi.Rst rmb 2 reset value for counter -Vi.Stat rmb 1 status byte + ORG 0 +Vi.Cnt RMB 2 count down counter +Vi.Rst RMB 2 reset value for counter +Vi.Stat RMB 1 status byte -Vi.IFlag equ %00000001 status byte virq flag +Vi.IFlag EQU %00000001 status byte virq flag - pag + 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 +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 +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 +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 + TTL Error Code Definitions + PAG ************************ * Error Code Definitions * * Basic09 Error Codes * - org 10 -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 + ORG 10 +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 - org 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 + ORG 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 +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 * - org 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 + ORG 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 - IFEQ Level-1 + IFEQ Level-1 ******************************** * Boot defs for NitrOS-9 Level 1 @@ -1233,16 +1233,16 @@ * 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 +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 + IFNE DRAGON +Bt.Size EQU $1000 Max size of boot file + ELSE +Bt.Size EQU $1080 Maximum size of bootfile + ENDC - ELSE + ELSE ****************************************** * Boot defs for NitrOS-9 Level 2 and above @@ -1250,38 +1250,38 @@ * 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 +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 + 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 + 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 + 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 +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 + ENDC