TIME:DAY TITLE    '11:09 NOV 08,''76 VERSION OF ''CHK.X'' PROCESSOR'
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
CR       EQU      '
'               NEW LINE (11-9-5 PUNCH)
         SYSTEM SIG7
         REF      M:SI
         REF      M:LL
         BOUND    8
OUTER    DATA     '9'
         DATA     'A'
INNER    DATA     X'EF'
         DATA     'G'
START    CAL1,1   PROMPT
         BAL,R1   DIRECT
READSI   LI,R4    0
         CAL1,1   READ
         LW,R2    M:SI+4
         SLS,R2   -17
         LI,R3    0
         LI,R10   3
         AND,R10  M:SI
         CI,R10   1                 CHECK FOR FILE INPUT
         BNE      NOT:A:FILE
         LI,R10   X'70'
         AND,R10  M:SI+5            CHECK ORGANIZATION
         CI,R10   X'20'
         BG       EXIT              RANDOM
         BE       KEYED
NOT:A:FILE  RES   0
         AI,R2    -1
KEYED    CI,R2    0
         BGZ      CHECK:QM
         B        HOW:MANY
ABN      LB,0     R10               CHECK FOR END-OF-FILE
         CI,0     7                 TOO LARGE A RECORD
         BE       READSI+2          OVERFLOW FROM COMMENTS - TRUNCATED
         CI,0     6
         BNE      EXIT
HOW:MANY LW,R10   SID#
         BGZ      CHK-2
         LW,8     COMMENTS-1
         STW,8    COMMENTS
         LI,8     511
         AND,8    *X'4F'            GET TERMINAL'S USER NUMBER
         STW,8    SID
         B        ONE:TIME
CHECK:QM MTW,0    SID#              FIRST ENTRY?
         BNEZ     CVT-1
         LB,13    BUF               GET FIRST CHARACTER
         CI,13    '?'
         BNE      CVT-1             BRANCH IF NOT QUESTION MARK
         LI,14    EXPM
         CAL1,2   FPTEXPM
         LI,14    EXPM1
         CAL1,2   FPTEXPM
         LI,14    EXPM2
         CAL1,2   FPTEXPM
         LI,14    EXPM3
         CAL1,2   FPTEXPM
         B        HOW:MANY
         LI,R13   0
CVT      RES      0
         LB,15    BUF,R3
         CLM,15   OUTER
         BCS,6    CVTSID            BRANCH IF > OR < HEX CHARACTER
         CLM,15   INNER
         BCR,6    CVTSID            BRANCH IF > 'F' AND < '0'
         AI,R15   -X'F0'
         BGEZ     %+2
         AI,R15   X'F0'-X'C1'+10
         MI,R13   16
         AW,R13   R15
         AI,R3    1
         BDR,R2   CVT
CVTSID   CI,R13   0
         BNE      NOT:ME
         LI,R13   511
         AND,R13  *X'4F'            GET USER ID
         STW,R13  SID,R4
         LW,13    COMMENTS-1
         B        NOCMNT
NOT:ME   STW,R13  SID,4             PUT ID IN TABLE
         LW,13    COMMENTS,R4       GET COMMENT BUFFER POINTER
         CI,2     0
         BNE      %+3
         STB,2    13                CLEAR COMMENT DEFAULT ON '0'
         B        NOCMNT
         CI,2     24
         BLE      %+2               LIMIT TO 24 CHARACTERS
         LI,2     24
MOVE     LB,15    BUF,R3
         LB,1     R13
         STB,15   *R13,1
         AI,R3    1
         MTB,1    R13
         BDR,2    MOVE
NOCMNT   STW,R13  COMMENTS,R4
         MTW,1    SID#
         AI,R4    1
         CI,R4    32
         BLE      READSI+1
         STW,R4   SID:LIST
         LI,R4    -1
CHK      RES      0
         AI,R4    1
         LW,R8    SID,R4
         BEZ      CHK
         BLZ      WAIT
ONE:TIME CAL1,1   STATUS
         CI,R8    1
         BL       DONE
         BE       RUNNG
         CI,R8    3
         BG       OUT
         BE       WHO
         CW,R10   #AHD,R4
         BE       CHK
         STW,R10  #AHD,R4
         LW,R15   R10
         LI,R5    STR1
         LI,R11   10
         B        %+2
CVX      RES      0
         LI,R11   16
         LI,R13   0
CVT2     RES      0
         LI,R14   0
         DW,R14   R11
         CI,R14   10
         BGE      %+2
         AI,R14   '0'-'A'+10
         AI,R14   'A'-10
         SLS,R13  -8
         STB,R14  R13
         CI,R15   0
         BG       CVT2
         CI,R13   X'40'
         BANZ     %+3
         SLS,R13  -8
         B        %-3
         OR,R13   MASK
         B        *R5
STR1     RES      0
         STW,R13  WTM+3
         LW,R15   SID,R4
         BAL,R5   CVX
         STW,R13  WTM+1
         LI,R14   WTM
         BAL,R1   PRNTR
         B        CHK
WAIT     RES      0
         LW,R4    SID:LIST
         LI,15    0
         OR,15    SID:LIST,R4
         BDR,R4   %-1
         CI,15    0                 ALL JOBS COMPLETED?
         BE       EXIT              BRANCH IF 'YES'
         CAL1,8   30SEC
         B        CHK-1
DONE     RES      0
         LW,R15   SID,R4
         BAL,R5   CVX
         STW,R13  DONM+1
         LI,R14   DONM
         B        PROUT
OUT      RES      0
         LI,R10   X'FFFF'
         CW,R10   #AHD,R4
         BE       CHK
         STW,R10  #AHD,R4
         LW,R15   SID,R4
         BAL,R5   CVX
         STW,R13  OUTM+1
         LI,R14   OUTM
         BAL,R1   PRNTR
         B        CHK
WHO      RES      0
         LW,R15   SID,R4
         BAL,R5   CVX
         STW,R13  WHOM+1
         LI,R14   WHOM
PROUT    RES      0
         LI,R10   0
         STW,R10  SID,R4
         BAL,R1   PRNTR
         MTW,-1   SID#
CHEXIT   RES      0
         LW,R10   SID#
         BGZ      CHK
EXIT     RES      0
         CAL1,9   1
RUNNG    RES      0
         LI,R10   -1
         CW,R10   #AHD,R4
         BE       CHK
         STW,R10  #AHD,R4
         LW,R15   SID,R4
         BAL,R5   CVX
         STW,R13  RUNM+1
         LI,R14   RUNM
         BAL,R1   PRNTR
         B        CHK
PRNTR    RES      0
         STW,R1   EX
         LW,15    TO
         LB,13    *14
         STB,13   15
         SLS,14   2
         MBS,14   1
         CAL1,8   TIME
         LI,15    BA(TIME:DAY+12)
         LW,14    COMMENTS,R4
         LB,13    R14
         STB,13   R15
         BCR,2    %+3
         SLS,14   2                 MAKE IT A BYTE ADDRESS
         MBS,14   0
DIRECT   CAL1,2   PRINT
         LW,1     TO
         MBS,0    BLANKS
         B        *EX
EX       DATA     READSI
BLANKS   DATA     '    '
TO       GEN,8,24 (PROMPT-TIME:DAY)*4-1,BA(TIME:DAY)+1
TIME     GEN,8,24 X'10',WTIME
PRNT     RES      0
TIME:DAY TEXTC '** CHECK HERE - GIVE SYSIDS ** ',;
                  ' ''?'' FOR OPTIONS                            '
WTIME    EQU      TIME:DAY+7
PROMPT   GEN,8,24 X'2C','%'
PRINT    GEN,8,24 1,M:LL
         GEN,1,31 1,0
         DATA     TIME:DAY
STATUS   GEN,8,24 X'2F',M:LL
         DATA     0
30SEC    GEN,8,24 15,4
FPTEXPM  GEN,8,24 1,M:LL
         GEN,1,31 1,0
         GEN,1,31 1,14
READ     GEN,8,24 X'10',M:SI
         DATA     X'F0000010'
         DATA     EXIT
         DATA     ABN
         DATA     BUF
         DATA     28
SID#     DATA     0
SID:LIST DATA     0
SID      RES      0
         DO1      34
         DATA     -1
#AHD     RES      0
         DO1      33
         DATA     X'FFFFFF'
MASK     DATA     X'40404040'
WTM      TEXTC    '*IDXXXX -- XXXX'
DONM     TEXTC    '*IDXXXX COMPLETED                                   '
OUTM     TEXTC    '*IDXXXX WAITING TO OUTPUT                        '
WHOM     TEXTC    '*IDXXXX DOESN''T EXIST'
RUNM     TEXTC    '*IDXXXX RUNNING                                 '
EXPM     TEXTC    ;
 'CHK.X INPUT OF 1-32 JOB ID''S CAN BE FROM A TERMINAL,',;
 CR,'OR THRU M:SI FROM A FILE BUILT BY EDIT OR BY PCL:',;
 CR,CR,'!COPY ME ON FID'
EXPM1    TEXTC    '.ID (OPTIONAL COMMENTS)',;
 CR,'.0   (REPORTS TERMINAL OUTPUT)',CR,'.ESCAPE-F',;
 CR,CR,'!CHK.X FID (RETURN)',CR,CR,'''ID'' 0 DEFAULTS TO ON-LINE',;
 ' JOB ''ID'' OUTPUT.'
EXPM2    TEXTC    'ANY NON-HEX CHARACTER FOLLOWING ''ID'' ENTRY',;
 CR,'BEGINS OPTIONAL COMMENTS FIELD OF 1-24 CHARACTERS.'
EXPM3    TEXTC    CR,'AN INITIAL ''NULL'' ENTRY DEFAULTS TO',;
 ' TERMINAL JOB ''ID'' ON A',CR,'REPORT (ONLY) BASIS:',CR,'  '
         GEN,8,24 24,COMBUF
COMMENTS RES      0
I        DO       33
         DATA     (I-1)*6+COMBUF+6
         FIN
COMBUF   TEXT     ' THIS TERMINAL''S OUTPUT!'
         RES      33*6
BUF      RES      7
         END      START
