ADMS4  DEF *+1
      ASC 10,END OF TAPE DETECTED 
      ASC 4, ON UNIT
      BSS 1 
ADMS5  DEF *+1
      ASC 19,WAITING FOR UNIT   TO COMPLETE REWIND
ADMS6  DEF *+1
      ASC 10,PLACE UNIT   ON LINE 
STFA   DEF STMES
EMSIA  DEF MESS4
      SKP 
* 
* 
* 
*  SWITCH CMNDS FROM ODD TO EVEN PARITY 
*   AND VICE VERSA
*   BIT 15=1 FOR EVEN-----  =0 FOR ODD
SWMD  NOP 
      LDA CMDN1+1 
      STA TMP1
      LDB CMDN1 
      LDA TMP1,I
      XOR MSK15 
      STA TMP1,I
      ISZ TMP1
      INB,SZB 
      JMP *-5 
*   REVERSE P.E. MASK FOR EOF SENSING 
      LDA PCKA
      XOR P2
      STA PCKA
      JMP SWMD,I
* 
* 
* 
* 
* 
* 
SAVBA  DEF SAVBB
SAVB   BSS 1
WORDI  DEF WORD 
WORDA  NOP
WORDB  NOP
BADI  DEF WORD+29 
      DEF WORD+58 
BADA  NOP 
      NOP 
BADB  NOP 
      NOP 
      NOP 
* 
* 
* 
MINIT  NOP
      CLA 
      STA RCC 
      STA ERRCT 
      LDA WORDI 
      STA WORDA 
      STA WORDB 
      LDA BADI
      STA BADA
      STA BADB
      LDA BADI+1
      STA BADA+1
      STA BADB+1
      JMP MINIT,I 
* 
* 
LOCAL  EQU *
      LDA P40 
      LDB LMS1A 
      JSB TYPE,I
      HLT 11B 
      JMP START 
LMS1A  DEF LMESS
* 
* 
* 
PARCH DEF PARCT 
PB10  OCT 2000
PBFLG DEF PB10F 
      SKP 
      SKP 
*   HERE IS THE START OF THE MAIN PROGRAM 
* 
      ORG 1777B 
START  NOP
      CLC 0,C 
      LDA MI2 
      STA UCT  RETRY TWICE FOR LOCAL TEST 
      CCA 
      STA RCT 
      STA UNIT
      CLA 
      STA ITER   CYCLE COUNTER
      STA ERFLG 
      JSB TYPE,I NEW LINE FOR OPERATOR OUTPUT DEVICE
      JSB MINIT 
* 
LOOP  LIA SW
      ALF 
      SLA,RSS 
      JMP NO12P 
*  IF SWITCH 12 SET, HLAT BEFORE NEXT CYLE START
      LDA ITER
      JSB CONV
      STA ADMS1+1 
      STB ADMS1+2 
      LDA P40 
      LDB ADMS1 
      JSB TYPE,I
      HLT 77B 
*   EXIT THROUGH MTS IF SWITCH 15 SET AFTER SWITCH 12 
      CCA 
      LIB SW
      SSB 
      JMP 77B 
* 
NO12P  EQU *
*   DETERMINE NEXT UNIT TO BE TESTED
*    SWITCHES 0-3 SAYS WHICH UNITS TO BE TESTED 
*  IF NO SWITCHES THEN ALL FOUR UNITS 
      ISZ UNIT  BUMP UNIT # BY 1
      JMP *+6 
      LDA MI4  RECYCLE TO UNIT 0
      STA UNIT
      LIA SW
      AND P17 
      STA UTSL  SAVE VALUE FO SR FOR ONE ITERATION
*                  THROUGH FOUR UNITS 
      LDA UTSL
      SZA,RSS 
      JMP *+6  NO SWITCHES SO JUST LOOK AT NEXT UNIT
      SLA,RAR  FIND OUT NEXT SW THAT IS SET 
      JMP *+3 
      STA UTSL
      JMP NXTU  NOT THIS ONE
      STA UTSL  HERE IS THE NXT UNIT
      LDB UNIT
      ADB SLNA  FIND SLECT CODE 
      LDA B,I 
      STA SLN 
      LDA UNIT  IS IT THE FIRST OF THE UNITS SLECTED
      CPA MI4 
SWD   JSB SWMD  NOP HERE IF NO MODE SWITCHING 
      LDA SLN 
      JSB OUTC   SELECT UNIT
      JSB STATS 
      ALF,ALF 
      SLA,RSS   CHECK FOR LOCAT 
      JMP NOW   NOT IN LOCAL
NXTU  LDA UNIT  HAVE WE RUN TRHOUGH ALL FOUR UNITS
      INA,SZA,RSS 
      ISZ UCT  YES--S THIS SECOND TIME THROUGH UNITS
      JMP NO12P     NOPE
      JMP LOCAL   YES-SO SAY THAT ALL UNITS ARE LOCAL 
NOW   LDB UNIT   CHECK TO SEE IF UNIT IS REWINDING
      ADB REWUN 
      STB CHECK 
      LDA B,I 
      SZA,RSS 
      JMP NOW2   NOPE 
      CLA   YES SO SEE IF IT IS STILL REWINDING 
      STA DOCMD 
NOW1   JSB STATS
      AND MSK2
      XOR SOT 
      SZA,RSS 
      JMP NOW2  NOPE SO GO AHEAD
      ISZ DOCMD 
      JMP NOW1   KEEP CHECKING FOR A FEW MS 
      LDA MI2 
      STA UCT 
      ISZ RCT 
      JMP NO12P  DON'T UOUTPUT MESSAGE EVERY TIME 
      LDA MI64  SET UP TO TYPE OUT EVERY 64TH TIME
      STA RCT 
      JSB GETUN 
      STA ADMS5+9 
      LDA P46 
      LDB ADMS5 
      JSB TYPE,I
      JMP NO12P 
NOW2   STA CHECK,I  DONE REWIND--SO CLEAR FLAG
      ISZ ITER   BUMP CYCLE COUNTER 
      LDA MI2 
      STA UCT 
      CCA 
      STA HLTN   PRESET TEST HALT NO. 
      STA RCT 
      INA 
* 
*  FLAG AND INTERRUPT TESTS 
* 
      LDB TM12
      JSB CHECK  SET UP FIRST LOOP
*    FLAG TESTS ON DATA CHANNEL 
D1    CLF DATA  CLEAR FLAG ON DATA CHANNNEL 
D2     SFC DATA  TEST FALG WITH SFC--SHOULD SKIP
      CMA 
      LDB B3
      JSB CHECK   HLT 1 
      CLA,INA 
D3   SFS DATA   TEST FLAG WITH SFS--SHOULD NOT SKIP 
      CLA 
      JSB CHECK   HLT 2 
D4   STF DATA  SET FLAG ON DATA CHANNEL 
D5    SFS DATA  TEST FLAG WITH SFS--SHOULD SKIP 
      CMA 
     JSB CHECK   HLT 3
      CLA,INA 
D6    SFC DATA  TEST FLAG WITH SFC--SHOULD NOT SKIP 
      CLA 
      JSB CHECK   HLT 4 
D7    CLF DATA  RESET THE FLAG
D8    SFC DATA  TEST FLAG WITH SFC--SHOULD SKIP 
      CMA 
      LDB B235
      JSB CHECK   HLT 5--LOOP ON 1-5
*   TEST FLAG ON CMND CHANNEL 
C1    CLF CMND   CLEAR FLAG ON CMND CHANNEL 
C2    SFC CMND   TEST FLAG WITH SFC--SHYULD SKIP
      CMA 
      LDB B3
     JSB CHECK   HLT 6
      CLA,INA 
C3   SFS CMND  TEST FLAG WITH SFS--SHOULD NOT SKIP
      CLA 
      JSB CHECK 
C4    STF CMND   SET FLAG ON COMMAND CHANNEL
C5    SFS CMND  TEST FLAG WITH SFS--SHOULD SKIP 
      CMA 
      JSB CHECK   HLT 10
      CLA,INA 
C6    SFC CMND  TEST FLAG WITH SFC--SHOULD NOT SKIP 
      CLA 
      JSB CHECK   HLT 11
C7    CLF CMND  CLEAR FLAG ON CMND CHANNEL
C8    SFC CMND  TEST FLAG WITH SFC--SHOULD KIP
      CMA 
      LDB B235
      JSB CHECK   HLT 12--LOOP ON 6-12
*   INTERRUPT CHECK ROUTINES
         LDA  P747      HLAT NOS 750 UP 
         STA   HLTN 
         LDB  DFJMP     JMP D12 
D9       STB   DATA 
         LDB   ISZST     ISZ ERROR
C9       STB  CMND
         CLA
         STA   ERROR
D12.5     STC DATA,C
D12.6    STF  DATA         FORCE DATA INTERRUPT 
         STF       0
         NOP
         NOP
         CMA
D12      CLC    DATA,C
         LDB  B235
         CLF  0 
         JSB  CHECK    HLT 750--NO DATA INTERRUPT 
         LDA     ERROR
         JSB   CHECK    HLT 751  UNEXP, CMD INT 
         LDB CFJMP     JMP C12.1
C10      STB     CMND 
         LDB  ISZST 
D12.1    STB   DATA 
         JSB  CKINT     HLT 752-3 
D12.2    STC   DATA,C        STC,CLF ON DATA
         JSB   CKINT    CHECK INTERRUPTS AGAIN    HALTS 754-5 
D12.3    STF   DATA     SET DATA FLAG 
         JSB  CKINT     CHECK ONCE AGAIN--HLAT 756-7
         LDA   P14     RESET HALT NO. 
         STA  HLTN
* 
*  CLEAR AND GAP TIME TESTS 
* 
      LDA CLR 
      JSB OUTC      GIVE CLEAR COMMAND
      LDA MS10
      JSB DELAY     WAIT FOR 10.4 MILLISECONDS
      LDB TM1    3737 
      CLA,INA 
      JSB CHECK  STIL S/B BUSY--HLT 15
      LDA MS1 
      JSB DELAY     1 MS DELAY
      LDB TM2  153737 
      CLA 
      JSB CHECK  S/B NOT BUSY--HLT 16 
*                CANN LOOP ON 15-16 
      LDA EFG    GAP OFF LOAD POINT 
      JSB OUTC      OUTPUT COMMAND
      JSB DYSTJ,I   WAIT TO MOVE OFF LOAD POINT 
      LDA MS90
      JSB DELAY   DELAY 90 MILS 
      LDB TM13
      CLA,INA 
      JSB CHECK  STILL S/B BUSY--HLT 17 
      LDA MS18
      JSB DELAY  18 MIL DELAY 
      LDB TM4  153777 
      CLA 
      JSB CHECK S/B NOT BUSY---HLT 20 
*               CAN LOOP ON 17-20 
*            SEQNECE ERROR COULD RESULT 
      LDA CLR 
      JSB OUTC      OUTPUT COMMAND
      LDA FSR 
      JSB OUTC
      JSB CWAIT     WAIT FOR COMMAND CHANNEL FLAG 
      LDA REJ 
      LDB TM15
      JSB CHECK  REJET BIT CHECK   HLT 21 
*           LOOP ON 21---POSSIBLE SEQUENCE ERROR
* 
* 
*  DELAY TIME TO READ AND WRITE AFTER START TESTS 
* 
      LDA WRO       BEGIN READ WRITE DELAY CHECKS 
      JSB OUTC      OUTPUT COMMAND
      CCA 
D13    OTA DATA,C  WRITE REGISTER SET TO 1'S
      LDA MS10
      JSB DELAY     CHECK WRITE AFTER START TIME
      LDB TM6 
D14    SFS DATA 
      CLA           SHOULD BE NO DATA FLAGS YET 
      JSB CHECK   S/B NOT DATA CLOCKS YET--HLT 22 
      LDA MS2 
      JSB DELAY 
D15    SFC DATA 
      CLA 
      JSB CHECK  S.B BY NOW----HLT 23 
      LDA MS6 
      JSB DELAY  LET TRANSPORT WRITE FOR AWHILE 
      JSB ENDWT 
      JSB CWAIT 
      LDA BSR 
      JSB SKIPR  BACKSPACE RECORD--HLT 24 
      LDA RRO 
      JSB OUTC      OUTPUT COMMAND
D.79   LDA MS13 
      JSB DELAY      CHECK READ AFTER START DELAY 
D16   SFS DATA
      CLA 
      LDB TM6 
      JSB CHECK  S/B NO CLOCKS YET--HLT 25
      LDA MS4   DELAY 4 MILS
      JSB DELAY 
D17   SFC DATA
      CLA 
      LDB TM6   64000 
      JSB CHECK   SHOULD HAVE DATA FLAGS-HLT 26 
      JSB CWAIT   WAIT FOR EAD TO COMPLETE
      LDB TM16
      LDA TIM  CHECK FOR TIMING ERROR 
      JSB CHECK  S.B TIMING ERROR--HLT 27 
*        LOOP ON TESTS 22-27
* 
*  WRITE TEST RECORDS 
* 
      LDA MI24      WRITE 24 WORDS OF ALL 1'S 
      CCB 
      JSB WRIT
      LDB TM3 
      CLA 
      JSB CHECK S/B CLEAR AFTER WRITE--HLT 30 
      LDA WTM       WRITE EOF 
      JSB SKIPF  CHECK FOR EOF ONLY--HLT 31 
      LDA MI6       WRITE 6 WORD TEST RECORD
      LDB CHAR1  TEST PATTTERN #1 
      JSB WRIT
      LDB TM3 
      CLA 
      JSB CHECK  SHOULD BE CLEAR--HLT 32
      LDA MI6       WRITE 6 WORD TEST RECORD
      LDB CHAR2  TEST PATTERN #2
      JSB WRIT
      LDB TM3  3777 
      CLA 
      JSB CHECK  S/B CLEAR  HLT 33
      LDA GTM       WRITE GAP AND EOF 
     JSB SKIPF  CHECK FOR EOF ONLY--HLT 34
* 
* 
*  BACK SPACE OVER TEST RECORDS 
*    RECORD,EOF,REOCRD,RECORD,EOF 
* 
* 
* 
      CCA 
      STA REC 
BKSPR  LDA BSR
      JSB SKIPF  HLT 35 AND 40
      LDA BSR 
      JSB SKIPR   HLT 36,AND 41 
      ISZ REC 
      JMP *+4 
      LDA BSR 
      JSB SKIPR   HLT 37
      JMP BKSPR 
* 
*  READ TEST RECORDS
* 
      LDA MI24      READ 1ST RECORD - 24 WORDS
      CCB           SHOULD BE ALL 1'S 
      JSB READ   READ AND COMPARE DATA
      CLA 
      LDB TM3  3777 
      JSB CHECK READ ERROR CHECK--HLT 42
      LDA FSR       SKIP TO NEXT RECORD 
      JSB SKIPF  EOF ONLY---HLT 43
      LDA MI6       READ 2ND RECORD 
      LDB CHAR1  SHOULD LOOK LIKE CHAR1 
      JSB READ
      LDB TM3  3777 
      CLA 
      JSB CHECK  READ ERROR CHECK-:HLT 44 
      LDA MI6       READ 3RD RECORD 
      LDB CHAR2  SHOULD LOOK LIKE CHAR2 
      JSB READ
      LDB TM4  113777 
      CLA 
      JSB CHECK  READ ERROR CHECK--HLT 45 
*                 CAN LOOP ON  TESTS 30-45
* 
*  READ TEST RECORDS TO TEST INTERRUPT
*   ON BOTH COMMAND AND DATA CHANNELS 
* 
      LDB STORE  BEGIN CMD INT. CHECK 
D18    STB DATA  INTIALIZE DATA IN. 
STORE  STA ERROR
      STA COUNT 
      LDA CJMP      INITIALIZE COMMAND INTERRUPT
C14   STA CMND    (JMP READ2) 
      LDA BSR 
      JSB OUTC   GIVE BACKPACE COMMNAD
C15    STC CMND  ENABEL CMND & DATA INTS. 
D19   STC DATA
      STF 0 
      LDA MS50
      JSB DELAY  DELAY FOR 50 MS
      STA COUNT     NO INTERRUPT SET COUNT NOT = 0
READ2 CLC 0,C       TURN OFF INTERUPT SYSTEM
      LDA COUNT 
      LDB TM10
      JSB CHECK  S/B CMND INT.--HLT 46
      LDA ERROR  ERRORNOT=0 IF THERE WAS A
*                  DATA INTERRUPT 
      LDB TM7   2000
      JSB CHECK S/B NO DATA INTERRUPT---HLT 47
      LDA TM3  3777 
      XOR P2
      STA B 
      CLA 
      JSB CHECK  S/B BE CLEAR STATUS--HLT 50
      STA ERROR 
      STA COUNT 
      LDA STORE 
C16   STA CMND
*   TEST DATA INTERRRUPTS BY READING A RECORD 
      LDA DJMP
D20    STA DATA 
      LDA RRO 
      JSB OUTC
D21   STC DATA
C17   STC CMND
      STF 0 
      LDB MI6  THERE S/B 6 DATA INTERRUPTS
      LDA MS50
      JSB DELAY     WAIT FOR DATA INTERRUPT 
      STA COUNT     NO INTERRUPT SET COUNT NOT = ZERO 
      JMP *+4 
D22   LIA DATA,C  DATA INT. TO HERE 
      INB,SZB 
      JMP *-6       WAIT FOR NEXT FLAG
C18   CLC CMND TURN OFF CMD INT, BEFORE CMND
*                FLAG SHOUD COME UP 
      JSB CWAIT     WAIT FOR COMMAND FLAG 
      CLC 0,C 
      LDA ERROR     CHECK FOR COMMAND INTERRUPTS
      LDB TM10
      JSB CHECK  S/B NO CMND INTERRUPSS 
*                   HLT 51
      LDA COUNT 
      LDB TM7   2000
      JSB CHECK  S.B DATA INTERRUPTS--HLT 52
      LDB TM4  113777 
      JSB CHECK  STATUS S/B CLEAR--HLT 53 
*                  CAN LOOP ON TESTS 46-53
* 
*  SKIP RECORD/FILE TESTS 
* 
      LDA BSF       TEST BSF OVER RECORDS 
      JSB SKIPF   SHOULD BE EOF ONLY--HLT 54
      LDA BSR       TEST BSR OVER RECORD ONLY 
      JSB SKIPR     HLT 55
      CCB           CHECK TAPE POSITION 
      LDA MI24
     JSB READ  READ--SHOULD BE ALL 1'S RECORD 
      LDB TM3   3777
      CLA 
      JSB CHECK  READ ERROR CHECK--HLT 56 
      LDA FSF       TEST FSF OVER OVER EOF ONLY 
      JSB SKIPF  S/B EOF---HLT 57 
      LDA BSF       TEST BSF OCER EOF ONLY
      JSB SKIPF  S/B EOF---HLT 60 
      LDA BSR       TEST BSR OVER RECORD
     JSB SKIPR  STATUS SHOULD BE CLEAR--HLT 61
      CCB           CHECK TAPE POSITION 
      LDA MI24
      JSB READ  SHOULD BE ALL 1'S RECORD AGAIN
      LDB TM3   3777
      CLA 
      JSB CHECK   READ ERROR CHECK--HLT 62
      LDA BSR   BACKSPACE REOCRD
      JSB SKIPR  HLT 63 
      LDA FSF       TEST FSF OVER RECORD
      JSB SKIPF   S/B EOF---HLT 64
      LDA BSR    CHECK BSR OVER EOF 
      JSB SKIPF    HLT 65 
      LDA FSR   CHECK FSR OVER EOF
      JSB SKIPF   HLT 66
      LDA FSR  TEST FSR OVER RECORD 
      JSB SKIPR  SKIP TEST PATTERN"1 REOCRD 
*                HLT 67 
      LDB CHAR2     CHECK TAPE POSITION 
      LDA MI6 
      JSB READ   READ TEST PATTTERN"2 RECORD
      LDB TM8    13777
      CLA 
      JSB CHECK  CHECK FOR READ ERROR-HLT 70
*           LOOP ON TESTS 54-70 
      LDA FSF   TEST FSF OVER GAP AND EOF 
      JSB DOCMD 
      LDB TM9 
      LDA EOF 
      XOR PCKA
      JSB CHECK  S/B EOF ONLY--HLT 71 
* 
      LIA SW   CHECK SWITCH 5 
      AND P40   IF SET THEN INHIPIT 
      SZA      GAP TESTS
      JMP J2A 
* 
*  TEST LENGTH OF INTERRECORD GAP 
* 
      LDA BSF        BACKSPACE 2 FILES
      JSB SKIPF    HLT 72 
      LDA BSF 
      JSB SKIPF    HLT 73 
      LDA FSF 
      JSB SKIPF   HLT 74
      LDA RFF        READ FORWARD FILE
      JSB OUTC
      LDB MI6 
      JSB DWAIT 
D23    CLF DATA 
      INB,SZB   WAIT UNTIL BY REACORD 1 
      JMP D23-1 
      LDA MS18   DELAY 18 MILS
      JSB DELAY 
D24   SFS DATA   SHOULD NOT HAVE DATA FLAG
      CLA 
      LDB TM7  2000 
       JSB CHECK  HLT 75--RECORD GAP TOO SHOURT 
      LDA MS6+1 
      JSB DELAY      DELAY TOTAL 24.3 MSEC
D25   SFC DATA   SHOULD HAVE DATA FLAG
       CLA
      LDB TM7    2000 
      JSB CHECK    HLT 76--RECORD GAP TOO LONG
      JSB CWAIT   WAIT FOR READ FILE TO COMPLETE
*  THEN CHECK STATUS--S/B EOF AND TIMING
      LDA TM4  113777 
      XOR P2
      STA B 
      LDA TIM 
      XOR EOF 
      JSB CHECK    HLT 77--LOOP ON 72-77
* 
      JSB CRSGJ,I   GO TEST FOR POSITIVE CREEP
* 
* 
*   CHECK FOR DATA TESTS
* 
J2A   LIA SW   IF SWITCH 4 SET
      AND P20   THEN INHIBIT TEST 
      SZA 
      JMP J2         SKIP EXTENSIVE READ/WRITE TESTS
* 
* 
* EXTENSIVE READ AND WRITE TESTS
*   WRITE AND READ 64 RECORDS 
*    EACH RECORD CONTAINS 29 WORDS
*     HTE DATA PATTERN CONSISTS OF
*     THE EXTENSIVE WRITE/READ PATTERNS 
*    SHOWN IN TABLES 1,1A,1B OF THE 
*    DIAGNOSTIC SOFTWARE MANUAL 
* 
      LDA P130
      STA HLTN
      LDA MI64   INITIALIZE RECORD COUNTER
      STA REC 
      LDA GTM  GAP AND EOF
      JSB SKIPF   HALT 131
      LDA ADD1      INIT. BUFF ADDRESSES
      STA TMPB+2
      STA ADDR
W2    LDA MI29      29 WORDS/REC
      STA WCC 
      LDA WRO       WRITE CMND
      JSB OUTC
      LDB ADDR  B REG HAS ADDRESS OF DATA BUFFER
      JSB DWAIT  WAIT FOR DATA FLAG 
      LDA B,I  PICK UP NEXT WORD TO RITE
D26   OTA DATA,C  OUTPUT DATA WORD
      INB        BUMP BUFFER ADDRESS
      CPB ADDE   AT END OF DATA BUFFER? 
      LDB ADD1  YES SO SET TO TOPE OF BUFFER
      ISZ WCC    ALL 29 WORDS WRITTTEN? 
      JMP D26-2  NOPE--WAIT FOR NEXT FLAG 
      JSB ENDWT  GIVE CLC TO DATA CHANNEL 
      JSB CWAIT  WAIT FOR END OF RECORD TO COMPLETE 
      LDB TM3 
      CLA    HALT 132,-231
      JSB CHECK   CHECK FOR WRITE ERRORS
      LDA TMPB+2  SET UP BUFFER ADDRESS 
      INA     FOR NEXT RCORD
      CPA ADDE    AT END OF BUFFER? 
      LDA ADD1    YES SO RESET TO TOP 
      ISZ REC     ALL 64 RECORDS WRITTEN? 
      JMP W2-2   NOPE 
* 
      LDA MI64      BACKSPACE 64 RECORS 
      STA REC 
      LDA BSR 
      JSB SKIPR  HALTS 232-331
      ISZ REC 
      JMP *-3 
* 
*    NOW GO READ ALL 64 RECORDS 
*     AND PERFORM DATA COMPARISION
* 
      LDA MI64      64 REC
      STA REC 
      LDA ADD1
      STA TMPB+2
      STA ADDR
WR1   EQU * 
      LDA SAVBA   READ BUFFER STOREAG ADDRESS 
      STA SAVB
      LDA MI29       29 WORDS/REC 
      STA RCC 
      STA LEXP
      LDA RRO        READD COMMAND
      JSB OUTC
      CLA 
      STA RCCC
      STA D28+1 
      CLB 
      INB,SZB,RSS 
      JMP DWT1   DATA FLAG IS LATE
C19    SFC CMND  END OF RECORD? 
      JMP WR3     YES 
D27   SFS DATA   READ CLOCK?
      JMP *-5   NOPE--KEEP WAITING
D28   LIA DATA,C   PICK UP NEXT WORD
      NOP      JMP D28+5 HERE IF 29 WORDS FOULND
      ISZ RCCC    COUNT WORD
      STA SAVB,I    SAVE WORD 
      ISZ SAVB
      ISZ RCC     ALLL 29 WORDS READ? 
      JMP C19-3   NOPE
      LDA *+2     YES--SO SET UMP SO ANY
      JMP C19-4   XTRAS WILL NOT BE STORED
      JMP D28+5  BUT KEEP WAITING FOR CMND FLAG 
WR3    CCE     E=NON-ZERO SAYS RANDM DATA COMPARE 
      JSB CMPR  COMPARE DATA
      CLA 
      LDB TM3  3777 
      JSB CHECK   CHECK FOR READ ERRORS 
*               HALTS 332-431 
      LDA TMPB+2  SET UP FOR NEXT BUFFER ADDRESS
      INA 
      CPA ADDE   AT END OF BUFFER?
      LDA ADD1    YES SO RESET TO BEGINNING 
      ISZ REC   ALLL 64 RECORDS READ? 
      JMP WR1-2 
      CLA           DUMMT CALL TO CHECK:
      LDB TM11   SO ONCE CAN LOOP 
      JSB CHECK       READ/WRITE TEST AS A UNIT 
* 
* 
J2   LIA SW   CHECK SWITCH 7
      AND P200
      SZA 
      JMP J3
* 
*  REWIND AND ASSOCIATED SOT TESTS
* 
      LDA P432
      STA HLTN
       LDA REW   GIVE REWIND COMMND 
      JSB OUTC
      LDA MS1   DELAY FOR .667 MS (AT 37.5 IPS) 
     JSB DELAY
C20   SFS CMND   FLAG SHOULD NOT BE SET 
      CLA 
      LDB TM7 
      JSB CHECK  IS CMND FLAG TOO SOON--HLT 433 
      LDA MS2   DELAY ABOTHER 2 MILS
      JSB DELAY 
C21   SFC CMND
      CLA 
      LDB TM7 
      JSB CHECK   SHOULD BE CMND FLAG--HLT 434
      LDA SZA 
      STA SZAS
      LDA MI300   SET UP FOR LONG DELAY 
      STA DOCMD     TO WAIT FOR REWIND
      CLB           TO COMPLETE 
*    WAIT HERE FOR ONLY SOT STATUS BIT TO 
*    INDICATE THAT REWIND IS COMPLETE 
*     CHECK THAT TRANSPORT BUSY AND REWIND
*      STATUS BITS REMAIN HIGH DURING 
*      ENTIRE REWIND
STNXT  JSB STATS
      STA CHECK  SAVE STATUS
      AND MSK2
      XOR SOT  IS JUST SOT BIT SET? 
SZA   SZA,RSS 
      JMP STINX  REWIND IS COPLETE
      LDA CHECK  SET IF RW AND TB ARE SET 
      AND MSK4  MASK OUT SOT AND EOT
      XOR RWTB
SZAS  SZA,RSS   NOP HERE AFTER FIRST ERROR
      JMP *+9 
      LDB TM14
      LDA RWTB
      JSB CHECK  CHECK RW & TB BITS::--HLT 435
      CLA 
      STA SZAS  PREVENT HLT FROM OCCURING AGAIN 
      CCA 
      ADA HLTN
      STA HLTN  RESET HALT NUMB. CAUSE IT GETS
*                BUMP LATER 
      INB,SZB 
      JMP STNXT 
      ISZ DOCMD   WAIT FOR A VERY LONG
      JMP STNXT  FOR SOT ONLY 
STINX  ISZ HLTN   BUMP HALT NUM.
      LDB TM7 
      JSB CHECK  S/B DONE REWINDING--HLT 436
      LDA REW   GIVE REWIND AT LOAD POINT 
C22   OTA CMND
      LDA SOT 
      LDB TM3 
      JSB CHECK  SOULD NOT BE BUSY--HLT 437 
     LDA BSR       CHECK BSR AT SOT REJECT
      JSB OUTC      OUTPUT COMMAND
      LDB TM3   3777
      LDA SOT 
      XOR REJ 
      JSB CHECK  S/B SOT & REJ ONLY--HLT 440
      LDA EFG 
      LDB MS90
      JSB BSYCK GAP AT LAOD POINT 
*              TIMING CHECK--HLTS 441,442 
      JSB CWAIT 
      LDB TM3 
      CLA 
      JSB CHECK   STATUS S.B CLEAR
      LDA BSR 
      LDB MS50+1
      JSB BSYCK GIVE BSR TO LOADPOINT--HLTS 444,445 
      JSB CWAIT 
      LDB TM3 
      LDA SOT   SHOULD BE SOT ONLY
      JSB CHECK   HLT NO. 446 
      LDA WRO       CHECK GAP AT SOT BEFORE WRITE 
      JSB OUTC      OUTPUT WRITE COMMAND
      JSB DYSTJ,I   WAIT TO MOVE OFF LOAD POINT 
      LDA MS90
      JSB DELAY     WAIT FOR 90 MS
D29   SFS DATA
      CLA     NOT SET --OK
      LDB TM7 
      JSB CHECK  DATA FLAG SHOULD NOT BE SET--HLT 447 
      LDA MS13
      JSB DELAY 
D30   SFC DATA  DATA FLAG NOT SET--ERROR
      CLA 
      JSB ENDWT 
     LDB TM7
      JSB CHECK  DATA FLAG S/B SET--HLT 450 
      JSB CWAIT     WAIT FOR UNIT READY 
      LDB TM11
     CLA
                                                                                                                                                                                                  