         SYSTEM   SIG7FDP
         SYSTEM   BPM
M:HI     DSECT    2
M:HI     M:DCB    (FILE,'HELPFILE'),(ABN,HIERR),(ERR,HIERR),;
         (RECL,80),(BUF,BUF),(KEYM,13),KEYED,DIRECT,SAVE,PASS,READ,WRITE
M:JI     DSECT    2
M:JI     M:DCB    (FILE,'JOB',3),(ABN,JIABN),(ERR,JIABN),;
         (RECL,80),(BUF,BUF)
M:EO     DSECT    2
         DATA     3,X'5D3D3',0,0,0,X'80000002',M:EO+22
         DATA     0,0,0,M:EO+36,0,X'3000000',0,0,0,0,0,0,0,0,0
         DATA     X'1000003',0,0,0
         DATA     X'2000002',0,0
         DATA     X'3000002',0,0
         DATA     X'7010003',0,0,0
         RES      8
M:PO     DSECT    2
         DATA     3,X'5D3D3',0,0,0,X'80000002',M:PO+22
         DATA     0,0,0,M:PO+36,0,X'3000000',0,0,0,0,0,0,0,0,0
         DATA     X'1000003',0,0,0
         DATA     X'2000002',0,0
         DATA     X'3000002',0,0
         DATA     X'7010003',0,0,0
         RES      8
         REF      M:SI
         REF      M:EI
M:LL     DSECT    2
         DATA     3,X'5D3D3',0,0,0,X'80000002',M:LL+22
         DATA     0,0,0,M:LL+36,0,X'3000000',0,0,0,0,0,0,0,0,0
         DATA     X'1000003',0,0,0
         DATA     X'2000002',0,0
         DATA     X'3000002',0,0
         DATA     X'7010003',0,0,0
         RES      8
         REF      M:XX
         CSECT    0
KEY      DATA     0,0,0,0
OACCN    DATA     X'94000001',X'E000',0,X'2010202'
OACC     RES      2
         ORG      OACCN
OBUF     RES      18
BUF      RES      21
SBUF     RES      21
START    M:INT    BREAK
         LCI      2
         LM,14    M:XX+27           SET HELPFILE/JOB TO LM ACCOUNT
         STM,14   OACC
         LI,14    X'200'            UNLESS ASSIGNED
         LI,1     M:HI
         CW,14    26,1
         BANZ     %+2
         CAL1,1   OACCN
         AI,1     M:JI-M:HI+X'80000'
         BNC      %-4
         B        NXT
BREAK    LI,0     NXT
         STW,0    *1
         M:TRTN
NXT      LI,14    NXTM
         M:CLOSE  M:EO,SAVE
         M:CLOSE  M:PO,SAVE
         M:CLOSE  M:LL,SAVE
         BAL,15   KEYIN
         MTB,-1   BUF
         BNEZ     %+2
         M:EXIT
         LH,1     BUF
         LB,2     COMS
         CB,1     COMS,2
         BE       COMV,2
         BDR,2    %-2
         MTB,0    KEY
         BEZ      HELPHELP
PRWHAT   M:PRINT  (MESS,WHAT)
         B        NXT
NXTM     TEXTC    'NEXT:'
WHAT     TEXTC    'EH?'
COMS     TEXTC    'BHLDJE'
COMV     EQU      %-1
         B        BUILD
         B        HELP
         B        LIST
         B        DUMP
         B        JOB
         B        EDIT
         PAGE
DUMP     LI,1     M:PO+X'80000'
         B        HDMP
HELP     LI,1     M:LL
HDMP     STW,1    HDCB
         M:OPEN   M:HI,IN
         LI,13    HNXT0
LMNK     LI,14    LMN
         BAL,15   KEYIN
         STW,15   OBUF+3
         LCI      3
         LM,2     BUF
         STM,2    KEY
         STM,2    OBUF
         MTB,-1   BUF
         BEZ      NXT
         LI,1     13
         LB,3     KEY
         STB,1    KEY
         CW,2     ALLT              IF ALL DUMP THE WHOLE FILE
         BNE      %+3
         LW,2     *%
         LI,3     1
         LI,0     ' '
         LI,1     0
         AI,3     -12
         STB,0    OBUF+3,3
         STB,1    KEY+3,3
         BIR,3    %-2
         STW,1    KEY+3
         B        *13
HNXT0    BIR,2    %+3
         MTW,0    HDCB
         BGZ      HNXT
         CH,1     KEY
         BE       HNXT
         LI,0     ' '
         LI,3     -12
         LC       OBUF+3,3
         BCS,12   %+2
         STB,0    OBUF+3,3
         BIR,3    %-3
         LW,3     HCOMP
         CBS,3    -12
         BE       NXT
         MBS,3    -12
         LI,3     3
         CS,3     *HDCB
         BNE      %+2
         M:DEVICE *HDCB,PAGE
         LI,10    1000
         AWM,10   OKEY
         M:WRITE  *HDCB,(BUF,ASTS),(KEY,OKEY),(SIZE,72),NEWKEY,WAIT
         AWM,10   OKEY
         M:WRITE  *HDCB,(BUF,OBUF),(KEY,OKEY),(SIZE,72),NEWKEY,WAIT
         AWM,10   OKEY
         EXU      %-4
HNXT     M:READ   M:HI,(KEY,KEY),WAIT
         BCS,0    HEND
         LI,10    1000
         AWM,10   OKEY
         M:WRITE  *HDCB,(BUF,BUF),(KEY,OKEY),(SIZE,*M:HI+13),NEWKEY,WAIT
         MTH,1    KEY+3
         B        HNXT
HEND     BDR,2    HEND1
         LCI      3
         LM,4     *M:HI+10
         STM,4    KEY
         STM,4    OBUF
         LI,0     0
         STH,0    KEY+3
         BIR,2    HNXT0
         B        NXT
ALLT     TEXTC    'ALL '
BLANKS   EQU      %-1
OKEY     DATA     X'3000000'
HCOMP    GEN,8,24 12*5,BA(OBUF+3)
HEND1    MTH,0    KEY+3
         BNEZ     LMNK
TNONE    M:PRINT  (MESS,NONE)
         B        LMNK
ASTS     TEXT     '************************************'
         TEXT     '************************************'
HDCB     DATA     M:LL
LMN      TEXTC    'NAME='
NONE     TEXTC    'NONE'
HELPHELP LI,1     M:LL
         STW,1    HDCB
         M:OPEN   M:HI,IN
         LCI      4
         LM,0     HELPT
         STM,0    KEY
         B        HNXT
HELPT    GEN,8,32,24 13,'HELP',0
         DATA     0,0
BUILD    M:CLOSE  M:HI
         BAL,13   LMNK
         BIR,2    %+2
         M:OPEN   M:HI,INOUT
         LCW,2    2                 SWITCH SWITCH
         M:OPEN   M:HI,OUT
         M:OPEN   M:EI,(ABN,BBAD),IN,(ERR,BBAD)
         BIR,2    BREAD1
BREAD    M:READ   M:EI,(BUF,BUF),(SIZE,80),(ABN,BEND)
         LW,1     BTST
         CBS,1    2
         BE       BREAD
         LI,2     -1
         BAL,15   NNB
         CI,1     '*'
         BE       NNB
         ANLZ,10  NNB+3
         BAL,15   NB
         ANLZ,5   NNB+3
         SW,5     10
         CI,5     11
         BG       BWRITE
         BAL,15   NNB
         CI,1     '-'
         BE       BNXT
         LW,3     10
         STB,5    3
         CBS,2    BA(BUF)
         BE       BNXT
         B        BWRITE
BNXT     LI,11    BA(KEY)+1
         STB,5    11
         MBS,10   0
         LI,2     0
         AI,5     -11
         STH,2    KEY+3
         STB,2    KEY+3,5
         BIR,5    %-1
         CI,1     '-'
         BE       BWRITE
         EXU      BREAD
         LW,1     BTST
         CBS,1    2
         BNE      BBAD
BREAD1   EXU      BREAD
         BIR,2    BWRITE
         LW,1     BTST
         CBS,1    2
         BE       BREAD
BWRITE   LW,1     M:EI+4
         SLS,1    -17
         LI,0     ' '
         STB,0    BUF,1
         AI,1     -1
         BLEZ     %+3
         CB,0     BUF,1
         BGE      %-4
         AI,1     1
I1WRT    M:WRITE  M:HI,(KEY,KEY),(SIZE,*1),ONEWKEY,WAIT
         MTH,1    KEY+3
         B        BREAD1
BEND     LB,10    10
         CI,10    5
         BE       %+3
         CI,10    6
         BNE      BBAD
         EXU      DELREC
         BCS,0    %+3
         MTH,1    KEY+3
         B        %-3
         M:CLOSE  M:HI,SAVE
         M:CLOSE  M:EI
         B        NXT
NNB      AI,2     1
         LC       BUF,2
         BCR,11   %-2
         LB,1     BUF,2
         B        *15
NB       AI,2     1
         LC       BUF,2
         BCS,11   %-2
         B        NNB+3
BBAD     M:PRINT  (MESS,BBADM)
         M:WRITE  M:LL,(BUF,BUF),(SIZE,80),WAIT
         M:CLOSE  M:HI
         M:CLOSE  M:EI
         B        NXT
BBADM    TEXTC    'BAD INPUT'
BTST     GEN,8,24 39,BA(BUF)
         PAGE
LIST     M:OPEN   M:HI,IN
         LI,0     ' '
         LI,1     X'101'
         STH,1    KEY
         LI,1     0
LNXT     M:READ   M:HI,(KEY,KEY),WAIT
         BCS,0    %+1
         M:READ   M:HI,(ABN,LEND)
         LCI      4
         LM,2     *M:HI+10
         STM,2    KEY
         LI,5     -12
         LC       5,5
         BCS,12   %+2
         STB,0    5,5
         BIR,5    %-3
         MTH,-1   KEY+3
         LCI      3
         STM,2    OBUF,1
         AI,1     3
         CI,1     3*6
         BL       LNXT
LEND     MI,1     4
         M:WRITE  M:LL,(BUF,OBUF),(SIZE,*1),WAIT
         AI,1     -4*6*3
         BEZ      LNXT
         B        NXT
         PAGE
HIERR    LB,10    10
         CI,10    X'A'
         BE       *8
         CI,10    X'2E'
         BE       *8
         CI,10    X'14'
         BE       HIACC
         CI,10    X'13'
         BE       HINOK
         CI,10    X'03'
         BE       HINOF
         CI,10    X'43'
         BNE      HIBAD
HINOK    LB,10    *8
         CI,10    X'69'
         BNE      HIBAD
         LW,10    *8
         B        *10
HINOF    LH,10    *8
         CI,10    X'3A20'
         BE       *8
HIBAD    M:PRINT  (MESS,HIBADM)
         B        NXT
HIBADM   TEXTC    'BAD HELPFILE'
HIACC    M:PRINT  (MESS,HIAC)
         B        NXT
HIAC     TEXTC    'HELPFILE INACCESSIBLE'
         PAGE
EDIT     M:CLOSE  M:HI,SAVE
         MTW,0    SIMOV
         BNEZ     PRWHAT
         M:OPEN   M:HI,INOUT
         LI,1     M:LL
         STW,1    HDCB
ELM      BAL,13   LMNK
ENXT     LI,14    EKM
         BAL,15   KEYIN
         MTB,-1   BUF
         BE       ELM
         LH,1     BUF
         LB,2     ECOMS
         CB,1     ECOMS,2
         BE       ECOMV,2
         BDR,2    %-2
EWHAT    EXU      PRWHAT
         B        ENXT
ECOMS    TEXTC    'TDIM'
ECOMV    EQU      %-1
         B        ET
         B        ED
         B        EI
         B        EM
EKM      TEXTC    ':'
NC       CB,2     BUF
         BLE      %+3
         LI,1     0
         B        *15
         LB,1     BUF,2
         AI,2     1
         CI,1     X'EF'
         B        *15
EN       BAL,15   NC
         BE       EWHAT
         BL       NC
         LI,3     0
EN1      AI,1     -'0'
         MI,3     10
         AW,3     1
         CI,3     X'7FFF'
         BG       EWHAT
         BAL,15   NC
         BLE      *14
         B        EN1
ER       LI,0     '-'
ER1      LI,2     1
         BAL,14   EN
         STW,3    4
         BE       %+4
         CW,1     0
         BNE      EWHAT
         BAL,14   EN
         CW,4     3
         BG       EWHAT
         STH,4    KEY+3
         B        *13
ET       BAL,13   ER
         EXU      LNXT
         BCS,0    ENXT
         BAL,15   DCONV
         LW,1     M:HI+13
         AI,1     7
         STB,1    BUF-2
         M:PRINT  (MESS,BUF-2)
         MTH,1    KEY+3
         CH,3     KEY+3
         BGE      ET+1
         B        ENXT
DCONV    LCI      2
         LM,10    TCTL
         STM,10   BUF-2
         LI,1     6
         LH,11    KEY+3
         LI,10    0
         DW,10    TEN
         AI,10    '0'
         STB,10   BUF-2,1
         AI,11    0
         BEZ      %+2
         BDR,1    %-6
         B        *15
TEN      DATA     10
TCTL     GEN,8,48,8 7,-1,':'
ED       BAL,13   ER
         AI,3     1
         STH,3    KEY+3
         EXU      LNXT
         BCS,0    ED1
         STH,4    KEY+3
EWRT     M:WRITE  M:HI,(KEY,KEY),(SIZE,*M:HI+13),WAIT,ONEWKEY
         AI,4     1
         B        ED+1
ED1      SW,3     4
         BEZ      ENXT
         STH,4    KEY+3
DELREC   M:DELREC M:HI,(KEY,KEY)
         BCS,0    %+3
         MTH,1    KEY+3
         BDR,3    %-3
         B        ENXT
         PAGE
EM       LI,0     ','
         BAL,13   ER1
         SW,3     4
         BEZ      EWHAT
         STB,0    KEY+3
         EXU      LNXT
         BCS,0    %+1
         M:READ   M:HI,REV,WAIT
         LI,5     6
         LH,2     *M:HI+10,5
         CW,4     2
         BG       EWHAT
         AW,3     2
         CI,3     X'7FFF'
         BG       EWHAT
EMNXT    STH,2    KEY+3
         EXU      LNXT
         BCS,0    EMX
         STH,3    KEY+3
         LW,1     M:HI+13
EMWRT    EXU      I1WRT
         AI,2     -1
         AI,3     X'8FFFF'
         CW,2     4
         BGE      EMNXT
         STH,3    KEY+3
         EXU      LNXT
         BCS,0    EMWRT
         B        ENXT
EMX      BIR,3    HIERR
         B        EWHAT
         PAGE
EI       LI,2     1
         BAL,14   EN
         BNE      EWHAT
         AI,3     -1
         STH,3    KEY+3
         BLZ      EINXT
         EXU      LNXT
         BCS,0    EWHAT
EINXT    MTH,1    KEY+3
         BAL,15   DCONV
         LI,14    BUF-2
         BAL,15   KEYIN
         LB,1     BUF
         BDR,1    %+2
         B        ENXT
         LW,3     EIMOV
         MBS,3    1
         EXU      I1WRT
         B        EINXT
EIMOV    GEN,8,24 80,BA(BUF)
SIMOV    DATA     0
ZAPTTBS  GEN,8,24 255,BA(TTBS)
KEYIN    LC       *X'4F'
         BCR,12   READSI
         LI,1     3
         CS,1     M:SI
         BE       KEYIN1
READSI   LW,1     ZAPTTBS
         MBS,0    BA(TEN)
         MTB,-1   TTBS+16
         LW,1     SIMOV
         CI,14    NXTM
         BNE      NXTSI
         M:READ   M:SI,(BUF,SBUF),(BTD,1),(SIZE,80),(ABN,SIABN)
         LW,1     M:SI+4
         SLS,1    -17
         STB,1    SBUF
         M:PRINT  (MESS,SBUF)
         SLS,1    24
         AI,1     BA(SBUF)+1
NXTSI    CBS,0    BA(BLANKS)
         STW,1    2
         TTBS,0   BA(TTBS)
         STW,1    SIMOV
         LI,3     BA(BUF)+1
         SW,1     2
         STB,1    3
         STB,1    BUF
         MTB,1    BUF
         MBS,2    0
         B        *15
SIABN    LI,1     0
         B        NXTSI-1
KEYIN1   M:KEYIN  (MESS,*14),(REPLY,BUF),(SIZE,82),(ECB,OBUF)
         B        *15
         PAGE
JOB      BAL,13   LMNK
         BIR,2    PRWHAT
         LW,1     ZAPTTBS
         MBS,0    BA(TEN)
         LI,1     1
         LB,1     KEY,1
         STB,1    TTBS,1
JOPN     CAL1,1   OPNJOB
JNXT     M:READ   M:JI,(ABN,JIABN)
         MTW,1    JPREC+2
         LW,0     BUF
         LI,2     #JSPEC
         CW,0     JSPEC,2
         BNE      %+3
         LW,3     JSPEC-1,2
         B        0,3
         BDR,2    %-4
         LI,0     BA(KEY)+1
         LW,1     M:JI+13
         SLS,1    24
         AI,1     BA(BUF)
JTTBS    TTBS,0   BA(TTBS)
         BCR,1    JNXT
         LD,2     0
         CBS,2    0
         XW,1     3
         MTB,0    0,2
         BNE      JTTBS
         MTB,0    1
         BEZ      %+3
         LC       0,1
         BCS,8    JTTBS
         AND,3    =X'FFFFFF'
         AI,3     -BA(BUF)-1
         BLEZ     JTTBS
         LC       BUF,3
         BCS,8    JTTBS
,JPREC   M:PRECORD M:JI,REV,(N,1)
         M:OPEN   M:EO,OUT,SAVE,DIRECT
JNXT1    M:READ   M:JI,(ABN,JNXT2)
         CW,0     BUF
         BE       JNXT2
         LW,0     JSPEC+1
         M:WRITE  M:EO,(BUF,BUF),(KEY,*M:JI+10),(SIZE,*M:JI+13),;
         ONEWKEY,WAIT
         B        JNXT1
JNXT2    M:CLOSE  M:EO,SAVE
         M:CLOSE  M:JI
         B        LMNK
TTBS     RES      64
JSPEC    DATA     JJOB,'!JOB'
         DATA     JNXT,'!LIM'
         DATA     JNXT,'!MET'
         DATA     JNXT,'!FOR'
         DATA     JNXT,'.END'
#JSPEC   EQU      %-1-JSPEC
JJOB     STW,2    JPREC+2
         B        JNXT
JIABN    LB,10    10
         LI,9     X'20'
         CH,9     M:JI
         BAZ      JIACC
         M:CLOSE  M:JI
         CI,10    X'2E'
         BE       JOPN
         CI,10    5
         BE       %+3
         CI,10    6
         BNE      TNONE
         LB,10    M:JI+23
         CI,10    3
         BG       TNONE
         CAL1,1   OPNJOB1
         B        JNXT
OPNJOB   GEN,8,24 20,M:JI
         DATA     1,X'1010101'
         TEXTC    'JOB'
OPNJOB1  GEN,8,24 20,M:JI
         DATA     1,X'1010303'
         TEXTC    'JOBMNSTK'
JIACC    M:PRINT  (MESS,JAC)
         B        NXT
JAC      TEXTC    'JOB FILE INACCESSIBLE'
         END      START
