Mercurial > hg > Members > kono > nitros9-code
changeset 2024:e396d4f24b27
Ran each file through pretty print
author | boisy |
---|---|
date | Tue, 14 Mar 2006 12:20:57 +0000 |
parents | dbaeafb56535 |
children | c03acf76ace5 |
files | defs/os9defs defs/pipedefs defs/rbfdefs defs/scfdefs defs/systype defs/vdgdefs defs/vtiodefs defs/vtiodefs_cc3 |
diffstat | 8 files changed, 2286 insertions(+), 2295 deletions(-) [+] |
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
--- a/defs/pipedefs Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/pipedefs Tue Mar 14 12:20:57 2006 +0000 @@ -1,6 +1,6 @@ - IFNE PIPEDEFS-1 + IFNE PIPEDEFS-1 -PIPEDEFS set 1 +PIPEDEFS SET 1 ******************************************************************** * PipeDefs - Pipe File Manager Definitions @@ -13,60 +13,58 @@ * 1988/12/03 Chris J. Burke * Coded from new PIPEMAN comments. - - nam PipeDefs - ttl Pipe File Manager Definitions - + NAM PipeDefs + TTL Pipe File Manager Definitions * * IOMan equates duplicated for PipeMan use * -NPATHS set 16 ;Maximum local paths per task -- must match IOMan -NameMax set 29 ;Maximum length of a file name +NPATHS SET 16 ;Maximum local paths per task -- must match IOMan +NameMax SET 29 ;Maximum length of a file name * * Device Driver Static Storage Layout * - org V.User -V.List rmb 2 ;Pointer to 1st pipe's pipe buffer -PManMem equ . ;Device driver memory (drive table equivalent) + ORG V.User +V.List RMB 2 ;Pointer to 1st pipe's pipe buffer +PManMem EQU . ;Device driver memory (drive table equivalent) * * Pipe Buffer Data Structure * - org 0 -PP.PD rmb 2 ;Pointer to shared path descriptor -PP.Next rmb 2 ;Pointer to next pipe buffer in system map -PP.Prev rmb 2 ;Pointer to previous pipe buffer in system map -PP.Rsrv rmb 2 ;Reserved -PP.Data equ . ;Data buffer begins at this offset + ORG 0 +PP.PD RMB 2 ;Pointer to shared path descriptor +PP.Next RMB 2 ;Pointer to next pipe buffer in system map +PP.Prev RMB 2 ;Pointer to previous pipe buffer in system map +PP.Rsrv RMB 2 ;Reserved +PP.Data EQU . ;Data buffer begins at this offset * * Unique Path Descriptor Variables * - org PD.FST + ORG PD.FST *** PP.Read must have bit 4 clear; PP.Writ must be PP.Read XOR 4 -PD.Read equ . -PD.RPID rmb 1 ;Process ID of reader waiting on signal -PD.RCT rmb 1 ;Number of blocked readers -PD.RSIG rmb 1 ;Signal to send reader -PD.REOR rmb 1 ;Read EOR character -PD.Writ equ . -PD.WPID rmb 1 ;Process ID of writer waiting on signal -PD.WCT rmb 1 ;Number of blocked writers -PD.WSIG rmb 1 ;Signal to send writer -PD.WEOR rmb 1 ;Write EOR character (dummy) +PD.Read EQU . +PD.RPID RMB 1 ;Process ID of reader waiting on signal +PD.RCT RMB 1 ;Number of blocked readers +PD.RSIG RMB 1 ;Signal to send reader +PD.REOR RMB 1 ;Read EOR character +PD.Writ EQU . +PD.WPID RMB 1 ;Process ID of writer waiting on signal +PD.WCT RMB 1 ;Number of blocked writers +PD.WSIG RMB 1 ;Signal to send writer +PD.WEOR RMB 1 ;Write EOR character (dummy) *** End of special section -PD.End rmb 2 ;Pointer to end of pipe buffer -PD.NxtI rmb 2 ;Next in pointer -PD.NxtO rmb 2 ;Next out pointer -PD.RFlg rmb 1 ;"Ready" flag -PD.Wrtn rmb 1 ;"Written" flag -PD.BCnt rmb 2 ;# queue elements currently bufered -PD.Own rmb 1 ;Process ID of pipe original creator -PD.Keep rmb 1 ;Non-zero if pipe has been kept open artificailly -PD.QSiz rmb 2 ;Max. elements in queue (copied from OPT section) +PD.End RMB 2 ;Pointer to end of pipe buffer +PD.NxtI RMB 2 ;Next in pointer +PD.NxtO RMB 2 ;Next out pointer +PD.RFlg RMB 1 ;"Ready" flag +PD.Wrtn RMB 1 ;"Written" flag +PD.BCnt RMB 2 ;# queue elements currently bufered +PD.Own RMB 1 ;Process ID of pipe original creator +PD.Keep RMB 1 ;Non-zero if pipe has been kept open artificailly +PD.QSiz RMB 2 ;Max. elements in queue (copied from OPT section) * * Path descriptor option section @@ -75,24 +73,24 @@ * PD.ECnt is copied to PD.QSiz as part of OPEN or CREATE, * to make room for the pipe name. * - org (PD.OPT+1) -PD.ESiz rmb 1 ;Size of each queue element -PD.ECnt rmb 2 ;Max. elements in queue (initial position) - IFGT Level-1 - org (PD.OPT+3) -PD.Name rmb NameMax - ENDC + ORG (PD.OPT+1) +PD.ESiz RMB 1 ;Size of each queue element +PD.ECnt RMB 2 ;Max. elements in queue (initial position) + IFGT Level-1 + ORG (PD.OPT+3) +PD.Name RMB NameMax + ENDC * * Device Descriptor definitions * -IT.PDC equ $12 ;Pipe device class (like IT.DTP, IT.DVC) - org IT.PDC - rmb 1 ;Leave room for device class -IT.ESiz rmb 1 ;Size of each queue element -IT.ECnt rmb 2 ;Max. elements in queue (initial position) +IT.PDC EQU $12 ;Pipe device class (like IT.DTP, IT.DVC) + ORG IT.PDC + RMB 1 ;Leave room for device class +IT.ESiz RMB 1 ;Size of each queue element +IT.ECnt RMB 2 ;Max. elements in queue (initial position) * End of pipedefs - ENDC + ENDC
--- a/defs/rbfdefs Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/rbfdefs Tue Mar 14 12:20:57 2006 +0000 @@ -1,363 +1,362 @@ - IFNE RBFDEFS-1 - -RBFDEFS set 1 - -******************************************************************** -* RBFDefs - Random Block File Manager Definitions -* -* $Id$ -* -* RBF stands for 'Random Block Filemanager' and is a package of subroutines -* that define the logical structure of a disk and allows access to the files -* in that structure. -* -* The data structures in this file give RBF its 'personality' and are used -* by RBF itself, as well as applications that will require disk I/O. -* -* Edt/Rev YYYY/MM/DD Modified by -* Comment -* ------------------------------------------------------------------ -* 1982/07/13 Robert F. Doggett -* PD.Exten added to path descriptor and PE Entries defined. -* -* 1982/07/15 Robert F. Doggett -* V.FileHd inserted in driver static storage. -* -* 1982/09/10 WGP -* Level One/Level Two condionals added. -* -* 1982/09/17 WGP -* -* 1982/09/17 Robert F. Doggett -* PD.SLE renamed to PD.Creat. -* -* 1982/09/17 Robert F. Doggett -* V.DiskID, V.BMapSz, V.MapSct added for smart multi-sector bitmap searching. -* -* 1982/09/20 Robert F. Doggett -* Reserved areas added in static storage. - -* 1983/06/07 Robert F. Doggett -* Added InDriver flag in PD.SMF. -* -* 1983/06/13 Robert F. Doggett -* Added PE.Req tmp save for PE.Lock. -* -* 1983/08/08 Robert F. Doggett -* Reserved PD.SToff for Japanese. -* -* 1983/11/19 Robert F. Doggett -* Added V.ResBit in drive tables. -* -* 1983/12/12 Robert F. Doggett -* Added PE.Prior to save process priority. -* -* 1983/12/13 Robert F. Doggett -* Added BufBusy bit in state flag (PD.SMF). -* -* 1984/07/06 Mark G. Hawkins -* Added Bit Definitions for DD.FMT. -* -* 1987/06/23 Kevin K. Darling -* Updated with Dev Desc Info -* -* 2003/06/02 Boisy G. Pitre -* Updated comments for clarity. -* Added TYP.256-TYP.2048 definitions for future expansion. -* -* 2004/04/14 Boisy G. Pitre -* Added new entries to device descriptor as per OS-9 Level One V2.00.00 -* addendum. Pointed out by Rodney Hamilton. -* -* 2005/05/31 P.Harvey-Smith. -* Added defines for bit 2 of IT.DNS, which the format command uses to -* determine if a drive should have it's track 0 as single or double density -* -* 2005/11/23 Robert Gault -* Added IT.MPI giving it duplicate location with IT.TFM. This will not be -* transferred to the path descriptor, thus the equ * rahter than rmb 1. -* -* 2005/12/11 Boisy G. Pitre -* Added IT.SOFF1-ITSOFF3 and IT.LLDRV for SuperDrivers. - - nam RBFDefs - ttl Random Block File Manager Definitions - - - pag -******************************* -* RBF Device Descriptor Offsets -* -* These definitions are for RBF device descriptors. - - org M$DTyp - rmb 1 Device type (DT.RBF) -IT.DRV rmb 1 Drive number -IT.STP rmb 1 Step rate -IT.TYP rmb 1 Disk device type information -IT.DNS rmb 1 Density capability -IT.CYL rmb 2 Number of cylinders -IT.SID rmb 1 Number of surfaces -IT.VFY rmb 1 Verify disk writes (0 = verify, 1 = don't) -IT.SCT rmb 2 Default sectors/track -IT.T0S rmb 2 Default sectors/track for track 0 sector 0 -IT.ILV rmb 1 Sector interleave offset -IT.SAS rmb 1 Segment allocation size -* The following fields are from the OS-9 Level One V2.00.00 Addendum -IT.TFM rmb 1 DMA Transfer Mode -IT.Exten rmb 2 Path Extension (PE) for record locking -IT.SToff rmb 1 Sector/Track offsets (for "foreign" disk formats) -* The following fields are not copied to the path descriptor -IT.WPC rmb 1 Write precomp cyl/4 (HD) -IT.OFS rmb 2 Starting cylinder offset (HD) -IT.RWC rmb 2 Reduced write current cylinder (HD) -* These fields have been added because of SuperDriver. They probably -* can be used in other drivers - org IT.WPC -IT.SOFF1 rmb 1 -IT.SOFF2 rmb 1 -IT.SOFF3 rmb 1 -IT.LLDRV rmb 2 -IT.MPI rmb 1 - - -* IT.TYP Definitions -* -TYP.HARD equ %10000000 Hard disk -TYP.FLP equ %00000000 Floppy disk -TYP.NSF equ %01000000 Non-standard format -TYP.SOF equ %00000000 Standard NitrOS-9 format - -* IT.TYP bit definitions if bit 7 of IT.TYP is set (hard disk) -TYPH.256 equ %00000000 256 byte sector media -TYPH.512 equ %00000001 512 byte sector media -TYPH.1024 equ %00000010 1024 byte sector media -TYPH.2048 equ %00000011 2048 byte sector media -TYPH.SSM equ %00000011 Sector size mask -TYPH.DRSV equ %00001100 Driver-reserved bits -TYPH.DSQ equ %00010000 Drive size query flag - -* IT.TYP bit definitions if bit 7 of IT.TYP is clear (floppy disk) -TYP.5 equ %00000000 5" media -TYP.3 equ %00000001 3.5" media -TYP.SBO equ %00000010 Sector base offset (clear = 0; sect = 1) -TYP.256 equ %00000000 256 byte sector media -TYP.512 equ %00000100 512 byte sector media -TYP.CCF equ %00100000 CoCo format -TYP.NCCF equ %00000000 Non-CoCo format - -* IT.DNS Definitions -* - -* If bit 7 of IT.TYP is set, IT.DNS is driver-dependent - -* IT.DNS bit definitions if bit 7 of IT.TYP is clear (floppy disk) -DNS.FM equ %00000000 Single-density (FM) -DNS.MFM equ %00000001 Double-density (MFM) -DNS.STD equ %00000000 Single track distance (48/135 tpi) -DNS.DTD equ %00000010 Double track distance (96 tpi) - -* Added PHS,2005-05-31, as format seems to use these -DNS.FM0 equ %00000000 Single density track 0 -DNS.MFM0 equ %00000100 Double density track 0 - -* Floppy disk step rate definitions -STP.30ms equ 0 30ms step rate -STP.20ms equ 1 20ms step rate -STP.12ms equ 2 12ms step rate -STP.6ms equ 3 6ms step rate - - pag -************************************* -* Random Block 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. -* - org PD.FST -PD.SMF rmb 1 State flags -PD.CP rmb 4 Current logical byte position -PD.SIZ rmb 4 File size -PD.SBL rmb 3 Segment beginning lsn -PD.SBP rmb 3 Segment beginning psn -PD.SSZ rmb 3 Segment size -PD.DSK rmb 2 Disk id -PD.DTB rmb 2 Drive table ptr - org PD.OPT - rmb 1 Device type -PD.DRV rmb 1 Drive number -PD.STP rmb 1 Step rate -PD.TYP rmb 1 Disk device type (5" 8" other) -PD.DNS rmb 1 Density capability -PD.CYL rmb 2 Number of cylinders -PD.SID rmb 1 Number of surfaces -PD.VFY rmb 1 0=verify disk writes -PD.SCT rmb 2 Default sectors/track -PD.T0S rmb 2 Default sectors/track tr00,s0 -PD.ILV rmb 1 Sector interleave offset -PD.SAS rmb 1 Segment allocation size -PD.TFM rmb 1 DMA Transfer Mode -PD.Exten rmb 2 Path Extension (PE) for record locking -PD.SToff rmb 1 Sector/Track offsets (for "foreign" disk formats) -PD.ATT rmb 1 File attributes -PD.FD rmb 3 File descriptor psn -PD.DFD rmb 3 Directory file descriptor psn -PD.DCP rmb 4 File directory entry ptr -PD.DVT rmb 2 User readable dev tbl ptr - -* State Flags -BUFMOD equ $01 Buffer modified -SINBUF equ $02 Sector in buffer -FDBUF equ $04 File descriptor in buffer -*EOFSEC equ $08 End of file sector -*EOF equ $10 End of file -InDriver equ $20 Currently in Disk Driver, or queued -BufBusy equ $40 Buffer is currently busy - - IFNE Level-1 -************************************ -* Random Block Path Extension Format -* -* RBF paths under Level Two have additional information that -* is referenced by the path extension area. -* - org 0 -PE.PE rmb 1 PE path number -PE.PDptr rmb 2 Back ptr to this PE's Path Descriptor -PE.NxFil rmb 2 Drive Open-File list ptr -PE.Confl rmb 2 Circular File Conflict list -PE.Lock rmb 1 Path lockout status -PE.LoLck rmb 4 Low Locked Logical addr -PE.HiLck rmb 4 High Locked Logical addr -PE.Wait rmb 2 PE ptr to (next) locked-out PE -PE.TmOut rmb 2 Max ticks to wait for locked segment -PE.Owner rmb 1 Process ID of owner of locked segment -PE.Req rmb 1 Temp for PE.Lock in GAIN when LockSeg fails -PE.Prior rmb 1 Temp for process priority while in driver -PE.SigSg rmb 1 Signal code to send -PE.SigID rmb 1 Process ID to send the signal to - rmb 32-. Reserved -PE.FilNm rmb 32 Temp for filename during directory search - -* PE.Lock status codes -Unlocked equ 0 No portion of file is locked -RcdLock equ 1 Record from LoLck to HiLck locked -FileLock equ 2 Entire file locked -EofLock equ 4 End of file is locked - ENDC - - - pag -*********************** -* LSN0 Disk Data Format -* -* Logical Sector Number 0 is the first sector on an RBF formatted device -* and contains information about the device's size and format. -* - org 0 -DD.TOT rmb 3 Total number of sectors -DD.TKS rmb 1 Track size in sectors -DD.MAP rmb 2 Number of bytes in allocation bit map -DD.BIT rmb 2 Number of sectors/bit -DD.DIR rmb 3 Address of root directory fd -DD.OWN rmb 2 Owner -DD.ATT rmb 1 Attributes -DD.DSK rmb 2 Disk ID -DD.FMT rmb 1 Disk format; density/sides -DD.SPT rmb 2 Sectors/track -DD.RES rmb 2 Reserved for future use -DD.SIZ equ . Device descriptor minimum size -DD.BT rmb 3 System bootstrap sector -DD.BSZ rmb 2 Size of system bootstrap -DD.DAT rmb 5 Creation date -DD.NAM rmb 32 Volume name -DD.OPT rmb 32 Option area - -* DD.FMT Bit Definitions - valid only if device is a floppy disk -FMT.SIDE equ %00000001 Single Sided=0, Double Sided=1 -FMT.DNS equ %00000010 Single Density=0, Double Density=1 -FMT.TDNS equ %00000100 Track Density: 48/135 TPI=0, 96 TPI=1 -FMT.T0DN equ %00100000 Track 0 Density, see FMT.DNS - - - pag -************************ -* File Descriptor Format -* -* The file descriptor is a sector that is present for every file -* on an RBF device. It contains attributes, modification dates, -* and segment information on a file. -* - org 0 -FD.ATT rmb 1 Attributes -FD.OWN rmb 2 Owner -FD.DAT rmb 5 Date last modified -FD.LNK rmb 1 Link count -FD.SIZ rmb 4 File size -FD.Creat rmb 3 Segment list extension -FD.SEG equ . Beginning of segment list -* Segment List Entry Format - org 0 -FDSL.A rmb 3 Segment beginning physical sector number -FDSL.B rmb 2 Segment size -FDSL.S equ . Segment list entry size -FD.LS1 equ FD.SEG+((256-FD.SEG)/FDSL.S-1)*FDSL.S -FD.LS2 equ (256/FDSL.S-1)*FDSL.S -MINSEC set 16 - - - pag -************************ -* Directory Entry Format -* -* Directory entries are part of a directory and define the name -* of the file, as well as a pointer to its file descriptor. -* - org 0 -DIR.NM rmb 29 File name -DIR.FD rmb 3 File descriptor physical sector number -DIR.SZ equ . Directory record size - - - pag -******************** -* RBF Static Storage -* -* Overall Disk Static Storage -* -* Note: This does not reserve any memory for drive tables. Each -* driver is responsible for reserving sufficient memory for -* the appropriate number of tables. -* - org V.USER Reserve required ($06) -V.NDRV rmb 1 Number of drives ($07) - rmb 8 reserved ($08) -DRVBEG equ . Beginning of drive tables ($10) - - - pag -**************** -* Global Storage For Disk Drive Tables -* -* Each table contains the first 'DD.SIZ' bytes from -* LSN 0, and the current track, stepping rate, -* bitmap use flag, and disk type. -* - org 0 - rmb DD.SIZ Device descriptor, LSN 0 -V.TRAK rmb 2 Current track -V.BMB rmb 1 Bit-map use flag -V.FileHd rmb 2 Open file list for this drive -V.DiskID rmb 2 Disk ID -V.BMapSz rmb 1 Bitmap Size -V.MapSct rmb 1 Lowest reasonable bitmap sector -V.ResBit rmb 1 Reserved bitmap sector (for compaction) -V.ScTkOf rmb 1 Sector/Track byte (Combined from descriptor) -V.ScOfst rmb 1 Sector offset split from byte above -V.TkOfst rmb 1 Track offset split from byte above - rmb 4 Reserved -DRVMEM equ . - - ENDC - + IFNE RBFDEFS-1 + +RBFDEFS SET 1 + +******************************************************************** +* RBFDefs - Random Block File Manager Definitions +* +* $Id$ +* +* RBF stands for 'Random Block Filemanager' and is a package of subroutines +* that define the logical structure of a disk and allows access to the files +* in that structure. +* +* The data structures in this file give RBF its 'personality' and are used +* by RBF itself, as well as applications that will require disk I/O. +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* 1982/07/13 Robert F. Doggett +* PD.Exten added to path descriptor and PE Entries defined. +* +* 1982/07/15 Robert F. Doggett +* V.FileHd inserted in driver static storage. +* +* 1982/09/10 WGP +* Level One/Level Two condionals added. +* +* 1982/09/17 WGP +* +* 1982/09/17 Robert F. Doggett +* PD.SLE renamed to PD.Creat. +* +* 1982/09/17 Robert F. Doggett +* V.DiskID, V.BMapSz, V.MapSct added for smart multi-sector bitmap searching. +* +* 1982/09/20 Robert F. Doggett +* Reserved areas added in static storage. + +* 1983/06/07 Robert F. Doggett +* Added InDriver flag in PD.SMF. +* +* 1983/06/13 Robert F. Doggett +* Added PE.Req tmp save for PE.Lock. +* +* 1983/08/08 Robert F. Doggett +* Reserved PD.SToff for Japanese. +* +* 1983/11/19 Robert F. Doggett +* Added V.ResBit in drive tables. +* +* 1983/12/12 Robert F. Doggett +* Added PE.Prior to save process priority. +* +* 1983/12/13 Robert F. Doggett +* Added BufBusy bit in state flag (PD.SMF). +* +* 1984/07/06 Mark G. Hawkins +* Added Bit Definitions for DD.FMT. +* +* 1987/06/23 Kevin K. Darling +* Updated with Dev Desc Info +* +* 2003/06/02 Boisy G. Pitre +* Updated comments for clarity. +* Added TYP.256-TYP.2048 definitions for future expansion. +* +* 2004/04/14 Boisy G. Pitre +* Added new entries to device descriptor as per OS-9 Level One V2.00.00 +* addendum. Pointed out by Rodney Hamilton. +* +* 2005/05/31 P.Harvey-Smith. +* Added defines for bit 2 of IT.DNS, which the format command uses to +* determine if a drive should have it's track 0 as single or double density +* +* 2005/11/23 Robert Gault +* Added IT.MPI giving it duplicate location with IT.TFM. This will not be +* transferred to the path descriptor, thus the equ * rahter than rmb 1. +* +* 2005/12/11 Boisy G. Pitre +* Added IT.SOFF1-ITSOFF3 and IT.LLDRV for SuperDrivers. + + NAM RBFDefs + TTL Random Block File Manager Definitions + + PAG +******************************* +* RBF Device Descriptor Offsets +* +* These definitions are for RBF device descriptors. + + ORG M$DTyp + RMB 1 Device type (DT.RBF) +IT.DRV RMB 1 Drive number +IT.STP RMB 1 Step rate +IT.TYP RMB 1 Disk device type information +IT.DNS RMB 1 Density capability +IT.CYL RMB 2 Number of cylinders +IT.SID RMB 1 Number of surfaces +IT.VFY RMB 1 Verify disk writes (0 = verify, 1 = don't) +IT.SCT RMB 2 Default sectors/track +IT.T0S RMB 2 Default sectors/track for track 0 sector 0 +IT.ILV RMB 1 Sector interleave offset +IT.SAS RMB 1 Segment allocation size +* The following fields are from the OS-9 Level One V2.00.00 Addendum +IT.TFM RMB 1 DMA Transfer Mode +IT.Exten RMB 2 Path Extension (PE) for record locking +IT.SToff RMB 1 Sector/Track offsets (for "foreign" disk formats) +* The following fields are not copied to the path descriptor +IT.WPC RMB 1 Write precomp cyl/4 (HD) +IT.OFS RMB 2 Starting cylinder offset (HD) +IT.RWC RMB 2 Reduced write current cylinder (HD) +* These fields have been added because of SuperDriver. They probably +* can be used in other drivers + ORG IT.WPC +IT.SOFF1 RMB 1 +IT.SOFF2 RMB 1 +IT.SOFF3 RMB 1 +IT.LLDRV RMB 2 +IT.MPI RMB 1 + + +* IT.TYP Definitions +* +TYP.HARD EQU %10000000 Hard disk +TYP.FLP EQU %00000000 Floppy disk +TYP.NSF EQU %01000000 Non-standard format +TYP.SOF EQU %00000000 Standard NitrOS-9 format + +* IT.TYP bit definitions if bit 7 of IT.TYP is set (hard disk) +TYPH.256 EQU %00000000 256 byte sector media +TYPH.512 EQU %00000001 512 byte sector media +TYPH.1024 EQU %00000010 1024 byte sector media +TYPH.2048 EQU %00000011 2048 byte sector media +TYPH.SSM EQU %00000011 Sector size mask +TYPH.DRSV EQU %00001100 Driver-reserved bits +TYPH.DSQ EQU %00010000 Drive size query flag + +* IT.TYP bit definitions if bit 7 of IT.TYP is clear (floppy disk) +TYP.5 EQU %00000000 5" media +TYP.3 EQU %00000001 3.5" media +TYP.SBO EQU %00000010 Sector base offset (clear = 0; sect = 1) +TYP.256 EQU %00000000 256 byte sector media +TYP.512 EQU %00000100 512 byte sector media +TYP.CCF EQU %00100000 CoCo format +TYP.NCCF EQU %00000000 Non-CoCo format + +* IT.DNS Definitions +* + +* If bit 7 of IT.TYP is set, IT.DNS is driver-dependent + +* IT.DNS bit definitions if bit 7 of IT.TYP is clear (floppy disk) +DNS.FM EQU %00000000 Single-density (FM) +DNS.MFM EQU %00000001 Double-density (MFM) +DNS.STD EQU %00000000 Single track distance (48/135 tpi) +DNS.DTD EQU %00000010 Double track distance (96 tpi) + +* Added PHS,2005-05-31, as format seems to use these +DNS.FM0 EQU %00000000 Single density track 0 +DNS.MFM0 EQU %00000100 Double density track 0 + +* Floppy disk step rate definitions +STP.30ms EQU 0 30ms step rate +STP.20ms EQU 1 20ms step rate +STP.12ms EQU 2 12ms step rate +STP.6ms EQU 3 6ms step rate + + PAG +************************************* +* Random Block 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. +* + ORG PD.FST +PD.SMF RMB 1 State flags +PD.CP RMB 4 Current logical byte position +PD.SIZ RMB 4 File size +PD.SBL RMB 3 Segment beginning lsn +PD.SBP RMB 3 Segment beginning psn +PD.SSZ RMB 3 Segment size +PD.DSK RMB 2 Disk id +PD.DTB RMB 2 Drive table ptr + ORG PD.OPT + RMB 1 Device type +PD.DRV RMB 1 Drive number +PD.STP RMB 1 Step rate +PD.TYP RMB 1 Disk device type (5" 8" other) +PD.DNS RMB 1 Density capability +PD.CYL RMB 2 Number of cylinders +PD.SID RMB 1 Number of surfaces +PD.VFY RMB 1 0=verify disk writes +PD.SCT RMB 2 Default sectors/track +PD.T0S RMB 2 Default sectors/track tr00,s0 +PD.ILV RMB 1 Sector interleave offset +PD.SAS RMB 1 Segment allocation size +PD.TFM RMB 1 DMA Transfer Mode +PD.Exten RMB 2 Path Extension (PE) for record locking +PD.SToff RMB 1 Sector/Track offsets (for "foreign" disk formats) +PD.ATT RMB 1 File attributes +PD.FD RMB 3 File descriptor psn +PD.DFD RMB 3 Directory file descriptor psn +PD.DCP RMB 4 File directory entry ptr +PD.DVT RMB 2 User readable dev tbl ptr + +* State Flags +BUFMOD EQU $01 Buffer modified +SINBUF EQU $02 Sector in buffer +FDBUF EQU $04 File descriptor in buffer +*EOFSEC equ $08 End of file sector +*EOF equ $10 End of file +InDriver EQU $20 Currently in Disk Driver, or queued +BufBusy EQU $40 Buffer is currently busy + + IFNE Level-1 +************************************ +* Random Block Path Extension Format +* +* RBF paths under Level Two have additional information that +* is referenced by the path extension area. +* + ORG 0 +PE.PE RMB 1 PE path number +PE.PDptr RMB 2 Back ptr to this PE's Path Descriptor +PE.NxFil RMB 2 Drive Open-File list ptr +PE.Confl RMB 2 Circular File Conflict list +PE.Lock RMB 1 Path lockout status +PE.LoLck RMB 4 Low Locked Logical addr +PE.HiLck RMB 4 High Locked Logical addr +PE.Wait RMB 2 PE ptr to (next) locked-out PE +PE.TmOut RMB 2 Max ticks to wait for locked segment +PE.Owner RMB 1 Process ID of owner of locked segment +PE.Req RMB 1 Temp for PE.Lock in GAIN when LockSeg fails +PE.Prior RMB 1 Temp for process priority while in driver +PE.SigSg RMB 1 Signal code to send +PE.SigID RMB 1 Process ID to send the signal to + RMB 32-. Reserved +PE.FilNm RMB 32 Temp for filename during directory search + +* PE.Lock status codes +Unlocked EQU 0 No portion of file is locked +RcdLock EQU 1 Record from LoLck to HiLck locked +FileLock EQU 2 Entire file locked +EofLock EQU 4 End of file is locked + ENDC + + + PAG +*********************** +* LSN0 Disk Data Format +* +* Logical Sector Number 0 is the first sector on an RBF formatted device +* and contains information about the device's size and format. +* + ORG 0 +DD.TOT RMB 3 Total number of sectors +DD.TKS RMB 1 Track size in sectors +DD.MAP RMB 2 Number of bytes in allocation bit map +DD.BIT RMB 2 Number of sectors/bit +DD.DIR RMB 3 Address of root directory fd +DD.OWN RMB 2 Owner +DD.ATT RMB 1 Attributes +DD.DSK RMB 2 Disk ID +DD.FMT RMB 1 Disk format; density/sides +DD.SPT RMB 2 Sectors/track +DD.RES RMB 2 Reserved for future use +DD.SIZ EQU . Device descriptor minimum size +DD.BT RMB 3 System bootstrap sector +DD.BSZ RMB 2 Size of system bootstrap +DD.DAT RMB 5 Creation date +DD.NAM RMB 32 Volume name +DD.OPT RMB 32 Option area + +* DD.FMT Bit Definitions - valid only if device is a floppy disk +FMT.SIDE EQU %00000001 Single Sided=0, Double Sided=1 +FMT.DNS EQU %00000010 Single Density=0, Double Density=1 +FMT.TDNS EQU %00000100 Track Density: 48/135 TPI=0, 96 TPI=1 +FMT.T0DN EQU %00100000 Track 0 Density, see FMT.DNS + + + PAG +************************ +* File Descriptor Format +* +* The file descriptor is a sector that is present for every file +* on an RBF device. It contains attributes, modification dates, +* and segment information on a file. +* + ORG 0 +FD.ATT RMB 1 Attributes +FD.OWN RMB 2 Owner +FD.DAT RMB 5 Date last modified +FD.LNK RMB 1 Link count +FD.SIZ RMB 4 File size +FD.Creat RMB 3 Segment list extension +FD.SEG EQU . Beginning of segment list +* Segment List Entry Format + ORG 0 +FDSL.A RMB 3 Segment beginning physical sector number +FDSL.B RMB 2 Segment size +FDSL.S EQU . Segment list entry size +FD.LS1 EQU FD.SEG+((256-FD.SEG)/FDSL.S-1)*FDSL.S +FD.LS2 EQU (256/FDSL.S-1)*FDSL.S +MINSEC SET 16 + + + PAG +************************ +* Directory Entry Format +* +* Directory entries are part of a directory and define the name +* of the file, as well as a pointer to its file descriptor. +* + ORG 0 +DIR.NM RMB 29 File name +DIR.FD RMB 3 File descriptor physical sector number +DIR.SZ EQU . Directory record size + + + PAG +******************** +* RBF Static Storage +* +* Overall Disk Static Storage +* +* Note: This does not reserve any memory for drive tables. Each +* driver is responsible for reserving sufficient memory for +* the appropriate number of tables. +* + ORG V.USER Reserve required ($06) +V.NDRV RMB 1 Number of drives ($07) + RMB 8 reserved ($08) +DRVBEG EQU . Beginning of drive tables ($10) + + + PAG +**************** +* Global Storage For Disk Drive Tables +* +* Each table contains the first 'DD.SIZ' bytes from +* LSN 0, and the current track, stepping rate, +* bitmap use flag, and disk type. +* + ORG 0 + RMB DD.SIZ Device descriptor, LSN 0 +V.TRAK RMB 2 Current track +V.BMB RMB 1 Bit-map use flag +V.FileHd RMB 2 Open file list for this drive +V.DiskID RMB 2 Disk ID +V.BMapSz RMB 1 Bitmap Size +V.MapSct RMB 1 Lowest reasonable bitmap sector +V.ResBit RMB 1 Reserved bitmap sector (for compaction) +V.ScTkOf RMB 1 Sector/Track byte (Combined from descriptor) +V.ScOfst RMB 1 Sector offset split from byte above +V.TkOfst RMB 1 Track offset split from byte above + RMB 4 Reserved +DRVMEM EQU . + + ENDC +
--- a/defs/scfdefs Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/scfdefs Tue Mar 14 12:20:57 2006 +0000 @@ -1,6 +1,6 @@ - IFNE SCFDEFS-1 + IFNE SCFDEFS-1 -SCFDEFS set 1 +SCFDEFS SET 1 ******************************************************************** * SCFDefs - Sequential Character File Manager Definitions @@ -40,126 +40,125 @@ * 2004/05/17 Boisy G. Pitre * Added higher baud rates. - nam SCFDefs - ttl Sequential File Manager Definitions + NAM SCFDefs + TTL Sequential File Manager Definitions - - pag + PAG ******************************* * SCF Device Descriptor Offsets * * These definitions are for SCF device descriptors. - org 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.XOFF 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) + ORG 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.XOFF 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 + IFGT Level-1 * Window Descriptor Additions * For CoCo window, where IT.PAR = $80 - org 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 + ORG 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 - pag + PAG ******************** * SCF Static Storage * * SCF devices must reserve this space for SCF * - org 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 + ORG 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 - pag + 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 ', +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 + PAG ********************************************* * Sequential Character Path Descriptor Format * @@ -167,79 +166,79 @@ * via the I$Open system call (processed by IOMan). Process * descriptors track state information of a path. * - org 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 - org 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 + ORG 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 + ORG 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 * PD.PST values Path Descriptor Status byte * -PST.DCD equ %00000001 Set if DCD is lost on Serial port +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 +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 +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 +WORD8 EQU %00000000 +WORD7 EQU %00100000 * Stop bits -STOP1 equ %00000000 -STOP2 equ %00010000 +STOP1 EQU %00000000 +STOP2 EQU %00010000 - ENDC + ENDC
--- a/defs/systype Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/systype Tue Mar 14 12:20:57 2006 +0000 @@ -1,6 +1,6 @@ - IFNE SYSTYPE-1 + IFNE SYSTYPE-1 -SYSTYPE set 1 +SYSTYPE SET 1 ******************************************************************** * SysType - NitrOS-9 System Specific Definitions @@ -32,110 +32,110 @@ * 2004/07/18 Boisy G. Pitre * Moved CoCo 3 Window stuff into cc3iodefs - nam SysType - IFEQ Level-1 - ttl NitrOS-9 Level 1 System Type Definitions - ELSE - IFEQ Level-2 - ttl NitrOS-9 Level 2 System Type Definitions - ENDC - IFEQ Level-3 - ttl NitrOS-9 Level 3 System Type Definitions - ENDC - ENDC + NAM SysType + IFEQ Level-1 + TTL NitrOS-9 Level 1 System Type Definitions + ELSE + IFEQ Level-2 + TTL NitrOS-9 Level 2 System Type Definitions + ENDC + IFEQ Level-3 + TTL NitrOS-9 Level 3 System Type Definitions + ENDC + ENDC ********************** * CPU Type Definitions * -Color set 1 -Color3 set 2 - IFEQ Level-1 -CPUType set Color - ELSE -CPUType set Color3 - ENDC +Color SET 1 +Color3 SET 2 + IFEQ Level-1 +CPUType SET Color + ELSE +CPUType SET Color3 + ENDC ****************************** * Clock Speed Type Definitions * -OneMHz equ 1 -TwoMHz equ 2 - IFEQ CPUType-Color -CPUSpeed set OneMHz - ELSE -CPUSpeed set TwoMHz - ENDC +OneMHz EQU 1 +TwoMHz EQU 2 + IFEQ CPUType-Color +CPUSpeed SET OneMHz + ELSE +CPUSpeed SET TwoMHz + ENDC ********************************** * Power Line Frequency Definitions * -Hz50 equ 1 Assemble clock for 50 hz power -Hz60 equ 2 Assemble clock for 60 hz power -PwrLnFrq set Hz60 Set to Appropriate freq +Hz50 EQU 1 Assemble clock for 50 hz power +Hz60 EQU 2 Assemble clock for 60 hz power +PwrLnFrq SET Hz60 Set to Appropriate freq ********************************** * Ticks per second * - IFEQ PwrLnFrq-Hz50 -TkPerSec set 50 - ELSE -TkPerSec set 60 - ENDC + IFEQ PwrLnFrq-Hz50 +TkPerSec SET 50 + ELSE +TkPerSec SET 60 + ENDC ****************** * ACIA type set up * - org 1 -ACIA6850 rmb 1 MC6850 acia. -ACIA6551 rmb 1 SY6551 acia. -ACIA2661 rmb 1 SC2661 acia. -ACIATYPE set ACIA6551 + ORG 1 +ACIA6850 RMB 1 MC6850 acia. +ACIA6551 RMB 1 SY6551 acia. +ACIA2661 RMB 1 SC2661 acia. +ACIATYPE SET ACIA6551 **************************************** * Special character Bit position equates * -SHIFTBIT equ %00000001 -CNTRLBIT equ %00000010 -ALTERBIT equ %00000100 -UPBIT equ %00001000 -DOWNBIT equ %00010000 -LEFTBIT equ %00100000 -RIGHTBIT equ %01000000 -SPACEBIT equ %10000000 +SHIFTBIT EQU %00000001 +CNTRLBIT EQU %00000010 +ALTERBIT EQU %00000100 +UPBIT EQU %00001000 +DOWNBIT EQU %00010000 +LEFTBIT EQU %00100000 +RIGHTBIT EQU %01000000 +SPACEBIT EQU %10000000 ****************** * Device addresses for miscellaneous hardware * -A.AciaP set $FF68 Aciapak Address -A.ModP set $FF6C ModPak Address -DPort set $FF40 Disk controller base address -MPI.Slct set $FF7F Multi-Pak slot select -MPI.Slot set $03 Multi-Pak default slot -PIA0Base equ $FF00 -PIA1Base equ $FF20 +A.AciaP SET $FF68 Aciapak Address +A.ModP SET $FF6C ModPak Address +DPort SET $FF40 Disk controller base address +MPI.Slct SET $FF7F Multi-Pak slot select +MPI.Slot SET $03 Multi-Pak default slot +PIA0Base EQU $FF00 +PIA1Base EQU $FF20 ****************** * VDG Devices * -A.TermV set $FFC0 VDG Term -A.V1 set $FFC1 Possible additional VDG Devices -A.V2 set $FFC2 -A.V3 set $FFC3 -A.V4 set $FFC4 -A.V5 set $FFC5 -A.V6 set $FFC6 -A.V7 set $FFC7 +A.TermV SET $FFC0 VDG Term +A.V1 SET $FFC1 Possible additional VDG Devices +A.V2 SET $FFC2 +A.V3 SET $FFC3 +A.V4 SET $FFC4 +A.V5 SET $FFC5 +A.V6 SET $FFC6 +A.V7 SET $FFC7 - IFEQ Level-1 + IFEQ Level-1 ************************************************* * @@ -143,9 +143,9 @@ * ************************************************* -HW.Page set $FF Device descriptor hardware page +HW.Page SET $FF Device descriptor hardware page - ELSE + ELSE ************************************************* * @@ -156,50 +156,50 @@ **************************************** * Dynamic Address Translator Definitions * -DAT.BlCt equ 8 D.A.T. blocks/address space -DAT.BlSz equ (256/DAT.BlCt)*256 D.A.T. block size -DAT.ImSz equ DAT.BlCt*2 D.A.T. Image size -DAT.Addr equ -(DAT.BlSz/256) D.A.T. MSB Address bits -DAT.Task equ $FF91 Task Register address -DAT.TkCt equ 32 Number of DAT Tasks -DAT.Regs equ $FFA0 DAT Block Registers base address -DAT.Free equ $333E Free Block Number -DAT.BlMx equ $3F Maximum Block number -DAT.BMSz equ $40 Memory Block Map size -DAT.WrPr equ 0 no write protect -DAT.WrEn equ 0 no write enable -SysTask equ 0 Coco System Task number -IOBlock equ $3F -ROMBlock equ $3F -IOAddr equ $7F -ROMCount equ 1 number of blocks of ROM (High RAM Block) -RAMCount equ 1 initial blocks of RAM -MoveBlks equ DAT.BlCt-ROMCount-2 Block numbers used for copies -BlockTyp equ 1 chk only first bytes of RAM block -ByteType equ 2 chk entire block of RAM -Limited equ 1 chk only upper memory for ROM modules -UnLimitd equ 2 chk all NotRAM for modules +DAT.BlCt EQU 8 D.A.T. blocks/address space +DAT.BlSz EQU (256/DAT.BlCt)*256 D.A.T. block size +DAT.ImSz EQU DAT.BlCt*2 D.A.T. Image size +DAT.Addr EQU -(DAT.BlSz/256) D.A.T. MSB Address bits +DAT.Task EQU $FF91 Task Register address +DAT.TkCt EQU 32 Number of DAT Tasks +DAT.Regs EQU $FFA0 DAT Block Registers base address +DAT.Free EQU $333E Free Block Number +DAT.BlMx EQU $3F Maximum Block number +DAT.BMSz EQU $40 Memory Block Map size +DAT.WrPr EQU 0 no write protect +DAT.WrEn EQU 0 no write enable +SysTask EQU 0 Coco System Task number +IOBlock EQU $3F +ROMBlock EQU $3F +IOAddr EQU $7F +ROMCount EQU 1 number of blocks of ROM (High RAM Block) +RAMCount EQU 1 initial blocks of RAM +MoveBlks EQU DAT.BlCt-ROMCount-2 Block numbers used for copies +BlockTyp EQU 1 chk only first bytes of RAM block +ByteType EQU 2 chk entire block of RAM +Limited EQU 1 chk only upper memory for ROM modules +UnLimitd EQU 2 chk all NotRAM for modules * NOTE: this check assumes any NotRAM with a module will * always start with $87CD in first two bytes of block -RAMCheck equ BlockTyp chk only beg bytes of block -ROMCheck equ Limited chk only upper few blocks for ROM -LastRAM equ IOBlock maximum RAM block number +RAMCheck EQU BlockTyp chk only beg bytes of block +ROMCheck EQU Limited chk only upper few blocks for ROM +LastRAM EQU IOBlock maximum RAM block number *************************** * Color Computer 3 Specific * -MappedIO equ true (Actually False but it works better this way) +MappedIO EQU true (Actually False but it works better this way) ******************** * Hardware addresses * -GIMERegs equ $FF00 Base address of GIME registers -IrqEnR equ $FF92 GIME IRQ enable/status register -BordReg equ $FF9A Border color register -PalAdr equ $FFB0 Palette registers +GIMERegs EQU $FF00 Base address of GIME registers +IrqEnR EQU $FF92 GIME IRQ enable/status register +BordReg EQU $FF9A Border color register +PalAdr EQU $FFB0 Palette registers -HW.Page set $07 Device descriptor hardware page +HW.Page SET $07 Device descriptor hardware page - ENDC - ENDC + ENDC + ENDC
--- a/defs/vdgdefs Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/vdgdefs Tue Mar 14 12:20:57 2006 +0000 @@ -1,6 +1,6 @@ - IFNE VDGDEFS-1 + IFNE VDGDEFS-1 -VDGDEFS set 1 +VDGDEFS SET 1 ******************************************************************** * VDGDefs - VDG Interface Definititions @@ -13,12 +13,9 @@ * 1991/05/07 Alan DeKok * Wrote original from VDGInt source. + NAM VDGDefs + TTL VDG Interface Definitions - nam VDGDefs - ttl VDG Interface Definitions - - - pag * Notes: * * All offsets from 'U' (address of device memory area) @@ -46,67 +43,67 @@ * * Total of 22 (150 in whole page) bytes unneeded or unused. - org $1E -VD.Start rmb 1 start of VD.XXXX data: number of VDG screens in use -VD.Strt1 rmb 2 (2) and another start -VD.Caps rmb 2 caps lock info: $00=lower $FF=upper -VD.DFlag rmb 1 0=current screen is valid, $01-$FF = update video + ORG $1E +VD.Start RMB 1 start of VD.XXXX data: number of VDG screens in use +VD.Strt1 RMB 2 (2) and another start +VD.Caps RMB 2 caps lock info: $00=lower $FF=upper +VD.DFlag RMB 1 0=current screen is valid, $01-$FF = update video * $24-$2B unused - rmb 8 -VD.NGChr rmb 1 number of additional characters to get -VD.RTAdd rmb 2 (2) return address after getting characters -VD.EPlt1 rmb 2 (2) pointer to where to put next character -VD.EPlt2 rmb 2 (2) as above. + RMB 8 +VD.NGChr RMB 1 number of additional characters to get +VD.RTAdd RMB 2 (2) return address after getting characters +VD.EPlt1 RMB 2 (2) pointer to where to put next character +VD.EPlt2 RMB 2 (2) as above. * $33-$34 unused - rmb 2 -VD.CFlag rmb 1 true lowercase flag $10=true, $00=false -VD.CFlg1 rmb 1 VDG display code values -VD.DGBuf rmb 1 number of currently displayed buffer -VD.ScrnA rmb 2 (2) screen start address in system memory -VD.ScrnE rmb 2 (2) address of end of screen -VD.CrsrA rmb 1 (2) cursor address -VD.CrsAL rmb 1 cursor address low -VD.CChar rmb 1 value of character under cursor -VD.Mode rmb 1 mode: 0=256x192 x2, 1=128x192 x4 -VD.Chr1 rmb 1 same as under cursor character -VD.CColr rmb 1 cursor color -VD.Col rmb 1 number of columns for this screen -VD.Row rmb 1 number of rows -VD.TFlg1 rmb 1 see WRITE ($0E) -VD.Alpha rmb 1 0 when in alpha mode -VD.Rdy rmb 1 device ready (see SS.DStat 0=not ready) -VD.SBAdd rmb 2 (2) address of block screen is in -VD.Blk rmb 1 Block number of screen -VD.GBuff rmb 1 allocation for graphics buffers (block#) -VD.AGBuf rmb 2 (2) additional graphics buffer -VD.HiRes rmb 1 hi-res screen table (block value) -VD.NBlk rmb 1 number of blocks in this screen -VD.SType rmb 1 screen type 0-4 -VD.HR2 rmb 3 (3) for screen number 2 -VD.HR3 rmb 3 (3) for screen 3 (same 3 bytes as above) -VD.FFMem rmb 2 (2) bottom of stack for flood fill -VD.FFSPt rmb 2 (2) flood fill stack pointer -VD.FFSTp rmb 2 (2) flood fill stack top pointer -VD.FF6 rmb 1 flood fill flag -VD.MTabl rmb 2 (2) address of mask table for pixels in byte -VD.PixBt rmb 1 bit mask for modes (0=$07, 1=$03 )#pixels/byte -VD.GCrsX rmb 1 graphics cursor X value -VD.GCrsY rmb 1 graphics cursor Y -VD.Msk1 rmb 1 mask byte 1 -VD.Msk2 rmb 1 mask byte 2 (00,55,AA,FF) -VD.MCol rmb 1 color? (C003,8001) -VD.MCol2 rmb 1 color -VD.PMask rmb 1 pixel mask for colors (i.e. $55, $CC etc) -VD.FF1 rmb 1 data for flood fill -VD.FF2 rmb 1 data for flood fill -VD.FFMsk rmb 1 flood fill mask -VD.FFFlg rmb 1 flood fill flag -VD.Palet rmb 16 (16) current palette values -VD.PlFlg rmb 1 initialized to $08 by L00DB, and then unused! -VD.NChar rmb 1 character to process -VD.NChr2 rmb 1 and the next one + RMB 2 +VD.CFlag RMB 1 true lowercase flag $10=true, $00=false +VD.CFlg1 RMB 1 VDG display code values +VD.DGBuf RMB 1 number of currently displayed buffer +VD.ScrnA RMB 2 (2) screen start address in system memory +VD.ScrnE RMB 2 (2) address of end of screen +VD.CrsrA RMB 1 (2) cursor address +VD.CrsAL RMB 1 cursor address low +VD.CChar RMB 1 value of character under cursor +VD.Mode RMB 1 mode: 0=256x192 x2, 1=128x192 x4 +VD.Chr1 RMB 1 same as under cursor character +VD.CColr RMB 1 cursor color +VD.Col RMB 1 number of columns for this screen +VD.Row RMB 1 number of rows +VD.TFlg1 RMB 1 see WRITE ($0E) +VD.Alpha RMB 1 0 when in alpha mode +VD.Rdy RMB 1 device ready (see SS.DStat 0=not ready) +VD.SBAdd RMB 2 (2) address of block screen is in +VD.Blk RMB 1 Block number of screen +VD.GBuff RMB 1 allocation for graphics buffers (block#) +VD.AGBuf RMB 2 (2) additional graphics buffer +VD.HiRes RMB 1 hi-res screen table (block value) +VD.NBlk RMB 1 number of blocks in this screen +VD.SType RMB 1 screen type 0-4 +VD.HR2 RMB 3 (3) for screen number 2 +VD.HR3 RMB 3 (3) for screen 3 (same 3 bytes as above) +VD.FFMem RMB 2 (2) bottom of stack for flood fill +VD.FFSPt RMB 2 (2) flood fill stack pointer +VD.FFSTp RMB 2 (2) flood fill stack top pointer +VD.FF6 RMB 1 flood fill flag +VD.MTabl RMB 2 (2) address of mask table for pixels in byte +VD.PixBt RMB 1 bit mask for modes (0=$07, 1=$03 )#pixels/byte +VD.GCrsX RMB 1 graphics cursor X value +VD.GCrsY RMB 1 graphics cursor Y +VD.Msk1 RMB 1 mask byte 1 +VD.Msk2 RMB 1 mask byte 2 (00,55,AA,FF) +VD.MCol RMB 1 color? (C003,8001) +VD.MCol2 RMB 1 color +VD.PMask RMB 1 pixel mask for colors (i.e. $55, $CC etc) +VD.FF1 RMB 1 data for flood fill +VD.FF2 RMB 1 data for flood fill +VD.FFMsk RMB 1 flood fill mask +VD.FFFlg RMB 1 flood fill flag +VD.Palet RMB 16 (16) current palette values +VD.PlFlg RMB 1 initialized to $08 by L00DB, and then unused! +VD.NChar RMB 1 character to process +VD.NChr2 RMB 1 and the next one * and RMB until we get 256 bytes reserved - ENDC + ENDC
--- a/defs/vtiodefs Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/vtiodefs Tue Mar 14 12:20:57 2006 +0000 @@ -1,6 +1,6 @@ - IFNE VTIODEFS-1 -VTIODEFS set 1 - + IFNE VTIODEFS-1 +VTIODEFS SET 1 + ******************************************************************** * VTIODefs - Video Terminal I/O Definitions for CoCo 1/2 * @@ -9,7 +9,6 @@ * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ -* * 2004/11/29 P.Harvey-Smith. * Added symbolic defines for bits in V.CoLoad. * @@ -19,128 +18,127 @@ * 2005/04/09 P.Harvey-Smith. * Decoded rest of the CoHR memory locations. * -* 2005/04/24 P.Harvey-Smith. +* 2005/04/24 P.Harvey-Smith. * Added variables for cursor flash, currently only implemented in co51 * + NAM VTIODefs + TTL Video Terminal I/O Definitions for CoCo 1/2 - nam VTIODefs - ttl Video Terminal I/O Definitions for CoCo 1/2 - ******************** * VTIO Static Memory * - org V.SCF -V.ScrnA rmb 2 (2) screen start address in system memory -V.ScrnE rmb 2 (2) address of end of screen -V.CrsrA rmb 1 (2) cursor address -V.CrsAL rmb 1 cursor address low -V.CChar rmb 1 value of character under cursor -V.Mode rmb 1 mode: 0=256x192 x2, 1=128x192 x4 -V.NGChr rmb 1 number of additional characters to get -V.RTAdd rmb 2 (2) return address after getting characters -V.NChar rmb 1 character to process -V.NChr2 rmb 1 and the next one - rmb 1 -V.Chr1 rmb 1 same as under cursor character -V.CColr rmb 1 cursor color -V.Col rmb 1 number of columns for this screen -V.Row rmb 1 number of rows -V.Alpha rmb 1 0 when in alpha mode -V.PIA1 rmb 1 PIA1Base value -V.Rdy rmb 1 device ready (see SS.DStat 0=not ready) -V.CFlg1 rmb 1 VDG display code values -V.SBAdd rmb 2 (2) address of block screen is in -V.GBuff rmb 2 allocation for graphics buffers (block#) -V.AGBuf rmb 4 (2) additional graphics buffer -V.FFMem rmb 2 Flood fill alloc'ed mem -V.FFSPt rmb 2 Flood fill current stack pointer -V.FFSTp rmb 1 Flood fill stack top -V.FF6 rmb 1 flood fill flag -V.FFFlag rmb 1 ?? -V.MTabl rmb 2 (2) address of mask table for pixels in byte -V.PixBt rmb 1 bit mask for modes (0=$07, 1=$03 )#pixels/byte -V.GCrsX rmb 1 graphics cursor X value -V.GCrsY rmb 1 graphics cursor Y -V.Msk1 rmb 1 mask byte 1 -V.Msk2 rmb 1 mask byte 2 (00,55,AA,FF) -V.MCol rmb 1 color? (C003,8001) -V.4A rmb 1 -V.PMask rmb 1 pixel mask for colors (i.e. $55, $CC etc) -V.4C rmb 1 -V.4D rmb 1 -V.4E rmb 1 -V.4F rmb 1 -V.Caps rmb 1 caps lock info: $00=lower $FF=upper -V.ClkCnt rmb 1 clock count ?? -V.WrChr rmb 1 character to write -V.CurCo rmb 1 current CO-module in use + ORG V.SCF +V.ScrnA RMB 2 (2) screen start address in system memory +V.ScrnE RMB 2 (2) address of end of screen +V.CrsrA RMB 1 (2) cursor address +V.CrsAL RMB 1 cursor address low +V.CChar RMB 1 value of character under cursor +V.Mode RMB 1 mode: 0=256x192 x2, 1=128x192 x4 +V.NGChr RMB 1 number of additional characters to get +V.RTAdd RMB 2 (2) return address after getting characters +V.NChar RMB 1 character to process +V.NChr2 RMB 1 and the next one + RMB 1 +V.Chr1 RMB 1 same as under cursor character +V.CColr RMB 1 cursor color +V.Col RMB 1 number of columns for this screen +V.Row RMB 1 number of rows +V.Alpha RMB 1 0 when in alpha mode +V.PIA1 RMB 1 PIA1Base value +V.Rdy RMB 1 device ready (see SS.DStat 0=not ready) +V.CFlg1 RMB 1 VDG display code values +V.SBAdd RMB 2 (2) address of block screen is in +V.GBuff RMB 2 allocation for graphics buffers (block#) +V.AGBuf RMB 4 (2) additional graphics buffer +V.FFMem RMB 2 Flood fill alloc'ed mem +V.FFSPt RMB 2 Flood fill current stack pointer +V.FFSTp RMB 1 Flood fill stack top +V.FF6 RMB 1 flood fill flag +V.FFFlag RMB 1 ?? +V.MTabl RMB 2 (2) address of mask table for pixels in byte +V.PixBt RMB 1 bit mask for modes (0=$07, 1=$03 )#pixels/byte +V.GCrsX RMB 1 graphics cursor X value +V.GCrsY RMB 1 graphics cursor Y +V.Msk1 RMB 1 mask byte 1 +V.Msk2 RMB 1 mask byte 2 (00,55,AA,FF) +V.MCol RMB 1 color? (C003,8001) +V.4A RMB 1 +V.PMask RMB 1 pixel mask for colors (i.e. $55, $CC etc) +V.4C RMB 1 +V.4D RMB 1 +V.4E RMB 1 +V.4F RMB 1 +V.Caps RMB 1 caps lock info: $00=lower $FF=upper +V.ClkCnt RMB 1 clock count ?? +V.WrChr RMB 1 character to write +V.CurCo RMB 1 current CO-module in use * start of CoWP-specific static memory -V.Co80X rmb 1 V.54 -V.Co80Y rmb 1 V.55 -V.ColPtr rmb 1 V.56 -V.RowPtr rmb 1 V.57 -V.C80X rmb 1 CoWP X position -V.C80Y rmb 1 CoWP Y position -V.Invers rmb 1 +V.Co80X RMB 1 V.54 +V.Co80Y RMB 1 V.55 +V.ColPtr RMB 1 V.56 +V.RowPtr RMB 1 V.57 +V.C80X RMB 1 CoWP X position +V.C80Y RMB 1 CoWP Y position +V.Invers RMB 1 * end of CoWP-specific static memory -V.DspVct rmb 2 vector to display screen -V.CnvVct rmb 2 vector to X/Y to address conversion -V.LKeyCd rmb 1 last key code -V.2Key1 rmb 1 2nd Key 1 -V.2Key2 rmb 1 2nd Key 2 -V.2Key3 rmb 1 2nd Key 3 -V.Key1 rmb 1 Key 1 -V.Key2 rmb 1 Key 2 -V.Key3 rmb 1 Key 3 -V.ShftDn rmb 1 SHIFT/CTRL state -V.CtrlDn rmb 1 CTRL key down -V.KeyFlg rmb 1 key flag -V.AltDwn rmb 1 ALT key down -V.KySns rmb 1 key sense flags -V.KySame rmb 1 key same as last flag -V.KySnsF rmb 1 key sense flag -V.Spcl rmb 1 -V.KTblLC rmb 1 key table entry # -V.6F rmb 1 ??? -V.COLoad rmb 1 CO-module loaded flags -V.CFlag rmb 1 true lowercase flag $10=true, $00=false -V.GrfDrvE rmb 2 GrfDrv entry point -V.CoVDGE rmb 2 CoVDG entry point -V.CoWPE rmb 2 CoWP entry point -V.CoHRE rmb 2 CoHR entry point +V.DspVct RMB 2 vector to display screen +V.CnvVct RMB 2 vector to X/Y to address conversion +V.LKeyCd RMB 1 last key code +V.2Key1 RMB 1 2nd Key 1 +V.2Key2 RMB 1 2nd Key 2 +V.2Key3 RMB 1 2nd Key 3 +V.Key1 RMB 1 Key 1 +V.Key2 RMB 1 Key 2 +V.Key3 RMB 1 Key 3 +V.ShftDn RMB 1 SHIFT/CTRL state +V.CtrlDn RMB 1 CTRL key down +V.KeyFlg RMB 1 key flag +V.AltDwn RMB 1 ALT key down +V.KySns RMB 1 key sense flags +V.KySame RMB 1 key same as last flag +V.KySnsF RMB 1 key sense flag +V.Spcl RMB 1 +V.KTblLC RMB 1 key table entry # +V.6F RMB 1 ??? +V.COLoad RMB 1 CO-module loaded flags +V.CFlag RMB 1 true lowercase flag $10=true, $00=false +V.GrfDrvE RMB 2 GrfDrv entry point +V.CoVDGE RMB 2 CoVDG entry point +V.CoWPE RMB 2 CoWP entry point +V.CoHRE RMB 2 CoHR entry point -V.Flash rmb 2 Cursor flash routine address. -v.FlashCount rmb 1 Cursor flash count -V.NoFlash rmb 1 When this is noz-zero do not flash cursor +V.Flash RMB 2 Cursor flash routine address. +v.FlashCount RMB 1 Cursor flash count +V.NoFlash RMB 1 When this is non-zero do not flash cursor * CoHR vars -V.51ScrnA rmb 2 * Screen address. -V.51XPos rmb 1 * X co-ordinate -V.51YPos rmb 1 * Y co-ordinate -V.51EscSeq rmb 1 * In escape sequence -V.51ReverseFlag rmb 1 * Reverse video flag -V.51UnderlineFlag rmb 1 * Underline flag -V.51CtrlDispatch rmb 2 * Ctrl char dispatch address, currently processing -V.51BytePixOffset rmb 1 * byte offset in screen line, of character X position -V.51OldCursorPosX rmb 1 * Position of old cursor before update -V.51OldCursorPosY rmb 1 -V.51CursorChanged rmb 1 * Has cursor position changed ? 1=yes,0=no -V.51CursorOn rmb 1 * Is cursor on ? 1=yes 0=no -V.51XORFlag rmb 1 * and data to screen (0) or Xor (1) -V.51ScreenMask1 rmb 1 * screen masks for drawing characters on screen -V.51ScreenMask2 rmb 1 +V.51ScrnA RMB 2 * Screen address. +V.51XPos RMB 1 * X co-ordinate +V.51YPos RMB 1 * Y co-ordinate +V.51EscSeq RMB 1 * In escape sequence +V.51ReverseFlag RMB 1 * Reverse video flag +V.51UnderlineFlag RMB 1 * Underline flag +V.51CtrlDispatch RMB 2 * Ctrl char dispatch address, currently processing +V.51BytePixOffset RMB 1 * byte offset in screen line, of character X position +V.51OldCursorPosX RMB 1 * Position of old cursor before update +V.51OldCursorPosY RMB 1 +V.51CursorChanged RMB 1 * Has cursor position changed ? 1=yes,0=no +V.51CursorOn RMB 1 * Is cursor on ? 1=yes 0=no +V.51XORFlag RMB 1 * and data to screen (0) or Xor (1) +V.51ScreenMask1 RMB 1 * screen masks for drawing characters on screen +V.51ScreenMask2 RMB 1 * End of CoHR vars **** Note these have to come at the end of the defs, or the keyboard **** **** code can clobber variables defined after these ! **** -V.IBufH rmb 1 input buffer head -V.IBufT rmb 1 input buffer tail -V.InBuf rmb 1 input buffer tail -V.51End rmb 1 - rmb 250-. -V.Last equ . - - +V.IBufH RMB 1 input buffer head +V.IBufT RMB 1 input buffer tail +V.InBuf RMB 1 input buffer ptr +V.51End RMB 1 + RMB 250-. +V.Last EQU . + + * Unknown for now *VD.FFMem rmb 2 (2) bottom of stack for flood fill *VD.FFSPt rmb 2 (2) flood fill stack pointer @@ -153,20 +151,20 @@ *VD.FFFlg rmb 1 flood fill flag *VD.Palet rmb 16 (16) current palette values *VD.PlFlg rmb 1 initialized to $08 by L00DB, and then unused! - + * * Defs for V.COLoad flags. * - -ModCoVDG equ %00000010 CoVDG, Built-in VDG 32x16. -ModCoWP equ %00000100 CoWP, WordPak, 80x25 -ModCoHR equ %00001000 CoHR, PMODE 4 51x25 text + +ModCoVDG EQU %00000010 CoVDG, Built-in VDG 32x16. +ModCoWP EQU %00000100 CoWP, WordPak, 80x25 +ModCoHR EQU %00001000 CoHR, PMODE 4 51x25 text * * Defs for cursor flash counter * -CFlash50hz equ 25 * 50Hz flash counter -CFlash60Hz equ 30 * 60Hz flash counter +CFlash50hz EQU 25 * 50Hz flash counter +CFlash60Hz EQU 30 * 60Hz flash counter - ENDC + ENDC
--- a/defs/vtiodefs_cc3 Tue Mar 14 04:09:31 2006 +0000 +++ b/defs/vtiodefs_cc3 Tue Mar 14 12:20:57 2006 +0000 @@ -1,5 +1,5 @@ - IFNE VTIODEFS-1 -VTIODEFS set 1 + IFNE VTIODEFS-1 +VTIODEFS SET 1 ******************************************************************** * VTIODefs - Video Terminal I/O Definitions for CoCo 3 @@ -12,66 +12,66 @@ * 2004/07/18 Boisy G. Pitre * Started from systype - nam VTIODefs - ttl Video Terminal I/O Definitions for CoCo 3 + NAM VTIODefs + TTL Video Terminal I/O Definitions for CoCo 3 **************** * Window Devices * - org $FF9F -A.W rmb 1 $FF9F Generic Window Descriptor -A.TermW rmb 1 $FFA0 Windowing Term -A.W1 rmb 1 $FFA1 -A.W2 rmb 1 $FFA2 -A.W3 rmb 1 $FFA3 -A.W4 rmb 1 $FFA4 -A.W5 rmb 1 $FFA5 -A.W6 rmb 1 $FFA6 -A.W7 rmb 1 $FFA7 -A.W8 rmb 1 $FFA8 -A.W9 rmb 1 $FFA9 -A.W10 rmb 1 $FFAA -A.W11 rmb 1 $FFAB -A.W12 rmb 1 $FFAC -A.W13 rmb 1 $FFAD -A.W14 rmb 1 $FFAE -A.W15 rmb 1 $FFAF + ORG $FF9F +A.W RMB 1 $FF9F Generic Window Descriptor +A.TermW RMB 1 $FFA0 Windowing Term +A.W1 RMB 1 $FFA1 +A.W2 RMB 1 $FFA2 +A.W3 RMB 1 $FFA3 +A.W4 RMB 1 $FFA4 +A.W5 RMB 1 $FFA5 +A.W6 RMB 1 $FFA6 +A.W7 RMB 1 $FFA7 +A.W8 RMB 1 $FFA8 +A.W9 RMB 1 $FFA9 +A.W10 RMB 1 $FFAA +A.W11 RMB 1 $FFAB +A.W12 RMB 1 $FFAC +A.W13 RMB 1 $FFAD +A.W14 RMB 1 $FFAE +A.W15 RMB 1 $FFAF ********************************** * Pointer Device Packet Definition * - org 0 -Pt.Valid rmb 1 Is returned info valid (0=no/1=yes) -Pt.Actv rmb 1 Active Side 0=off/1=Right/2=left -Pt.ToTm rmb 1 Time out Initial value - rmb 2 reserved -Pt.TTTo rmb 1 Time Till Timeout -Pt.TSSt rmb 2 Time Since Start Counter -Pt.CBSA rmb 1 Current Button State Button A -Pt.CBSB rmb 1 Current Button State Button B -Pt.CCtA rmb 1 Click Count Button A -Pt.CCtB rmb 1 Click Count Button B -Pt.TTSA rmb 1 Time This State Counter Button A -Pt.TTSB rmb 1 Time This State Counter Button B -Pt.TLSA rmb 1 Time Last State Counter Button A -Pt.TLSB rmb 1 Time Last State Counter Button B - rmb 2 Reserved -Pt.BDX rmb 2 Button down X value EXPERIMENTAL -Pt.BDY rmb 2 Button down Y value -Pt.Stat rmb 1 Window Pointer type location -Pt.Res rmb 1 Resolution (0..640 by: 0=ten/1=one) -Pt.AcX rmb 2 Actual X Value -Pt.AcY rmb 2 Actual Y Value -Pt.WRX rmb 2 Window Relative X -Pt.WRY rmb 2 Window Relative Y -Pt.Siz equ . Packet Size 32 bytes + ORG 0 +Pt.Valid RMB 1 Is returned info valid (0=no/1=yes) +Pt.Actv RMB 1 Active Side 0=off/1=Right/2=left +Pt.ToTm RMB 1 Time out Initial value + RMB 2 reserved +Pt.TTTo RMB 1 Time Till Timeout +Pt.TSSt RMB 2 Time Since Start Counter +Pt.CBSA RMB 1 Current Button State Button A +Pt.CBSB RMB 1 Current Button State Button B +Pt.CCtA RMB 1 Click Count Button A +Pt.CCtB RMB 1 Click Count Button B +Pt.TTSA RMB 1 Time This State Counter Button A +Pt.TTSB RMB 1 Time This State Counter Button B +Pt.TLSA RMB 1 Time Last State Counter Button A +Pt.TLSB RMB 1 Time Last State Counter Button B + RMB 2 Reserved +Pt.BDX RMB 2 Button down X value EXPERIMENTAL +Pt.BDY RMB 2 Button down Y value +Pt.Stat RMB 1 Window Pointer type location +Pt.Res RMB 1 Resolution (0..640 by: 0=ten/1=one) +Pt.AcX RMB 2 Actual X Value +Pt.AcY RMB 2 Actual Y Value +Pt.WRX RMB 2 Window Relative X +Pt.WRY RMB 2 Window Relative Y +Pt.Siz EQU . Packet Size 32 bytes ************************** * window regions for mouse * -WR.Cntnt equ 0 content region -WR.Cntrl equ 1 control region -WR.OfWin equ 2 off window +WR.Cntnt EQU 0 content region +WR.Cntrl EQU 1 control region +WR.OfWin EQU 2 off window ************************************* * Standard system get/put buffer defs @@ -79,69 +79,69 @@ * * system group numbers * - org 200 -Grp.Fnt rmb 1 font group -Grp.Clip rmb 1 clipboard group -Grp.Ptr rmb 1 pointer group -Grp.Pat2 rmb 1 pattern group 2 color -Grp.Pat4 rmb 1 pattern group 4 color -Grp.Pat6 rmb 1 pattern group 16 color + ORG 200 +Grp.Fnt RMB 1 font group +Grp.Clip RMB 1 clipboard group +Grp.Ptr RMB 1 pointer group +Grp.Pat2 RMB 1 pattern group 2 color +Grp.Pat4 RMB 1 pattern group 4 color +Grp.Pat6 RMB 1 pattern group 16 color * * font buffer numbers * - org 1 -Fnt.S8x8 rmb 1 standard 8x8 font -Fnt.S6x8 rmb 1 standard 6x8 font -Fnt.G8x8 rmb 1 standard graphics 8x8 font + ORG 1 +Fnt.S8x8 RMB 1 standard 8x8 font +Fnt.S6x8 RMB 1 standard 6x8 font +Fnt.G8x8 RMB 1 standard graphics 8x8 font * * pattern buffer numbers * - org 1 -Pat.Dot rmb 1 -Pat.Vrt rmb 1 -Pat.Hrz rmb 1 -Pat.XHtc rmb 1 -Pat.LSnt rmb 1 -Pat.RSnt rmb 1 -Pat.SDot rmb 1 -Pat.BDot rmb 1 + ORG 1 +Pat.Dot RMB 1 +Pat.Vrt RMB 1 +Pat.Hrz RMB 1 +Pat.XHtc RMB 1 +Pat.LSnt RMB 1 +Pat.RSnt RMB 1 +Pat.SDot RMB 1 +Pat.BDot RMB 1 * * pointer buffer numbers * - org 1 -Ptr.Arr rmb 1 Arrow pointer -Ptr.Pen rmb 1 Pencil pointer -Ptr.LCH rmb 1 Large cross hair pointer -Ptr.Slp rmb 1 Wait timer pointer -Ptr.Ill rmb 1 Illegal action pointer -Ptr.Txt rmb 1 Text pointer -Ptr.SCH rmb 1 Small cross hair pointer + ORG 1 +Ptr.Arr RMB 1 Arrow pointer +Ptr.Pen RMB 1 Pencil pointer +Ptr.LCH RMB 1 Large cross hair pointer +Ptr.Slp RMB 1 Wait timer pointer +Ptr.Ill RMB 1 Illegal action pointer +Ptr.Txt RMB 1 Text pointer +Ptr.SCH RMB 1 Small cross hair pointer ********************** * KeyDrv Entry Points - org 0 -K$Init rmb 3 joystick initialization -K$Term rmb 3 joystick termination -K$FnKey rmb 3 get function key states -K$RdKey rmb 3 get key states + ORG 0 +K$Init RMB 3 joystick initialization +K$Term RMB 3 joystick termination +K$FnKey RMB 3 get function key states +K$RdKey RMB 3 get key states ********************** * JoyDrv Entry Points - org 0 -J$Init rmb 3 joystick initialization -J$Term rmb 3 joystick termination -J$MsBtn rmb 3 get mouse button states -J$MsXY rmb 3 get mouse X/Y coordinates -J$JyBtn rmb 3 get joystick button states -J$JyXY rmb 3 get joystick X/Y coordinates + ORG 0 +J$Init RMB 3 joystick initialization +J$Term RMB 3 joystick termination +J$MsBtn RMB 3 get mouse button states +J$MsXY RMB 3 get mouse X/Y coordinates +J$JyBtn RMB 3 get joystick button states +J$JyXY RMB 3 get joystick X/Y coordinates ********************** * SndDrv Entry Points - org 0 -S$Init rmb 3 joystick initialization -S$GetStt rmb 3 joystick termination -S$SetStt rmb 3 joystick termination -S$Term rmb 3 get joystick X/Y coordinates + ORG 0 +S$Init RMB 3 joystick initialization +S$GetStt RMB 3 joystick termination +S$SetStt RMB 3 joystick termination +S$Term RMB 3 get joystick X/Y coordinates ******************************** * Window/Menu Bar Data Structure @@ -149,46 +149,46 @@ * To be used in SS.WnSet SETSTAT to set up a Framed Window * for use in the high level windowing package. * -NUMMENS equ 10 maximum number of menus on menu bar -NUMITMS equ 20 maximum number of items in a menu -MXTTLEN equ 15 max chars for menu and item names -WINSYNC equ $C0C0 synch bytes for window validation +NUMMENS EQU 10 maximum number of menus on menu bar +NUMITMS EQU 20 maximum number of items in a menu +MXTTLEN EQU 15 max chars for menu and item names +WINSYNC EQU $C0C0 synch bytes for window validation * * Menu Item Descriptor : (MN.ITEMS) * one required for each item within the menu * - org 0 -MI.TTL rmb MXTTLEN item name -MI.ENBL rmb 1 enable flag -MI.RES rmb 5 reserved bytes -MI.SIZ equ . size of menu item descriptor + ORG 0 +MI.TTL RMB MXTTLEN item name +MI.ENBL RMB 1 enable flag +MI.RES RMB 5 reserved bytes +MI.SIZ EQU . size of menu item descriptor * * Menu Descriptor : * one for each menu on the manu bar * each is pointed to by MB.MPTR below * - org 0 -MN.TTL rmb MXTTLEN menu title -MN.ID rmb 1 menu id number (1-255) -MN.XSIZ rmb 1 horiz. size of desired pull down -MN.NITS rmb 1 number of items in menu -MN.ENBL rmb 1 enable flag -MN.RES rmb 2 reserved bytes -MN.ITEMS rmb 2 pointer to array of menu items -MN.SIZ equ . size of menu descriptor + ORG 0 +MN.TTL RMB MXTTLEN menu title +MN.ID RMB 1 menu id number (1-255) +MN.XSIZ RMB 1 horiz. size of desired pull down +MN.NITS RMB 1 number of items in menu +MN.ENBL RMB 1 enable flag +MN.RES RMB 2 reserved bytes +MN.ITEMS RMB 2 pointer to array of menu items +MN.SIZ EQU . size of menu descriptor * * Window Descriptor: * one required for each application in a framed window * - org 0 -WN.TTL rmb 20 title of window for title bar -WN.NMNS rmb 1 number of menus in menu bar -WN.XMIN rmb 1 minimal horiz. size for application to run -WN.YMIN rmb 1 minimal vert. size for application to run -WN.SYNC rmb 2 synch bytes ($C0C0) -WN.RES rmb 7 reserved bytes -WN.BAR rmb 2 pointer to arry of menu descriptors -WN.SIZ equ . size of window/menu bar descriptor + ORG 0 +WN.TTL RMB 20 title of window for title bar +WN.NMNS RMB 1 number of menus in menu bar +WN.XMIN RMB 1 minimal horiz. size for application to run +WN.YMIN RMB 1 minimal vert. size for application to run +WN.SYNC RMB 2 synch bytes ($C0C0) +WN.RES RMB 7 reserved bytes +WN.BAR RMB 2 pointer to arry of menu descriptors +WN.SIZ EQU . size of window/menu bar descriptor ************************* * Window Type Definitions @@ -196,32 +196,32 @@ * To be used in setting up the border of the window in * the SS.WnSel SETSTAT * - org 0 -WT.NBox rmb 1 No Box -WT.FWin rmb 1 Framed Window -WT.FSWin rmb 1 Framed Window w/Scroll Bars -WT.SBox rmb 1 Shadowed Box -WT.DBox rmb 1 Double Box -WT.PBox rmb 1 Plain Box + ORG 0 +WT.NBox RMB 1 No Box +WT.FWin RMB 1 Framed Window +WT.FSWin RMB 1 Framed Window w/Scroll Bars +WT.SBox RMB 1 Shadowed Box +WT.DBox RMB 1 Double Box +WT.PBox RMB 1 Plain Box ************************************* * Pre-Defined Menu IDs for the system * - org 1 -MId.Mov rmb 1 move box -MId.Cls rmb 1 close box -MId.Grw rmb 1 grow box -MId.SUp rmb 1 scroll up -MId.SDn rmb 1 scroll down -MId.SRt rmb 1 scroll right -MId.SLt rmb 1 scroll left -MId.Chr rmb 1 character was depressed - org 20 -MId.Tdy rmb 1 Tandy menu -MId.Fil rmb 1 Files Menu -MId.Edt rmb 1 Edit Menu -MId.Sty rmb 1 Styles menu -MId.Fnt rmb 1 Font menu + ORG 1 +MId.Mov RMB 1 move box +MId.Cls RMB 1 close box +MId.Grw RMB 1 grow box +MId.SUp RMB 1 scroll up +MId.SDn RMB 1 scroll down +MId.SRt RMB 1 scroll right +MId.SLt RMB 1 scroll left +MId.Chr RMB 1 character was depressed + ORG 20 +MId.Tdy RMB 1 Tandy menu +MId.Fil RMB 1 Files Menu +MId.Edt RMB 1 Edit Menu +MId.Sty RMB 1 Styles menu +MId.Fnt RMB 1 Font menu ****************************************************************************** @@ -264,25 +264,25 @@ ****************************************************************************** * User settable values for VTIO/TC9IO/GrfInt/WindInt & GrfDrv -MaxLines equ 25 Max. Y coord text value -Meg set false "true" if 1 or 2 meg machine +MaxLines EQU 25 Max. Y coord text value +Meg SET false "true" if 1 or 2 meg machine -COMP equ 0 composite monitor -RGB equ 1 RGB Analog monitor -MONO equ 2 monochrome monitor +COMP EQU 0 composite monitor +RGB EQU 1 RGB Analog monitor +MONO EQU 2 monochrome monitor -Monitor set RGB +Monitor SET RGB * Global definitions -KeyMse equ %00000001 keyboard mouse enabled -NumLck equ %00000010 Numlock enabled (TC-9 use only) -CapsLck equ %00000100 Capslock enabled -MaxRows equ 640 maximum X co-ordinate allowed on mouse - IFEQ MaxLines-25 -MaxLine equ 198 maximum Y co-ordinate allowed on mouse - ELSE -MaxLine equ 191 maximum Y co-ordinate allowed on mouse - ENDC +KeyMse EQU %00000001 keyboard mouse enabled +NumLck EQU %00000010 Numlock enabled (TC-9 use only) +CapsLck EQU %00000100 Capslock enabled +MaxRows EQU 640 maximum X co-ordinate allowed on mouse + IFEQ MaxLines-25 +MaxLine EQU 198 maximum Y co-ordinate allowed on mouse + ELSE +MaxLine EQU 191 maximum Y co-ordinate allowed on mouse + ENDC ***************************************************************************** * Static memory area for each window (VTIO/TC9IO) @@ -294,387 +294,387 @@ * * STRONG CAUTION: scfdefs MUST be included first before this file if * V.SCF is to be resolved properly in pass 1!! - org V.SCF -V.WinType rmb 1 window type (0=Windint/GrfInt,2=VDGInt) $1D -V.InfVld rmb 1 Rest of info here valid? (0=NO, >0 = YES) $1E -V.DevPar rmb 2 high bit=window device $1F -V.ULCase rmb 1 special key flags (Capslck & keyboard mouse) $21 -V.KySnsFlg rmb 1 flag for key sense setstat $22 -V.ScrChg rmb 1 screen change flag $23 -V.SSigID rmb 1 data ready process ID $24 -V.SSigSg rmb 1 data ready signal code $25 -V.MSigID rmb 1 mouse signal process ID $26 -V.MSigSg rmb 1 mouse signal signal code $27 -V.MSmpl rmb 1 mouse sample rate $28 -V.MTime rmb 1 mouse timeout value $29 - rmb 1 unused $2A -V.MAutoF rmb 1 auto follow mouse flag $2B -V.ParmCnt rmb 1 parameter count $2C -V.ParmVct rmb 2 parameter vector $2D -V.PrmStrt rmb 2 pointer to params start $2F -V.NxtPrm rmb 2 pointer to next param storage $31 -V.EndPtr rmb 1 last character read offset $33 -V.InpPtr rmb 1 next character read offset $34 -V.WinNum rmb 1 window table entry # $35 -V.DWNum rmb 1 dwnum from descriptor $36 -V.CallCde rmb 1 internal comod call code # $37 -CC3Parm rmb 128-. global parameter area -ReadBuf rmb 256-. read input buffer (keyboard) -CC3DSiz equ . + ORG V.SCF +V.WinType RMB 1 window type (0=Windint/GrfInt,2=VDGInt) $1D +V.InfVld RMB 1 Rest of info here valid? (0=NO, >0 = YES) $1E +V.DevPar RMB 2 high bit=window device $1F +V.ULCase RMB 1 special key flags (Capslck & keyboard mouse) $21 +V.KySnsFlg RMB 1 flag for key sense setstat $22 +V.ScrChg RMB 1 screen change flag $23 +V.SSigID RMB 1 data ready process ID $24 +V.SSigSg RMB 1 data ready signal code $25 +V.MSigID RMB 1 mouse signal process ID $26 +V.MSigSg RMB 1 mouse signal signal code $27 +V.MSmpl RMB 1 mouse sample rate $28 +V.MTime RMB 1 mouse timeout value $29 + RMB 1 unused $2A +V.MAutoF RMB 1 auto follow mouse flag $2B +V.ParmCnt RMB 1 parameter count $2C +V.ParmVct RMB 2 parameter vector $2D +V.PrmStrt RMB 2 pointer to params start $2F +V.NxtPrm RMB 2 pointer to next param storage $31 +V.EndPtr RMB 1 last character read offset $33 +V.InpPtr RMB 1 next character read offset $34 +V.WinNum RMB 1 window table entry # $35 +V.DWNum RMB 1 dwnum from descriptor $36 +V.CallCde RMB 1 internal comod call code # $37 +CC3Parm RMB 128-. global parameter area +ReadBuf RMB 256-. read input buffer (keyboard) +CC3DSiz EQU . ***************************************************************************** * GrfInt/WindInt global memory area * This area sits in system block 0 from $1000 to $10ff -WGlobal equ $1000 useful value (points to address starting below) - org 0 -G.CurTik rmb 1 Constant - # Clock ticks/cursor updates (2) -G.CntTik rmb 1 Current tick count for cursor updates -G.GfBusy rmb 1 Grfdrv is busy flag (1=busy) -G.OrgAlt rmb 2 Place to store D.AltIRQ before altering +WGlobal EQU $1000 useful value (points to address starting below) + ORG 0 +G.CurTik RMB 1 Constant - # Clock ticks/cursor updates (2) +G.CntTik RMB 1 Current tick count for cursor updates +G.GfBusy RMB 1 Grfdrv is busy flag (1=busy) +G.OrgAlt RMB 2 Place to store D.AltIRQ before altering *g0003 rmb 2 NEW: UNUSED -g0005 rmb 2 Temp save in Windint RG -G.GrfStk rmb 2 grfdrv stack pointer ($07) -G.MonTyp rmb 1 monitor type -g000A equ . Old label for compatibility -G.CrDvFl rmb 1 Are we current device flag (only set when all +g0005 RMB 2 Temp save in Windint RG +G.GrfStk RMB 2 grfdrv stack pointer ($07) +G.MonTyp RMB 1 monitor type +g000A EQU . Old label for compatibility +G.CrDvFl RMB 1 Are we current device flag (only set when all * Parms have been moved to Dev Mem) * 0=We are not on our device * 1=We are the current device * (Used by comod (GRF/WIND/VDGInt) to determine * whether or not to update GIME regs themselves * If not current device, they don't.) -G.WinType rmb 1 current device's V.TYPE -G.CurDvM rmb 2 current device memory pointer for co-module use -G.WIBusy rmb 1 WindInt is busy flag (1=busy) -G.AlPckt rmb 6 F$Alarm time packet -G.AlPID rmb 1 F$Alarm proc ID ($15) -G.AlSig rmb 1 F$Alarm signal code ($16) -G.BelVec rmb 2 BELL routine vector -G.DefPal rmb 2 pointer to default palette data in global mem -G.TnCnt rmb 1 SS.Tone duration counter -G.BelTnF rmb 1 BELL tone flag -g001D rmb 3 -G.CurDev rmb 2 current device's static memory pointer ($20) -G.PrWMPt rmb 2 previous window static mem pointer $(22) -G.BCFFlg rmb 1 bit coded co-module found flags ($24) +G.WinType RMB 1 current device's V.TYPE +G.CurDvM RMB 2 current device memory pointer for co-module use +G.WIBusy RMB 1 WindInt is busy flag (1=busy) +G.AlPckt RMB 6 F$Alarm time packet +G.AlPID RMB 1 F$Alarm proc ID ($15) +G.AlSig RMB 1 F$Alarm signal code ($16) +G.BelVec RMB 2 BELL routine vector +G.DefPal RMB 2 pointer to default palette data in global mem +G.TnCnt RMB 1 SS.Tone duration counter +G.BelTnF RMB 1 BELL tone flag +g001D RMB 3 +G.CurDev RMB 2 current device's static memory pointer ($20) +G.PrWMPt RMB 2 previous window static mem pointer $(22) +G.BCFFlg RMB 1 bit coded co-module found flags ($24) * 00000010 : VDGInt found * 10000000 : GrfDrv found -g0025 rmb 1 -G.KTblLC rmb 1 Key table entry# last checked (1-3) +g0025 RMB 1 +G.KTblLC RMB 1 Key table entry# last checked (1-3) * IFEQ TC9-true *CurLght rmb 1 current keyboard light settings * ELSE -G.LastCh rmb 1 last keyboard character (ASCII value) +G.LastCh RMB 1 last keyboard character (ASCII value) * ENDC -G.LKeyCd rmb 1 last keyboard code -G.KyRept rmb 1 key repeat counter +G.LKeyCd RMB 1 last keyboard code +G.KyRept RMB 1 key repeat counter * A secondary 3 key table (same format as g002D below) -G.2Key1 rmb 1 $2A -G.2Key2 rmb 1 $2B -G.2Key3 rmb 1 +G.2Key1 RMB 1 $2A +G.2Key2 RMB 1 $2B +G.2Key3 RMB 1 * Up to 3 keys can be registerd at once, and they are stored here. If more * than 3 are hit, the last key is overwritten with the very last key down that * was checked. Format for all three is the same as the PIA column/row byte @ * KeyFlag below. -G.Key1 rmb 1 Key 1 being held down (Row/Column #) -G.Key2 rmb 1 Key 2 being held down (Row/Column #) -G.Key3 rmb 1 Key 3 being held down (Row/Column #) -G.ShftDn rmb 1 SHIFT key down flag (COM'd) ($30) -G.CntlDn rmb 1 CTRL key down flag (0=NO) -G.KeyFlg rmb 1 Keyboard PIA bit #'s for columns/rows +G.Key1 RMB 1 Key 1 being held down (Row/Column #) +G.Key2 RMB 1 Key 2 being held down (Row/Column #) +G.Key3 RMB 1 Key 3 being held down (Row/Column #) +G.ShftDn RMB 1 SHIFT key down flag (COM'd) ($30) +G.CntlDn RMB 1 CTRL key down flag (0=NO) +G.KeyFlg RMB 1 Keyboard PIA bit #'s for columns/rows * %00000111-Column # (Output, 0-7) * %00111000-Row # (Input, 0-6) -G.AltDwn rmb 1 ALT key down flag (0=NO) -G.KySns rmb 1 key sense byte -G.KySame rmb 1 same key flag -G.CapLok rmb 1 CapsLock/SysRq key down flag - rmb 1 -g0038 rmb 1 grfdrv initialized flag - rmb 2 -G.MSmpRt rmb 1 Current mouse sample # (# ticks till next read) -G.Mouse rmb Pt.Siz mouse packet ($3C) -g005C rmb 2 Temp for relative mouse X coord calculation -g005E rmb 2 Temp for relative mouse Y coord calculation -G.MSmpRV rmb 1 Mouse sample reset value (# ticks till next read) -G.KyDly rmb 1 initial key repeat delay constant ($61) -G.KySpd rmb 1 secondary key repeat delay constant +G.AltDwn RMB 1 ALT key down flag (0=NO) +G.KySns RMB 1 key sense byte +G.KySame RMB 1 same key flag +G.CapLok RMB 1 CapsLock/SysRq key down flag + RMB 1 +g0038 RMB 1 grfdrv initialized flag + RMB 2 +G.MSmpRt RMB 1 Current mouse sample # (# ticks till next read) +G.Mouse RMB Pt.Siz mouse packet ($3C) +g005C RMB 2 Temp for relative mouse X coord calculation +g005E RMB 2 Temp for relative mouse Y coord calculation +G.MSmpRV RMB 1 Mouse sample reset value (# ticks till next read) +G.KyDly RMB 1 initial key repeat delay constant ($61) +G.KySpd RMB 1 secondary key repeat delay constant * IFEQ TC9-true *KeyParm rmb 1 keyboard command parameter byte * ELSE -G.KyMse rmb 1 keyboard mouse flag ($63) +G.KyMse RMB 1 keyboard mouse flag ($63) * ENDC -G.Clear rmb 1 "one-shot" CapsLock/SysRq key flag ($64) -G.KyButt rmb 1 keyboard F1 and F2 "fire" button info ($65) -G.AutoMs rmb 1 Auto-follow mouse flag for current device (0=NO) -G.MseMv rmb 1 mouse moved flag ($67) -G.CoTble rmb 6 co-module table ($68) -G.GrfEnt rmb 2 GRFDRV Entry address ($6E) -g0070 rmb 1 # bytes to move in 1 block (1-72) -G.WUseTb rmb 4 windows in use bit table (0=unused, 32 windows) ($71) -G.GfxTbl rmb 2 Pointer to GFX tables ($75) -G.WrkWTb rmb $40 Work window table. WindInt only ($77) -g00B7 rmb 2 Current Device static mem ptr for WindInt -g00B9 rmb 2 Current window table ptr for WindInt -g00BB rmb 2 Pointer to work window table (g0077+$10) -g00BD rmb 1 Current screen type for work window table -g00BE rmb 1 Topmost overlay window # when check for title bars -g00BF rmb 1 Flag for keypress while processing menu select -g00C0 rmb 2 Ptr to current path descriptor -G.WindBk rmb 2 shift-clear routine vector -G.MsInit rmb 2 set mouse routine vector -G.MsSig rmb 1 mouse signal flag -G.DefPls rmb 16 Default palettes (2 repeats of 8 is default) ($C7) -g00D7 rmb 9 -G.KeyEnt rmb 2 entry to keydrv subroutine module ($E0) -G.KeyMem rmb 8 static memory for keydrv subroutine module -G.JoyEnt rmb 2 entry to joydrv subroutine module ($EA) -G.JoyMem rmb 8 static memory for joydrv subroutine module -G.SndEnt rmb 2 entry to snddrv subroutine module ($F4) -G.SndMem rmb 8 static memory for snddrv subroutine module +G.Clear RMB 1 "one-shot" CapsLock/SysRq key flag ($64) +G.KyButt RMB 1 keyboard F1 and F2 "fire" button info ($65) +G.AutoMs RMB 1 Auto-follow mouse flag for current device (0=NO) +G.MseMv RMB 1 mouse moved flag ($67) +G.CoTble RMB 6 co-module table ($68) +G.GrfEnt RMB 2 GRFDRV Entry address ($6E) +g0070 RMB 1 # bytes to move in 1 block (1-72) +G.WUseTb RMB 4 windows in use bit table (0=unused, 32 windows) ($71) +G.GfxTbl RMB 2 Pointer to GFX tables ($75) +G.WrkWTb RMB $40 Work window table. WindInt only ($77) +g00B7 RMB 2 Current Device static mem ptr for WindInt +g00B9 RMB 2 Current window table ptr for WindInt +g00BB RMB 2 Pointer to work window table (g0077+$10) +g00BD RMB 1 Current screen type for work window table +g00BE RMB 1 Topmost overlay window # when check for title bars +g00BF RMB 1 Flag for keypress while processing menu select +g00C0 RMB 2 Ptr to current path descriptor +G.WindBk RMB 2 shift-clear routine vector +G.MsInit RMB 2 set mouse routine vector +G.MsSig RMB 1 mouse signal flag +G.DefPls RMB 16 Default palettes (2 repeats of 8 is default) ($C7) +g00D7 RMB 9 +G.KeyEnt RMB 2 entry to keydrv subroutine module ($E0) +G.KeyMem RMB 8 static memory for keydrv subroutine module +G.JoyEnt RMB 2 entry to joydrv subroutine module ($EA) +G.JoyMem RMB 8 static memory for joydrv subroutine module +G.SndEnt RMB 2 entry to snddrv subroutine module ($F4) +G.SndMem RMB 8 static memory for snddrv subroutine module ***************************************************************************** * GrfDrv global memory data definitions * This area sits in system block 0 from $1100 to $119E -GrfMem equ $1100 useful label used to point to mem starting below - org 0 -gr0000 rmb 1 Pixel mask for 1st byte of GP line -gr0001 rmb 1 Pixel mask for last byte of a GP line -gr0002 rmb 2 Ptr to table of bit masks for colors -gr0004 rmb 1 # of bytes wide GP buffer is (including partials) -gr0005 rmb 1 # pixels per byte in GP Buffer -gr0006 rmb 1 # of pixels used in 1st byte of GP buffer line -gr0007 rmb 1 # of pixels used in last byte of GP buffer line -gr0008 rmb 1 Bit mask that is common to both screen & GP buffer -gr0009 rmb 1 # bytes for width of overlay window -gr000A rmb 1 # bytes to offset to get to next line after +GrfMem EQU $1100 useful label used to point to mem starting below + ORG 0 +gr0000 RMB 1 Pixel mask for 1st byte of GP line +gr0001 RMB 1 Pixel mask for last byte of a GP line +gr0002 RMB 2 Ptr to table of bit masks for colors +gr0004 RMB 1 # of bytes wide GP buffer is (including partials) +gr0005 RMB 1 # pixels per byte in GP Buffer +gr0006 RMB 1 # of pixels used in 1st byte of GP buffer line +gr0007 RMB 1 # of pixels used in last byte of GP buffer line +gr0008 RMB 1 Bit mask that is common to both screen & GP buffer +gr0009 RMB 1 # bytes for width of overlay window +gr000A RMB 1 # bytes to offset to get to next line after * overlay width has been copied -gr000B rmb 1 -gr000C rmb 2 Cursor address for proportional spacing? -gr000E rmb 1 -gr000F rmb 1 Left-based bit mask for proportional spacing? -gr0010 rmb 2 Vector for text to gfx screen (either prop. or normal) -gr0012 rmb 6 -gr0018 rmb 2 Working Center X coord for Circle/Ellipse -gr001A rmb 2 Working Center Y coord for Circle/Ellipse -gr001C rmb 2 Some variable for Circle/Ellipse (initially 0) -gr001E rmb 2 Working Y radius value for Circle/Ellipse -gr0020 rmb 2 Arc 'clip line' X01 -gr0022 rmb 2 Arc 'clip line' Y01 -gr0024 rmb 2 Arc 'clip line' X02 -gr0026 rmb 2 Arc 'clip line' Y02 -gr0028 rmb 1 full-byte background color to FFILL on mask -gr0029 rmb 1 pixels per byte: set up by FFILL -gr002A rmb 1 Flag for FFill: 1=no error, 0=Stack overflow error -gr002B rmb 1 current Y-direction to travel in FFILL -gr002C rmb 2 -gr002E rmb 2 current window table entry -gr0030 rmb 2 current screen table ptr -gr0032 rmb 1 Last block # we used for buffers -gr0033 rmb 2 Last offset we used for buffers -gr0035 rmb 1 group -gr0036 rmb 2 offset -gr0038 rmb 1 group returned (new) -gr0039 rmb 1 0=Text cursor inverted off, >0 is inverted on -gr003A rmb 1 0=Graphics cursor XOR'd off,>0 is XOR'd on scrn -gr003B rmb 2 end of vars ptr? -gr003D rmb 2 Last X coordinate Graphics cursor was ON at -gr003F rmb 2 Last Y coordinate Graphics cursor was ON at -gr0041 rmb 2 Screen address for start of current gfx cursor -gr0043 rmb 1 Pixel mask for start of gfx cursor -gr0044 rmb 1 Block # Graphics cursor is in -gr0045 rmb 2 Offset in block Graphics cursor is in -gr0047 rmb 2 'Working' X coordinate -gr0049 rmb 2 'Working' Y coordinate -gr004B rmb 2 current X -gr004D rmb 2 current Y -gr004F rmb 2 X Size (in bytes) -gr0051 rmb 2 Y Size (in bytes) -gr0053 rmb 2 Horizontal radius (circle/ellipse/arc) -gr0055 rmb 2 Vertical radius (circle/ellipse/arc) -gr0057 rmb 1 group -gr0058 rmb 1 buffer # -gr0059 rmb 1 save switch for overlay -gr005A rmb 1 PRN -gr005B rmb 2 X coordinate of Graphics cursor -gr005D rmb 2 Y coordinate of Graphics cursor -gr005F rmb 1 ATD: new video mode for 24/25/28-line windows -Gr.STYMk rmb 1 STY marker -gr0061 rmb 1 foreground RGB data -gr0062 rmb 1 background RGB data -gr0063 rmb 1 bytes/row (on current screen...not window) -gr0064 rmb 2 PSet vector -gr0066 rmb 2 pset offset -gr0068 rmb 2 LSet vector -gr006A rmb 2 max X co-ordinate -gr006C rmb 2 max Y co-ordinate -gr006E rmb 2 X pixel count -gr0070 rmb 2 Y pixel count -gr0072 rmb 2 Screen address of pixel we are doing -gr0074 rmb 1 Pixel mask for pixel we are doing -gr0075 rmb 2 ??? Pixel mask for last byte of GP buffer? -gr0077 rmb 2 Vector for right direction FFill -gr0079 rmb 1 bit mask for 1st pixel in byte for right dir. FFill -gr007A rmb 2 Vector for left direction FFill -gr007C rmb 1 bit mask for last pixel in byte for left dir. FFill -gr007D rmb 1 buffer block # -gr007E rmb 2 buffer offset # -gr0080 rmb 2 Buffer length (in bytes) -gr0082 rmb 3 3 byte extended screen address -gr0085 rmb 2 temp -gr0087 rmb 16 grfdrv (sysmap 1) DAT image -gr0097 rmb 1 temp -gr0098 rmb 1 temp +gr000B RMB 1 +gr000C RMB 2 Cursor address for proportional spacing? +gr000E RMB 1 +gr000F RMB 1 Left-based bit mask for proportional spacing? +gr0010 RMB 2 Vector for text to gfx screen (either prop. or normal) +gr0012 RMB 6 +gr0018 RMB 2 Working Center X coord for Circle/Ellipse +gr001A RMB 2 Working Center Y coord for Circle/Ellipse +gr001C RMB 2 Some variable for Circle/Ellipse (initially 0) +gr001E RMB 2 Working Y radius value for Circle/Ellipse +gr0020 RMB 2 Arc 'clip line' X01 +gr0022 RMB 2 Arc 'clip line' Y01 +gr0024 RMB 2 Arc 'clip line' X02 +gr0026 RMB 2 Arc 'clip line' Y02 +gr0028 RMB 1 full-byte background color to FFILL on mask +gr0029 RMB 1 pixels per byte: set up by FFILL +gr002A RMB 1 Flag for FFill: 1=no error, 0=Stack overflow error +gr002B RMB 1 current Y-direction to travel in FFILL +gr002C RMB 2 +gr002E RMB 2 current window table entry +gr0030 RMB 2 current screen table ptr +gr0032 RMB 1 Last block # we used for buffers +gr0033 RMB 2 Last offset we used for buffers +gr0035 RMB 1 group +gr0036 RMB 2 offset +gr0038 RMB 1 group returned (new) +gr0039 RMB 1 0=Text cursor inverted off, >0 is inverted on +gr003A RMB 1 0=Graphics cursor XOR'd off,>0 is XOR'd on scrn +gr003B RMB 2 end of vars ptr? +gr003D RMB 2 Last X coordinate Graphics cursor was ON at +gr003F RMB 2 Last Y coordinate Graphics cursor was ON at +gr0041 RMB 2 Screen address for start of current gfx cursor +gr0043 RMB 1 Pixel mask for start of gfx cursor +gr0044 RMB 1 Block # Graphics cursor is in +gr0045 RMB 2 Offset in block Graphics cursor is in +gr0047 RMB 2 'Working' X coordinate +gr0049 RMB 2 'Working' Y coordinate +gr004B RMB 2 current X +gr004D RMB 2 current Y +gr004F RMB 2 X Size (in bytes) +gr0051 RMB 2 Y Size (in bytes) +gr0053 RMB 2 Horizontal radius (circle/ellipse/arc) +gr0055 RMB 2 Vertical radius (circle/ellipse/arc) +gr0057 RMB 1 group +gr0058 RMB 1 buffer # +gr0059 RMB 1 save switch for overlay +gr005A RMB 1 PRN +gr005B RMB 2 X coordinate of Graphics cursor +gr005D RMB 2 Y coordinate of Graphics cursor +gr005F RMB 1 ATD: new video mode for 24/25/28-line windows +Gr.STYMk RMB 1 STY marker +gr0061 RMB 1 foreground RGB data +gr0062 RMB 1 background RGB data +gr0063 RMB 1 bytes/row (on current screen...not window) +gr0064 RMB 2 PSet vector +gr0066 RMB 2 pset offset +gr0068 RMB 2 LSet vector +gr006A RMB 2 max X co-ordinate +gr006C RMB 2 max Y co-ordinate +gr006E RMB 2 X pixel count +gr0070 RMB 2 Y pixel count +gr0072 RMB 2 Screen address of pixel we are doing +gr0074 RMB 1 Pixel mask for pixel we are doing +gr0075 RMB 2 ??? Pixel mask for last byte of GP buffer? +gr0077 RMB 2 Vector for right direction FFill +gr0079 RMB 1 bit mask for 1st pixel in byte for right dir. FFill +gr007A RMB 2 Vector for left direction FFill +gr007C RMB 1 bit mask for last pixel in byte for left dir. FFill +gr007D RMB 1 buffer block # +gr007E RMB 2 buffer offset # +gr0080 RMB 2 Buffer length (in bytes) +gr0082 RMB 3 3 byte extended screen address +gr0085 RMB 2 temp +gr0087 RMB 16 grfdrv (sysmap 1) DAT image +gr0097 RMB 1 temp +gr0098 RMB 1 temp * In ARC, 97-98 is the width of the clip line in pixels (after scaling) -gr0099 rmb 2 temp +gr0099 RMB 2 temp * In ARC, 99-9A is the height of the clip line in pixels (after scaling) -gr009B rmb 1 counter temp -gr009C rmb 1 -gr009D rmb 2 offset to buffer in block -gr009F rmb 1 -gr00A0 rmb 1 # lines left to do of GP buffer onto screen -gr00A1 rmb 2 vector routine for (changes lots) +gr009B RMB 1 counter temp +gr009C RMB 1 +gr009D RMB 2 offset to buffer in block +gr009F RMB 1 +gr00A0 RMB 1 # lines left to do of GP buffer onto screen +gr00A1 RMB 2 vector routine for (changes lots) * In ARC A1-A2 is the vector to the proper clipping routine -gr00A3 rmb 2 Vector for shifting GP buffers -gr00A5 rmb 2 Vector for shifting GP buffers (can dupe A1) -gr00A7 rmb 2 -gr00A9 rmb 2 NEW: Window tbl ptr for last window GRFDRV used -grBigFnt rmb 2 Flag for 224 char font/gfx mode on (0=No) V2.00a -gr00AD rmb 2 FFill:orig. start X coord|Circ/Ell saved start X -gr00AF rmb 2 FFill:orig. start Y coord|Circ/Ell saved end X -gr00B1 rmb 1 Flag in FFill: 1=1st time through, 0=not 1st time -gr00B2 rmb 1 Filled (circle,ellipse) flag 0=Not filled +gr00A3 RMB 2 Vector for shifting GP buffers +gr00A5 RMB 2 Vector for shifting GP buffers (can dupe A1) +gr00A7 RMB 2 +gr00A9 RMB 2 NEW: Window tbl ptr for last window GRFDRV used +grBigFnt RMB 2 Flag for 224 char font/gfx mode on (0=No) V2.00a +gr00AD RMB 2 FFill:orig. start X coord|Circ/Ell saved start X +gr00AF RMB 2 FFill:orig. start Y coord|Circ/Ell saved end X +gr00B1 RMB 1 Flag in FFill: 1=1st time through, 0=not 1st time +gr00B2 RMB 1 Filled (circle,ellipse) flag 0=Not filled *gr00B3 rmb 256-. ??? UNUSED -gr00B3 rmb 1 temp veriable grfdrv -gr00B4 rmb 1 temp veriable grfdrv -gr00B5 rmb 1 regW for grfdrv -gr00B6 rmb 1 -gr00B7 rmb 2 -gr00B9 rmb 2 previously used in grfdrv at $B2 but not for Filled Flag -gr00BB rmb 2 previously used in grfdrv at $B4 -gr00BD rmb 2 previously used in grfdrv at $B6 -gr00BF rmb 256-. +gr00B3 RMB 1 temp veriable grfdrv +gr00B4 RMB 1 temp veriable grfdrv +gr00B5 RMB 1 regW for grfdrv +gr00B6 RMB 1 +gr00B7 RMB 2 +gr00B9 RMB 2 previously used in grfdrv at $B2 but not for Filled Flag +gr00BB RMB 2 previously used in grfdrv at $B4 +gr00BD RMB 2 previously used in grfdrv at $B6 +gr00BF RMB 256-. * GPLoad buffer - $1200 in system block 0 -GPBuf rmb 72 common move buffer for gpload/get/put -gb0000 equ 72 Size of get/put buffer ($48) +GPBuf RMB 72 common move buffer for gpload/get/put +gb0000 EQU 72 Size of get/put buffer ($48) ***************************************************************************** * Window table entry structure * These tables sit in system block 0 and there is 1 for every window init'd * including any overlay windows. -MaxWind equ 32 maximum allowable window tables -WinBase equ $1290 base address to start of window tables - org -$10 -Wt.STbl rmb 2 Screen table pointer ($FFFF=Not used) -$10 -Wt.BLnk rmb 1 overlay window parent entry # ($FF=base) -$0E -Wt.LStrt rmb 2 screen logical start address -$0D -Wt.CPX rmb 1 current X coord. start -$0B -Wt.CPY rmb 1 current Y coord. start -$0A -Wt.SZX rmb 1 current X size (CWArea) -$09 -Wt.SZY rmb 1 current Y size (CWArea) -$08 -Wt.SXFct rmb 1 X scaling factor -$07 -Wt.SYFct rmb 1 Y scaling factor (0=no scaling) -$06 -Wt.Cur rmb 2 cursor physical address on screen -$05 -Wt.FMsk rmb 1 font bit mask (based from left) -$03 -Wt.CurX rmb 2 X coord of cursor -$02 -Wt.CurY rmb 2 Y Coord of cursor $00 -Wt.XBCnt rmb 1 width of window (in bytes) $02 -Wt.CWTmp rmb 1 bytes wide each text chr (1,2,4) $03 -Wt.BRow rmb 2 bytes/text row (8x width in gfx) $04 -Wt.Fore rmb 1 foreground palette # $06 -Wt.Back rmb 1 background palette # $07 -Wt.Attr rmb 1 default attributes (FUTTTBBB) $08 -Wt.BSW rmb 1 character BSW switches $09 -Wt.LSet rmb 1 LSet type $0A -Wt.FBlk rmb 1 Font memory block # $0B -Wt.FOff rmb 2 Font offset in block $0C -Wt.PBlk rmb 1 PSet memory block # $0E -Wt.POff rmb 2 PSet offset in block $0F -Wt.OBlk rmb 1 Overlay memory block # $11 -Wt.OOff rmb 2 Overlay offset in block $12 -Wt.LVec rmb 2 LSet vector $14 -Wt.PVec rmb 2 PSet vector $16 -Wt.GBlk rmb 1 GCursor memory block # $18 -Wt.GOff rmb 2 GCursor offset in block $19 -Wt.MaxX rmb 2 Maximum X cord. (0-79,0-639) $1B -Wt.MaxY rmb 2 Maximum Y cord. (0-24,0-191) $1D -Wt.BLen rmb 2 bytes left in GPLoad block below $1F -Wt.NBlk rmb 1 memory block # for next GPLoad $21 -Wt.NOff rmb 2 Offset in block for next GPLoad $22 -Wt.LStDf rmb 2 screen logical start default $24 +MaxWind EQU 32 maximum allowable window tables +WinBase EQU $1290 base address to start of window tables + ORG -$10 +Wt.STbl RMB 2 Screen table pointer ($FFFF=Not used) -$10 +Wt.BLnk RMB 1 overlay window parent entry # ($FF=base) -$0E +Wt.LStrt RMB 2 screen logical start address -$0D +Wt.CPX RMB 1 current X coord. start -$0B +Wt.CPY RMB 1 current Y coord. start -$0A +Wt.SZX RMB 1 current X size (CWArea) -$09 +Wt.SZY RMB 1 current Y size (CWArea) -$08 +Wt.SXFct RMB 1 X scaling factor -$07 +Wt.SYFct RMB 1 Y scaling factor (0=no scaling) -$06 +Wt.Cur RMB 2 cursor physical address on screen -$05 +Wt.FMsk RMB 1 font bit mask (based from left) -$03 +Wt.CurX RMB 2 X coord of cursor -$02 +Wt.CurY RMB 2 Y Coord of cursor $00 +Wt.XBCnt RMB 1 width of window (in bytes) $02 +Wt.CWTmp RMB 1 bytes wide each text chr (1,2,4) $03 +Wt.BRow RMB 2 bytes/text row (8x width in gfx) $04 +Wt.Fore RMB 1 foreground palette # $06 +Wt.Back RMB 1 background palette # $07 +Wt.Attr RMB 1 default attributes (FUTTTBBB) $08 +Wt.BSW RMB 1 character BSW switches $09 +Wt.LSet RMB 1 LSet type $0A +Wt.FBlk RMB 1 Font memory block # $0B +Wt.FOff RMB 2 Font offset in block $0C +Wt.PBlk RMB 1 PSet memory block # $0E +Wt.POff RMB 2 PSet offset in block $0F +Wt.OBlk RMB 1 Overlay memory block # $11 +Wt.OOff RMB 2 Overlay offset in block $12 +Wt.LVec RMB 2 LSet vector $14 +Wt.PVec RMB 2 PSet vector $16 +Wt.GBlk RMB 1 GCursor memory block # $18 +Wt.GOff RMB 2 GCursor offset in block $19 +Wt.MaxX RMB 2 Maximum X cord. (0-79,0-639) $1B +Wt.MaxY RMB 2 Maximum Y cord. (0-24,0-191) $1D +Wt.BLen RMB 2 bytes left in GPLoad block below $1F +Wt.NBlk RMB 1 memory block # for next GPLoad $21 +Wt.NOff RMB 2 Offset in block for next GPLoad $22 +Wt.LStDf RMB 2 screen logical start default $24 * NOTE: The following default settings are what the window was initialized * with, and thus are the MAXIMUM start/size the window can handle * until it is restarted (DWEnd & DWSet) * They also appear to be used in WindInt to determine the coords & * sizes for control+content regions -Wt.DfCPX rmb 1 default X cord. start $26 -Wt.DfCPY rmb 1 default Y cord. start $27 -Wt.DfSZX rmb 1 default X size $28 -Wt.DfSZY rmb 1 default Y size $29 -Wt.Res rmb 6 unused $2A-$2F -Wt.Siz equ .+$10 +Wt.DfCPX RMB 1 default X cord. start $26 +Wt.DfCPY RMB 1 default Y cord. start $27 +Wt.DfSZX RMB 1 default X size $28 +Wt.DfSZY RMB 1 default Y size $29 +Wt.Res RMB 6 unused $2A-$2F +Wt.Siz EQU .+$10 ***************************************************************************** * Screen table entrys * These tables sit in system block 0 base=$1A80 -STblMax equ 16 Maximum number of screen tables -STblBse equ $1A80 base address of screen tables - org 0 -St.Sty rmb 1 Screen type $00 -St.SBlk rmb 1 Ram block start # $01 -St.LStrt rmb 2 Screen logical start (for GIME) $02 -St.BRow rmb 1 Bytes per row $04 -St.Brdr rmb 1 Border palette register # $05 -St.Fore rmb 1 Foreground palette register # $06 -St.Back rmb 1 Background palette register # $07 -St.ScSiz rmb 1 screen size: 24..28 lines $08 -St.Res rmb 7 UNUSED??? $09 +STblMax EQU 16 Maximum number of screen tables +STblBse EQU $1A80 base address of screen tables + ORG 0 +St.Sty RMB 1 Screen type $00 +St.SBlk RMB 1 Ram block start # $01 +St.LStrt RMB 2 Screen logical start (for GIME) $02 +St.BRow RMB 1 Bytes per row $04 +St.Brdr RMB 1 Border palette register # $05 +St.Fore RMB 1 Foreground palette register # $06 +St.Back RMB 1 Background palette register # $07 +St.ScSiz RMB 1 screen size: 24..28 lines $08 +St.Res RMB 7 UNUSED??? $09 * NOTE: SHOULD USE ONE OF THESE UNUSED BYTES TO KEEP THE # OF DEVICE WINDOW * TABLES THAT ARE USING THIS SCREEN TABLE. DWSET & DWEND WOULD KEEP TRACK OF * THESE, AND THE WINDINT TITLE BAR ROUTINE WOULD CHECK IT. IF IT IS ONLY 1, * IT WON'T BOTHER CHANGING THE TITLE BAR WHEN SELECTING WINDOWS -St.Pals rmb 16 Palette register contents $10 -St.Siz equ . +St.Pals RMB 16 Palette register contents $10 +St.Siz EQU . ***************************************************************************** * Graphics buffer tables * They contain a 20 byte header (shown below), followed by the raw pixel * data. - org 0 -Grf.Bck rmb 1 back block link # $00 -Grf.Off rmb 2 back block header offset $01 -Grf.Grp rmb 1 group # $03 -Grf.Buff rmb 1 buffer # $04 -Grf.BSz rmb 2 buffer size (not including header) $05 -Grf.XSz rmb 2 X size (in pixels) $07 -Grf.YSz rmb 2 Y size (in pixels/bytes) $09 -Grf.XBSz rmb 1 X size in bytes $0B -Grf.LfPx rmb 1 # pixels used in first byte of line $0C -Grf.RtPx rmb 1 # pixels used in last byte of line $0D -Grf.STY rmb 1 Screen type buffer intended for $0E -Grf.NBlk rmb 1 number blocks used $0F -Grf.Pal rmb 16 Copy of palette registers? $10 -Grf.Siz equ . $20 + ORG 0 +Grf.Bck RMB 1 back block link # $00 +Grf.Off RMB 2 back block header offset $01 +Grf.Grp RMB 1 group # $03 +Grf.Buff RMB 1 buffer # $04 +Grf.BSz RMB 2 buffer size (not including header) $05 +Grf.XSz RMB 2 X size (in pixels) $07 +Grf.YSz RMB 2 Y size (in pixels/bytes) $09 +Grf.XBSz RMB 1 X size in bytes $0B +Grf.LfPx RMB 1 # pixels used in first byte of line $0C +Grf.RtPx RMB 1 # pixels used in last byte of line $0D +Grf.STY RMB 1 Screen type buffer intended for $0E +Grf.NBlk RMB 1 number blocks used $0F +Grf.Pal RMB 16 Copy of palette registers? $10 +Grf.Siz EQU . $20 ***************************************************************************** * GFX tables (1 for each window, 18 ($12) bytes each) pointed to by * $1075-$0176 * GRFINT only uses gt0001-gt0004, the rest is exclusive to WINDINT - org 0 -Gt.WTyp rmb 1 WindInt window type (Framed, Scroll Bar, etc.) $00 -Gt.GXCur rmb 2 X coord of graphics cursor $01 -Gt.GYCur rmb 2 Y coord of graphics cursor $03 -Gt.DPtr rmb 2 Ptr to WindInt window descriptor $05 -Gt.FClr rmb 1 Foreground color $07 -Gt.BClr rmb 1 Background color $08 -Gt.FMsk rmb 1 Foreground mask $09 -Gt.BMsk rmb 1 Background mask $0A -Gt.GBlk rmb 1 Block # of graphics cursor $0B -Gt.GOff rmb 2 Offset into block of graphics cursor $0C -Gt.Proc rmb 1 Process # of window creator $0E -Gt.PBlk rmb 1 Process descriptor block # of creator $0F -Gt.Res rmb 2 ??? RESERVED ??? $10 -GTabSz equ . + ORG 0 +Gt.WTyp RMB 1 WindInt window type (Framed, Scroll Bar, etc.) $00 +Gt.GXCur RMB 2 X coord of graphics cursor $01 +Gt.GYCur RMB 2 Y coord of graphics cursor $03 +Gt.DPtr RMB 2 Ptr to WindInt window descriptor $05 +Gt.FClr RMB 1 Foreground color $07 +Gt.BClr RMB 1 Background color $08 +Gt.FMsk RMB 1 Foreground mask $09 +Gt.BMsk RMB 1 Background mask $0A +Gt.GBlk RMB 1 Block # of graphics cursor $0B +Gt.GOff RMB 2 Offset into block of graphics cursor $0C +Gt.Proc RMB 1 Process # of window creator $0E +Gt.PBlk RMB 1 Process descriptor block # of creator $0F +Gt.Res RMB 2 ??? RESERVED ??? $10 +GTabSz EQU . ***************************************************************************** * This table is located in the graphics table memory and is offset from @@ -683,35 +683,35 @@ * NOTE: USING UNUSED BYTES IN CC3 GLOBAL MEM, SET UP SEPARATE PTRS FOR EACH * OF THE BELOW SO WE CAN SPEED UP ACCESS BY NOT HAVING TO DO A LOAD/LEAx * COMBINATION EVERY TIME - org $0240 - rmb WN.SIZ copy of last accessed window descriptor - rmb MN.SIZ copy of last accessed menu descriptor - rmb MI.SIZ copy of last accessed item descriptor - rmb 65 menu handling table (16 entrys of 4 bytes) + ORG $0240 + RMB WN.SIZ copy of last accessed window descriptor + RMB MN.SIZ copy of last accessed menu descriptor + RMB MI.SIZ copy of last accessed item descriptor + RMB 65 menu handling table (16 entrys of 4 bytes) ***************************************************************************** * WindInt menu handling table entry definition - org 0 -MnuXNum rmb 1 menu # -MnuXStrt rmb 1 X start text co-ordinate -MnuXEnd rmb 1 X end text co-ordinate - rmb 1 unused? -MnuHSiz equ . + ORG 0 +MnuXNum RMB 1 menu # +MnuXStrt RMB 1 X start text co-ordinate +MnuXEnd RMB 1 X end text co-ordinate + RMB 1 unused? +MnuHSiz EQU . ***************************************************************************** * Character binary switches -TChr equ %10000000 transparent characters -Under equ %01000000 underline characters -Bold equ %00100000 bold characters -Prop equ %00010000 proportional spacing of characters -Scale equ %00001000 automatic window scaling -Invers equ %00000100 inverse characters -NoCurs equ %00000010 no cursor display -Protect equ %00000001 device window protection +TChr EQU %10000000 transparent characters +Under EQU %01000000 underline characters +Bold EQU %00100000 bold characters +Prop EQU %00010000 proportional spacing of characters +Scale EQU %00001000 automatic window scaling +Invers EQU %00000100 inverse characters +NoCurs EQU %00000010 no cursor display +Protect EQU %00000001 device window protection ***************************************************************************** * Screen types (high bit set=hardware text, else graphics) in GRFDRV -Current equ $ff Current screen +Current EQU $ff Current screen * equ 1 640x200x2 * equ 2 320x200x4 * equ 3 640x200x4 @@ -722,15 +722,15 @@ ************************************* * Window default palette color codes * - org 0 -White. rmb 1 -Blue. rmb 1 -Black. rmb 1 -Green. rmb 1 -Red. rmb 1 -Yellow. rmb 1 -Magenta. rmb 1 -Cyan. rmb 1 + ORG 0 +White. RMB 1 +Blue. RMB 1 +Black. RMB 1 +Green. RMB 1 +Red. RMB 1 +Yellow. RMB 1 +Magenta. RMB 1 +Cyan. RMB 1 - ENDC + ENDC