ASMB,A,B,L,T
      ORG 105B
      OCT 6264
      HED  CONSTANTS AND VARIABLES
      ORG 126B
      OCT 113003         SERIAL NUMBER
      ORG 130B
      JMP BEGIN 
* 
SFLAG OCT 000000
SEQPT OCT 0 
SEQUN DEF SLIST 
TSTPT DEF LSTST 
SAVSW OCT 0 
PTCNT OCT 0 
      SUP 
* 
* 
* 
NBASE OCT 000060
PERFT DEF *+1 
      ASC 8,ALL TESTS OKAY./
REPER DEF *+1 
      OCT 000000
      ASC 9, ERRORS DETECTED./
* 
* 
NOESS OCT 000040
ANESS OCT 051440
ADESS DEF ROPER+4 
AROPR DEF ROPER 
BELLS OCT 000010
BCFLG OCT 000000         BAD CHAR REPORT FLAG 
RFCT1 DEC 81
RFCT2 DEC 41
COFL1 DEF ACFL1 
COFL2 DEF ACFL2 
COFL4 DEF ACFL4 
DAFIL DEF ADAFL 
FLCMS DEF AFLCM 
CRLFD DEF ACRLF 
STERM DEF * 
      DEF STM01 
      DEF STM02 
      DEF STM03 
      DEF STM04 
      DEF STM05 
      DEF STM06 
RDCON OCT 050050
* 
SAVEA OCT 0 
SAVEC OCT 0 
ASCNO OCT 0 
ASCNU OCT 0 
AHEAD DEF MHEAD 
ACT01 DEF CMES1 
ACT02 DEF CMES2 
ACT03 DEF CMES3 
ACT04 DEF CMES4 
ACT05 DEF CMES5 
* 
* 
HPCNT OCT 0 
HPMAX DEC -50 
HPMIN DEC -30 
AHPHD DEF HOPHD 
TIMEC DEC +10 
STCNT OCT 0 
PACRD OCT 0 
ADCRD DEF CDSTG 
MREAD OCT 0 
AIOTS DEF IOTST 
AREAD DEF READR 
ADMAR DEF DMARD 
ABCRP DEF BCRPT 
MBLNO DEC 3 
BLTIM DEC 200 
BLCNT OCT 0 
ATEMP OCT 0 
ADTIM DEF TIMES 
AOLT0 DEF OLT00 
* 
MSK01 OCT 170000
MSK02 OCT 030000
MSK03 OCT 007777
MSK04 OCT 160000
MSK05 OCT 000077
ALONE OCT 177777
NZERO DEC 0 
MTEN4 DEC -10000
N0128 DEC -128
N0011 DEC -11 
N0010 DEC -10 
N0004 DEC -4
N0003 DEC -3
N0001 DEC -1
P0001 DEC 1 
P0002 DEC 2 
P0003 DEC 3 
P0004 DEC 4 
P0005 DEC 5 
P0006 DEC 6 
P0007 DEC 7 
P0008 DEC 8 
P0010 DEC 10
P0011 DEC 11
* 
C2100 OCT 070000
BIAS1 OCT 140000
BIAS2 OCT 150000
CNU16 DEC 160 
CNU15 DEC 200 
CNU00 DEC 098 
CNUMX DEC 120 
CNUMB OCT 0 
HIWRD OCT 0 
* 
IEC01 OCT 000001
IEC02 OCT 000002
IEC03 OCT 000003
IEC04 OCT 000004
IEC05 OCT 000005
IEC06 OCT 000006
IEC07 OCT 000007
IEC08 OCT 000010
IEC09 OCT 000011
IEC10 OCT 000012
IEC11 OCT 000013
IEC12 OCT 000014
IEC13 OCT 000015
IEC14 OCT 000016
STS00 OCT 000000
STS01 OCT 010000
STS02 OCT 020000
STS03 OCT 030000
STS04 OCT 040000
STS05 OCT 050000
STS06 OCT 060000
STS07 OCT 070000
STS10 OCT 100000
STS11 OCT 110000
STS12 OCT 120000
STS13 OCT 130000
STS14 OCT 140000
STS15 OCT 150000
STS16 OCT 160000
STS17 OCT 170000
* 
* 
* 
***** TIME ADJUSTMENT CODE
* 
* 
TTM11 DEF *+1,I 
TTM10 DEF *+1,I 
TTM09 DEF *+1,I 
TTM08 DEF *+1,I 
TTM07 DEF *+1,I 
TTM06 DEF *+1,I 
TTM05 DEF *+1,I 
TTM04 DEF *+1,I 
TTM03 DEF 0B
* 
* 
OLT10 DEF *+1,I 
OLT09 DEF *+1,I 
OLT08 DEF *+1,I 
OLT07 DEF *+1,I 
OLT06 DEF *+1,I 
OLT05 DEF *+1,I 
OLT04 DEF *+1,I 
OLT03 DEF *+1,I 
OLT02 DEF *+1,I 
OLT01 DEF *+1,I 
OLT00 DEF *+1,I 
      DEF 0B
* 
* 
ERC01 OCT 000002
ERC02 OCT 000003
ERC03 OCT 000001
* 
ERC80 OCT 100004
* 
ERC90 OCT 100001
ERC91 OCT 100002
ERC92 OCT 100003
ERC93 OCT 100005
ERC99 OCT 100006
ERC70 OCT 000007
ERC95 OCT 000010
ERC96 OCT 000006
ERC97 OCT 000005
ERC98 OCT 000004
* 
DMACC EQU 6B
DMAAC EQU 2B
DMACW OCT 0 
* 
ECCNT OCT 0 
DMACT OCT 0 
CYCNT OCT 0 
CRCNT OCT 0 
SCRW1 OCT 0 
BUFLN DEC 128 
EXCNT OCT 0 
LWPTR OCT 0 
* 
* 
* 
RWADD OCT 0 
IWADD OCT 0 
IWPTR OCT 0 
RWPTR OCT 0 
FLCNT OCT 0 
BWCNT OCT 0 
BSCNT OCT 0 
BCCNT OCT 0 
HSCNT OCT 0 
READT OCT 0 
ECODE OCT 0 
RFCNT OCT 0 
CCMSK ASC 1,00
BCC53 OCT 020053
BCC55 OCT 020055
BCC60 OCT 020060
BCC61 OCT 020061
REFWD OCT 0 
ERRWD OCT 0 
CCNT1 OCT 0 
CCNT2 OCT 0 
BCOAD DEF *+4 
BCMAD DEF *+1 
BCM01 ASC 1,00
      ASC 1,
      ASC 15, 
      ASC 7,            / 
E7    DEF *+1 
      ASC 1,EC
* 
* 
* 
PNTR1 OCT 0 
PNTR2 OCT 0 
PNTR9 OCT 0 
* 
CNTR1 OCT 0 
CNTR8 OCT 0 
CNTR9 OCT 0 
SCVAL ABS *-* 
IRQIN ISZ IRQFL 
IRQFL OCT 0 
* 
* 
* 
* 
* 
MWHLT OCT 102000
* 
* CONSTANTS 
BTM00 OCT 000001
BTM01 OCT 000002
BTM02 OCT 000004
BTM03 OCT 000010
BTM04 OCT 000020
BTM05 OCT 000040
BTM06 OCT 000100
BTM07 OCT 000200
BTM08 OCT 000400
BTM09 OCT 001000
BTM10 OCT 002000
BTM11 OCT 004000
BTM12 OCT 010000
BTM13 OCT 020000
BTM14 OCT 040000
BTM15 OCT 100000
BM2.4 OCT 000024
* 
INTSW OCT 0 
ERCNT OCT 0 
.0770 OCT 000770
MNINE DEC -9
SC    OCT 0 
* 
TIMAX DEC +220
TIMIN DEC +150
* 
* 
LSTST DEF * 
      DEF TEST1 
      DEF TEST2 
      DEF TEST3 
      DEF TEST4 
      DEF TEST5 
      DEF TEST6 
      DEF TEST7 
      DEF TEST8 
      DEF TEST9 
* 
      HED  GET SELECT CODE AND OPTIONS
BEGIN LDB N0010 
      STB SAVEC          SAVEC=-10
NXTCD LDB OLT00 
      LDA 115B
      AND MSK01          A=COMPUTER TYPE
      CPA C2100          2100?
      JMP *+2            YES
      ADB SAVEC          B=OLT00+SAVEC
      LDA AOLT0 
      ADA SAVEC          A=AOLT0+SAVEC
      STB 0B,I
      ISZ SAVEC 
      JMP NXTCD 
** SET THE TIMING CONSTANT
      LDA 115B
      SSA           IS IT 21MX ?
      JMP L21MX     YES.
      ADA BIAS1 
      SSA 
      JMP L2116 
      ADA BIAS2 
      SSA 
      JMP L2115 
L2100 LDA CNU00 
      STA CNUMB 
      JMP COLET 
L21MX LDA CNUMX     SET UP TIMING 
      STA CNUMB     FOR 21MX. 
      JMP COLET 
L2115 LDA CNU15 
      STA CNUMB 
      JMP COLET 
L2116 LDA CNU16 
      STA CNUMB 
COLET LDA ADCRD          RESTORE POINTER
      STA PACRD 
      CLB 
      STB INTSW 
      JSB LOAD           LOAD SELECT CODE 
      HLT 01B 
      CLB 
      STB INTSW 
      AND MSK05 
      STA DMACW          STORE FOR DMA
      STA SCVAL 
DOINS LDB PACRD,I        B=BASE NO. 
      SZB,RSS            B=0? 
      JMP GTOPT          YES, GET OPTIONS 
      ADA 1B             ADD BASE TO S.C. 
      ISZ PACRD          INC. POINTER 
      LDB PACRD,I        B=-NO. INSTR.
      STB STCNT          STCNT=-NO. INSTR.
      ISZ PACRD          INC. POINTER 
      LDB PACRD,I        B=ADDRESS OF INSTR.
      STA 1B,I           STORE INSTR. 
      ISZ STCNT          INC. STCNT, =0?
      JMP *-4            NO, NEXT INSTR.
      ISZ PACRD          YES, INCR. POINT.
      JMP DOINS          DO INSTR.
GTOPT JSB LOAD
      HLT 02B 
      HED  DIAGNOSTIC TEST STRUCTURE
BEGTS LDA INTSW          GET SWITCH 
      AND BTM09          MASK ALL BUT BIT 9 
      SZA 
      JMP TBLST          JMP TO TROUBLESHOOT
* 
*** PERFORM ALL RELEVANT TESTS
* 
PERFR CLB 
      STB ERCNT          INITIALIZE ERROR COUNTER 
      JSB TEST           PERFORM TEST 1 
      DEF TEST1 
      DEF TEST1 
      JSB TEST           PERFORM TEST 2 
      DEF TEST2 
      DEF TEST2 
      JSB TEST           PERFORM TEST 3 
      DEF TEST3 
      DEF TEST3 
      LDA INTSW 
      AND BTM03          MASK ALL BUT BIT 3 
      SZA,RSS 
      JMP SK4.5 
      JSB TEST           PERFORM TEST 4 
      DEF TEST4 
      DEF TEST4 
      JSB TEST           PERFORM TEST 5 
      DEF TEST5 
      DEF TEST5 
SK4.5 JSB TEST           PERFORM TEST 6 
      DEF TEST6 
      DEF TEST6 
      LDA INTSW 
      AND BTM02          MASK ALL BUT BIT 2 
      SZA,RSS            DO TEST 7? 
      JMP SK7            NO 
      JSB TEST           PERFORM TEST 7 
      DEF TEST7 
      DEF TEST7 
SK7   JSB TEST           PERFORM TEST 8 
      DEF TEST8 
      DEF TEST8 
      LDB BTM04 
      JSB FINAL          CHECK IF FINAL TEST
      LDA INTSW 
      AND BTM04          MASK ALL BUT BIT 4 
      SZA,RSS 
      JMP SK9 
      JSB TEST           PERFORM TEST 9 
      DEF TEST9 
      DEF TEST9 
SK9   JSB LOAD
      HLT 05B 
      JMP BEGTS          RETURN TO BEGINNING
* 
*** PERFORM SELECTED TESTS
* 
TBLST LDA INTSW 
      SLA                SINGLE TEST OR SEQUENCE? 
      JMP SQTST          SEQUENCE 
      JSB VALID          SINGLE. INPUT VALID? 
      JSB LOAD           NO, RELOAD INPUT 
      HLT 06B,C          INPUT ERROR HALT 
      JMP *-3 
      JSB GTTST          GET TEST AND PERFORM 
      JMP SK9            RETURN FOR NEW OPTIONS 
SQTST LDA INTSW          SAVE INTSW 
      STA SAVSW 
      AND BTM12          BIT 12 
      SZA,RSS            PERFORM LAST SEQUENCE? 
      JMP GTSEQ          NO, GET NEW SEQUENCE 
      LDA SFLAG          YES, LOAD SFLAG
      SZA                DOES LAST SEQUENCE EXIST?
      JMP EXCTS          YES, EXECUTE THE SEQUENCE
      JMP GTOPT          NO, GET OPTIONS
GTSEQ LDA SEQUN          A=FIRST SEQ. LOCATION
      STA SEQPT          STORE IN POINTER 
      LDA INTSW 
      JMP *+3 
LDTST JSB LOAD           LOAD NEXT TEST IN SEQUENCE 
      HLT 17B 
      JSB VALID          INPUT VALID? 
      JSB LOAD           NO, RELOAD INPUT.
      HLT 17B,C 
      JMP *-3 
      STA SEQPT,I        STORE IN SEQUENCE LIST 
      SZA,RSS            ADD ANOTHER TEST TO SEQ.?
      JMP *+3            NO 
      ISZ SEQPT          INCREMENT POINTER
      JMP LDTST          NEXT INPUT 
EXCTS CLA 
      STA PTCNT          RESET SEQ. TEST NUMBER 
      INA 
      STA SFLAG          SIGNAL THAT SEQ. EXISTS
      LDA SEQUN 
      STA SEQPT          RESET SEQ. POINTER 
DOTST LDA SEQPT,I        A=TEST NUMBER
      SZA,RSS            A=0? (END OF STRING?)
      JMP RPINT          YES, REPLACE SWITCH
      LDB SAVSW 
      STB INTSW 
      JSB GTTST          GET TEST AND PERFORM 
      ISZ PTCNT          INCREMENT SEQ. TEST NUMBER 
      ISZ SEQPT          INCREMENT SEQ. POINTER 
      LDA PTCNT          A=SEQ. TEST NUMBER 
      LDB SAVSW          LOAD B= SWITCH 
      SSB                HALT TO SHOW TEST NUMBER?
      HLT 76B            YES, A=SEQ. TEST  NUMBER 
      JMP DOTST          NEXT TEST
RPINT LDA SAVSW          REPLACE SWITCH BEFORE LEAVING
      STA INTSW 
      JMP SK9            RETURN FOR NEW OPTIONS 
* 
* SUBROUTINE VALID
* ENTER:A=INPUT WORD
* RETURN:A=TEST NUMBER IF VALID, SKIP NEXT 2 INSTR. 
*        RELOAD IF INVALID. 
* 
VALID NOP 
      SZA,RSS 
      JMP VAL01 
      AND .0770          MASK ALL BUT TEST NUMBER 
      ARS,ARS            RIGHT
      ARS                  JUSTIFY
      LDB 0B             TRANSFER TO B
      SZB,RSS            ILLEGAL IF B=0 
      JMP VALID,I        ILLEGAL, LOAD AGAIN
      ADB N0010          ADD -10
      SSB,RSS            LEGAL IF B NEGATIVE
      JMP VALID,I        ILLEGAL, LOAD AGAIN
VAL01 LDB VALID          LEGAL, SKIP RELOAD 
      ADB P0003 
      JMP 1B,I           RETURN 
* 
*SUBROUTINE GTTST 
*ENTER:A=TEST NUMBER
GTTST NOP 
      ADA TSTPT          ADD TEST POINTER 
      LDB 0B,I
      STB TSNUM          STORE THE RIGHT ARGUMENTS
      STB TSNUM+1 
      JSB TEST           PERFORM PROPER TEST
TSNUM OCT 0 
      OCT 0 
      JMP GTTST,I 
* 
* 
* 
* SUBROUTINE TEST 
TEST  NOP 
      LDB TEST,I         RESTORE ARGUMENT 
      ISZ TEST
      STB TEST,I         DONE 
      JSB REPRT          REPORT MESSAGE 
      JSB REPRT          REPORT MESSAGE 
      LDA TEST,I
      IOR BTM15 
      JSB 0B,I           PEFORM TEST,A=ERR.+MESS. CODE
      STA SAVEC          SAVE CODE
      ISZ TEST,I         INCREMENT POINTER
      LDB TEST,I
      SSA                ERROR MESSAGE? 
      JMP ERROR          YES
      ADB 0B             ADD TO POINTER 
      STB TEST,I         STORE AS NEW POINTER 
      JSB REPRT 
      JMP RQUES 
ERROR ADA BTM15          CHANGE SIGN BIT
      ADB 0B             ADD TO POINTER 
      STB TEST,I         STORE AS NEW POINTER 
      JSB REPRT 
      LDA INTSW 
      AND BTM14 
      SZA                SUPRESS ERROR HALT?
      JMP RQUES          YES
      JSB LOAD           NO 
      HLT 03B 
      JMP SKRTS 
RQUES LDA INTSW 
      AND BTM13          ISOLATE REPEAT BIT 
      SZA,RSS            WAS REPEAT?
      JMP *+3            NO SKIP HALT 
      JSB LOAD
      HLT 04B 
SKRTS LDA INTSW 
      AND BTM13 
      SZA,RSS            REPEAT LAST TEST?
      JMP NXTST          NO 
      LDA SAVEC          YES, LOAD CODE 
      SSA,RSS            ERROR IF NEGATIVE
      JMP STTST          NO ERROR , SKIP DEC OF ERCNT 
      CCA 
      ADA ERCNT 
      STA ERCNT          ERCNT DECREMENTED
STTST CCA                DECREMENT TEST 
      ADA TEST
      STA TEST
      JMP TEST+1         REPEAT TEST
NXTST ISZ TEST
      LDB CRLFD          SEPARATE TESTS BY CR-LF
      CLA,CLE 
      JSB 127B,I
      JMP TEST,I
* 
REPRT NOP 
      LDA TEST,I
      LDB 0B,I
      CLA 
      CLE 
      JSB 127B,I         OUTPUT MESSAGE 
      ISZ TEST,I         INCREMENT POINTER
      LDA BCFLG 
      SZA,RSS            BAD CHAR REPORT? 
      JMP *+4            NO 
      CLA 
      STA BCFLG          RESET THE FLAG 
      JSB ABCRP,I        REPORT BAD CHARACTERS
      JMP REPRT,I 
* 
LOAD  NOP 
      LDA LOAD,I
      STA LHLT
      LDA INTSW 
      LDB INTSW 
LHLT  NOP 
      CPA INTSW 
      JMP *+3 
      STA INTSW 
      JMP LEXR
      CPB INTSW 
      JMP *+3 
      STB INTSW 
      JMP LEXR
      LDA LHLT
      CPA LOAD,I
      JMP *+2 
      STA INTSW 
LEXR  ISZ LOAD
      LDA INTSW          LEAVE WITH LOADED WORD 
      JMP LOAD,I
* 
* 
*FINAL REPORT SUBROUTINE FOR TESTS 6 AND 7. 
* 
*ENTER WITH B=BIT MASK. 
*FOR TEST 6 B=BM2.4, FOR TEST 7 B=BTM04.
FINAL NOP 
      LDA INTSW 
      AND 1B             MASK SWITCH
      SZA                ANY MORE TESTS?
      JMP FINAL,I        YES
      LDA ERCNT          NO, A=ERCNT
      SZA                ANY ERRORS?
      JMP *+3            YES, SET UP MESSAGE
      LDB PERFT          NO, SET UP MESSAGE 
      JMP *+9 
      CPA P0001          PLURAL OR SINGULAR IN MESS?
      JMP *+2            SINGULAR 
      JMP *+3            PLURAL 
      LDB NOESS 
      STB REPER+5 
      ADA NBASE          MAKE INTO ASCII
      STA REPER,I        STORE STRING 
      LDB REPER          SET UP MESSAGE ADDR. 
      CLA 
      CLE 
      JSB 127B,I         OUTPUT MESSAGE 
      LDB ANESS          REPLACE "S"
      STB REPER+5 
      JMP FINAL,I 
* 
      HED  INDIVIDUAL TEST SUBROUTINES
* 
*TESTS: 
* 
TST01 NOP 
      HLT 22B 
      JSB AIOTS,I        CHECK INTERFACE
      SZA,RSS            SKIP IF ERROR
      JMP TST01,I        RETURN 
      ADA BTM15          PLACE ERROR BIT
      ISZ ERCNT          INC. ERROR COUNTER 
      NOP 
      JMP TST01,I 
* 
* 
TST02 NOP 
      LDA RFCT1 
      STA RFCNT 
      LDA COFL2 
      STA RWADD 
      LDA AREAD 
      STA MREAD 
      JSB TSTCD 
      JMP TST02,I 
* 
* 
TST03 NOP 
      LDA RFCT2 
      STA RFCNT 
      LDA COFL1 
      STA RWADD 
      LDA AREAD 
      STA MREAD 
      JSB TSTCD 
      JMP TST03,I 
* 
* 
TST04 NOP 
      LDA RFCT2 
      STA RFCNT 
      LDA COFL1 
      STA RWADD 
      LDA AREAD 
      STA MREAD 
      JSB TSTCD 
      JMP TST04,I 
* 
* 
TST05 NOP 
      LDA RFCT1 
      STA RFCNT 
      LDA COFL4 
      STA RWADD 
      LDA AREAD 
      STA MREAD 
      JSB TSTCD 
      JMP TST05,I 
* 
* 
TST06 NOP 
      LDA RFCT1 
      STA RFCNT 
      LDA COFL2 
      STA RWADD 
      LDA ADMAR 
      STA MREAD 
      JSB TSTCD 
      JMP TST06,I 
* 
* 
TST07 NOP 
HPLB1 CLA                INITIALIZE HPCNT=0 
      STA HPCNT 
      HLT 10B 
      LDA DAFIL          SET UP FOR READ
      STA IWADD 
      LDA RDCON 
      STA READT 
NEXTC JSB AREAD,I          READ CARD
      NOP 
      SSA                SKIP IF NO STATUS ERROR
      JMP STERT          TEST STATUS ERROR
      LDB BTM02 
      LDA TIMEC          TIMEC=NO. MILLISEC. WAIT 
OTB04 OTB *-*            SEND REJECT COMMAND
      JSB 121B,I         LEAVE FOR 1 MILLISEC.
      ISZ HPCNT          INCREMENT HOPPER COUNT 
LIA02 LIA *-*            LOAD STATUS
      AND MSK01          MASK ALL BUT STATUS
      CPA STS00          HOPPER FULL? (0000 STATUS) 
      JMP MNTST          YES
      LDA HPCNT          NO 
      ADA HPMAX 
      SSA                TOO MANY CARDS?
      JMP NEXTC          NO 
      ISZ ERCNT          YES, REPORT
      LDA ERC91          A=100002 
      JMP HPOUT          OUTPUT COUNT 
STERT CPA ERC91 
      JMP MNTST 
      JSB UTILR 
      JMP HPLB1 
MNTST LDA HPCNT 
      ADA HPMIN 
      SSA                HPCNT BIG ENOUGH?
      JMP *+3            NO 
      CLA                A=000000 
      JMP HPOUT 
      ISZ ERCNT 
      LDA ERC90          A=100001 
HPOUT STA SAVEA 
      LDB AHPHD 
      LDA HPCNT 
      STA ASCNO 
      JSB NOOUT 
      LDA SAVEA 
      JMP TST07,I 
* 
* 
TST08 NOP 
      LDA RFCT1 
      STA RFCNT 
      LDA COFL2 
      STA RWADD 
      LDA DAFIL 
      STA IWADD 
      LDA RDCON 
      STA READT 
      CLA 
      STA PKFLG          INITIALIZE PICK FAIL FLAG
T8.01 HLT 20B            HALT TO MAKE CRD RDR READY 
T8.02 JSB AREAD,I        READ CARD
      SSA                UTILITY ERROR? 
      JMP T8.03          YES
      CPA ERC02          NO, EOD? 
      JMP T8.04          YES
      CPA ERC03          EOD? 
      JMP T8.04          YES
      JMP T8.02          NO, READ CARD
T8.03 CPA ERC80          UTIL. ERR., PICK FAIL? 
      JMP *+2            YES
      JMP *+3            NO 
      CLB,INB            SET PICK FAIL FLAG 
      STB PKFLG 
      JSB UTILR          REPORT ERROR 
      JMP T8.01 
T8.04 LDA PKFLG          TEST FLAG
      SZA,RSS            WAS THERE A PICK FAIL? 
      JMP *+3            YES
      CLA 
      JMP TST08,I 
      LDA ERC90 
      JMP TST08,I 
* 
PKFLG OCT 0 
* 
TSTCD NOP 
      LDA DAFIL 
      STA IWADD 
      LDA RDCON 
      STA READT 
FIXRD HLT 20B            HALT TO FIX READER.
CARDR JSB MREAD,I        READ CARD, A=CODE
      STA SAVEA          SAVE A 
      SSA 
      JMP SKRDT 
* 
** MULTIPLY BY CNUMB, DIVIDE BY 10000 
* 
*  ENTER:B=TIMING NUMBER,T; CNUMB IS SET
*  RETURN:B=T*CNUMB/10000 
      NOP 
      CLA                MULTIPLY FIRST 
      STA HIWRD 
      CLE 
      LDA CNUMB 
      CMA,INA 
      STA SAVEC          SAVEC=-CNUMB 
      CLA                A=0
MLOOP ADA 1B             A=A+T
      SEZ                EXTEND?
      ISZ HIWRD          YES, INCR. HIWRD 
      NOP 
      CLE 
      ISZ SAVEC          INCR. SAVEC
      JMP MLOOP 
*  A=T*CNUMB, SAVEC=0    DIVIDE SECOND
      LDB HIWRD          B-A
DLOOP ADB ALONE 
      CLE 
      ADA MTEN4          A=A-10000
      SEZ                EXTEND?
      INB                YES
      CLE 
      SSB                B<0? 
      JMP *+3            YES
      ISZ SAVEC 
      JMP DLOOP 
      LDB SAVEC 
      NOP 
* 
      LDA INTSW 
      AND BTM01 
      SZA 
      JMP SKRDT 
      LDA TIMAX 
      CMA 
      ADA 1B
      SSA,RSS            >TIMAX?
      JMP BDRDT          YES
      LDA TIMIN          NO 
      CMA,INA 
      ADA 1B
      SSA,RSS            <TIMIN?
      JMP SKRDT          NO 
BDRDT SZB,RSS            YES, OUTPUT IF # 0 
                                                                                                                                                                                            