;*  UNiVersal file for AAI
;
; Edit History
;
;[104] 7 Octobar 1991 Dell Coleman
;       Add offset for Extended directories as per Monitor calls rev A00
;
;[103] 22 April 1991 Dell Coleman
;       Add FUNCTION CODES for DCACHE
;           Copied from Monitor Calls Manual
;
;[102] 12 September 1989  Dell Coleman
;       Added Macros
;           GETTCB - To get control of a Terminal Control Block
;           RLSTCB - To relinquish control of a Terminal Control Block
;
;[101] 29 August 1989  Dell Coleman
;       Added macro SETERR.
;
;[100] 25 July 1989  Dell Coleman
;       File assembled
;

       UNIVERSAL
       ASECT

; AAI CPU time accounting package equates
; Displacements for CPUACT.DT1
       .=0
D1.STS: BLKW    1               ; JOBSTS
D1.USR: BLKW    1               ; JOBUSR (PPN)
D1.DRV: BLKW    1               ; JOBDRV
D1.CPU: BLKL    1               ; JOBCPU
D1.DSR: BLKL    1               ; JOBDSR
D1.DSW: BLKL    1               ; JOBDSW
D1.USN: BLKL    4               ; JOBUSN (User Name)
D1.DAT: BLKL    1               ; (Date/Time in packed format)
D1.EMP: BLKL    1               ; (Employee number)
D1.CO:  BLKB    1               ; (Company number)
D1.FLG: BLKB    1               ; (Update Log file flag)
D1.JNM: BLKL    1               ; JOBNAM (Rad50)
D1.PRG: BLKL    1               ; JOBPRG (Rad50)
D1.DEV: BLKW    1               ; JOBDEV (Rad50)
D1.TNM: BLKL    1               ; -4(JOBTRM) (Terminal Name) (Rad50)
D1.LCP: BLKL    1               ; CPU time at log change
D1.LDR: BLKL    1               ; Disk reads at log change
D1.LDW: BLKL    1               ; Disk writes at log change
D1.EOF: BLKB    1               ; End of file marker
D1.EOR:                         ; end of record

; Displacements for CPUACT.DT2
       .=0
D2.USR: BLKW    1               ; JOBUSR (PPN)
D2.DRV: BLKW    1               ; JOBDRV
D2.CPU: BLKL    1               ; JOBCPU
D2.DSR: BLKL    1               ; JOBDSR
D2.DSW: BLKL    1               ; JOBDSW
D2.USN: BLKL    4               ; JOBUSN (User Name)
D2.DAT: BLKL    1               ; (START Date/Time in packed format)
D2.DTO: BLKW    1               ; (STOP  Date in internal format)
D2.TMO: BLKW    1               ; (STOP  Time in internal format)
D2.EMP: BLKL    1               ; (Employee number)
D2.JNM: BLKL    1               ; JOBNAM
D2.PRG: BLKL    1               ; JOBPRG
D2.DEV: BLKW    1               ; JOBDEV
D2.TNM: BLKL    1               ; -4(JOBTRM) (Terminal Name)
D2.CO:  BLKB    1               ; (Company number)
D2.EOR:                         ; end of record

; Displacements for CPUACT.DT2 label record
       .=0
D2.USE: BLKL    1               ; Used counter
D2.LFD: BLKW    1               ; Last date all DT1 records were flushed
D2.FIL: BLKB    57              ; FILLER
D2.LCK: BLKB    1               ; File is locked if not 0

; Displacements for CPUACT.DT4
       .=0
D4.CO:  BLKB    2               ; Company number
D4.EMP: BLKB    5               ; Employee number
D4.USR: BLKB    6               ; PPn (6 digits, no punctuation)
D4.DRV: BLKB    5               ; Device number
D4.CPU: BLKB    10.             ; CPU time in jiffies
D4.DSR: BLKB    10.             ; Disk reads
D4.DSW: BLKB    10.             ; Disk writes
D4.DTI: BLKB    5               ; Date-In (Days since 1/1/80)
D4.TMI: BLKB    5               ; Time-In (Seconds since midnight)
D4.DTO: BLKB    5               ; Date-Out (Days since 1/1/80)
D4.TMO: BLKB    5               ; Time-Out (Seconds since midnight)
D4.JNM: BLKB    6               ; Job name
D4.PRG: BLKB    6               ; Program executing
D4.DEV: BLKB    3               ; Device LOGged into
D4.TNM: BLKB    6               ; Terminal name
D4.USN: BLKB    16.             ; User name
D4.FIL:                         ; Start of FILLER
       .=128.
D4.EOR:

; Macro definitions
;                               ; Set error flag in JCB
DEFINE  SETERR  SEVER,ERROR
       PUSH    A6
       JOBIDX  A6
       MOVW    #<<SEVER_13.>!ERROR>,JOBERR(A6)
       POP     A6
       ENDM

;                               ; Get control of a TCB
;                               ; REG points to the terminal block to get
;                               ; User is left in SUPV mode with interrupts
;                               ; locked
;                               ; This method was taken from The AMTS JOURNAL
;                               ; Software volume 3.4.10
DEFINE  GETTCB  REG
       SUPVR
       SVLOK
10$$:   TAS     T.SEM(REG)
       BNE     10$$
       ENDM

;                               ; Release control of a TCB
;                               ; REG points to the terminal block to release
;                               ; This method was taken from The AMTS JOURNAL
;                               ; Software volume 3.4.10
DEFINE  RLSTCB  REG
       CLRB    T.SEM(REG)
       LSTS    #0
       ENDM

; Disk caching function codes
;       as defined in the MONITOR CALLS MANUAL rev 00

       RADIX 8
       DC.LM= 1        ; Lock MFD
       DC.LU= 2        ; Lock UFD
       DC.LF= 3        ; Lock a file
       DC.LB= 4        ; Lock a block
       DC.UM= 5        ; Unlock MFD
       DC.UU= 6        ; Unlock UFD
       DC.UF= 7        ; Unlock a file
       DC.UB=10        ; Unlock a block
       DC.CM=11        ; Clear MFD
       DC.CU=12        ; Clear UFD
       DC.CF=13        ; Clear a file
       DC.CB=14        ; Clear a block
       DC.CD=15        ; Clear a unit
       DC.ON=16        ; Turn on the cache
       DC.OF=17        ; Turn off the cache
       DC.DM=20        ; Dynamically lock MFD
       DC.DU=21        ; Dynamically lock UFD
       DC.XM=22        ; Dynamically unlock MFD
       DC.XU=23        ; Dynamically unlock UFD

; Displacements for extended directories
       .=0
D$TYP:
       BLKW    1       ; Flags
       BLKB    1       ; Name flags
       BLKB    1       ; Name size (bytes)
D$PRT:  BLKL    1       ; Protection level
D$DAT:
       BLKL    1       ; 32-bit packed creation date
       BLKL    1       ; 32-bit packed update   date
       BLKL    1       ; 32-bit packed backup   date
EX.MFD:                 ; MFD only entries
D$NXT:  BLKL    1       ; Link to next lower directory level
D$CUR:  BLKL    1       ; Reserved
D$PRV:  BLKL    1       ; Reserved
EX.PPN: BLKW    1       ; PPn (AAI name)
EX.PAS: BLKL    1       ; Password for this PPn (RAD50) (AAI name)
       .=EX.MFD
                       ; UFD only entries
D$BAS:  BLKL    1       ; Block number of 1st block of file
D$FSZ:  BLKL    1       ; Number of blocks used by file
D$RSZ:  BLKW    1       ; Record size for contiguous files
D$LSZ:  BLKW    1       ; Number of active bytes in last block (-1 if contiguous)
D$NAM:  BLKL    1       ; Filename
       BLKW    1       ; Extenstion

       END