Mercurial > hg > Members > kono > nitros9-code
view defs/os9defs.n09 @ 27:4dfcc95c371b
Added the COCO basic09 also
author | roug |
---|---|
date | Sat, 06 Apr 2002 15:05:31 +0000 |
parents | 6641a883d6b0 |
children |
line wrap: on
line source
nam os9defs ttl OS-9 System Symbol Definitions *** * 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 F$GPrDsc rmb 1 get Process Descriptor copy F$GBlkMp rmb 1 get System Block Map copy F$GModDr rmb 1 get Module Directory copy F$CpyMem rmb 1 Copy External Memory F$SUser rmb 1 Set User ID number F$UnLoad rmb 1 Unlink Module by name F$Alarm rmb 1 Color Computer Alarm Call (system wide) rmb 2 reserved - For overlap of other systems F$NMLink rmb 1 Color Computer NonMapping Link F$NMLoad rmb 1 Color Computer NonMapping Load org $25 F$TPS rmb 1 Return System's Ticks Per Second F$TimAlm rmb 1 COCO individual process alarm call org $27 Beginning of System Reserved 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$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 rmb 1 not used * NitrOS9 additions F$CRCMod rmb 1 CRC mode, toggle or report current status * * Numbers $70 through $7F are reserved for user definitions org $70 F$RegDmp rmb 1 Ron Lammardo's debugging register dump call F$NVRAM rmb 1 Non Volatile RAM (RTC battery backed static) read/write rmb $80-. reserved for user definition *** * 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 *** * File Access Modes READ. equ %00000001 WRITE. equ %00000010 UPDAT. equ READ.+WRITE. EXEC. equ %00000100 PREAD. equ %00001000 PWRIT. equ %00010000 PEXEC. equ %00100000 SHARE. equ %01000000 DIR. equ %10000000 ISIZ. equ %00100000 *** * Signal Codes 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 *** * Status Codes for GetStat/PutStat 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 (Read / Write Sector) 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/Putstat for COCO keyboard SS.ComSt rmb 1 Getstat/Putstat for Baud/Parity SS.Open rmb 1 Putstat to tell driver a path was opened SS.Close rmb 1 Putstat to tell driver a path was closed SS.HngUp rmb 1 Putstat to tell driver to hangup phone * * System Specific and User defined codes above $80 org $80 SS.AAGBf rmb 1 Putstat to Allocate Additional Graphic Buffer SS.SLGBf rmb 1 Putstat 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 Putstat to request a Get/Put Buffer be mapped in workspace SS.Slots rmb 1 Network 4 slots? getstat SS.WnSet rmb 1 Set up High Level Windowing Information SS.DRead equ SS.AAGBf ** SDisk3 Direct Sector Read ($80 GetStt) SS.DWrit equ SS.DRead ** SDisk3 Direct sector Write ($80 SetStt) SS.UnFrz equ SS.SLGBf ** SDisk3 UNFreeze DD info ($81 SetStt) SS.MOFF equ SS.Mount ** SDisk3 fast motor off call ($82 SetStt) SS.MoTim equ SS.RdNet ** SDisk3 Set motor shut off time ($83 SetStt) SS.SDRD equ SS.MgGPD ** SDisk3 System direct read ($84 GetStt) SS.SDWRT equ SS.SDRD ** SDisk3 System direct writes ($84 SetStt) SS.Sleep equ SS.Slots ** SDisk3 (DMC ONLY) ($85 SetStt) Enable/disable F$Sleep calls in read/write 1773 I/O SS.DrvCh equ SS.WnSet ** SDisk3 (DMC ONLY) ($86 GetStt/SetStt) Set drive number to cache, or return drive number being cached SS.MnSel rmb 1 Request High level Menu Handler take determine next event SS.SBar rmb 1 Putstat to set position block on Window scroll bars SS.Mouse rmb 1 Return Mouse information packet (COCO) SS.MsSig rmb 1 Putstat 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 (new call - NitrOS9) 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 * * new DACIA get/set status calls (per Bill Dickhaus) SS.CDSta rmb 1 Get current DCD/DSR status byte (GetStat) SS.CDSig rmb 1 Set signal for DCD change (SetStat) SS.CDRel rmb 1 Release previous SS.CDSig (SetStat) org $A0 * * New Default SCF input buffer Set status call (NitrOS9) SS.Fill rmb 1 Pre-load SCF device input buffer * * new WDDisk get/set status calls org $B0 SS.ECC rmb 1 ECC corrected data error enable/disable (GetStat/SetStat) *** * Level II Block Map flags NotRAM equ %10000000 Block Not RAM flag ModBlock equ %00000010 Module in Block RAMinUse equ %00000001 RAM Block in use flag * * Service Dispatch Table special entries IOEntry equ 254 *** * Module Directory Entry Definitions org 0 MD$MPDAT rmb 2 Module DAT Image ptr MD$MBSiz rmb 2 Memory Block size 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 * * Type-Dependent Module Offsets * * System, File Manager, Device Driver, Program Module M$Exec rmb 2 Execution Entry Offset * * Device Driver, Program Module M$Mem rmb 2 Stack Requirement * * Device Driver, Device Descriptor Module M$Mode rmb 1 Device Driver Mode Capabilities * * Device Descriptor Module 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 (equals RBF's IT.DTP and SCF's IT.DVC) * * 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 *** * Module Field Definitions * * ID Field 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 byte * * Field Masks TypeMask equ %11110000 Type Field LangMask equ %00001111 Language Field * * Type Values Devic equ $F0 Device Descriptor Module Drivr equ $E0 Device Driver Module FlMgr equ $D0 File Manager Systm equ $C0 System Module Data equ $40 Data Module Multi equ $30 Multi-Module Sbrtn equ $20 Subroutine Module Prgrm equ $10 Program Module * * Language Values Objct equ 1 6809 Object Code Module ICode equ 2 Basic09 I-code PCode equ 3 Pascal P-code CCode equ 4 C I-code CblCode equ 5 Cobol I-code FrtnCode equ 6 Fortran I-code Obj6309 equ 7 6309 object code * * Module Attributes / Revision byte * * Field Masks AttrMask equ %11110000 Attributes Field RevsMask equ %00001111 Revision Level Field * * Attribute Flags ReEnt equ %10000000 Re-Entrant Module ModProt equ %01000000 Gimix Module protect bit (0=protected, 1=write enable) ModNat equ %00100000 6309 native mode attribute *** * Device Type Values DT.SCF equ 0 Sequential Character File Type DT.RBF equ 1 Random Block File Type DT.Pipe equ 2 Pipe File Type DT.SBF equ 3 DT.NFM equ 4 Network File Manager *** * CRC Result Constant CRCCon1 equ $80 CRCCon23 equ $0FE3 *** * 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 . *** * Pathlist Special Symbols PDELIM equ '/ Pathlist Name Separator PDIR equ '. Directory PENTIR equ '@ Entire Device *** * 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 *** * 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 *** * 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 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 *** * 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) 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 Vi.IFlag equ %00000001 status byte virq flag true equ 1 useful name false equ 0 useful name *** * 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 ifeq H6309-true R$E equ 3 Accumulator R$F equ 4 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 - NitrOS9 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 *** * Error Code Definitions * * WDDisk "TEST" Error Codes org 101 E$WD2797 rmb 1 WD 1002-05 WD2797 FD controller E$WD1010 rmb 1 WD 1002-05 WD1010 HD controller E$WDSBuf rmb 1 WD 1002-05 sector buffer E$WD1014 rmb 1 WD 1002-05 WD1014 error detection or bus E$WD1015 rmb 1 WD 1002-05 WD1015 control processor * * System Dependent Error Codes org 186 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 * * Standard OS-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 *** * Direct Page Variable Definitions * * $00 to $1F reserved for user org 0 D.WDAddr rmb 2 FHL/Isted WD 1002-05 interface base address D.WDBtDr rmb 1 FHL/Isted WD 1002-05 boot device physical drive number * $20 to $FF used by system org 32 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 (40d) D.Month rmb 1 D.Day rmb 1 D.Hour rmb 1 D.Min rmb 1 D.Sec rmb 1 TimPktSz equ .-D.Time Time Packet Size 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 * NitrOS9 additions * 58d begins here D.MDREG rmb 1 6309 MD (mode) shadow register D.CRC rmb 1 CRC checking mode flag D.Tenths rmb 1 Tenths and hundredths fof second for F$Xtime org 64 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 org 107 D.Crash rmb 6 Pointer to CC Crash Routine D.CBStrt rmb $B Reserved for CC warmstart ($71) org 128 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 * * COCO3 GIME Shadow Registers org 144 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 D.TskIPt rmb 2 Task image Pointer table (CC) D.MemSz rmb 1 128/512K memory flag (CC) D.SSTskN rmb 1 System State Task Number (COCO) D.CCMem rmb 2 Pointer to beginning of CC Memory D.CCStk rmb 2 Pointer to top of CC Memory D.Flip0 rmb 2 Change to Task 0 D.Flip1 rmb 2 Change to reserved Task 1 D.VIRQ rmb 2 VIRQ Polling routine D.IRQS rmb 1 IRQ shadow register (CC Temporary) D.CLTb rmb 2 VIRQ Table address D.AltIRQ rmb 2 Alternate IRQ Vector (CC) D.GPoll rmb 2 CC GIME IRQ enable/disable toggle D.Clock2 rmb 2 CC Clock2 entry address org 192 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 224 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 org 242 D.SWI3 rmb 2 D.SWI2 rmb 2 D.FIRQ rmb 2 D.IRQ rmb 2 D.SWI rmb 2 D.NMI rmb 2 *** * Process Descriptor Definitions 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 P$STicks rmb 4 proc System Tick counter P$FCalls rmb 4 proc F$ call counter P$ICalls rmb 4 proc I$ call counter P$DatBeg rmb 3 proc Date of creation (Y/M/D) P$TimBeg rmb 3 proc Time of creation (H/M/S) P$Alarm rmb 6 COCO individual process' alarm call date/time (Y/M/D/H/M/S) 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