|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: O T
Length: 11436 (0x2cac)
Types: TextFile
Names: »OS2000_DEFINITIONS«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
└─⟦77aa8350c⟧ »DATA«
└─⟦f794ecd1d⟧
└─⟦24d1ddd49⟧
└─⟦this⟧
;
; Definitions for CCT (Communication Control Table)
;
cct_start equ 1024 ; CCT offset from window start
pi_cpt equ 88 ; Offset for pointer to CPT
;
; HSI addressing conventions
;
a32_size equ 16#02000000#;
;
; Offsets in the Configuration Parameter Table.
;
CPT_System_Time equ 0 ; Offset to system time HW pointer
CPT_Political_Time equ 4 ; Offset to political time offset
CPT_Current_Proc equ 64 ; Offset to Os9 current process pointer
CPT_MsgQ_Pointer equ 144 ; Offset to Message_Queues pointer
; points to MqGlobals control block
CPT_Ada_Runtime_Ptr equ 152 ; Offset in CPT to Ada Runtime pointer
; points to beginning of table of
; runtime entry points
;
; OS9 system call definitions
;
os9_call equ 0
;
; An OS9 system call is perform with the following sequence:
; trap #OS9_Call
; .dc.w call_code
;
; where call code is one of the following user mode calls
; or I/O calls
;
; User mode system call definitions
;
F$Exit equ 16#006#
F$Fork equ 16#003#
F$Icpt equ 16#009#
F$Julian equ 16#020#
F$Link equ 16#000#
F$PEAB equ 16#0FA#
F$PErr equ 16#00F#
F$RTE equ 16#01E#
F$SPrior equ 16#00D#
F$SRqMem equ 16#028#
F$STime equ 16#016#
F$STrap equ 16#00E#
F$Send equ 16#008#
F$Sleep equ 16#00A#
F$Time equ 16#015#
;
; OS9 I/O system call definitions
;
I$Close equ 16#08F#
I$Create equ 16#083#
I$Delete equ 16#087#
I$GetStt equ 16#08D#
I$Last equ 16#093#
I$Open equ 16#084#
I$Read equ 16#089#
I$ReadLn equ 16#08B#
I$SGetSt equ 16#092#
I$Seek equ 16#088#
I$SetStt equ 16#08E#
I$WritLn equ 16#08C#
I$Write equ 16#08A#;
;
; Access mode for Open
;
Read_Mode equ 1
Write_Mode equ 2
Execute equ 4
;
; Function codes for the I$GetStt call
;
SS_Opt equ 16#0000#
SS_Size equ 16#0002#
SS_Pos equ 16#0005#
SS_EOF equ 16#0006#
SS_DevNm equ 16#000E#
;
; Standard paths
;
Standard_Input equ 0
Standard_Output equ 1
Standard_Error equ 2
;
; I/O Error Codes
;
E$BPNum equ 16#00C9# ; bad path number
;
; OS9 trap definitions
;
T_AddErr equ 16#000C#
T_BusErr equ 16#0008#
T_IllIns equ 16#0010#
T_CHK equ 16#0018#
T_TRAPV equ 16#001C#
T_FPDivZer equ 16#00C8#
T_FPInxact equ 16#00C4#
T_FPNotNum equ 16#00D8#
T_FPOprErr equ 16#00D0#
T_FPOverFl equ 16#00D4#
T_FPUndrFl equ 16#00CC#
T_FPUnordC equ 16#00C0#
T_ZerDiv equ 16#0014#
;
; OS2000 process descriptor definitions
;
P$DefIOSiz equ 32 ; Default I/O data area size
P$NumPaths equ 32 ; Number of local paths
P$MemBlks equ 32 ; Number of separate memory blocks per process
.offset 0 ; Process descriptor
P$ID: .ds.w 1 ; Process id
P$PID: .ds.w 1 ; Parent's id
P$SID: .ds.w 1 ; First sibling's ID
P$CID: .ds.w 1 ; First child's ID
P$sp: .ds.l 1 ; System stack pointer (points to pdsc?)
P$usp: .ds.l 1 ; User stack pointer
P$MemSiz: .ds.l 1 ; Total combined data size
P$User: .ds.w 2 ; User index (group/user)
P$Prior: .ds.w 1 ; Priority
P$Age: .ds.w 1 ; Age
P$State: .ds.w 1 ; Status
P$Task: .ds.w 1 ; Process task number
P$QueuID: .ds.b 1 ; Current queue
P$SCall: .ds.b 1 ; Last system call executed
.ds.w 1 ; Reserved
P$DeadLk: .ds.w 1 ; Dominant process id if I/O locked
P$Signal: .ds.w 1 ; Signal code
P$SigVec: .ds.l 1 ; Signal intercept vector
P$SigDat: .ds.l 1 ; Signal intercept data address
P$QueueN: .ds.l 1 ; Next process queue pointer
P$QueueP: .ds.l 1 ; Previous process queue pointer
P$PModul: .ds.l 1 ; Primary module
P$Except: .ds.l 10 ; Program error exception vectors
P$ExStk: .ds.l 10 ; Program error exception stack frame ptrs
P$Traps: .ds.l 15 ; User's TRAP vector table
P$TrpMem: .ds.l 15 ; Trap handler static memory block pointers
P$TrpSiz: .ds.l 15 ; Trap handler static memory block sizes
P$ExcpSP: .ds.l 1 ; System state exception recovery stack
P$ExcpPC: .ds.l 1 ; System state exception recovery PC
P$DIO: .ds.b P$DefIOSiz ; Default I/O data
P$Patch: .ds.w P$NumPaths ; I/O path table
P$MemImg: .ds.l P$MemBlks ; Allocated memory block pointers
P$BlkSiz: .ds.l P$MemBlks ; Memory size of each allocated memory block
P$DbgReg: .ds.l 1 ; Debugged process register stack frame
P$DbgPar: .ds.l 1 ; Debugged process parent proc desc pointer
P$DbgIns: .ds.l 1 ; Debugged process instruction count
P$UTicks: .ds.l 1 ; User state ticks elapsed
P$STicks: .ds.l 1 ; System state ticks elapsed
P$DatBeg: .ds.l 1 ; Julian date when forked
P$TimBeg: .ds.l 1 ; Julian time when forked
P$FCalls: .ds.l 1 ; Number of function calls executed
P$ICalls: .ds.l 1 ; Number of I/O system calls executed
P$RBytes: .ds.l 1 ; Number of bytes read
P$WBytes: .ds.l 1 ; Number of bytes written
P$IOQP: .ds.w 1 ; Previous I/O queue link (process id)
P$IOQN: .ds.w 1 ; Next I/O queue link (process id)
P$Frags: .ds.l 2 ; Free memory fragment list head
P$Sched: .ds.l 1 ; Active queue scheduling constant
P$SPUImg: .ds.l 1 ; Pointer to process SPU/MMU map
P$BlkCnt: .ds.l 1 ; Pointer to SPU/MMU map block counts
P$BkPts: .ds.w 16 ; Reserved for contents of breakpoint instructions
P$Acct: .ds.l 8 ; Reserved for user accounting module
P$Data: .ds.l 1 ; Pointer to process primary data area
P$DataSz: .ds.l 1 ; Size of process primary data area
P$FPUSave: .ds.l 1 ; Pointer to FPU save area
P$FPExcpt: .ds.l 7 ; Floating point error exception vectors
P$FPExStk: .ds.l 7 ; Floating point error exception stack frame pointers
P$SigLvl: .ds.b 1 ; Signal interrupt level
P$SigFlg: .ds.b 1 ; Signal flag
P$Sigxs: .ds.w 1 ; Number of excess signal blocks allocated
P$SigMask: .ds.l 1 ; Mask to disable signals 2-31
P$SigCnt: .ds.l 1 ; Number of signals pending
P$SigQue: .ds.l 1 ; Ptr to head of signal queue
P$DefSig: .ds.l 4 ; Default initial signal queue element
P$Thread: .ds.l 2 ; Doubly linked thread queue
p$JobCon:
P$Extid: .ds.w 1 ; Os2000 extended process id
P$ExtPid: .ds.w 1 ; Os2000 extended parent id
P$Surv: .ds.b 1 ; Os2000 job control boolean
.ds.b 7 ; JobCon trailer
P$IPCptr: .ds.l 1 ; IPC-2000 work area pointer
P$AdaWrk:
ART$Tsk_Id: .ds.l 1 ; Current task id (TCB pointer)
ART$Stk_Lo: .ds.l 1 ; Low bound of stack for current task
ART$SaveFP: .ds.l 1 ; Saved framed pointer when blocking on queue
ART$SavePc: .ds.l 1 ; Saved program counter when blocking on queue
ART$PrgKey: .ds.l 1 ; Key identifying process as part of program
ART$Spare5: .ds.l 1 ; Ada runtime spare 5
ART$Spare6: .ds.l 1 ; Ada runtime spare 6
ART$Tsk_AD: .ds.l 1 ; Space for pointer to allocated data block
P$RFMWrk: .ds.b 32 ; Os2000 REDMAN work area
P$Last: ; Size of a process header
.ds.b 2048-P$Last ; Holds system stack for process
P$Stack: ; Top of system stack for process
P$Size: ; Size of process descriptor
;
; Values for process state (P$STATE)
;
P$SysState equ 16#80# ; Executing system state routine
P$TimSleep equ 16#40# ; Timed sleep
P$TimOut equ 16#20# ; time slice has expired
P$ImgChg equ 16#10# ; SPU/MMU protection map has changed
P$Condemn equ 16#02# ; process is condemned
P$Dead equ 16#01# ; Process has terminated
;
; Values for process queue id (P$QUEUID
;
P$QActive equ 'a' ; active process queue
P$QSleep equ 's' ; sleep queue
P$QWait equ 'w' ; Waiting queue
P$QEvent equ 'e' ; Event queue
P$QCurrnt equ '*' ; No queue, currently running
P$QDebug equ 'd' ; No queue, inactively debugging
P$QDead equ '-' ; No queue, dead process
;
; User register stack image
;
.offset 0
R$d0: .ds.l 1
R$d1: .ds.l 1
R$d2: .ds.l 1
R$d3: .ds.l 1
R$d4: .ds.l 1
R$d5: .ds.l 1
R$d6: .ds.l 1
R$d7: .ds.l 1
R$a0: .ds.l 1
R$a1: .ds.l 1
R$a2: .ds.l 1
R$a3: .ds.l 1
R$a4: .ds.l 1
R$a5: .ds.l 1
R$a6: .ds.l 1
R$a7: .ds.l 1 ; User stack pointer
R$sr: .ds.b 1
R$cc: .ds.b 1
R$pc: .ds.l 1
R$fmt: .ds.w 1 ; 68010 exception format and vector
R$Size: ; Size of register package
;
; Status register equates
;
R$TraceBit equ 16#8000# ; Trace bit in SR word
R$SupvrBit equ 16#2000# ; Supervisor bit in SR word
R$IntMask equ 16#0700# ; Interrupt mask in SR word
R$Extend equ 16#0010# ; Extend bit
R$Negative equ 16#0008# ; Negative bit
R$Zero equ 16#0004# ; Zero bit
R$Ov equ 16#0002# ; Overflow
R$Carry equ 16#0001# ; Carry
; 68881 FPU context save area
.offset 0
FPU$MemS: .ds.l 1 ; Memory block size
FPU$Contxt: .ds.b 6*32 ; FPU context save
FPU$Regs: .ds.l 8*3 ; FPU register save
FPU$Cntrl: .ds.l 3 ; PFU control register save