DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ O T

⟦97cc4bb9e⟧ TextFile

    Length: 11436 (0x2cac)
    Types: TextFile
    Names: »OS2000_DEFINITIONS«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦this⟧ 

TextFile

;
;       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