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
         SYSTEM   BPM
         SYSTEM   SIG7
         PCC      0
*
*    DCB DEFS
*
M:EI     DSECT    1
M:EI     M:DCB    FILE,SAVE,IN,INSN,PASS,(TRIES,100)
         PAGE
M:EO     DSECT    1
M:EO     M:DCB    FILE,OUTSN,OUT,SAVE,PASS,READ,(TRIES,100)
         PAGE
F:JOB    DSECT    1
F:JOB    M:DCB    FILE,OUT,SAVE
         PAGE
         CSECT
         REF      M:LO,M:C
PROMPT   GEN,8,24 X'2C',X'4C'
PAGECNT  GEN,8,24 X'24',M:LO
         PZE      *0
         DATA     105
HEADER   GEN,8,24 X'26',M:LO
         DATA     X'C0000000'
         DATA     HDRBUF
         DATA     10
*
*    GET ALL OF CORE
*
UTIL     CAL1,8   GETPAGE           GET CORE
         STW,9    BUFF              START OF BUFFER
         SLS,8    9
         AW,8     BUFF
         STW,8    MAXBUF            END OF BUFFER
         LC       *X'4F'
         BCR,8    %+2
         CAL1,1   PROMPT
         CAL1,1   READCARD          READ UTILIST CARD
*
*    GET OPTIONS FROM UTILIST
*
         LI,1     8
SCAN     LB,2     *BUFF,1
         CI,2     ' '
         BNE      SCAN2             SKIP BLANKS
SCAN0    AI,1     1
         CI,1     80
         BL       SCAN
         LI,14    NOOPTSMS          NO OPTIONS ON CARD
SCAN1    CAL1,2   PRINT
         CAL1,9   2                 ERROR
SCAN2    LB,2     *BUFF,1
         AI,1     1
         LB,3     *BUFF,1
         SLS,2    8
         OR,2     3                 R2=OPTION
         LI,6     #OPTS
         CW,2     OPTS,6
         BE       OPTJMP,6
         BDR,6    %-2
SCAN3    LI,14    INVLOPMS          INVALID OPTION
         B        SCAN1
         PAGE
*
*    SET APPROPRIATE OPTION ON
*
CL       MTW,1    CLFLG             COMPRESSED LIST
CL1      AI,1     1
CL2      LB,2     *BUFF,1
         CI,2     ','
         BE       SCAN0             ANOTHER OPTION AWAITS
         B        START             NO MORE OPTIONS...GO
*
JE       MTW,1    JEFLG             PRINT THRU JOBENT
         B        CL1
*
PR       MTW,1    PRFLG             WRITE THRU M:LO
         B        CL1
*
NV       MTW,1    NVFLG             NO VFC
         B        CL1
*
FB       MTW,1    FBFLG             LIST LO TO TAPE
         B        CL1
LI       AI,1     1                 BUMP POINTER
         LB,2     *BUFF,1
         CI,2     '='               SHOULD BE EQUALS
         BNE      SCAN3
         AI,1     1
         LI,3     0                 CONVERT DEC TO BINARY
LI1      LB,4     *BUFF,1           GET NEXT BYTE
         CI,4     X'F0'             IS IT A NUMBER
         BL       LI2               NO
         AI,4     -X'F0'            YES - STRIP IT
         MI,3     10
         BDP      SCAN3
         AW,3     4
         AI,1     1
         B        LI1
LI2      STW,3    LINES
         B        CL2
MI       MTW,1    MIFLG
         B        CL1
XR       MTW,1    XRFLG
         B        CL1
         PAGE
*
*    BEGIN UTILIST
*
START    MTW,0    FBFLG             LIST ONLY
         BNEZ     BEGIN             YES
         LI,5     0                 CLEAR JOBENT POINTER
         LI,1     EIABN
         STW,1    READTAP0
         MTW,0    PRFLG
         BEZ      START0            NO LO
         CAL1,1   OPENLO            OPEN LO
         MTW,0    NVFLG
         BNEZ     START0            NO VFC
         CAL1,1   VFC               SET VFC ON
START0   MTW,0    M:EI+5
         BLZ      %+3
         LI,7     4
         STW,7    OPENEI+3
         CAL1,1   OPENEI
START1   BAL,7    READEI            READ
         LW,7     *BUFF
         CI,7     -1
         BE       START1
         PAGE
*
*    WRITE TO LO IF  SPECIFIED
*
         MTW,0    PRFLG             NO WRITE TO LO
         BEZ      JOBNT
         LW,1     BUFF              ADDRESS OF BUFFER
LISZ     LB,2     *1                RECL
         AI,1     1
         BAL,10   SUBR1
         CAL1,1   WRITELO           WRITE TO LO
         LW,1     -1,1              GET NEXT DISP
         LW,2     0,1
         CI,2     -1                END OF BUFFER
         BNE      LISZ              NO
         PAGE
*
*    JOBENT IF SPECIFIED
*
JOBNT    MTW,0    JEFLG             NO JOBENT
         BEZ      COMPRESS
         LW,1     BUFF
JOBNT0   LB,2     *15
         AI,1     1
         BAL,10   SUBR1
         LI,15    PRTBUF
         LW,2     4
         BAL,7    JOBINS
         LW,1     -1,1
         LW,2     0,1
         CI,2     -1
         BNE      JOBNT0            NO
         PAGE
*
*    COMPRESS LIST IF SPECIFIED
*
COMPRESS MTW,0    CLFLG             NO COMPRESSED LIST
         BEZ      CHKDONE
         LW,7     BUFF              ADDRESS OF BUFFER
COMPRES0 LB,1     *7                RECL
         AI,7     1
         LI,2     0                 INPUT DISP
         LI,3     0                 OUTPUT DISP
COMPRES1 LB,0     *7,2              GET BYTE
         LW,4     2
         AI,4     1
         CW,4     1
         BGE      %+3               END OF RECORD
         CB,0     *7,4              NEXT BYTE EQUAL
         BE       %-4               YES
         SW,4     2                 NO-GET NO. OF = BYTES
         CI,4     4
         BL       COMPRES2          LESS THAN 4...IGNORE
         LI,8     X'13'
         STB,8    OBUFF,3           STORE COMP. CODE
         AI,3     1
         STB,4    OBUFF,3           BYTE COUNT
         AI,3     1
         AW,2     4
         AI,2     -1
COMPRES2 STB,0    OBUFF,3           AND BYTE
         AI,3     1
         AI,2     1
         CW,2     1                 END OF RECORD
         BL       COMPRES1          NO
         CAL1,1   WRITEEO           WRITE IT
         LW,7     -1,7              NEXT DISP
         LW,1     0,7
         CI,1     -1                END OF BUFFER
         BNE      COMPRES0          NO
         PAGE
*
*    CHECK IF ALL DONE
*
CHKDONE  MTW,0    EOFLG             EOF FROM TAPE
         BEZ      START1            NO
         MTW,0    PRFLG
         BEZ      %+2
         CAL1,1   CLOSELO           CLOSE LO IF IN USE
         MTW,0    JEFLG
         BEZ      CHKDONE1
         LI,1     0
         STB,1    BLOCK,5
         AI,5     1
         STB,1    BLOCK,5
         AI,5     1
         LI,0     ' '               CLOSE JOBENT
         STB,0    BLOCK,5
         AI,5     1
         STB,1    BLOCK,5
         LI,0     '0'
         STB,0    INSFPT+1
         CAL1,1   INSFPT
CHKDONE1 MTW,0    CLFLG
         BEZ      %+2
         CAL1,1   CLOSEEO           CLOSE CO IF IN USE
         LB,1     M:EI+5            GET SAV OR REL
         SLS,1    -6
         CAL1,1   CLOSEEI           CLOSE IT
         CAL1,9   6
         CAL1,9   1                 EXIT
         PAGE
*
*    ABNORMAL FROM EI
*
EIABN    LB,10    10
         CI,10    6                 EOF
         BNE      EIABN1
         MTW,1    EOFLG             SET FLAG
         LI,0     -1
         STW,0    -1,1              SET END OF BUFFER
         B        0,7
EIABN1   CI,10    5
         BE       READEI0+1
         CI,10    7
         BNE      BUFFABN0          ABORT
         LI,2     140
         B        READEI1
*
*    NO EI...TELL USER AND ABORT
*
NOEI     LI,14    NOEIMS
         CAL1,2   PRINT
         CAL1,9   2                 ABORT
         PAGE
*
*    START OF FB OPTION
*
BEGIN    LW,1     BUFF
         SLS,1    2
         OR,1     COUNT
         MBS,0    BA(BLANKS)
         CAL1,1   READCARD
         LW,1     M:C+4
         SLS,1    -17
         AI,1     -1
         LB,0     *BUFF,1
         CI,0     X'0D'
         BNE      %+2
         LI,0     ' '
         STB,0    *BUFF,1
         LCI      5
         LM,2     *BUFF
         LB,7     4
         CI,7     '-'               IS THIS FROM-TO
         BNE      BEGIN1            NO
         STD,2    FIRST             YES-SAVE BEGIN
         SLD,4    8
         SLS,6    -24
         OR,5     6
         STD,4    LAST              AND END
         MTW,1    ALLFLAG           SET FLAG
BEGIN0   CAL1,1   OPENEXT
         BAL,7    SETUP
         CD,2     FIRST             IS THIS THE ONE
         BE       LOOP0
         CAL1,1   CLOSE             NO
         B        BEGIN0
BEGIN1   LCI      2
         PSM,2    TSTACK            SAVE IT
         MTW,1    NOCARDS
         B        BEGIN
         PAGE
*
*    ABNORMAL FROM C DEVICE
*
CARDABN  MTW,0    NOCARDS           ARE THERE ANY CARDS
         BNEZ     LOOP              FOUND SOME
         MTW,1    ALLFLAG           LIST ALL FILES
*
*    GET NEXT FILE
*
LOOP     CAL1,1   OPENEXT
LOOP0    MTW,1    JOBNTFLG          FLIP/FLOP
         MTW,0    ALLFLAG
         BNEZ     HIT0              LIST ALL
         LW,4     NOCARDS
         CW,4     HITCARD
         BE       EXIT              FOUND ALL FILES
*
*    CHECK NAME FOR A HIT
*
         BAL,7    SETUP
         CD,2     STACK-2,4         CHECK FOR A HIT
         BE       HIT               BULLS EYE
         BDR,4    %-2
         CAL1,1   CLOSE             NOT THIS GUY
         MTW,-1   JOBNTFLG          RESET FLAG
         B        LOOP
*
*    HIT-SET FOUND FLAG
*
HIT      LI,2     -1
         STD,2    STACK-2,4
         MTW,1    HITCARD
HIT0     RES      0
         MTW,0    JEFLG
         BE       LISTALL
         MTW,0    JOBNTFLG
         BNEZ     LIST0
         PAGE
*
*    LIST ROUTINE
*
LISTALL  MTW,0    XRFLG
         BE       LISTAL1
         LD,R2    XHDRMBS
         MBS,R2   0
         B        LISTAL2
LISTAL1  LW,R1    HDRCLR            BLANK FILL HDRBUF
         MBS,R0   BA(BLANKS)
         LI,3     BA(HDRBUF)+1      PUT FILE NAME IN HDRBUF
         LB,2     M:EI+23           PICK UP COUNT
         STB,2    3
         LI,2     BA(M:EI+23)+1
         MBS,2    0
         LW,R2    ='   0'
         STW,R2   LINESAVE
LISTAL2  LI,R2    0
         STW,R2   CURPAGE
         BAL,R11  PAGER
         LI,R2    BA(HDRBUF)
         BAL,R11  BLCKER
LIST     BAL,7    READEI            READ A RECORD
         LW,7     *BUFF
         CI,7     -1
         BE       LIST
LISTA    LW,R1    PRTCLR
         MBS,R0   BA(BLANKS)
         BAL,R7   DECOMP            DECOMPRESS IT
         B        LIST              NEED MORE INPUT
         LI,1     OBUFF
         BAL,10   SUBR1
         MTW,0    MIFLG
         BEZ      LISTD
         LB,1     PRTBUF
         CI,1     X'F1'
         BNE      LISTD
         LI,1     X'C4'
         STB,1    PRTBUF
LISTD    MTW,0    XRFLG
         BE       LISTD1
         LW,R1    PRTBUF+1
         CW,R1    BLANKS
         BE       LISTB
         CW,R1    ='****'
         BE       LISTB
         B        LISTD2
LISTD1   LB,R1    PRTBUF+1
         CI,1     X'40'
         BE       LINENUM           NO
LISTD2   LI,R2    BA(PRTBUF)+4
LISTC    LW,3     =X'04000000'
         AI,3     BA(HDRBUF)+11
         MBS,2    0
         LCI      2
         LM,R2    PRTBUF+9          PICK UP FIRST WORD OF SOURCE
         SLD,R2   16
         CW,R2    ='*M* '
         BNE      LISTB
         LI,2     BA(PRTBUF)+41
         LW,3     =X'45000000'
         AI,3     BA(HDRBUF)+16
         MBS,2    0
LISTB    LB,R1    PRTBUF
         AND,R1   =X'0000000F'
         AI,R1    1
         AWM,R1   CURLINE
         LW,R1    CURLINE
         CW,R1    LINES
         BL       LISTE
         LI,R1    X'40'
         STB,R1   PRTBUF            DONT SPACE FROM TOF
         BAL,R11  PAGER
         LI,R2    BA(HDRBUF)
         BAL,R11  BLCKER
         MTW,1    CURLINE
LISTE    LI,R2    BA(PRTBUF)
         BAL,R11  BLCKER
         B        LISTA
LINENUM  LI,R1    9                 IS LINE NUMBER PRESENT
         LB,R1    PRTBUF,R1
         CI,R1    ' '               NO
         BE       LISTB
         LI,R1    10                MIGHT BE LINE NUMBER
         LB,R1    PRTBUF,R1
         CI,R1    '*'
         BNE      LINUM1            NOT UPDATE
         LW,R1    LINESAVE          IT IS UPDATE - PICK UP LAST REAL #
         LI,R2    4                 BA(R1)
         B        LISTC
LINUM1   CI,R1    ' '               NOT LINE NUMBER
         BNE      LISTB             IF NOT FOLLOWED BY BLANK
         LCI      2
         LM,R2    PRTBUF+1          SAVE REAL LINE #S
         SLD,R2   16
         STW,R2   LINESAVE
         LI,2     BA(PRTBUF)+6
         B        LISTC
*
*    LIST THRU JOBENT
*
LIST0    LI,5     0
         LW,3     L(X'60000000')
         AI,3     BA(BLOCK)
         LI,2     BA(BANNER)        SET UP BANNER
         MBS,2    0
         LI,5     96
         LCI      3
         LM,0     M:EI+23           GET NAME
         STM,0    NAMEFD            STORE IT
         LB,2     NAMEFD            RECL
         AI,2     1
         LI,0     '1'
         STB,0    NAMEFD
         LI,15    NAMEFD
         BAL,7    JOBINS            PUT NAME IN SYMB. BLOCK
         LI,15    PRTBUF
LIST1    BAL,7    READEI            READ A RECORD
         LW,7     *BUFF
         CI,7     -1
         BE       LIST1
LIST2    BAL,7    DECOMP
         B        LIST1
         LI,1     OBUFF
         BAL,10   SUBR1
         LW,2     4
         BAL,7    JOBINS
         B        LIST2
         PAGE
*
*        PAGER - CONTROL PAGENATION
*
PAGER    LI,R2    0
         STW,R2   CURLINE
         MTW,1    CURPAGE
         LW,R1    CURPAGE
         LI,R10   10
         LI,R6    3
         LW,R7    BLANKS
PAG1     LI,R0    0
         DW,R0    R10
         OR,R0    XF0
         STB,R0   R7,R6
         CI,R1    0
         BE       %+2
         BDR,R6   PAG1
         STW,R7   PAGE#
         B        *R11
         PAGE
*
*        BLCKER  - MAKE RECORDS INTO BLOCKS
*
BLCKER   LW,R1    BLKINDX
         LW,R3    BLKMBS
         AW,R3    R1
         MBS,R2   0
         AI,R1    120
         CI,R1    1080
         BLE      BLKR1
         CAL1,1   WRITELO
         LI,R1    0
BLKR1    STW,R1   BLKINDX
         B        *R11
         PAGE
*
*    READ ALL WE CAN FROM EI
*
READEI   MTW,0    EOFLG
         BNEZ     TAPEABN           CAN'T READ NO MORE
         LW,1     BUFF              ADD. OF BUFER
         STW,1    BUFF1
READEI0  AI,1     1
         CAL1,1   READTAPE          READ EI
         LW,2     M:EI+4
         SLS,2    -17               RECL
READEI1  LW,3     2
         AI,3     3
         SLS,3    -2                CONVERT TO WORDS
         AW,3     1                 DISP TO NEXT ENTRY
         STB,2    3                 RECL
         STW,3    -1,1
         LW,1     3
         AND,3    X1FFFF
         SW,3     MAXBUF
         LCW,3    3
         CI,3     (140/4)+1         ROOM FOR MORE
         BGE      READEI0           YES
         LI,3     -1
         STW,3    *1                NO
         B        0,7               RETURN
         PAGE
*
*    UNPACK BUFFER TO OUTPUT BUFFER
*
DECOMP   LW,4     BUFF1
         LW,1     *4
         CI,1     -1
         BE       0,7               NO MORE DATA
         LB,1     *4                BYTE COUNT
         AI,4     1
         LI,11    -1
         LI,2     0
         LI,3     0
UNPACK   LB,10    *4,3              GET INPUT BYTE
         CI,10    X'13'             UNPACK
         BNE      UNPACK0
         AI,3     1
         LB,11    *4,3              COUNT
         AI,3     1
         LB,10    *4,3              BYTE
UNPACK0  STB,10   OBUFF,2           STORE BYTE
         AI,2     1
         BDR,11   UNPACK0           N TIMES
         AI,3     1
         CW,3     1
         BL       UNPACK
         LW,4     -1,4
         AND,4    X1FFFF            DISP TO NEXT ENTRY
         STW,4    BUFF1
         B        1,7               RETURN OK
         PAGE
*
*    INSERT BLOCK TO SYMB. LP
*
JOBINS   RES      0
JOBINS00 LW,6     5
         AI,6     3
         LI,1     1
         STB,1    BLOCK,6           SET SKIP COUNT
         AI,6     1
         LI,1     0
         STB,1    BLOCK,5
JOBINS0  LB,0     *15,1             GET BYTE
         STB,0    BLOCK,6           STORE IT
         AI,1     1
         AI,6     1
         BDR,2    JOBINS0           LOOP ON RECL
         LI,0     6                 FUN
         MTW,0    NVFLG
         BEZ      JOBINS1           FORMAT
         CI,15    NAMEFD
         BE       JOBINS1           ALWAYS FORMAT NAME
         LI,0     4                 SET NO FORMAT
JOBINS1  RES      0
         AI,5     1
         STB,1    BLOCK,5           RECL
         AI,5     1
         STB,0    BLOCK,5           RCC
         LW,5     6
         AI,6     133
         CI,6     1016              ROOM FOR MORE
         BL       0,7               YES
         LI,6     0
         STB,6    BLOCK,5
         AI,5     1
         STB,6    BLOCK,5
         AI,5     1
         LI,0     ' '               SET EOB
         STB,0    BLOCK,5
         AI,5     1
         STB,6    BLOCK,5
         CAL1,1   INSFPT            SEND IT
         LI,5     0
         B        0,7
         PAGE
*
*    ABNORMAL FROM TAPE. CLOSE DCB
*
TAPEABN  CAL1,1   CLOSE             CLOSE IT
         CAL1,9   6
         MTW,-1   EOFLG             TURN IT OFF
         MTW,0    JEFLG
         BEZ      %+3
         MTW,0    JOBNTFLG
         BNEZ     TAPEABN1          CLOSE JOBENT
         MTW,0    NVFLG
         BNEZ     %+2               NO FORMATTING
         CAL1,1   NOVFC
TAPEABN0 MTW,0    ALLFLAG
         BEZ      LOOP
         BAL,7    SETUP
         CD,2     LAST
         BNE      LOOP
         LW,10    EOFS              FORCE END OF ALL FILES
         B        DONE
TAPEABN1 LI,10    0
         STB,10   BLOCK,5
         AI,5    1
         STB,10   BLOCK,5
         AI,5     1
         LI,0     ' '
         STB,0    BLOCK,5           SET EOB
         AI,5     1
         STB,10   BLOCK,5
         LI,0     X'F0'             SET LAST FLAG
         STB,0    INSFPT+1
         CAL1,1   INSFPT
         LI,0     X'E0'
         STB,0    INSFPT+1
         MTW,-1   JOBNTFLG          FLIP/FLOP
         B        TAPEABN0
*
*    SET NAME IN REGS 2 & 3
*
SETUP    LB,1     M:EI+23
         CI,1     8
         BG       0,7
         LW,2     BLANKS
         LW,3     BLANKS
         LB,0     M:EI+23,1
         AI,1     -1
         STB,0    2,1               STORE IN REGS.
         BGZ      %-3
         B        0,7               RETURN
*
*    ABNORMAL FROM JOBENT
*
INSABN   LI,14    JEMSG
         LH,5     10
         AND,5    L(X'FFFE')
         CI,5     X'3F76'           TEST IF 3F/3B
         BNE      BUFFABN0+1        NO-ABORT
         CAL1,8   WAIT              SLEEP AND RETRY
         AI,8     -1
         B        *8
*
*    ABNORMAL FROM BLOCKED READ
*
BUFFABN  LB,0     10
         CI,0     6                 EOF
         BE       BUFFABN1
         CI,0     5                 EOD
         BE       BUFFABN1
BUFFABN0 LI,14    TAPERM
         CAL1,2   PRINT
         CAL1,9   6
         CAL1,9   2                 ABORT
BUFFABN1 MTW,1    EOFLG
         LI,0     -1
         STW,0    -1,1              SET EOF IN BUFFER
         B        0,7               RETURN
         PAGE
*
*    ALL DONE
*
DONE     LB,10    10
         CI,10    2
         BNE      DONE2             OPEN ERR.
         CAL1,1   PAGE
         MTW,0    ALLFLAG
         BNEZ     EXIT              LIST ALL
         LI,14    ERRM
         CAL1,2   PRINT
         LI,2     8
         LW,4     NOCARDS
         BEZ      EXIT
DONE0    LD,6     STACK-2,4
         CI,6     -1
         BE       DONE1
         STD,6    OBUFF             PRINT CARDS NOT FOUND
         CAL1,1   WRITE
DONE1    BDR,4    DONE0
EXIT     EQU      %
         M:WEOF   M:LO
         M:WEOF   M:LO
         M:WEOF   M:EO
         M:WEOF   M:EO
         CAL1,9   1
DONE2    LI,14    OPENERM
         CAL1,2   PRINT
         B        LOOP              IGNORE THIS FILE
SUBR1    LI,3     0
         LI,4     0
         LW,12    2
SUBR11   LB,11    *1,3
         CI,11    5
         BE       SUBR12
SUBR13   STB,11   PRTBUF,4
         AI,4     1
SUBR14   AI,3     1
         BDR,12   SUBR11
         B        *10
SUBR12   LI,6     3
         LI,11    ' '
         CW,4     SUBTAB,6
         BL       %+3
         BDR,6    %-2
         B        SUBR13
         LW,6     SUBTAB,6
         STB,11   PRTBUF,4
         AI,4     1
         CW,4     6
         BL       %-3
         B        SUBR14
SUBTAB   DATA     0,X'4A',X'38',X'2F'
         PAGE
*
*    CONSTANTS
*
OPTS     EQU      %-1
         DATA     'CL'
         DATA     'JE'
         DATA     'PR'
         DATA     'NV'
         DATA     'FB'
         DATA     'LI'
         DATA     'MI'
         DATA     'XR'
#OPTS    EQU      %-OPTS-1
OPTJMP   EQU      %-1
         B        CL
         B        JE
         B        PR
         B        NV
         B        FB
         B        LI
         B        MI
         B        XR
READCARD GEN,8,24 16,M:C
         GEN,4,28 7,0
         DATA     CARDABN
         PZE      *BUFF
         DATA     80
READTAPE GEN,8,24 16,M:EI
         GEN,4,28 7,0
READTAP0 DATA     BUFFABN
         PZE      *1
         DATA     140
WRITE    GEN,8,24 17,M:LO
         GEN,4,28 3,0
         DATA     OBUFF
         PZE      *2
INSFPT   GEN,8,24 47,F:JOB
         GEN,4,28 14,0
         DATA     INSABN,SYMBBUFF,2,15
WAIT     GEN,8,24 X'0F',1
OPENEXT  GEN,8,24 20,M:EI
         GEN,4,28 4,X'400'
         DATA     DONE,X'10000'
OPENLO   GEN,8,24 20,M:LO
         GEN,8,24 1,0
         DATA     2
OPENEI   GEN,8,24 20,M:EI
         GEN,8,24 X'41',0
         DATA     NOEI,1
WRITELO  GEN,8,24 17,M:LO
         DATA     X'30000010'
         DATA     BLCK
         DATA     1200
WRITEEO  GEN,8,24 17,M:EO
         GEN,4,28 3,0
         DATA     OBUFF
         PZE      *3
CLOSELO  GEN,8,24 21,M:LO
         PZE      *0
         DATA     2
CLOSEEO  GEN,8,24 21,M:EO
         PZE      *0
         DATA     2
GETPAGE  GEN,8,24 8,5
CLOSE    GEN,8,24 21,M:EI
         PZE      *0
         DATA     2
CLOSEEI  GEN,8,24 21,M:EI
         PZE      *0
         PZE      *1
PRINT    GEN,8,24 1,0
         PZE      *0
         PZE      *14
PAGE     GEN,8,24 4,M:LO
VFC      GEN,8,24 5,M:LO
         DATA     16
NOVFC    GEN,8,24 5,M:LO
         DATA     0
LINECAL  GEN,8,24 X'20',M:LO
         DATA     X'80000000'
LINES    DATA     0
BLANKS   TEXT     '    '
ERRM     TEXTC    'FILES NOT FOUND'
TAPERM   TEXTC    'ABNORMAL FROM TAPE...ERRORING JOB'
OPENERM  TEXTC    'ABNORMAL FROM OPEN...SKIPPING TO NEXT LABEL'
NOOPTSMS TEXTC    'NO OPTIONS FOR UTILIST'
INVLOPMS TEXTC    'INVALID UTILIST OPTION'
NOEIMS   TEXTC    'NO EI TO PROCESS...ERRORING'
JEMSG    TEXTC    'ABNORMAL FROM JOBENT...ABORTING JOB'
XREFHDR  TEXT     '1XREF                         XREF - CROSS REFERENCE'
         TEXT     '                                                    '
         TEXT     '                 '
PRTBUF RES 80
HDRBUF   DATA     X'F1404040'
         DO1      29
         DATA     X'40404040'
PAGE#    EQU      HDRBUF+25
HDRCLR   GEN,8,24 119,BA(HDRBUF)+1
PRTCLR   GEN,8,24 120,BA(PRTBUF)
         BOUND    8
XHDRMBS  DATA     BA(XREFHDR)
         GEN,8,24 120,BA(HDRBUF)
BLCK     RES      1200
CURLINE  DATA     0
CURPAGE  DATA     0
BLKMBS   GEN,8,24 120,BA(BLCK)
BLKINDX  DATA     0
XF0      DATA     X'000000F0'
EOFS     DATA     X'02000000'
JEFLG    DATA     0
PRFLG    DATA     0
NVFLG    DATA     0
CLFLG    DATA     0
MIFLG    DATA     1                 ALWAYS ON
XRFLG    DATA     0
NOCARDS  DATA     0
ALLFLAG  DATA     0
HITCARD  DATA     0
JOBNTFLG DATA     -1
BUFF     DATA     0
MAXBUF   DATA     0
BUFF1    DATA     0
EOFLG    DATA     0
FBFLG    DATA     0
LINESAVE DATA     '   0'
X1FFFF   GEN,15,17 0,-1
NAMEFD   RES      3
         BOUND    8
FIRST    RES      2
LAST     RES      2
OBUFF    RES      40
TSTACK   DATA     %+1
         GEN,16,16 100,0
STACK    RES      100
SYMBBUFF RES      256
BLOCK    EQU      SYMBBUFF+1
COUNT    GEN,8,24 80,0
BANNER   DATA,2   90                BC
         DATA,2   X'8603'           RCC AND SKIP COUNT
         DATA,1   39,X'C1','1','*'  LPP+1,SVFC,PVFC
         DO1      5
         TEXT     '********'
         TEXT     'UTILIST*'
         DO1      5
         TEXT     '********'
         END      UTI