         TITLE    '******* REFS, DEFS AND OTHER STUFF *******'
         SYSTEM   BPM
         SYSTEM   APTERYX
R0       EQU      0
R1       EQU      1
R2       EQU      2
R3       EQU      3
R4       EQU      4
R5       EQU      5
R6       EQU      6
R7       EQU      7
R8       EQU      8
R9       EQU      9
R10      EQU      10
R11      EQU      11
R12      EQU      12
R13      EQU      13
R14      EQU      14
R15      EQU      15
WINDOWPG EQU      X'18C00'
#ACCTS   EQU      5                 RESERVE 5 SLOTS FOR ACCOUNTS
         REF      LB,LH,LW,LD
         REF      SLURP,SLURPO,SLURPH,SLURPN,SLURPT,SLURPC
         REF      ARGO,ARGN,ARGH,ARGT,ARGC
         REF      UB:US,UH:FLG,:BIG,UX:JIT,S:CUN,UB:PRIOB,UB:PRIO
         REF      UB:SWAPI,MB:SDI,DCTSIZ,DCT22,UH:JIT,S:DP
         REF      MB:GAM6,MB:GAM5,NSPT,DISCLIMS,NSPC,SNULL,NEWQ
         REF      PLB:USR,LPART,LB:UN,LNOL,SB:GJOBUN,MAXG,PLH:SID
         REF      SMUIS,OBUF,S:GJOBTBL
         REF      STATETXT,USNFILE,M:EI
         REF :AMHED     ASSIGN/MERGE RECORD HEAD
         REF :LOGSZ     :USERS RECORD SIZE
         REF ABO        I/O ABNORMAL OVERRIDE ADDR.
         REF ACCN       (SEE J:ACCN)
         REF ALOCCT     ADDR OF LOCCT TABLE BUILT BY CCI.
         REF ATITLE     (SEE J:TITLE)
         REF BAABC      (SEE J:ABC)
         REF BARNST     (SEE J:RNST)
         REF CCBEF      (SEE J:RNST)
         REF CCLFLAGS   (SEE J:TELFLGS)
         REF CCLTFLGS   (SEE J:TELFLGS)
         REF CDPO       (SEE J:INTER)
         REF CEXT       (SEE J:CTIME)
         REF CIC        (SEE J:NRS)
         REF COCLN      DISPLACEMENT IN M:UC TO LINE #
         REF CPE        (SEE J:ASSIGN)
         REF CPO         TOTAL # OF CARDS PUNCHED FOR JOB.
         REF CPPO       (SEE J:CPPO)
         REF CUPO       CURRENT # OF USER PAGES OUT.
         REF DCACCESS   TOTAL # OF DISC READS AND WRITES FOR JOB.
         REF DCBLINK    (SEE J:DCBLINK)
         REF DPACCESS   TOTAL # OF PACK READS AND WRITES FOR THE JOB.
         REF ERLFLAGS   (SEE J:CASSIN)
         REF ERO        I/O ERROR OVERRIDE ADDR.
         REF ERRLFLGS   (SEE J:CASSIN)
         REF FPMC       FREE PAGE MAP CONSTANT
         REF HANSWAPS   HALFWORD ADDR OF # OF SWAPS PRIOR TO A TRAP
         REF INTENT     (SEE J:INTENT)
         REF IOTIME     (SEE J:CALCNT)
         REF J:ABC      BITS 0-7: I/O ABORT CODE
         REF J:ABUF     LOCATION OF ASSIGN-MERGE BUFFER IF IN CORE,
         REF J:ACCN     ACCOUNT # FOR THIS JOB (EBCDIC-2 WORDS).
         REF J:AJ       PHYS PAGE # OF AJIT (ADDITIONAL JIT)
         REF J:AJIT     ADDR OF ADDITIONAL JIT.  AJIT NEEDED IF J:CL
         REF J:ALB      ADDR OF LAST BRANCH (FOR 560 ONLY).
         REF J:AMR      DISC ADDR OF THE ASSIGN-MERGE RECORD.
         REF J:ASPIN    TWO WORD BIT TABLE USED TO MARK THE DCT
         REF J:ASSIGN   BIT 0: ASSIGNS HAVE BEEN MERGED.
         REF J:BASE     SCRATCH STORAGE (12 WORDS)
         REF J:BUP      PAGE # OF LOWER LIMIT OF USER AREA (1ST PAGE #).
         REF J:CALCNT   COUNT OF CAL1 CALLS EXECUTED.
         REF J:CASSIN   BITS 8-15: WORK-STATION OF ORIGIN.
         REF JB:CCARS   ACTUAL RECORED SIZE OF CONTROL CMND.
         REF J:CCBUF    CONTROL CMND BUFFER USED BY TEL AND CCI
         REF JB:CCDISP  DISPLACEMENT INTO CONTROL CMND.
         REF J:CFLGS    THIS FIELD IS SET UP BY THE SAVE CAL.
         REF J:CL       START OF SWAPPER CMND LIST IF NO AJIT.
         REF J:CLE      # OF WORDS IN SWAPPER CMND LIST.
         REF J:CLL      PAGE # OF LOWER LIMIT OF JOB CONTEXT AREA
         REF J:CLPA     PHYS ADDR OF SWAPPER CMND LIST.
         REF J:CLS      CLOSE STATUS INFORMATION.
         REF J:COCOPT   COC OPTIONS (M:UC+8)                                   X
         REF J:CPPO     BITS 0-14: CURRENT PROCESSOR PAGES OUT.
         REF J:CPROCS   PROCESSORS ASSOCIATED AT TIME OF SAVE CAL.
         REF J:CTIME    # OF I/O OPERATIONS IN CURRENT QUANTUM * SL:IOTA.
         REF J:CUL      PAGE # OF UPPER LIMIT OF JOB CONTEXT AREA.
         REF JB:CUN     CURRENT USER NUMBER
         REF J:DCBLINK  ADDR OF DCB TABLE.
         REF J:DCBLL    PAGE # OF DCB LOWER LIMIT.
         REF J:DCBUL    PAGE # OF DCB UPPER LIMIT.
         REF J:DDLL     PAGE # OF LOWER LIMIT OF DYNAMIC DATA AREA.
         REF J:DDUL     PAGE # OF UPPER LIMIT OF DYNAMIC DATA AREA
         REF J:DELTAT   NEGATIV VALUE OF QUANTUM REMAINING,INC BY CLOCK4.
         REF J:DLL      PAGE # OF LOWER LIMIT OF PROGRAM DATA AREA.
         REF J:DUL      PAGE # OF UPPER LIMIT OF PROGRAM DATA AREA.
         REF J:DWSK     RESERVED FOR D00.
         REF J:EUP      PAGE # OF UPPER LIMIT OF USER AREA
         REF J:EXLY     CURRENTLY EXECUTING AN EXECUTE-ONLY LOAD MODULE.
         REF J:EXTENT   BIT 0: OPERATOR ABORT OR LINE HANGUP.
         REF J:FDDA     FILE DIRECTORY DISC ADDR FOR THIS ACCOUNT.
         REF J:ICBHDR   BIT 0: USER HAS ISSUED REAL-TIME CAL1.
         REF J:IDELTAT  INITIAL VALUE OF J:DELTAT (NEGATIVE QUANTUM).
         REF J:INTENT   BIT 0: CMND PROCESSOR BREAK CONTROL FLAG.
         REF J:INTER    BITS 0-14: CURRENT DIAGNOSTIC PAGES OUT.
         REF J:JAC      TABLE OF THE TWO BIT ACCESS PROTECTION CODES
         REF J:JIP      BITS 0-14: MAXIMUM USER PAGES OUT.
         REF J:JIT      JIT START ADDR, CURRENTLY X'8C00'.
         REF J:LDCF     PERIPHERAL AUTHORIZATION FLAGS, PARELLEL TO            X
         REF J:LMN      NAME OF LAST LOAD MODULE FORMED
         REF J:MRT      MAXIMUM RUN TIME. ZERO IMPLIES NO MAXIMUM.
         REF J:NRS      BITS 0-14: TOTAL # OF CARDS READ FOR JOB.
         REF  J:OPT     BITS REPRESENTING NON-STANDARD OPTIONS                 X
         REF J:OVHTIM   OVERHEAD TIME FOR CURRENT QUANTUM.
         REF J:OVRLY    OVERLAY ENTRY POINT ADDR.
         REF J:PLL      PAGE # OF LOWER LIMIT OF
         REF J:PPRIV    PRIVILEGED PROCESSOR FLAGS                             X
         REF J:PTIME    TOTAL PROCESSOR EXECUTION TIME FOR JOB.
         REF J:PUL      PAGE # OF UPPER LIMIT PROGRAM PURE PROCEDURE.
         REF J:RNST     BIT 0: M:ERR.
         REF J:RWECB    ECB ADDR
         REF      J:SIMSP           SIMULATORS WORK CELL (SIGMA 5 ONLY)
         REF J:STAR     LIST OF STAR FILE FIT DISC ADDRESS(6 WORDS)
         REF J:START    START ADDR OF CURRENT PROGRAM.
         REF J:T        USED FOR PERFORMANCE MEASUREMENT.
         REF J:TELFLGS  FLAGS USED BY TEL AND CCI
         REF J:TIC      USED FOR PERFORMANCE MEASUREMENT.
         REF J:TIMENT   ADDR OF ROUTINE TO BE ENTERED
         REF J:TITLE    JOB TITLE IN TEXTC FORMAT IF BATCH;
         REF J:TRAP     BITS 0-14: MAXIMUM PROCESSOR PAGES OUT.
         REF J:TREE     TREE TABLE ADDR OF EXECUTING
         REF J:UN       (SEE J:JIT)
         REF J:UNAME    USER'S NAME (EBCDIC-3 WORDS).
         REF J:UPRIV    USER PRIVILEGE FLAGS                                   X
         REF J:USCDX    ADDR OF USED CONTEXT DATA
         REF J:USENT    BIT 7: RSVRD.-TRAP CONTROL
         REF J:USER     AVAILABLE FOR INSTALLATION DEFINITION.
         REF J:UTIME    TOTAL USER EXECUTION TIME FOR CURRENT JOB.
         REF J:UTIMER   TIME INTERVAL SPECIFIED BY M:STIMER CAL.
         REF J:VLCS     VIRTUAL PAGE LINK STOP.
         REF J:XP       BITS 0-15: DEFAULT FILE EXPIRATION PARAMETERS.
         REF J:XPSD     XPSD BLOCK FOR CAL3                                    X
         REF JABC       (SEE J:ABC)
         REF JACCN      (SEE J:ACCN)
         REF JAJ        (SEE J:AJ)
         REF JAJITVP    VIRTUAL PAGE # OF AJIT
         REF JASSIGN    (SEE J:ASSIGN)
         REF JB:ALN     ACTUAL LINE NUMBER; USED WHEN A SAVED IMAGE
         REF JB:BCP     PAGE # OF BASE OF COMMON PAGE
         REF JB:CBUC    COOP SPARE BUFFER USE COUNT.
         REF JB:COCOPT2 COC OPTIONS
         REF JB:CUR     BYTE TABLE GIVING THE # OF
         REF JB:DPROMPT DEFAULT PROMPT CHARACTER
         REF JB:FBUC    FILE MANAGEMENT SPARE BUFFER USE COUNT
         REF JB:FBUL    FILE MANAGEMENT SPARE BUFFER UPPER LIMIT.
         REF JB:FRS     FINAL RUN STATUS.
         REF      JB:LAPH           LINES AFTER PAGE HEADING, INITIALLY 6
         REF      JB:LBPH           LINES BEFORE PAGE HEADING, INITIALLY 5
         REF JB:LC      COUNT OF LINES OUTPUT ON CURRENT PAGE.
         REF JB:LMAP    BYTE  TABLE INDEXED BY VIRTUAL PAGE
         REF JB:LPP     # OF USER LINES PER PAGE ON TERMINAL.
         REF JB:MAX     BYTE TABLE CONTAINING THE MAXIMUM
         REF JB:MNPA    MAXIMUM # OF PAGES AVAILABLE.
         REF JB:NFPOOL  MAX # FILE BUFFERS FOR THIS JOB                        X
         REF JB:NRG     # OF REMAINING GRANULES.
         REF JB:ORG     JOB ORIGIN                                             X
         REF JB:OTEL    SP. SHRD PROC. NUMBER OVERLAY TEL.                     X
         REF JB:PCC     PAGE COUNT OF CONTEXT
         REF JB:PCD     PAGE COUNT OF DATA.
         REF JB:PCDCB   PAGE COUNT OF DCBS.
         REF JB:PCDD    PAGE COUNT OF DYNAMIC DATA.
         REF JB:PCP     PAGE COUNT OF PURE PROCEDURE.
         REF JB:PCPWP   PAGE CNT OF ASSIGNED PHY. PGS.                         X
         REF JB:PCW     PLATEN WIDTH (# OF CHARACTERS PER LINE).
         REF JB:PEAK    PEAK # OF CORE PAGES INCURRED
         REF JB:PMTS    # OF DISK PACKS MOUNTED FOR THIS JOB
         REF JB:PNR     PARTITION # UNDER WHICH THE JOB IS RUNNING.
         REF JB:PPC     PHYS PAGE CHAIN COUNT.
         REF JB:PRIV    BITS 0-7 CONTAIN THE PRIVILEGE
         REF JB:PROMPT  CURRENT PROMPT CHARACTER.
         REF JB:SLNK    USED TO LINK THE SERIAL #S OF
         REF JB:STEP    BITS 0-7: COUNT OF JOB STEPS.                          X
         REF JB:STEPCC  STEP CONDITION CODE FOR THIS JOB STEP.
         REF JB:TDP     PAGE # OF TOP OF DYNAMIC DATA.
         REF JB:TMTS    # OF TAPES MOUNTED FOR JOB.
         REF JB:VLH     VIRTUAL PAGE LINK HEAD.
         REF JB:VLT     VIRTUAL PAGE LINK TAIL.
         REF JB:XLNK    USED TO LINK THE SERIAL #S
         REF JBBCP      BYTE DISPLACEMENT OF JB:BCP.
         REF JBCBLL     COOP SPARE BUFFER LOWER LIMIT.
         REF JBCBUC     COOP SPARE BUFFER USE COUNT.
         REF JBFBFP     FILE MANAGEMENT FREE BUFFER POOL HEAD
         REF JBFBUC     FILE MANAGEMENT SPARE BUFFER USE COUNT
         REF JBLMAP     BYTE DISPLACEMENT OF JB:LMAP
         REF JBMNPA     BYTE DISPLACEMENT OF JB:MNPA.
         REF JBNASP     BYTE DISPLACEMENT OF JB:NASP.
         REF JBNFPOOL   MAXIMUM # OF FILE BUFFERS FOR THIS JOB.
         REF JBNRG      BYTE DISPLACEMENT OF JB:NRG.
         REF JBPCC      BYTE DISPLACEMENT OF JB:PCC.
         REF JBPCDD     BYTE DISPLACEMENT OF JB:PCDD.
         REF JBPCP      BYTE DISPLACEMENT OF JB:PCP.
         REF JBPPC      BYTE DISPLACEMENT OF JB:PPC.
         REF JBTDP      BYTE DISPLACEMENT OF JB:TDP.
         REF JBUP       (SEE J:BUP)
         REF JBUPVP     VP # OF USERS BEGINNING PAGE.
         REF JBUPVPA    WORD ADDR OF USERS BEGINNING PAGE
         REF JBVLH      BYTE DISPLACEMENT OF JB:VLH.
         REF JCCL       MAXIMUM JIT CMND LIST LENGTH.
         REF JCL        (SEE J:CL)
         REF JCLE       (SEE J:CLE)
         REF JCLP       (SEE J:CLP)
         REF JCLPA      (SEE J:CLPA)
         REF JCLT       (SEE J:CLT)
         REF JCMAP      (SEE JB:CMAP)
         REF JCOVP      VP # OF FIRST COOP BUFFER.
         REF JCOVPA     WORD ADDR EQUIVALENT OF JCOVP.
         REF JCO2VPA    WORD ADDR OF SECOND COOP BUFFER.
         REF JCPPO      (SEE J:CPPO)
         REF JDA        (SEE J:DA)
         REF JDCBLL     PAGE # OF DCB LOWER LIMIT.
         REF JDCBUL     PAGE # OF DCB UPPER LIMIT.
         REF JDDLL      (SEE J:DDLL)
         REF JDDUL      (SEE J:DDUL)
         REF JDLL       (SEE J:DLL)
         REF JDUL       (SEE J:DUL)
         REF JEUP       (SEE J:EUP)
         REF JEUPVP     VP # OF END USERS PAGE
         REF JH:DA      HALFWORD TABLE OF SEEK ADDRESSES
         REF JH:LDCF    PERIPHERAL AUTHORIZATION FLAGS, PARALLEL TO
         REF JH:PC      ON-LINE PAGE COUNT.
         REF JIT        (SEE J:JIT)
         REF JIT:
         REF JITLOC
         REF JITLOC:
         REF JITREE     TREE TABLE ADDRES OF EXECUTING
         REF JJAC       (SEE J:JAC)
         REF JJITVP     VP # OF JIT.
         REF JLMAP      (SEE JB:LMAP)
         REF JOPT       BITS REPRESENTING NON-STANDARD OPTIONS(SEE J:OPT)      X
         REF JOVVP      VP # START OF MAP IMAGE WHICH
         REF JOVVPA     WORD ADDR EQUIVALENT OF JOVVP.
         REF JPCP       (SEE JB:PCP)
         REF JPLL       (SEE J:PLL)
         REF JPPC       (SEE JB:PPC)
         REF JPPH       (SEE JX:PPH)
         REF JPPT       (SEE JX:PPT)
         REF JPUL       (SEE J:PUL)
         REF JRBID      REMOTE BATCH JOB ID.
         REF JRNST      (SEE J:RNST)
         REF JSBUF1VP   VP # OF FIRST SPECIAL BUFFER
         REF JSBUF2VP   VP # OF SECOND SPECIAL BUFFER.
         REF JSPBFLG    SPARE BUFFER SWAP FLAG.
         REF JSPVP      VP # OF SPECIAL SHARED PROCESSOR.
         REF JTELFLGS   (SEE J:TELFLGS)
         REF JTSTACKSZ  LENGTH OF TSTACK.
         REF JUNAME     USER'S NAME (EBCDIC - 3 WORDS).
         REF JVLCS      (SEE J:VLCS)
         REF JVLH       (SEE JB:VLH)
         REF JVLT       (SEE JB:VLT)
         REF JX:CMAP    BYTE/HALFWORD TABLE INDEXED BY
         REF JX:PPH     PHYSICAL PAGE CHAIN HEAD
         REF JX:PPT     PHYSICAL PAGE CHAIN TAIL
         REF JXBUFVP    VP # START OF JIT MAP IMAGE.
         REF JXCMAP     BYTE DISPLACEMENT (SEE JX:CMAP).
         REF JXPPH      BYTE DISPLACEMENT OF JX:PPH.
         REF JXPPT      BYTE DISPLACEMENT OF JX:PPT.
         REF M:UC       M:UC DCB IF ONLINE (JOB TITLE IF
         REF M:XX       A SYSTEM DCB USED BY DELTA AND
         REF MDPO       MAXIMUM DIAGNOSTIC PAGES OUT.
         REF MJCFLG     (SEE J:TELFLGS)
         REF MPO        MAXIMUM CARD PUNCH OUT.
         REF MPPO       MAXIMUM PROCESSOR PAGES OUT.
         REF MRT        MAXIMUM RUN TIME FOR BATCH JOB.
         REF MUPO       MAXIMUM USER PAGES OUT.
         REF MXFPL      M:XX FUNCTION PARAMETER LIST (10 WORDS)
         REF MXKB       M:XX KEY BUFFER (8 WORDS)
         REF NSWAPS     # OF SWAPS.
         REF OVHTIME    OVERHEAD TIME FOR PROCESSOR OR USER
         REF PPMD       (SEE J:ASSIGN)
         REF PRDCRM     PERM RAD SPACE THAT CAN BE USED FOR THIS JOB.
         REF PRDPRM     PERM DISK SPACE THAT CAN BE USED FOR THIS JOB.
         REF PRT        (SEE J:ABC)
         REF PUF        (SEE J:RNST)
         REF RNST       (SEE J:RNST)
         REF RUNFLAG    (SEE J:RNST)
         REF SBUF1VPA   WORD ADDR EQUIVALENT TO JSBUF1VP.
         REF SBUF2VPA   WORD ADDR EQUIVALENT TO JSBUF2VP.
         REF SEED       SEED FOR PASSWORD SCRAMBLING ALGORITHM
         REF SPDBASE    SPECIAL SHARED PROCESSOR DATA ADDRESS.
         REF SPPBASE    DELTA'S PROCEDURE ADDR.
         REF SS         (SEE J:ABC)
         REF SYSID      SYSTEM ID FOR THIS BATCH JOB.
         REF TCBADR     (SEE J:TCB)
         REF TIMENT     (SEE J:TIMENT)
         REF TIMTMP     (SEE J:DELTAT)
         REF TMDCRM     TEMPROARY RAD SPACE THAT CAN BE
         REF TMDPRM     TEMP DISK PACK SPACE THAT CAN
         REF TMPDCPK    MIMINUM OF TEMP RAD SPACE
         REF TMPDPPK    MINIMUM OF TEMP PACK SPACE
         REF TPACCESS   # OF TAPE READS AND WRITES FOR THIS JOB.
         REF TPEXT      TOTAL PROCESSOR EXECUTION TIME FOR THIS JOB.
         REF TPIOT      PORCESSOR MEMORY USE FACTOR
         REF TPOVT      TOTAL PROCESSOR OVERHEAD TIME FOR THIS JOB.
         REF TRPFLAGS   (SEE J:USENT)
         REF TSTACK     USER'S MAPPED TEMP STACK. (X'7A' WORDS)
         REF TUEXT      TOTAL USER EXECUTION TIME FOR THIS JOB
         REF TUIOT      USER MEMORY USE FACTOR (USER PAGES*TIME).
         REF TUOVT      TOTAL USER OVERHEAD TIME FOR THIS JOB
         REF UNAME      (SEE J:UNAME)
         REF USRENT     (SEE J:USENT)
         REF UTIMER     TIME INTERVAL SPECIFIED BY M:STIMER CAL.
         REF UTS        (SEE TSTACK)
         SREF     UB:C#
         DEF      SPY00,SPY01
         TITLE    '******* DISPLAY GENERATION PROCS *******'
*
* PROCS TO DEFINE DISPLAYS AND BUILD DISPLAY DRIVERS
*
         OPEN     L,DISPLACE,DISPTXT,HEADER
L        SET      0
*
DISPLAY  CNAME
*
* LF IS SET TO DISPLAY NUMBER
* AF(1) IS DISPLAY HEADER
* AF(2) IS LENGTH OF DISPLAY ITEM
*
         PROC
L        SET      L+1
LF       EQU      L
DISPLACE(L) SET   %
DISPTXT(L) SET    (AF(1))
         DO1      AF(2)-S:NUMC(AF(1))
DISPTXT(L) SET    S:PT(DISPTXT(L),' ')
         PEND
*
SPYINIT  CNAME
*
* AF(1) IS HEADER ADDRESS (SAME AS LF OF SPYEND CALL)
*
         PROC
HEADER   SET      'NULL'
LF       PUSHL
         BALL     GETJIT
         B        NOJIT             CANT GET JIT
         LI,R6    0
         MTW,0    SPYHDR
         BNE      %+5
         LI,R5    BA(AF(1))
         BALL     SLURP
         BALL     SLURPO
         MTW,1    SPYHDR
         PEND
*
SPYDISP  CNAME
*
* AF(1) IS DISPLAY NUMBER
*
         PROC
         BALL     DISPLACE(AF)
         AI,R6    #BLANKS
HEADER   SET      S:PT(HEADER,DISPTXT(AF))
         DO1      #BLANKS
HEADER   SET      S:PT(HEADER,' ')
         PEND
*
SPYEND   CNAME
*
* LF IS SET TO LOCATION OF HEADER TEXT
*
         PROC
         BALL     SLURPO
         B        CMDX
LF       EQU      %+1
         TXT      S:PT(HEADER,'%')
         PEND
         TITLE    '*******           SPY DATA           *******'
SPY00    CSECT    0
NEWQARG  DATA     X'FC0A00'
IOBUFFER DATA     0
IOBUFSIZE DATA    0
SEEK     DATA     0
EA       DATA     0
EAI      DATA     0
JITPAGE  DATA     0
SPYHDR   DATA     0
TRASH    DATA     0
DISPADR  DATA     0
WHERE    DATA     0
#TRIES   DATA     1000
USRTHERE DEQU     %
         RES      1
CURARG   DATA     0
         BOUND    8
ACLIST   RES      #ACCTS+#ACCTS+2
         TITLE    '******* GET JIT ROUTINE *******'
SPY01    CSECT    1
*
* ROUTINE TO GET JIT OF USER NO. IN R2.  BAL+1 IS ERROR RETURN,
* BAL+2 IS NORMAL RETURN
*
GETJIT   PUSHL
         M:FVP    WINDOWPG          FREE WINDOW PAGE IF WE HAVE IT
         LI,R1    ' '
         STB,R1   WHERE             INDICATE JIT FROM CORE
         MTW,0    JITPAGE
         BNE      GETJIT10
         M:GP     1
         BCS,8    CMDX
         STW,R9   JITPAGE
GETJIT10 EQU      %
         MTW,0    USNFILE           ARE WE USING A MONDMP?
         BE       GETJIT20          B/ NOPE
         LW,R3    R2                GET USER NO.
         SLS,R3   16                MOVE UN TO BITS 8-15
         OR,R3    =X'03000000'      OR IN BYTE COUNT FOR KEY
         STW,R3   *JITPAGE          SAVE THE KEY
         LW,R3    M:EI+3            GET ERR ADR FROM M:EI
         LW,R4    M:EI+4            GET ABN ADR FROM M:EI
         M:SETDCB M:EI,(ERR,MDX),(ABN,MDX)
         M:READ   M:EI,(BUF,*JITPAGE),(SIZE,2048),(BTD,0),WAIT,;
                  (ERR,MDX),(ABN,MDX),(KEY,*JITPAGE)
         M:SETDCB M:EI,(ERR,*R3),(ABN,*R4)
         B        NORMEXIT
MDX      M:SETDCB M:EI,(ERR,*R3),(ABN,*R4)
         B        CMDX              BAD EXIT
GETJIT20 EQU      %
         CI,R2    SMUIS
         BG       CMDX              USER # TOO LARGE
         LW,R7    R2                GET USER # AS INDEX FOR LTHING
         LI,R8    UB:US
         BALL     LB                GET USERS STATE
         CI,R1    SNULL
         BE       CMDX              NO SUCH USER
         LI,R8    UH:FLG
         BALL     LH                GET USER FLAGS
         CI,R1    X'200'
         BANZ     MOVEJIT           JIT IS IN CORE
         BALL     SETNEWQ           READ JIT FROM SWAPPER
         B        CMDX              CAN'T READ JIT FROM SWAPPER
         MASTER   CMDX
         PUSH     R2
         LCI      6                 LOAD NEWQARG
         LM,R12   NEWQARG
         BAL,R11  NEWQ              READ JIT
         NOP                        IGNORE ERROR EXIT
         PULL     R2
         SLAVE
         LI,R1    '*'
         STB,R1   WHERE             INDICATE JIT FROM SWAPPER
NORMEXIT PULLL
         M:FVP    WINDOWPG          FREE WINDOW PAGE
         LI,R1    ACCN+ACCN+ACCN+ACCN
         LB,R1    *JITPAGE,R1
         CI,R1    X'40'
         BLE      *R15              BAD EXIT
         LW,R1    ACLIST            CHECK ACCOUNT LIST
         BEZ      SKIPXIT           NOTHING TO CHECK
         LI,R4    ACCN
         LCI      2
         LM,R4    *JITPAGE,R4       GET ACCOUNT FROM JIT
ACCHK    CD,R4    ACLIST,R1         IS ACCOUNT IN LIST?
         BE       SKIPXIT           B/ YES
         BDR,R1   ACCHK             SERACH ENTIRE LIST
         B        *R15              NOT FOUND/ BAD EXIT
SKIPXIT  AI,R15   1
         B        *R15              SKIP RETURN
TRYCORE  EQU      %
         LW,R5    #TRIES            TRY THIS MANY TIMES
         LI,R8    UH:FLG
         BALL     LH                GET USERS FLAGS
         CI,R1    X'200'
         BANZ     MOVEJIT           JIC
         BDR,R5   %-3               TRY AGAIN
         B        CMDX              NO LUCK
MOVEJIT  EQU      %
         LI,R8    UX:JIT
         BALL     LB+:BIG           GET PP OF JIT
         LW,R5    R1                SAVE IT FOR A WHILE
         SLS,R1   9                 CONVERT TO WA
         M:CVM    *R1,WINDOWPG      MAP TO JIT PAGE
         LI,R8    UH:FLG
         BALL     LH                IS HE STILL IN CORE
         CI,R1    X'200'
         BAZ      GETJIT+1          NOPE, TRY AGAIN
         LI,R8    UX:JIT
         BALL     LB+:BIG
         CW,R5    R1
         BNE      GETJIT+1          HE HAS MOVED
         LI,R12   WINDOWPG*4        BA OF WINDOW PAGE
         LW,R13   JITPAGE
         SLS,R13  2                 BA OF JIT PAGE
         LI,R4    8                 NO OF MBS'S
MOVE10   MTB,-1   R13
         MBS,R12  0
         BDR,R4   MOVE10
         LI,R4    X'FF'
         LD,R12   WINDOWPG+X'1FE'   MOVE LAST TWO WORDS
         STD,R12  *JITPAGE,R4
         BALL     LB+:BIG
         CW,R1    R5                IS HE STILL THERE?
         BNE      GETJIT+1          NOPE
         LI,R8    UH:FLG
         BALL     LH
         CI,R1    X'200'
         BAZ      GETJIT+1          NO LONGER IN CORE
         B        NORMEXIT          GOT IT (I THINK)
SETNEWQ  EQU      %
*
* SET UP NEWQARG TO READ JIT OF USER SPECIFIED IN R2 FRO THE SWAPPER
*
* RETURN IS TO BAL+2 IF SUCCESSFUL.  GOES TO TRYCORE IF IT CAN'T GET
* MASTER MODE.
*
         MASTER   TRYCORE
         LW,R1    JITPAGE
         BEZ      SNEWQX
         SLS,R1   2                 CONVERT TO BA
         STW,R1   IOBUFFER
         LI,R1    X'800'
         STW,R1   IOBUFSIZE
         LI,R1    X'A00'
         STW,R1   NEWQARG           SET FCN AND NRT
         LW,R3    S:CUN
SETPRIO  DEQU     %
         LB,R1    UB:PRIOB,R3       GET OUR BASE PRIORITY
         LI,R3    1
         STB,R1   NEWQARG,R3        AND DO IO AT THAT PRIORITY
         LI,R1    0
         STW,R1   EA
         STW,R1   EAI               CLEAR END ACTION
         LB,R4    UB:SWAPI,R2       GET SWAP TABLE INDEZ
         LB,R5    MB:SDI,R4         GET DCT INDEZ OF SWAP DEVICE
         BEZ      SNEWQX            OOPS
         CI,R5    DCTSIZ            CHECK FOR VALID DCTX
         BG       SNEWQX
         LI,R3    3
         STB,R5   NEWQARG,R3        STORE DCTX
         LB,R7    DCT22,R5          GET INDEX INTO SYSGEN TABLES
         BEZ      SNEWQX            OOPS
         LH,R9    UH:JIT,R2         GET DISK ADR OF JIT
         BEZ      SNEWQX
         MTW,0    S:DP              IS IT DP SWAPPER
         BNEZ     DPSWAP            IT IS
         LB,R8    MB:GAM6,R4        SECTOR MASK
         AND,R8   R9                R8 <= SECTOR NUMBER
         LB,R10   MB:GAM5,R4        SHIFT FACTOR
         SLS,R9   *R10              GET TRACK NUMBER
         MW,R9    NSPT,R7           AND CONVERT TO SECTOR NUMBER
         AW,R8    R9
CVVT     AI,R8    0
         BEZ      SNEWQX            ILLEGAL SECTOR NUMBER
         CW,R8    DISCLIMS,R7
         BGE      SNEWQX            NOT VALID FOR THIS DEVICE
         STW,R8   SEEK
         STH,R5   SEEK              STORE DCT INDEX
         SLAVE
         AI,R15   1
         B        *R15              RETURN SKIPPING
DPSWAP   EQU      %
         LI,R8    UB:C#
         BEZ      SNEWQX            S:DP HAS BEEN CLOBBERED
         LI,R8    X'FF'
         AND,R8   R9                GET SECTOR NUMBER
         LB,R3    UB:C#,R2          GET CYLINDER NUMBER
         MW,R3    NSPC,R7           CONVERT TO SECTOR NUMBER
         AW,R8    R3
         LI,R3    2                 CORRECT JIT DISC ADR
         MTB,0    UB:C#,R2
         BEZ      %+2
         LI,R3    -2
         AW,R8    R3
         B        CVVT
SNEWQX   SLAVE
         B        *15
         PAGE
*
*        ROUTINE TO GET USER NUMBER GIVER SYSID
*
GETUSRNO PUSHL
         LI,R7    LPART
         LI,R8    PLH:SID
         LW,R2    R1
         BALL     LH
         CW,R2    R1                IS THIS THE CORRECT PARTITION?
         BE       GU10
         BDR,R7   %-3               LOOK AT NEXT PARTITION
         B        CMDX              NOT FOUND
GU10     LI,R8    PLB:USR           GET USER# FROM PARTITION TABLE
         BALL     LB
         PULLL
         AI,R15   1
         B        *R15
*
* ROUTINE TO SET NUMBER OF TRIES FOR TRYCORE
*
TRIES    DEQU     %
         PUSHL
         BALL     ARGN
         BE       EHX
         XW,R1    #TRIES
         LI,R5    BA(T:WAS)
         LI,R9    0
         BALL     SLURP
         BALL     SLURPN
         BALL     SLURPO
         B        CMDX
T:WAS    TEXT     'WAS %%%'
         TITLE    '******* DISPLAY DRIVER *******'
SPYDRIVER PUSHL                     R4 HAS ADR OF DISPLAY ROUTINE
         STW,R4   DISPADR
         LI,R1    0
         STW,R1   SPYHDR            PRINT HEADER FLAG
         STW,R1   ACLIST
         BALL     ARGT              LOOK FOR OPTIONS
         BEZ      DOALL             NO OPTIONS
         LH,R1    R0                ONLY LOOK AT FIRST TWO CHARS
         AND,R1   =X'FFFF'
         LI,R2    #OPTS
         CW,R1    OPTS,R2           LOOK FOR OPTION IN TABLE
         BE       %+2               FOUND IT
         BDR,R2   %-2
         B        OPTAB,R2          GO DO IT
OPTS     DATA     0                 NULL OPTION
         DATA     'ID'              ID LIST SPECIFIED
         DATA     'BA'              DISPLAY BATCH USERS ONLY
         DATA     'ON'              DISPLAY ONLINE USERS ONLY
         DATA     'GH'              DISPLAY GHOSTS ONLY
         DATA     'LI'              LINE LIST SPECIFIED
         DATA     'AC'
         DATA     'AL'              DO ALL (DEFAULT)
#OPTS    EQU      %-OPTS-1
OPTAB    B        EHX               UNDEFINED OPTION
         B        IDLIST
         B        DOBATCH
         B        DOONLINE
         B        DOGHOST
         B        LINLIST
         B        ACNTLST
         B        DOALL
*
NOJIT    LI,R15   0
         STW,R15  WHERE             INDICATE NO JIT FOUND
         B        CMDX              RETURN
EHX      CAL1,1   WRTEH
CMDX     PULLL
         B        *R15
WRTEH    GEN,8,24 X'11',M:UC
         GEN,4,2,26 3,1,16
         DATA     EHM,4,0
EHM      DATA,3   'EH?'
         DATA,1   X'0D'
*
IDLIST   EQU      %
         BALL     ARGH              GET USER #
         BEZ      CMDX              NO MORE ARGS
         CI,R1    SMUIS
         BLE      IDL20             LEGAL USER NUMBER
         BALL     GETUSRNO
         B        IDLIST            NO SUCH SYSID.  GET NEXT ARG
IDL20    EQU      %
         LW,R2    R1                GET USER # FOR GETJIT
         BAL,R15  *DISPADR          CALL DISPLAY ROUTINE
         B        IDLIST            FINISH LIST
*
LINLIST  EQU      %
         BALL     ARGH              GET LINE #
         BEZ      CMDX              NO ARGS LEFT
         CI,R1    LNOL              CHECK FOR MAX LINE #
         BG       LINLIST           SKIP ILLEGAL LINE #
         LW,R7    R1                GET LINE # TO INDEX REG.
         LI,R8    LB:UN
         BALL     LB                GET USER #
         LW,R2    R1                GET USER # FOR GETJIT
         BAL,R15  *DISPADR          DISPLAY USER
         B        LINLIST           FINISH LIST
*
DOBATCH  EQU      %
         LI,R2    LPART             # OF PARTITIONS
         STW,R2   TRASH
DOBTCH10 LW,R7    TRASH             GET PARTITION NUMBER
         LI,R8    PLB:USR
         BALL     LB                GET USER # FOR PARTITION
         LW,R2    R1
         BEZ      DOBTCH20          NO USER IN THIS PARTITION
         BAL,R15  *DISPADR          CALL DISPLAY ROUTINE
DOBTCH20 MTW,-1   TRASH             GO TO NEXT PARTITION
         BG       DOBTCH10
         B        CMDX              ALL DONE
*
DOONLINE EQU      %
         LI,R2    LNOL              NUMBER OF LINES
         STW,R2   TRASH
ONLN10   LW,R7    TRASH             INDEX INTO LB:UN
         LI,R8    LB:UN
         BALL     LB
         LW,R2    R1                GET USER NUMBER
         BEZ      ONLN20            NO USER
         BAL,R15  *DISPADR          CALL DISPLAY ROUTINE
ONLN20   MTW,-1   TRASH
         BGE      ONLN10            DO NEXT LINE
         B        CMDX              ALL DONE
*
DOGHOST  EQU      %
         LI,R2    MAXG
         STW,R2   TRASH
GHST10   LW,R7    TRASH             INDEX INTO SB:GJOBUN
         LI,R8    SB:GJOBUN
         BALL     LB
         LW,R2    R1                GET USER #
         BEZ      GHST20
         BAL,R15  *DISPADR          CALL DISPLAY ROUTINE
GHST20   MTW,-1   TRASH
         BG       GHST10            DO NEXT GHOST SLOT
         B        CMDX              ALL DONE
*
ACNTLST  EQU      %
         BALL     ARGT              GET AN ARGUMENT
         BE       DOALL             NO MORE ARGS, DO DISPLAY
         MTW,1    ACLIST            INCREMENT # OF ACCOUNTS
         LW,R2    ACLIST            GET INDEX INTO LIST
         STD,R0   ACLIST,R2         SHOVE ACCOUNT INTO LIST
         CI,R2    #ACCTS            ANY MORE ROOM IN TABLE
         BL       ACNTLST           YES/ LOOK FOR MORE ARGS
*        B        DOALL             FALL THROUGH TO DOALL
DOALL    EQU      %
         LI,R2    1                 FIRST USER NO.
         BAL,R15  *DISPADR          DISPLAY USER
         AI,R2    1
         CI,R2    SMUIS
         BLE      %-3               MORE USERS TO DISPLAY
         B        CMDX              ALL DONE
         PAGE
JOB      DEQU     %                 CHECK ON GIVEN JOB LIST
         PUSHL
         LI,R1    0
         STW,R1   USRTHERE
         STW,R1   SPYHDR
         STW,R1   ACLIST
JOBLOOP  BALL     ARGH
         BEZ      CMDX              ALL DONE
         LI,R6    0
         STW,R1   CURARG
         CI,R1    SMUIS             IS IT USER ID?
         BLE      GOTUN
JOBCAL   LW,R8    CURARG
         M:JOB    M:EI
         LW,R2    R8
         B        JOBVEC,R2         DO WHAT'S INDICATED BY M:JOB CAL
JOBVEC   B        JOBCOMP
         B        JOBRUN
         B        JOBWAIT
         B        NOJOB
         B        OUTWAIT
JOBCOMP  LI,R5    BA(JCFMT)
         LI,R9    0
         BALL     SLURPH
         BALL     SLURPO
         B        JOBLOOP
JCFMT    TEXT     ' COMPLETED%%%'
JOBRUN   BALL     GETUSRNO
         B        JOBCAL            SOMETHING HAPPENED SINCE THE M:JOB
         MTW,1    USRTHERE
GOTUN    LW,R2    R1                GET USER# TO R2
         BALL     DISPLAY1
         MTW,0    WHERE             DID WE DISPLAY THE USER
         BNE      JOBLOOP           B/ YES
         LW,R1    CURARG
         LI,R9    0
         LI,R5    BA(JRFMT)
         BALL     SLURPH
         BALL     DSTATE
         BALL     SLURPO
         B        JOBLOOP
JRFMT    TEXT     ' - %%%'
JOBWAIT  LW,R1    CURARG
         LI,R9    0
         LI,R5    BA(JWFMT)
         BALL     SLURPH
         LW,R1    R10               GET NO WAITING
         BALL     SLURPN
         BALL     SLURPO
         MTW,1    USRTHERE
         B        JOBLOOP
JWFMT    TEXT     ' WAITING: %%%'
NOJOB    LW,R1    CURARG
         LI,R9    0
         LI,R5    BA(NJFMT)
         BALL     SLURPH
         BALL     SLURPO
         B        JOBLOOP
NJFMT    TEXT     ' DOESN''T EXIST%%'
OUTWAIT  LW,R1    CURARG
         LI,R9    0
         LI,R5    BA(OWFMT)
         BALL     SLURPH
         BALL     SLURPO
         MTW,1    USRTHERE
         B        JOBLOOP
OWFMT    TEXT     ' WAITING TO OUTPUT%%'
         TITLE    '******* DISPLAY ROUTINES *******'
*
* ROUTINE TO OUTPUT TIME IN TICS AS MMM:SS.
*
TIMEVERT PUSHL
         LW,R11   R1
         LI,R10   0
         DW,R10   =500              CONVERT TO SECONDS
         CI,R10   250               ROUND TO NEAREST SECOND
         BL       %+2
         AI,R11   1
         LI,R10   0
         DW,R10   =60               R10 = SEC ; R11 = MIN
         LW,R1    R11
         LI,R5    BA(TIMFMT)
         LI,R9    3
         BALL     SLURPN
         LW,R1    R10
         AI,R1    100               MAKE SURE WE PRINT 2 DIGITS
         LI,R9    2
         BALL     SLURPN
         B        CMDX
TIMFMT   TEXT     ':%%%'
*
D:NAME   DISPLAY  'NAME',12
         PUSHL
         LC       *JITPAGE
         BCS,4    GHSTNM
         LW,R5    R6
         AI,R5    BA(OBUF)
         LI,R4    12
         STB,R4   R5
         LI,R4    UNAME
         AW,R4    JITPAGE
         SLS,R4   2                 CONVERT TO BA
         MBS,R4   0
NAME10   AI,R6    12
         B        CMDX
GHSTNM   LI,R7    MAXG
         LI,R8    SB:GJOBUN
         BALL     LB
         CW,R2    R1
         BE       %+2
         BDR,R7   %-3               LOOK SOME MORE
         LI,R8    S:GJOBTBL         ASSUME IT WAS FOUND
         BALL     LD
         LW,R5    R6
         AI,R5    BA(OBUF)
         LB,R4    R0
         BE       NAME10
         CI,R4    7
         BG       NAME10
         STB,R4   R5
         LI,R4    1
         MBS,R4   0                 MOVE GJOB NAME TO BUFFER
         B        NAME10
*
D:ACCT   DISPLAY  'ACCOUNT',8
         PUSHL
         LI,R5    BA(OBUF)
         AW,R5    R6
         LI,R4    8
         STB,R4   R5
         LI,R4    ACCN
         AW,R4    JITPAGE
         SLS,R4   2
         MBS,R4   0
         AI,R6    8
         B        CMDX
*
D:UN     DISPLAY  'UN',2
         PUSHL
         LW,R1    R2
         LI,R9    2
         LI,R5    BA(UNFMT)
         BALL     SLURPH
         LW,R0    WHERE
         BALL     SLURPC            STICK WHERE IN BUFFER
         AI,R6    -1                BACK UP
         B        CMDX
UNFMT    TEXT     '%%%%'
*
D:LINE   DISPLAY  'L/ID',4
         LC       *JITPAGE
         BCS,8    LNONLN
         BCS,4    LNGHST
         INT,R1   *JITPAGE          GET SYSID
         LI,R9    4
         LI,R5    BA(UNFMT)
         B        SLURPH
LNGHST   AI,R6    4                 DO NOTHING
         B        *R15
LNONLN   LI,R1    M:UC+COCLN-J:JIT
         LW,R1    *JITPAGE,R1
         AND,R1   =X'FF'
         LI,R9    2
         LI,R5    BA(LNFMT)
         B        SLURPH
LNFMT    TEXT     '  %%'
*
D:CALCNT DISPLAY  'CALS',6
         LI,R1    IOTIME
         LW,R1    *JITPAGE,R1
         LI,R9    6
         LI,R5    BA(UNFMT)
         B        SLURPN
*
D:ETIME  DISPLAY  ' USED',6   DISPLAY EXECUTION TIME
         LI,R3    TPEXT
         LW,R1    *JITPAGE,R3
         AI,R3    1
         AW,R1    *JITPAGE,R3       ADD PROC OVERHEAD TIME
         LI,R3    TUEXT
         AW,R1    *JITPAGE,R3       ADD USER EXECUTION TIME
         AI,R3    1
         AW,R1    *JITPAGE,R3       ADD USER OVERHEAD TIME
         LI,R3    TIMTMP
         AW,R1    *JITPAGE,R3       ADD NEG OF QUANTUM LEFT
         LI,R3    J:IDELTAT-J:JIT
         SW,R1    *JITPAGE,R3       SUBT. NEG OF QUANTUM LENGTH
         B        TIMEVERT          PRINT TIME
*
D:LTIME  DISPLAY  ' LEFT',6   DISPLAY TIME LEFT FOR BATCH JOBS
         LI,R1    MRT
         LW,R1    *JITPAGE,R1
         BNE      TIMEVERT
         AI,R6    6                 DO NOTHING
         B        *R15
*
D:SWAPS  DISPLAY  'SWAP',4
         LI,R3    NSWAPS
         LW,R1    *JITPAGE,R3
         AND,R1   =X'FFFF'
         LI,R9    4
         LI,R5    BA(UNFMT)
         B        SLURPN
*
D:CCBUF  DISPLAY  'CCBUF',20
         LW,R5    R6
         AI,R5    BA(OBUF)
         LC       *JITPAGE
         BCS,4    CCBUMP            NO CCBUF FOR GHOSTS
         BCR,8    CC20              20 BYTES FOR BATCH
         LI,R3    BA(JB:CCARS)-BA(J:JIT)
         LB,R4    *JITPAGE,R3
         AI,R4    -1
         BLE      CCBUMP            SOMTHING IS WRONG, SKIP CCBUF
         CI,R4    20
         BLE      %+2
CC20     LI,R4    20
         STB,R4   R5
         LI,R4    J:CCBUF-J:JIT
         AW,R4    JITPAGE
         SLS,R4   2
         MBS,R4   0
CCBUMP   AI,R6    20                BUMP BUFFER POINTER
         B        *R15
*
D:PRIV   DISPLAY  'PV',2
         LI,R3    BA(JB:PRIV)-BA(J:JIT)
         LB,R1    *JITPAGE,R3
         LI,R9    2
         LI,R5    BA(UNFMT)
         B        SLURPH
*
D:PRIO   DISPLAY  'PR',2
         PUSHL
         LW,R7    R2
         LI,R8    UB:PRIO
DPRIO10  BALL     LB
         LI,R9    2
         LI,R5    BA(UNFMT)
         BALL     SLURPH
         B        CMDX
*
D:PRIOB  DISPLAY  'PB',2
         PUSHL
         LW,R7    R2
         LI,R8    UB:PRIOB
         B        DPRIO10
*
D:STATE  DISPLAY  'STATE',5
DSTATE   EQU      %
         PUSHL
         LI,R8    UB:US
         LW,R7    R2
         BALL     LB
         LW,R1    STATETXT,R1       GET TEXT FOR STATE INTO R1
         LI,R0    'S'               PREFIX FOR ALL STATES
         SLD,R0   24                MOVE IT INTO PLACE
         LI,R5    BA(UNFMT)
         BALL     SLURPC
         B        CMDX
*
D:MXFPL  DISPLAY  'MXFPL',20
         LW,R5    R6
         AI,R5    BA(OBUF)          GET CURRENT BUFFER POINTER
         LI,R4    BA(MXFPL+1)-BA(J:JIT)
BAINST   LB,R3    *JITPAGE,R4
         AND,R3   =X'F'             ONLY GET BYTE COUNT
         BEZ      MXBUMP
         ANLZ,R4  BAINST            R4 <= BA(MXFPL)
         AI,R4    1
         STB,R3   R5
         MBS,R4   0                 MOVE FILE NAME TO OBUF
         LI,R3    '.'
         STB,R3   0,R5              PUT A DOT IN
         AI,R5    1
         LI,R4    BA(MXFPL+5)-BA(J:JIT)
         ANLZ,R4  BAINST            GET BA(ACCOUNT)
         LI,R3    8
         STB,R3   R5
         MBS,R4   0                 MOVE ACCOUNT TO OBUF
MXBUMP   AI,R6    20
         B        *R15
         TITLE    '****** DISPLAY DEFINITIONS *******'
SPY      DEQU     %
         LI,R4    DISPLAY1
         B        SPYDRIVER
#BLANKS  SET      2
         SPACE    3
DISPLAY1 SPYINIT  HEAD1
         SPYDISP  D:UN
         SPYDISP  D:ACCT
         SPYDISP  D:NAME
         SPYDISP  D:LINE
         SPYDISP  D:PRIV
         SPYDISP  D:PRIOB
         SPYDISP  D:ETIME
         SPYDISP  D:LTIME
         SPYDISP  D:MXFPL
HEAD1    SPYEND
         END
