      STB BUFFA,I 
      LDA SDDTC 
      ADA MD1 
      STA SDDTC 
      JMP SDC05 
      SPC 2 
SDDTC BSS 1 
SDCNT BSS 1 
SDTYP BSS 1 
SDBA  ABS RSPAR 
SDP   ABS PAR 
SDST  ABS STB 
SDSTX ABS STB+3 
      SPC 2 
SDOUT DEF *-*       RETURN ADDRESS
      LDA SDOUT,I   GET PARAMETER 
      ISZ SDOUT     UPDATE RETURN ADDRESS 
      STA SDOP1     SAVE
      LDA BXMIT     INITIALIZE BUFFER POINTER 
      STA BUFFA 
      LDA MD128     INITIALIZE COUNTER
      STA BCNTR 
      LDA SDWD4     GET WORD 4 COMMAND
      STA SDOP3     SAVE
SDOC1 LDA SDOP1     GET PARAMETER 
      AND MSK3
      STA B 
      LDA SDOP1 
      AND SDST
      SZA 
      INB 
      LDA SDOP1 
      AND SDP 
      SZA 
      INB 
      ADB D6
      CMB,INB 
      STB SDOCN     COUNTER - BITS / CHARACTER
      JSB CMND      PREPARE FOR RECEIVE 
SDOP3 BSS 1         WORD 4 COMMAND
      JSB CLK16     START BIT 
SDOC2 LDA BUFFA,I   GET DATA
      CMA 
      AND MSK1
      ALF,ALF 
      RAR,RAR 
      ADA SDWD4 
      STA SDOP2 
      LDA BUFFA,I 
      RAR 
      STA BUFFA,I 
      JSB CMND
SDOP2 BSS 1 
      JSB CLK16     SUPPLY 16 CLICKS
      ISZ SDOCN     UPDATE BIT COUNTER
      JMP SDOC2     CONTINUE WITH THIS CHARACTER
      ISZ BUFFA     UPDATE BUFFER POINTER 
      ISZ BCNTR     UPADTE COUNTER
      JMP SDOC1     CONTINUE - MORE CHARACTERS
      JSB CLK16 
      JMP SDOUT,I   RETURN
      SPC 2 
MSK1  EQU D1
SDOCN BSS 1 
SDOP1 BSS 1 
D6    DEC 6 
SDWD4 BSS 1 
      SPC 2 
LINBF DEF *-*       RETURN ADDRESS
      LDA MD128     INITIALIZE COUNTER
      STA BCNTR 
      LDB BRCV      INITIALIZE BUFFER POINTER 
      STB BUFFB 
      LDB BXMIT     INITIALIZE BUFFER POINTER 
      STB BUFFA 
LIC01 LDA BUFFB,I   PREPARE DATA
      AND LOHWD 
      STA BUFFB,I   REPLACE IN BUFFER 
      LDA BUFFA,I 
      AND MSKCZ 
      STA BUFFA,I   REPLACE IN BUFFER 
      ISZ BUFFB     UPDATE BUFFER POINTER 
      ISZ BUFFA     UPDATE BUFFER POINTER 
      ISZ BCNTR     UPDATE COUNTER
      JMP LIC01     CONTINUE
      JMP LINBF,I   RETURN
      SPC 2 
FIXDA DEF *-*       RETURN ADDRESS
      LDA FIXDA,I   GET DATA FORMAT 
      STA FXDAT     SAVE
      ISZ FIXDA     UPDATE RETURN ADDRESS 
      LDB BXMIT     GET BUFFER POINTER
      STB BUFFA     SAVE
      LDB MD128     INITIALIZE COUNTER
      STB BCNTR 
FXC07 LDA FXDAT 
      AND MSK3
      LDB MSK37 
FXC09 SZA,RSS 
      JMP FXC08-1 
      RBL 
      INB 
      ADA MD1 
      JMP FXC09 
      STB MSKCZ     SAVE MASK 
FXC08 LDA BUFFA,I 
      AND B 
      STA BUFFA,I 
      LDA FXDAT 
      AND SDP       IS PARITY USED
      SZA,RSS 
      JMP FXC01     NO- DO START AND STOP(S)
      LDA FXDAT 
      AND .B2       YES - WHAT TYPE 
      SZA,RSS 
      CCB,RSS 
      CLB 
      LDA BUFFA,I   GET DATA
      JSB PTYGN     GENERATE PARITY 
      STA BUFFA,I   SAVE
      AND .B8 
      STA B         SAVE PARITY BIT 
      RBR,RBR 
      RBR 
      LDA FXDAT 
      AND MSK3      NO BITS / CHAR
FXC03 SZA,RSS 
      JMP FXC02     CONTINUE
      RBL 
      ADA MD1 
      JMP FXC03     CONTINUE
FXC02 LDA BUFFA,I 
      AND B0TB7 
      IOR B 
      RSS 
FXC01 LDA BUFFA,I   GET DATA
      RAL           INSERT START BIT
      AND NB0       MASK
      STA BUFFA,I   SAVE
      LDB .B6 
      LDA FXDAT 
      AND SDST      CHECK NO STOP BITS
      SZA 
      ADB .B7       USE 2 
      LDA FXDAT 
      AND MSK3      GET NO OF BITS / CHAR 
FXC06 SZA,RSS 
      JMP FXC05     CONTINUE
      RBL           PUT STOP BITS IN CORRECT POSITION 
      ADA MD1 
      JMP FXC06 
FXC05 LDA FXDAT 
      AND SDP 
      SZA           IS PARITY USED
      RBL           POSITION STOP BIT(S)
      LDA BUFFA,I   GET DATA
      IOR B 
      STA B 
      STB BUFFA,I   SAVE COMPLETE DATA
      ISZ BUFFA     UPDATE BUFFER POINTER 
      ISZ BCNTR     UPDATE BUFFER COUNTER 
      JMP FXC07 
      JMP FIXDA,I   RETURN
      SPC 2 
FXDAT BSS 1 
MSKCZ BSS 1 
.B2   OCT 4 
.B6   OCT 100 
.B7   OCT 200 
NB0   OCT 7776
      SPC 2 
PTYGN DEF *-*       RETURN ADDRESS
      STB PYTYP     SAVE PARITY TYPE
      LDB MD8 
      STB PYCNT 
      CCB 
      AND B0TB7     MASK
PYC01 SLA           GENERATE PARITY 
      CMB 
      RAR 
      ISZ PYCNT 
      JMP PYC01 
      ALF,ALF 
      SZB 
      IOR .B8 
      LDB PYTYP     GIVE CORRECT
      SSB,RSS       PARITY TO 
      XOR .B8       DATA
      JMP PTYGN,I   RETURN
PYCNT BSS 1         COUNTER 
MSK37 OCT 37
PYTYP BSS 1         PARITY TYPE 
.B8   OCT 400 
B0TB7 ABS B0+B1+B2+B3+B4+B5+B6+B7 
      SPC 2 
CMND  DEF *-*       RETURN ADDRESS
      LDA CMND,I    GET DATA
      ISZ CMND      UPDATE RETURN 
OTIO1 OTA SARI      OUTPUT
      JMP CMND,I    RETURN
      SPC 2 
PTG   DEF *-*       RETURN ADDRESS
      LDA PTG,I     GET ADDRESS OF
      STA PTGI      INTERRUPT ROUTINE 
      ISZ PTG 
      LDA PTG,I     GET ADDRESS OF
      STA IRTN      INTERRUPT RETURN
      JSB TRJSB,I   FILL TRAP CELL
PTGI  DEF *-* 
      ISZ PTG       UPDATE RETURN 
      JMP PTG,I     RETURN
      SPC 2 
CBUFS DEF *-*       RETURN
      CLA 
      STA NOERS     INITIALIZE ERROR FLAG 
      LDA CBUFS,I   GET ERROR POINTER 
      STA CBERR 
      LDA MD128     INITIALIZE COUNT
      STA CBCNT 
      LDA BXMIT     INITIALIZE POINTERS 
      STA BUFFA 
      LDA BRCV
      STA BUFFB 
CBC02 LDA CBC1A 
      STA CDATA 
      LDA BUFFA,I 
      ISZ BUFFA 
      STA CEXPD     SAVE
      LDA BUFFB,I 
      ISZ BUFFB 
      LDB A 
      JMP CDAC1     CHECK DATA
CEXPD BSS 1         EXPECTED DATA 
CBERR DEF *-*       ERROR MESSAGE POINTER 
      ISZ NOERS     CHECK FOR ERRORS
      RSS           CONTINUE
      JMP CBC03     DO NOT REPORT ANY NORE ERRORS 
      ISZ CBCNT     DONE? 
      JMP CBC02     CONTINUE
CBC03 ISZ CBUFS     UPDATE RETURN 
      JMP CBUFS,I   RETURN
CBCNT BSS 1 
CBC1A DEF CEXPD 
      SPC 2 
DMAON DEF *-*       RETURN ADDRESS
      LDA DMACF     PLACE 
      STA SDMAH     CLF IN TRAP CELL
      LDA CW1       GET COMMAND WORD 1
      OTA SDMAH     OUTPUT TO DMA 
      CLC SDMAL     PREPARE FOR CW2 
      LDA DMAON,I   INPUT OR OUTPUT + 
      OTA SDMAL     ADDRESS TO DMA
      STC SDMAL     PREPARE FOR CW3 
      LDA CW3       GET CONTROL WORD 3
      OTA SDMAL     OUTPUT TO DAM 
FNIO5 STC SARI,C    START ARI 
      STC SDMAH,C   START DMA 
      ISZ DMAON     UPDATE RETURN 
      JMP DMAON,I   RETURN
      SPC 1 
CW1   ABS SARI      CONTROL WORD 1 FOR DMA
CW3   EQU MD128 
      SPC 2 
DMAOF DEF *-*       RETURN ADDRESS
DMACF CLF SDMAH     TRUN OFF DMA
      LIA SDMAL     GET COUNT 
      SZA,RSS       CHECK COUNT = 0 
      JMP DMAOF,I   RETURN
      CLF INTP      CLEAR INTERRUPT SYSTEM
      JSB ERMS,I    REPORT ERROR
      DEF EM154 
      JMP DMAOF,I   RETURN
      SPC 2 
CLBFR DEF *-*       RETURN ADDRESS
      LDB MD128     INITIALIZE COUNTER
      CLA           CLEAR 
      STB CLCNT 
      LDB BRCV      BUFFER POINTER
CLC01 STA B,I       CLEAR BUFFER
      INB           UPDATE POINTER
      ISZ CLCNT     UPDATE COUNT
      JMP CLC01     CONTINUE
      JMP CLBFR,I   RETURN
CLCNT BSS 1         COUNTER 
      SPC 2 
PTGNR DEF *-*       RETURN ADDRESS
      LDA PTGNR,I    GET START PATTERN
      STA PTGTY     SAVE
      LDB MD128     INITIALIZE COUNTER
      STB PTNCT     SAVE
      LDB BXMIT     GET BUFFER POINTER
PTGC1 STA B,I       PLACE DATA IN BUFFER
      INB           UPDATE BUFFER POINTER 
      LDA PTGTY     GET DATA
      SZA,RSS 
      RSS 
      SSA 
      RSS 
      INA 
      STA PTGTY     SAVE NEXT DATA
      ISZ PTNCT     UPDATE COUNTER
      JMP PTGC1     CONTINUE
      ISZ PTGNR     UPDATE RETURN ADDRESS 
      JMP PTGNR,I   RETURN
      SPC 2 
PTGTY BSS 1         DATA
PTNCT BSS 1 
      SKP 
CSTUS DEF *-*       RETURN ADDRESS
      JSB RSTUS     GET INTERFACE STATUS
CSC01 STA STAT      SAVE ACTUAL STATUS
      LDA CSTUS,I   GET EXPECTED STATUS 
      ISZ CSTUS     UPDATE RETURN 
      CPA STAT      CHECK STATUS
      JMP CSXIT     CONTINUE
      STA EXSTS     SAVE EXPECTED STSTUS
      LDA CSTUS,I   GET ERROR MESSAGE 
      STA CSFRM     SAVE
      LDA EMCS3 
      STA CSTO
      JSB MOVE
CSTO  DEF *-* 
CSFRM DEF *-* 
      LDA EXSTS     GET EXPECTED STATUS 
      CLE 
      LDB EMCS2 
      JSB O2AS,I
      LDA STAT      GET ACTUAL STATUS 
      CLE 
      LDB EMCS1 
      JSB O2AS,I
      JSB ERNO      GET SUB-TEST NO.
      DEF EMCS
      LDA STAT      GET ACTUAL STATUS 
      LDB EXSTS     GET EXPECTED STATUS 
      JSB ERMS,I    OUTPUT ERROR
      DEF EMCS
CSXIT ISZ CSTUS 
      JMP CSTUS,I    RETURN 
EMCS  ASC 8,EXXX STATUS IS
EMS1  ASC 6,XXXXXX  EXP 
EMS2  ASC 4,YYYYYY (
EMS3  ASC 14, 
EMCS1 DEF EMS1
EMCS2 DEF EMS2
EMCS3 DEF EMS3
STAT  BSS 1         ACTUAL STATUS 
EXSTS BSS 1 
      SPC 2 
MSTUS DEF *-*       RETURN ADDRESS
      JSB RSTUS     READ STATUS 
      AND MSTUS,I   MASK THE STATUS 
      ISZ MSTUS     UPDATE RETURN ADDRESS 
      LDB MSTUS     GET RETURN ADDRESS
      STB CSTUS     SAVE
      JMP CSC01     CONTINUE
      SPC 2 
MOVE  DEF *-*       RETURN ADDRESS
      LDB MOVE,I    GET TO
      ISZ MOVE
      LDA .M14
      STA MVCNT 
      LDA MOVE,I     GET FROM 
      STA MVFRM 
MVC01 LDA MVFRM,I    GET DATA 
      STA B,I        PUT DATA 
      INB 
      ISZ MVFRM 
      ISZ MVCNT 
      JMP MVC01 
      ISZ MOVE
      JMP MOVE,I    RETURN
MVCNT BSS 1 
.M14  DEC -14 
MVFRM DEF *-* 
      SPC 2 
ESTUS DEF *-*       RETURN ADDRESS
      JSB RSTUS     READ STATUS 
      AND MSKXS     MASK
      LDB ESTUS     GET RETURN ADDRES 
      STB CSTUS     SAVE
      JMP CSC01     CONTINUE
      SPC 2 
MSKXS ABS CC+CF+SCF+CB+CE+DEVI+DEVI 
      SKP 
CDATA DEF *-*       RETURN ADDRESS
      JSB RDDTA     GET DATA FROM INTERFACE 
CDAC1 STA DATA      SAVE ACTUAL DATA
      LDA CDATA,I   GET EXPECTED DATA 
      ISZ CDATA     UPDATE RETURN 
      CPA DATA      CHECK DATA
      JMP CDXIT     CONTINUE
      STA EXDAT     SAVE EXPECTED DATA
      LDA CDATA,I   GET MESSAGE POINTER 
      STA CDFRM 
      LDA EMCD3 
      STA CDTO
      JSB MOVE
CDTO  DEF *-* 
CDFRM DEF *-* 
      LDA EXDAT     GET EXPECTED DATA 
      CLE 
      LDB EMCD2 
      JSB O2AS,I    CONVERT TO ASCII
      LDA DATA      GET ACTUAL DATA 
      CLE 
      LDB EMCD1 
      JSB O2AS,I    CONVERT TO ASCII
      JSB ERNO      PLACE E NO. 
      DEF EMCD
      LDA DATA      GET ACTUAL DATA 
      LDB EXDAT     GET EXPECTED DATA 
      JSB ERMS,I    REPORT ERROR
      DEF EMCD
      JSB ALLER     CHECK - ALL ERRORS DESIRED
CDXIT ISZ CDATA     UPDATE RETURN 
      JMP CDATA,I   RETURN
      SPC 2 
EMCD  ASC 7,EXXX DATA IS
EMD1  ASC 6,XXXXXX  EXP 
EMD2  ASC 4,YYYYYY (
EMD3  ASC 14, 
EMD4  ASC 4,   STOP,
EMD5  ASC 6,     PARITY,
EMD6  ASC 9,   BITS PER CHAR)/
EMCD1 DEF EMD1
EMCD2 DEF EMD2
EMCD3 DEF EMD3
DATA  BSS 1         ACTUAL DATA 
EXDAT BSS 1         EXPECTED DATA 
      SPC 2 
MDATA DEF *-*       RETURN ADDRESS
      JSB RDDTA     READ DATA 
      AND MDATA,I   MASK THE DATA 
      ISZ MDATA     UPDATE RETURN ADDRESS 
      LDB MDATA     GET RETURN ADDRESS
      STB CDATA     SAVE
      JMP CDAC1     CONTINUE
      SPC 2 
CBURT DEF *-*       RETURN ADDRESS
      LDA CBURT,I   GET WORD 3 COMMAND
      STA CBWD3     SAVE
      ISZ CBURT     UPDATE RETURN ADDRESS 
      LDA CBURT,I   GET ERROR MSG POINTER 
      STA CBMSG     SAVE
      ISZ CBURT     UPDATE RETURN ADDRESS 
      LDA MD128     INITIALIZE COUNTER
      STA BCNTR 
      LDA BXMIT     GET BUFFER POINTER
      STA BUFFA     SAVE
      LDA BRCV      GET BUFFER POINTER
      STA BUFFB     SAVE
      CLA           INITIALIZE ERROR FLAG 
      STA NOERS 
CBUC2 LDB BUFFA,I   GET EXPECTED DATA 
      LDA BUFFB,I   GET ACTUAL DATA 
      CPA B         CHECK DATA
      JMP CBUC1     CONTINUE
      STB EXDAT     SAVE EXPECTED DATA
      STA DATA      SAVE ACTUAL DATA
      JSB MOVE      MOVE MSG
      DEF EMD3
CBMSG DEF *-*       MSG POINTER 
      JSB ERNO      GENERATE ENNN 
      DEF EMCD      POINTER TO MSG
      LDA CBWD3     GET WORD 3 COMMAND
      AND MSK3      ISOLATE BITS / CHAR 
      ADA ASCI5     CONVERT TO ASCII
      STA EMD6      PLACE IN MSG
      LDA CBWD3     GET WORD 3 COMMAND
      AND .B5       ISOLATE STOP
      LDB ASCI1     1 STOP BIT
      SZA 
      LDB ASCI2     2 STOP BITS 
      STB EMD4      PLACE IN MSG
      LDA CBWD3     GET WORD 3 COMMAND
      RAR,RAR       POSITION
      AND MSK3      ISOLATE PARITY TYPE 
      SZA,RSS       WAS PARITY USED 
      JMP CBNOP     CONTINUE - NO PARITY USED 
      SLA,RSS       EVEN OR ODD?
      JMP CBODD     CONTINUE - ODD PARITY USED
      LDA CBM1E     EVEN PARITY USED
      LDB CBM2E     GET ASCII "EVN" 
      JMP CBEC1     CONTINUE
CBODD LDA CBM1O     GET ASCII "ODD" 
      LDB CBM2O 
      JMP CBEC1     CONTINUE
CBNOP LDA CBM1N     GET ASCII "NO"
      LDB CBM2N 
CBEC1 STA EMD5      PLACE IN MSG
      STB EMD5+1
      LDA EXDAT     GET EXPECTED DATA 
      CLE 
      LDB EMCD2     GET POINTER 
      JSB O2AS,I    CONVERT TO ASCII
      LDA DATA      GET ACTUAL DATA 
      CLE 
      LDB EMCD1     GET POINTER 
      JSB O2AS,I    CONVERT TO ASCII
      LDA DATA      GET ACTUAL DATA 
      LDB EXDAT     GET EXPECTED DATA 
      JSB ERMS,I    REPORT ERROR
      DEF EMCD      POINTER TO MSG
      JSB ALLER     CHECK - ALL ERRORS DESIRED
      LDB SW14      MASK FOR SE 14
SWJSB JSB SWRT,I    CHECK SW REG
      JMP CBEC2     CONTINUE
      LDA SUBT.     GET SUB-TEST NO (ENNN)
      AND .77 
      IOR CBHTI     GENERATE HALT INSTRUCTION 
      STA CBHLT     PLACE HALT INSTRUCTION IN PROGRAM 
      LDB 112B      IS THERE A TELEPRINTER? 
      LDA CBWD3     GET WORD 3 COMMAND FOR DISPLAY
      SZB,RSS 
CBHLT NOP           NOP REPLACED WITH HALT 1030XX 
CBEC2 ISZ NOERS     CHECK - ALL ERRORS DESIRED
      RSS 
      JMP CBURT,I   NO - RETURN 
CBUC1 ISZ BUFFA     UPDATE BUFFER POINTER 
      ISZ BUFFB     UPDATE BUFFER POINTER 
      ISZ BCNTR     UPDATE COUNTER
      JMP CBUC2     CONTINUE
      JMP CBURT,I   RETURN
      SPC 1 
CBHTI OCT 103000    HALT INSTRUCTION
SW14  OCT 40000     MASK FOR SE REG BIT 14
CBM1N ASC 1, N
CBM2N ASC 1,O 
CBM1O ASC 1, O
CBM2O ASC 1,DD
CBM1E ASC 1, E
CBM2E ASC 1,VN
ASCI5 ASC 1, 5
ASCI1 ASC 1, 1
ASCI2 ASC 1, 2
CBWD3 BSS 1         WORD 3 COMMAND
.B5   ABS B5
      SPC 1 
ALLER DEF *-*       RETURN ADDRESS
      LDB SW2       MASK FOR SWITCH 2 
      JSB SWRT,I    CHECK SWITCH REGISTER 
      CLA,RSS       CLEAR ERROR FLAG
      CCA           SET ERROR FLAG
      STA NOERS     SAVE FLAG 
      JMP ALLER,I   RETURN
      SPC 1 
NOERS BSS 1         ERROR FLAG
      SPC 2 
SPCHC DEF *-*       RETRUN ADDRESS
      LDA SPCHX     GET COMMAND 
      STA SPCP1     SAVE
      JSB CMND      PLACE IN TRANSMIT MODE
      ABS WRD4+XMIT 
SPCC1 JSB CMND      OUTPUT WORD 6 COMMAND 
SPCP1 BSS 1 
      LDA SPCP1     UPDATE COMMAND
      INA 
      STA SPCP1 
      AND LOHWD 
      SZA 
      JMP SPCC1     CONTINUE
      JSB CMND      PLACE IN RECEIVE MODE 
      ABS WRD4
      JMP SPCHC,I   RETURN
      SPC 2 
SPCHX ABS WRD6
      SKP 
      ORG ZCEND 
IOID  EQU * 
      DEF FNIO0 
      DEF FNIO1 
      DEF CNIO1 
      DEF CNIO2 
      DEF CNIO3 
      DEF CNIO4 
      DEF OTIO1 
      DEF FNIO2 
      DEF FNIO5 
      DEF STIO1 
      DEF FNIO6 
      DEF IOIN6 
      DEF CW1 
      DEF CLK00 
      DEF CLK01 
      DEC -1
TSTD  EQU * 
      DEF TST00 
      DEF TST01 
      DEF TST02 
      DEF TST03 
      DEF TST04 
      DEF TST05 
      DEF TST06 
      DEF TST07 
      DEF TST10 
      DEF TST11 
      DEF TST12 
      DEF TST13 
      DEC -1
      SKP 
TST01 EQU * 
MRTST DEF *-*       RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO. 
      OCT 30        SUB-TEST NO.
      JSB CLF       CLEAR INTERFACE FLAG
      CLC IOCLR     I/O MASTER RESET
      JSB SFS       CHECK INTERFACE FLAG FF 
      RSS 
      JMP MRC01     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM030     ERROR MESSAGE POINTER 
MRC01 JSB SHUTA     CHECK SUB-TEST HALT,LOOP
      JSB CLF       CLEAR INTERFACE FLAG
      JSB STC       SET INTERFACE CONTROL FF
      JSB TRJSB,I   FILL INTERRUPT TRAP CELL
      DEF MRIR1     WHERE TO GO IF INTERRUPT
      STF INTP      ENABLE INTERRUPT SYTTEM 
      CLC IOCLR     I/O MASTER RESET
      NOP           ALLOW TIME FOR INTERRUPT
      NOP           INTERRUPT SHOULD NOT OCCUR
      CLF INTP      TURN OFF THE INTERRUPT SYSEM
      JMP MRC02     CONTINUE
MRIR1 DEF *-*       RETURN ADDRESS
      CLF INTP      TURN OFF INTERRUPT SYSTEM 
      JSB ERMS,I    REPORT ERROR
      DEF EM031     POINTER TO MESSAGE
MRC02 JSB SHUTA     CHECK SUB-TEST HALT,LOOP
      JSB CLF       CLEAR INTERFACE FLAG FF 
      JSB STC       SET CONTROL FF
      JSB MRST      GIVE INTERFACE A MASTER RESET COMMAND 
      JSB SFS       CHECK INTERFACE FLAG FF 
      RSS 
      JMP MRC03     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM032     POINTER TO MESSAGE
MRC03 JSB SUBTH     CHECK SUB-TEST HALT 
      JSB CLF       CLEAR INTERFACE FLAG FF 
      JSB STC       SET INTERFACE CONTROL FF
      JSB TRJSB,I   FILL INTERRUPT TRAP CELL
      DEF MRIR2     WHERE TO GO IF INTERRUPT
      STF INTP      TURN ON INTERRUPT SYSTEM
      NOP           ALLOW TIME FOR AN INTERRUPT TO TAKE 
      NOP           PLACE 
      JSB SUBTH     UPDATE SUB-TEST NO. 
      JSB TRJSB,I   FILL INTERRUPT TRAP CELL
      DEF MRIR3     WHERE TO GO IF INTERRUPTED
      JSB MRST      GIVE INTERFACE A MASTER RESET COMMAND 
      NOP           GIVE THE INTERFACE TIME TO INTERRUPT
      NOP           THERE SHOULD BE NO INTERRUPT
      CLF INTP      TURN OFF THE INTERRUPT SYSTEM 
MRC04 JSB SUBTT     CHECK SUB-TEST HALT,LOOP
      JMP MRTST,I   RETURN
      SPC 2 
MRIR2 DEF *-*       RETURN ADDRESS
      CLF INTP      TURN OFF THE INTERRUPT SYSTEM 
      JSB ERMS,I    REPORT ERROR
      DEF EM033     POINTER TO MESSAGE
      JMP MRC04     CONTINUE
MRIR3 DEF *-*       RETURN ADDRESS
      CLF INTP      TURN INTERRUPT SYSTEM OFF 
      JSB ERMS,I    REPORT ERROR
      DEF EM034     POINTER TO MESSAGE
      JMP MRC04     CONTINUE
      SKP 
TST02 EQU * 
MSTST DEF *-*       RETURN ADDREEES 
      JSB STSUB     SAVE SUB-TEST NO
      OCT 35
      JSB MRST      MASTER RESET
      JSB MSS1      TEST SBA,SBB
      ABS WRD4+SCA
      ABS SCF+CF    EXPECTED STATUS 
      DEF EM035 
      JSB SHUTA     UPDATE SUB-TEST NO. 
      JSB MSS1      TEST CD, CC, CE 
      ABS WRD4+CA 
      ABS CC+CE 
      DEF EM036 
      JSB SHUTA     UPDATE SUB-TEST NO. 
      JSB MSS1      TEST CA, CB, CF 
      ABS WRD4+CD 
      ABS CB
      DEF EM037 
      JSB SHUTA     UPDATE SUB-TEST NO. 
      JSB CMNDD     INITIALIZE INTERFACE
      ABS WRD4+CD+CA
      JSB RSTUS     READ STATUS (CLC CH)
      AND MSTT1     MASK
      CPA MSTT1     CHECK STATUS
      JMP MSC01     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM040 
MSC01 JSB SUBTH     UPDATE SUB-TEST NO. 
      JSB RDDTA     READ DATA - SET CONTROL FF
      AND MSTT1     MASK
      CPA MSTT1     CHECK NOT EQUAL 
      RSS           STATUS
      JMP MSC02     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM041 
              