         SYSTEM   SIG9
         SYSTEM   BPM
R0       SET      0
R1       SET      1
R2       SET      2
R3       SET      3
R4       SET      4
R5       SET      5
R6       SET      6
R7       SET      7
R8       SET      8
R9       SET      9
R10      SET      10
R11      SET      11
R12      SET      12
R13      SET      13
R14      SET      14
R15      SET      15
SR1      SET      8
SR2      SET      9
SR3      SET      10
SR4      SET      11
SYSVERS  EQU      X'2B'
         DEF      CVL
         REF      M:SI,M:LO,M:DO
         REF      SITEID
         REF      SV:RSIZ
         REF      SH:RNM,SH:RTOT
         REF      SH:RBCU,SH:ROCU,SH:RGCU
         REF      SH:RBSUM,SH:ROSUM,SH:RGSUM
         REF      SB:RBMX,SB:ROMX,SB:RGMX
         REF      SB:RBDF,SB:RODF,SB:RGDF
         REF      SV:LIM,SL:NAME
         REF      SL:BMX,SL:OMX,SL:GMX
         REF      SL:BDF,SL:ODF,SL:GDF
         REF      SL:ETIME,SL:ELO,SL:EPO,SL:EDO
         REF      SL:EUO,SL:EPS,SL:ETS
         REF      SV:TYM,SV:FTYM,SH:SYMT,S:SYMDB,S:SYMDO,S:SYMDG
CREF     CNAME
         PROC
         LOCAL    I
I        DO       NUM(AF)
         DO1      TCOR(AF(I),S:FR)
         REF      AF(I)
         FIN
         LOCAL
         PEND
DSPL     CNAME
         PROC
         LOCAL    I,D
LF       BAL,R7   DISPLAY
I        SET      2
         DO       NUM(AF)-1
         DO       NUM(AF(I))~=0
         CREF     AF(I,1,1)
D        SET      4
         DO1      NUM(AF(I,1))~=1
D        SET      AF(I,1,2)
         DO       D=0
         GEN,3,12,17 I-1,0,%+1
         DATA     AF(I,1,1)
         ELSE
         GEN,3,5,4,3,17 I-1,0,D,0,AF(I,1,1)
         FIN
         TEXT     AF(I,2)
         FIN
I        SET      I+1
         FIN
         TEXTC    AF(1)
         LOCAL
         PEND
         DEF      01:CVL
01:CVL   CSECT    1
CVL      EQU      %
         LW,SR1   M:SI+23           GET FILE NAME FROM M:SI
         AND,SR1  L(X'FFFFFF')      KEEP THE FIRST THREE CHARS.
         STW,SR1  RPTTYPE           SAVE REPORT TYPE
         CW,SR1   L(C'RES')         RESOURCE
         BE       RESOURCE          B/ IF YES
         CW,SR1   L(C'SER')         SERVICE
         BE       JOBSERV           B/ IF YES
         CW,SR1   L(C'AUT')         AUTH
         BE       SYMFAUTH          B/ IF YES
         M:WRITE  M:LO,(BUF,SPACE),(SIZE,4)
         M:TIME   TIMEDATE
         M:WRITE  M:LO,(BUF,TIMEDATE),(SIZE,16)
         LI,SR3   SITEID
         BAL,R7   V:LW              GET 1ST WORD OF SITEID
         STW,SR2  HEAD0A              AND STORE IT AWAY
         LI,SR3   SITEID+1
         BAL,R7   V:LW              GET 2ND WORD OF SITEID
         STW,SR2  HEAD0A+1            AND STORE IT AWAY
         LW,SR2   SYSVERS           GET SYSTEM VERSION
         SLS,SR2  -6                ISSOLATE CPU TYPE
         LI,R1    X'F'
         AND,R1   SR2               GET CPU INDEX
         LW,SR1   CPUTYPE,R1
         STH,SR1  HEAD0A+5
         LI,R1    1
         SLS,SR1  -16
         STH,SR1  HEAD0A+4,R1
         SLS,SR2  -10               ISSOLATE VERSION
         LI,SR1   X'F'
         AND,SR1  SR2
         AI,SR1   X'F0'
         STB,SR1  HEAD0A+4
         SLS,SR2  -4
         AND,SR2  L(X'F')
         AI,SR2   X'C0'
         LI,R1    2
         STB,SR2  HEAD0A+3,R1
         M:WRITE  M:LO,(BUF,HEAD0A),(SIZE,72)
         M:WRITE  M:LO,(BUF,HEAD0B),(SIZE,72)
         DSPL     'MAX USERS IN SYSTEM',((SMUIS,0),'-UM   '),;
                  (S:BUAIS,'-BUM  '),;
                  (S:OUAIS,'-OUM  '),;
                  (S:GUAIS,'-GUM  ')
         DSPL     'CUR USERS IN SYSTEM',(S:CUIS,'-UC   '),;
                  (S:BUIS,'-BUC  '),;
                  (S:OUIS,'-OUC  '),;
                  (S:GUIS,'-GUC  ')
         DSPL     'BASE EXECUTION PRIORITY',,;
                  (SL:BPRIO,'-BPRIO'),;
                  (SL:OPRIO,'-OPRIO'),;
                  (SL:GPRIO,'-GPRIO')
         DSPL     'MAX I/O COUNT',,;
                  (SL:BXMF,'-BXMF'),;
                  (SL:OXMF,'-OXMF')
         DSPL     'MIN I/O COUNT',,;
                  (SL:BIMF,'-BIMF'),;
                  (SL:OIMF,'-OIMF')
         DSPL     'ONLINE QUANTUM',(SL:QUAN,'-QUAN ')
         DSPL     'ONLINE QUANTUM MINIMUM',(SL:QMIN,'-QMIN ')
         DSPL     'CORE-RESIDENCY MINIMUM',(SL:SQUAN,'-SQUAN')
         DSPL     'TERMINAL BLOCK (SEC)',(SL:TB,'-TB   ')
         DSPL     'TERMINAL UNBLOCK (SEC)',(SL:UB,'-UB  ')
         DSPL     'COC INPUT BUFS/USER MAX',(SL:ONCB,'-ONCB ')
         DSPL     'READ-AHEAD OPERATIONS',(SL:RAMR,'-RAM ')
         DSPL     'A.I.R. OPERATIONS',(SL:AIRM,'-AIRM ')
         DSPL     'PRIORITY INCREMENT',(SL:PI,'-PI   ')
         DSPL     'COMODE BLOCKING SIZE',(SL:COMAXG,'-CHUNK')
         DSPL     '***TIME-OUT VALUES***'
         DSPL     '   FOR LOG-ON',(SL:OLTO,'-OLTO ')
         DSPL     '   FOR TERMINAL INPUT',(SL:OITO,'-OITO ')
         DSPL     '   FOR RETENTION TIME',(SL:RET,'-RETIM')
         DSPL     '   FOR READ-AHEAD',(SL:RATOR,'-RATO ')
         DSPL     '   FOR A.I.R.',(SL:AIRTO,'-AIRTO')
RESOURCE M:WRITE  M:LO,(BUF,SPACE),(SIZE,4)
         M:WRITE  M:LO,(BUF,HEAD1A),(SIZE,68)
         M:WRITE  M:LO,(BUF,HEAD1B),(SIZE,68)
         M:WRITE  M:LO,(BUF,HEAD1C),(SIZE,68)
         BAL,R7   CLEARBUF
         LW,SR1   M:SI+27           GET ACCOUNT NUMBER
         AND,SR1  L(X'FFFF')        SAVE LAST 2 CHAR OF 1ST WD ACCT
         CI,SR1   X'4040'           IS ACCT# A SYS RESOURCE
         BNE      RES03             B/ IF NOT
         LI,R12   SV:RSIZ
         LI,R1    1
         LI,SR3   SH:RNM            RESOURCE NAME
RES01    BAL,R7   V:LH@X
         CH,SR2   M:SI+27           RESOURCE NAMES MATCH
         BNE      RES02             B/ IF NOT
         LI,R12   1                 YES - SET TO DISP 1 RESOURCE
         B        PUTRES
RES02    AI,R1    1
         BDR,R12  RES01             CONTINUE UNTIL DONE
RES03    LI,R12   SV:RSIZ
         LI,R1    1
PUTRES   LI,SR3   SH:RNM            PUT SYSTEM RESOURCE
         BAL,R7   V:LH@X              *
         STH,SR2  BUF               NAME IN THE BUFFER
*
         LI,SR3   SH:RTOT           PUT SYSTEM TOTALS
         BAL,R7   V:LH@X              *
         LI,R5    5                   *
         LI,R6    4                   *
         BAL,R7   BIN:DEC           IN THE BUFFER
*
         LI,R2    3                 INDEX FOR BATCH/ONLINE/GHOST
*
RESBOG   LW,SR3   RXSUM-1,R2        PUT TOTALS
         BAL,R7   V:LH@X              *
         LI,R5    5                   *
         AI,R6    2                   *
         BAL,R7   BIN:DEC           IN THE BUFFER
*
         LW,SR3   RXCU-1,R2         PUT CURRENT VALUES
         BAL,R7   V:LH@X              *
         LI,R5    3                   *
         AI,R6    1                   *
         BAL,R7   BIN:DEC           IN THE BUFFER
*
         LW,SR3   RXMX-1,R2         PUT MAXIMUM VALUES
         BAL,R7   V:LB@X              *
         AI,R6    1                   *
         BAL,R7   BIN:DEC           IN THE BUFFER
*
         LW,SR3   RXDF-1,R2         PUT DEFAULT VALUES
         BAL,R7   V:LB@X              *
         AI,R6    1                   *
         BAL,R7   BIN:DEC           IN THE BUFFER
*
         BDR,R2   RESBOG            PUT NEXT BATCH/ONLINE/GHOST
         M:WRITE  M:LO,(BUF,BUF),(SIZE,68),(WAIT)
         AI,R1    1                 BUMP TO NEXT RESOURCE
         BDR,R12  PUTRES            PUT NEXT RESOURCE
         LW,SR1   RPTTYPE           GET REPORT TYPE
         CW,SR1   L(C'RES')         RESOURCE
         BE       EXIT              B/ IF YES
JOBSERV  M:WRITE  M:LO,(BUF,SPACE),(SIZE,4)
         M:WRITE  M:LO,(BUF,HEAD2A),(SIZE,55)
         M:WRITE  M:LO,(BUF,HEAD2B),(SIZE,55)
         M:WRITE  M:LO,(BUF,HEAD2C),(SIZE,55)
         BAL,R7   CLEARBUF          BLANK OUT THE BUFFER
         LI,R12   SV:LIM
         LI,R1    1
PUTSERV  LI,SR3   SL:NAME           PUT JOB SERVICE
         BAL,R7   V:LW@X              *
         STW,SR2  BUF               NAME IN THE BUFFER
*
         LI,R2    3
         LI,R5    5
         LI,R6    4
SERVBOG  LW,SR3   SXMX-1,R2         PUT MAX SERVICE LIMITS
         BAL,R7   V:LW@X              *
         AI,R6    2                   *
         BAL,R7   BIN:DEC           IN THE BUFFER
*
         LW,SR3   SXDF-1,R2         PUT DFT SERVICE LIMITS
         BAL,R7   V:LW@X              *
         AI,R6    1                   *
         BAL,R7   BIN:DEC           IN THE BUFFER
*
         BDR,R2   SERVBOG           PUT NEXT BATCH/ONLINE/GHOST
*
         LI,R5    10
         AI,R6    2
         BAL,R7   CLEARPRT          CLEAR PART OF THE BUFFER
         LW,SR3   EXMX-1,R1         PUT ELIMITS
         BEZ      WRITSERV            *
         BAL,R7   V:LW                *
         EXU      BIAS-1,R1         BIAS THE NUMBER
         AI,R6    -10
         BAL,R7   BIN:DEC           IN THE BUFFER
*
WRITSERV M:WRITE  M:LO,(BUF,BUF),(SIZE,55),(WAIT)
         AI,R1    1                 BUMP TO NEXT JOB SERVICE
         BDR,R12  PUTSERV           PUT NEXT JOB SERVICE
         LW,SR1   RPTTYPE           GET REPORT TYPE
         CW,SR1   L(C'SER')         SERVICE
         BE       EXIT              B/ IF YES
SYMFAUTH M:WRITE  M:LO,(BUF,SPACE),(SIZE,4)
         M:WRITE  M:LO,(BUF,HEAD3A),(SIZE,63)
         M:WRITE  M:LO,(BUF,HEAD3B),(SIZE,62)
         M:WRITE  M:LO,(BUF,HEAD3C),(SIZE,62)
         LI,R1    3
GETSYMD  LW,SR3   SYMDX-1,R1        GET S:SYMDB,S:SYMDO,S:SYMDG
         BAL,R7   V:LW
         STW,SR2  TEMP-1,R1
         BDR,R1   GETSYMD
         LI,R2    1
         LI,R3    SV:TYM+1          START OF FEATURE AUTHORATION
PUTAUTH  BAL,R7   CLEARBUF
         LI,R15   0                 FLAG FOR ALL DONE
         CI,R2    SV:TYM            DONE WITH SYMB AUTHS
         BG       PUTAUTH2          B/ IF YES
         AI,R15   1                 GOT SOMETHING
         LW,R1    R2                INDEX FOR SYMB AUTH
         LI,R5    BA(BUF)
         BAL,R7   PUTDSF            SET AUTH AND YES/NO
         AI,R2    1                 NEXT SYMB
PUTAUTH2 CI,R3    SV:FTYM           DONE WITH FEAT AUTH
         BG       PUTAUTH3          B/ IF YES
         AI,R15   1                 GOT SOMETHING
         LW,R1    R3                INDEX FOR FEAT AUTH
         LI,R5    BA(BUF)+36
         BAL,R7   PUTDSF            SET AUTH AND YES/NO
         AI,R3    1                 NEXT FEAT
PUTAUTH3 CI,R15   0                 ANYTHING TO PRINT
         BEZ      PUTAUTH9          B/ IF NOTHING
         M:WRITE  M:LO,(BUF,BUF),(SIZE,62),WAIT
         B        PUTAUTH
PUTDSF   PSW,R7   *R0               SAVE LINK ADDRESS
         LI,SR3   SH:SYMT           GET SYM/FEATURE NAME
         BAL,R7   V:LH@X
         LI,R4    (SR2**2)+2        BA(SR2)+2
         LI,SR1   2                 TWO BYTES LONG
         STB,SR1  R5                FOR MBS INSTRUCTION
         MBS,R4   0                 MOVE NAME INTO BUFFER
         LI,R6    3                 LOOP FOR BATCH/ONLINE/GHOST
         AI,R5    21                BIAS TO LAST DFT
PUTDSF1  LW,SR1   TEMP-1,R6         GET SAVED AUTHORATION BITS
         SLS,SR1  0,R1              IS IT TRUE
         CI,SR1   0
         BGEZ     %+3               B/ IF OFF (NO)
         LI,R4    BA(L(C'YES '))    YES
         B        %+2
         LI,R4    BA(L(C'NO  '))    NO
         LI,SR1   3                 THREE BYTES LONG
         STB,SR1  R5                FOR MBS INSTRUCTION
         MBS,R4   0                 MOVE YES/NO INTO BUFFER
         AI,R5    -11               NEXT FIELD
         BDR,R6   PUTDSF1           NEXT BATCH/ONLINE/GHOST
         PLW,R7   *R0               RESTORE LINK ADDRESS
         B        0,R7
PUTAUTH9 EQU      %
EXIT     M:EXIT
DISPLAY  LW,R12   R7                SAVE FIRST DATA LOC
         BAL,R7   CLEARBUF          CLEAR THE PRINT BUFFER
         LI,R5    5                 FIELDS ARE 5 LONG
DISPLAY1 LB,R4    *R12              GET FIELD NUMBER
         SLS,R4   -5                FROM BITS 0-3
         CI,R4    0                 IF ZERO MUST BE TEXTC
         BEZ      DISPLAY4          B/ IF TEXTC
         LW,SR3   *R12              GET ADDRESS
         LI,R3    1
         LB,R3    SR3,R3
         SLS,R3   -4
         EXU      V:LX,R3           EXU FETCH
         LB,R6    DISPFLDS,R4       GET PRINT POSITION
         BAL,R7   BIN:DEC           PUT THE VALUE
         CI,R3    0                 WAS THIS A 'VALUE' TYPE
         BNE      %+2               B/ IF NOT
         AI,R12   1                 SKIP OVER DATA OF 'VALUE'
         AI,R12   1                 NEXT DATA LOC
         LW,SR2   R6                MOVE CONTROL NAME
         AI,SR2   BA(BUF)             *
         LI,SR1   6                   *
         STB,SR1  SR2                 *
         LW,SR1   R12                 *
         SLS,SR1  2                   *
         MBS,SR1  0                 INTO PRINT BUFFER
         AI,R12   2
         B        DISPLAY1
DISPLAY4 LI,R5    BA(BUF)           MOVE CONTROL DISCRIPTION
         LB,R4    *R12
         STB,R4   R5
         LW,R4    R12
         SLS,R4   2
         AI,R4    1
         MBS,R4   0
         M:WRITE  M:LO,(BUF,BUF),(SIZE,72),WAIT
         LB,R7    *R12              CALCULATE RETURN ADDDRESS
         AI,R7    4
         SLS,R7   -2
         AW,R7    R12
         B        0,R7              RETURN AFTER TEXTC
V:LX     LW,SR2   *SR3              TYPE = 0
         BAL,R7   V:LB                   = 1
         BAL,R7   V:LH                   = 2
         M:XXX    0                      = 3  ***CAN'T BE***
         BAL,R7   V:LW                   = 4
         M:XXX    0                      = 5  ***CANT'T BE***
         M:XXX    0                      = 6  ***CAN'T BE***
         M:XXX    0                      = 7  ***CAN'T BE***
         M:XXX    0                      = 8  ***CAN'T BE***
DISPFLDS DATA,1   0,24,36,48,60,0,0,0
BIN:DEC  AW,R6    R5                BEGINNING FOR NEXT
         LCI      5                 SAVE R5-SR2
         PSM,R5   *R0                 IN THE TSTACK
BIN:DEC1 LI,SR1   0                 CLEAR THE REMAINDER
         DW,SR1   D10               GET NEW REMAINDER
         AI,SR1   X'F0'             ''OR'' IN ZONE BITS
BIN:DEC2 AI,R6    -1                DECREMENT TO NEXT BUF LOC
         STB,SR1  BUF,R6            PUT DIGIT IN THE BUFFER
         CI,SR2   0                 VALUE ZERO YET
         BLEZ     BIN:DEC3          YES - BLANK REST OF BUFFER
         BDR,R5   BIN:DEC1          CONTINUE UNTIL DONE
BIN:DEC3 LI,SR1   X'40'             SET DIGIT TO A BLANK
         BDR,R5   BIN:DEC2          CONTINUE UNTIL DONE
         LCI      5                 RESTORE R5-SR2
         PLM,R5   *R0                 FROM TH TSTACK
         B        0,R7              RETURN TO CALLER
*
CLEARBUF PSW,R7   *R0               SAVE R7 IN TEMP STACK
         LI,R7    20                20 WORDS IN BUF
         LW,SR1   SPACE             1 WORD OF BLANKS
         STW,SR1  BUF-1,R7          CLEAR THE BUFFER
         BDR,R7   %-1               CONTINUE UNTIL DONE
         PLW,R7   *R0               RESTORE R7 FROM TEMP STACK
         B        0,R7              RETURN TO CALLER
CLEARPRT PSW,R5   *R0               SAVE R5
         LB,SR1   SPACE
         STB,SR1  BUF,R6
         AI,R6    1
         BDR,R5   %-2
         PLW,R5   *R0               RESTORE R5
         B        0,R7              RETURN TO CALLER
V:LB     EQU      %                 LOAD BYTE
         LCI      4                 SAVE R4-R7
         PSM,R4   *R0                 IN TEMP STACK
         LI,R6    0                 SET BYTE DISPLACEMENT OT ZERO
         B        V:LB@X1
V:LB@X   EQU      %                 LOAD BYTE INDEXED
         LCI      4                 SAVE R4-R7
         PSM,R4   *R0                 IN TEMP STACK
         LW,R6    R1                SET BYTE DISPLACEMENT
V:LB@X1  LW,R4    SR3               GET WORD ADDRESS
         SLS,R4   2                 CONVERT TO BYTE ADDRESS
         AW,R4    R6                ADD BYTE DISPLACEMENT
         SLD,R4   -11               CONVERT TO A PAGE ADDRESS
         SLS,R4   9                 CONVERT TO A WORD ADDRESS
         BAL,R7   GETPAGE           MAP MONITOR PAGE
         SLS,R5   -21               BIAS SAVE BYTE DISPLACEMENT
         LB,SR2   *R4,R5            GET THE BYTE
         LCI      4                 RESTORE R4-R7
         PLM,R4   *R0                 FROM TEMP STACK
         B        0,R7              RETURN TO CALLER
V:LH     EQU      %                 LOAD HALF WORD
         LCI      4                 SAVE R4-R7
         PSM,R4   *R0                 IN TEMP STACK
         LI,R6    0                 SET HALFWORD DISPLACEMENT TO ZERO
         B        V:LH@X1
V:LH@X   EQU      %                 LOAD HALF WORD INDEXED
         LCI      4                 SAVE R4-R7
         PSM,R4   *R0                 IN TEMP STACK
         LW,R6    R1                SET HALFWORD DISPLACEMENT
V:LH@X1  LW,R4    SR3               GET WORD ADDRESS
         SLS,R4   1                 CONVERT TO HALFWORD ADDRESS
         AW,R4    R6                ADD HALFWORD DISPLACEMENT
         SLD,R4   -10               CONVERT TO A PAGE ADDRESS
         SLS,R4   9                 CONVERT TO A WORD ADDRESS
         BAL,R7   GETPAGE           MAP MONITOR PAGE
         SLS,R5   -22               BIAS SAVE HAVEWORD DISPLACEMENT
         LH,SR2   *R4,R5            GET THE HALFWORD
         LCI      4                 RESTORE R4-R7
         PLM,R4   *R0                 FROM TEMP STACK
         B        0,R7              RETURN TO CALLER
V:LW     EQU      %                 LOAD WORD
         LCI      4                 SAVE R4-R7
         PSM,R4   *R0                 IN TEMP STACK
         LI,R6    0                 SET WORD DISPLACEMENT TO ZERO
         B        V:LW@X1
V:LW@X   EQU      %                 LOAD WORD INDEXED
         LCI      4                 SAVE R4-R7
         PSM,R4   *R0               IN TEMP STACK
         LW,R6    R1                SET WORD DISPLACEMENT
V:LW@X1  LW,R4    SR3               GET WORD ADDRESS
         AW,R4    R6                ADD WORD DISPLACEMENT
         SLD,R4   -9                CONVERT TO A PAGE ADDRESS
         SLS,R4   9                 CONVERT TO A WORD ADDRESS
         BAL,R7   GETPAGE           MAP MONITOR PAGE
         SLS,R5   -23               BIAS SAVED WORD DISPLACEMENT
         LW,SR2   *R4,R5            GET THE WORD
         LCI      4                 RESTORE R4-R7
         PLM,R4   *R0               F  FROM TEMP STACK
         B        0,R7              RETURN TO CALLER
GETPAGE  EQU      %                 MAP A PAGE
         AND,R4   L(X'3FFFFF')
         BEZ      0,R7              PAGE ZERO ALLWAYS MAPPED
         CI,R4    X'8000'           END OF MONITOR AREA
         BGE      0,R7
         PSW,R5   *R0               SAVE R5
         LW,R5    #MAPPED           ARE ANY PAGES CURRENTLY MAPPPED
         BLEZ     GETPAGE2          NO - GET A PAGE AND MAP IT
GETPAGE1 CW,R4    RPAGES,R5         IS THIS PAGE CURRENTLY MAPPED
         BE       GETPAGE8          YES - RETURN ITS ADDRESS
         BDR,R5   GETPAGE1          CONTINUE LOOKING
         B        GETPAGE3
GETPAGE2 M:GP     1                 GET FIRST AVAILABLE
         BCS,8    GP:ERR            CAN'T GET A PAGE
         M:FP     1                   VIRTUAL ADDRESS
         LI,R5    1                 SET # OF MAPPED PAGES TO 1
         B        GETPAGE4
GETPAGE3 LW,R5    #MAPPED           IS THERE ROOM TO MAP
         CI,R5    MAX#MAPPED          ANOTHER MONITOR PAGE
         BGE      GETPAGE5          NO - REMAP AN EXISTENT ONE
         LW,SR2   VPAGES,R5         CALCULATE NEXT VIRTUAL
         AI,SR2   X'200'              PAGE ADDRESS
         AI,R5    1                 BUMP # MAPPED COUNT
GETPAGE4 STW,SR2  VPAGES,R5         SAVE VIRTUAL PAGE ADDRESS
         STW,R5   #MAPPED           SAVE # MAPPED COUNT
         B        GETPAGE7
GETPAGE5 LW,R5    LASTMAPPED        REUSE ONE OF THE
         AI,R5    1                   PAGES THAT
         CI,R5    MAX#MAPPED            HAS ALREADY
         BLE      GETPAGE6                BEEN USED
         LI,R5    1
GETPAGE6 STW,R5   LASTMAPPED        SAVE LAST MAPPED POINTER
         LW,SR2   VPAGES,R5         FREE CURRENT
         M:FVP    *SR2                VIRTUAL PAGE
         BCS,8    FVP:ERR           CAN'T FREE VIRTUAL PAGE
GETPAGE7 M:CVM    *R4,*SR2          MAP MONITOR REAL PAGE
         BCS,8    CVM:ERR           CAN'T CHANGE VIRUTAL MAP
         STW,R4   RPAGES,R5         SAVE REAL PAGE ADDRESS
GETPAGE8 LW,R4    VPAGES,R5         RETURN VIRTUAL PAGE ADDRESS
         PLW,R5   *R0               RESTORE R5
         B        0,R7              RETURN TO CALLER
GP:ERR   LI,R15   GP:EMES
         B        X%EMES
FVP:ERR  LI,R15   FVP:EMES
         B        X%EMES
CVM:ERR  LI,R15   CVM:EMES
         B        X%EMES
X%EMES   PSW,R7   *R0               SAVE R7 IN TEMP STACK
         BAL,R7   DO:MES            OUTPUT THE MESSAGE
         PLW,R7   *R0               RESTORE R7 FROM TEMP STACK
         M:XXX                      ABORT
DO:MES   LB,R14   *R15              GET MESS LENGTH
         M:WRITE  M:DO,(BUF,*R15),(BTD,1),(SIZE,*R14),(WAIT)
         B        0,R7              RETURN TO CALLER
D10      DATA     10
D500     DATA     500
SPACE    TEXT     '    '
CPUTYPE  TEXT     'SIG5SIG6SIG9X560'
RXSUM    DATA     SH:RGSUM,SH:ROSUM,SH:RBSUM
RXCU     DATA     SH:RGCU,SH:ROCU,SH:RBCU
RXMX     DATA     SB:RGMX,SB:ROMX,SB:RBMX
RXDF     DATA     SB:RGDF,SB:RODF,SB:RBDF
SXMX     DATA     SL:GMX,SL:OMX,SL:BMX
SXDF     DATA     SL:GDF,SL:ODF,SL:BDF
EXMX     DATA     SL:ETIME,SL:ELO,SL:EPO,SL:EDO,;
                  SL:EUO,SL:EPS,SL:ETS,0,0,0
SYMDX    DATA     S:SYMDB,S:SYMDO,S:SYMDG
BIAS     DW,SR2   D500
         SLS,SR2  -17
         SLS,SR2  -17
         SLS,SR2  -17
         SLS,SR2  -17
         NOP
         NOP
HEAD0B   TEXT     '----------------------  '
         TEXT     '----------- ----------- '
         TEXT     '----------- ----------- '
HEAD1A   TEXT     'SYS  SYS   <-----BATCH----->'
         TEXT      '  <-----ONLINE----> '
         TEXT      ' <-----GHOST----->'
HEAD1B   TEXT     'RES  TOT    TOT  CUR MAX DFT'
         TEXT     '   TOT  CUR MAX DFT '
         TEXT     '  TOT  CUR MAX DFT'
HEAD1C   TEXT     '--  -----  ----- --- --- ---'
         TEXT     '  ----- --- --- --- '
         TEXT     ' ----- --- --- ---'
HEAD2A   TEXT     'JOB   <--BATCH-->  <--ONLINE->  ',;
                  '<--GHOST-->  <-ELIMIT->'
HEAD2B   TEXT     'SERV   MAX   DFT    MAX   DFT   ',;
                  ' MAX   DFT       MAX   '
HEAD2C   TEXT     '----  ----- -----  ----- -----  ',;
                  '----- -----  ----------'
HEAD3A   TEXT     'PER   BATCH   ONLINE  GHOST         '
         TEXT     'FEAT  BATCH   ONLINE  GHOST'
HEAD3B   TEXT     'AUTH   DFT     DFT     DFT          '
         TEXT     'AUTH   DFT     DFT     DFT'
HEAD3C   TEXT     '--     ---     ---     ---          '
         TEXT     '--     ---     ---     ---'
GP:EMES  TEXTC    'M:GP FAILED TO GET A PAGE'
FVP:EMES TEXTC    'M:FVP FAILED TO FREE THE VIRTUAL PAGE'
CVM:EMES TEXTC    'M:CVM FAILED TO CHANGE THE VIRTUAL MAP'
         DEF      00:CVL
00:CVL   CSECT    0
MAX#MAPPED EQU    4                 MAX # OF PAGES TO BE MAPPED
#MAPPED  DATA     0
VPAGES   EQU      %-1
         RES      MAX#MAPPED
LASTMAPPED DATA   0
RPAGES   EQU      %-1
         RES      MAX#MAPPED
TEMP     RES      4
BUF      RES      20
RPTTYPE  DATA     0                 REPORT TYPE
HEAD0A   TEXT     'XXXXXXXX CP-V V0V CPUX  '
         TEXT     '<--SYSTEM-> <--BATCH--> '
         TEXT     '<--ONLINE-> <--GHOST--> '
TIMEDATE RES      4
         DEF      LT:CVL
LT:CVL   CSECT    1
         END      CVL
