!USER.DEF [101] - structure def used by FNDUSR.SBX and MUSER.LIT
!-------------------.-------------------.-------------------.-------------------.
!EDIT HISTORY
! VEDIT=103
! Note: history reformatted 9-Feb-17
! [101] 31-Jan-17 / jdm / Revise the USER.SYS layout to allow for future expansion   
! [100] 29-Jan-17 / jdm / Created
!-------------------.-------------------.-------------------.-------------------.

++ifndef ST_USER_MAP

defstruct ST_USER_MAP           ! structure used by FNDUSR.SBX
    MAP2 NAME,S,20                 
    MAP2 FLAGS,F,6
    MAP2 ROOT'PPN,S,10
    MAP2 ROOT'DEVICE,S,10
    MAP2 MAIL'PPN,S,10
    MAP2 MAIL'DEVICE,S,10
    MAP2 MAIL'CPU,S,10
    MAP2 PRIV,F,6
    MAP2 CLASS,F,6
    MAP2 EXP,F,6
    MAP2 CPU'TIME,F,6
    MAP2 CONNECT'TIME,F,6          
    MAP2 KRAM,F,6                  
    MAP2 DISK'READS,F,6            
    MAP2 DISK'WRITES,F,6           
    MAP2 PAGES'PRINTED,F,6
    MAP2 DEFAULT'PROTECTION,F,6
    MAP2 DEFAULT'PRIORITY,F,6
    MAP2 DEFAULT'LANGUAGE,S,20  
    MAP2 DEFAULT'PROMPT,S,20        
endstruct

defstruct ST_USER_SYS           ! USER.SYS record layout
    MAP2 NAME,S,20                 
    MAP2 PASSWORD,S,70          ! encrypted password (up to 44 chars)
    MAP2 FLAGS,B,4              ! not defined in AMOS or A-Shell
    MAP2 ROOT'PPN,S,10
    MAP2 ROOT'DEVICE,S,10
    MAP2 MAIL'PPN,S,10
    MAP2 MAIL'DEVICE,S,10
    MAP2 MAIL'CPU,S,10
    MAP2 PRIV,B,2               
    MAP2 CLASS,B,1
    MAP2 EXP,B,1
    MAP2 CPU'TIME,F,8           ! seconds *
    MAP2 CONNECT'TIME,F,8       ! seconds *
    MAP2 KRAM,F,8               ! Kilo-RAM-seconds *
    MAP2 DISK'READS,F,8         ! *
    MAP2 DISK'WRITES,F,8        ! *
    MAP2 PAGES'PRINTED,F,8      ! *
    MAP2 DEFAULT'PROTECTION,B,4 ! not used by AMOS or A-Shell
    MAP2 DEFAULT'PRIORITY,B,2   ! *
    MAP2 DEFAULT'LANGUAGE,S,20  
    MAP2 DEFAULT'PROMPT,S,20  
    MAP2 KEYSTROKES,F,8
    MAP2 COMMANDS,F,8
    MAP2 FILL,X,42              ! 300 total
endstruct

defstruct ST_USER_CTL           ! control record for user.sys
    MAP2 ID,S,20                ! USER_SYS_ID$
    MAP2 VERSION,B,2            ! file layout version (USER_SYS_VERSION)
    MAP2 FILL,X,278
endstruct    

++if sizeof(ST_USER_SYS) # sizeof(ST_USER_CTL)
++error "Error in USER.DEF: ST_USER_SYS size doesn't match ST_USER_CTL!"
++endif

!* Notes:
!* These fields are not automatically updated by A-Shell, but
!* potentially they could be, by hooking into the HOST.SBX routine
!* which is called by HOST.LIT

define USER_SYS_FILE$   = "OPR:USER.SYS"
define USER_SYS_SAV$    = "OPR:USER.SAV"
define USER_SYS_RECSIZ  = sizeof(ST_USER_SYS)
define USER_SYS_ID$     = "A-Shell USER.SYS"
define USER_SYS_VERSION = 101

++endif
