SCCHR BSS 1 
SCMYY ABS VALDA+VALDA+1000B 
SCSSX BSS 1 
      SKP 1 
TST07 EQU * 
UTTST DEF *-*       RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 113 
      JSB MRST      MASTER RESET
      JSB RSTUS     READ STATUS 
      AND UTMBA     MASK FOR BA 
      SZA           CHECK 
      JMP UTC01     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM113 
UTC01 JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CMND      GO TO XMIT MODE 
      ABS WRD4+XMIT 
      JSB CMND      OUTPUT DATA 
      ABS WRD0+1
      JSB CMND
      ABS WRD0+2
      JSB CMND
      ABS WRD0+3
      JSB CMND
      ABS WRD3
      LDA MD8 
      STA UTCNT     INITIALIZE COUNT
UTC03 JSB CLK16     SUPPLY 16 CLOCKS
      ISZ UTCNT 
      JMP UTC03     CONTINUE - CLOCKS FOR ONE CHARACTER 
      JSB CDATA     CHECK CHARACTER CNTR
      ABS 1000B 
      DEF EM114 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CMND      GO INTO XMIT MODE 
      ABS WRD4+XMIT 
      JSB CMND      OUTPUT DATA 
      ABS WRD0+4
      JSB CLK16     SUPPLY CLOCKS 
      JSB RSTUS     READ STATUS 
      AND UTMBA     MASK FOR BA 
      SZA,RSS       CHECK FOR START BIT 
      JMP UTC02     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM115 
UTC02 JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CMND      SELECT TRANSMIT 
      ABS WRD4+XMIT 
      JSB CMND      OUTPUT DATA 
      ABS WRD0
      LDA MD16      INITIALIZE COUNTER
      STA UTCNT 
UTC08 JSB CLK16     SUPPLY CLOCKS 
      ISZ UTCNT     UPDATE COUNTER
      JMP UTC08     CONTINUE - SUPPLY CLOCKS
      CLA 
      STA UACSZ     INITIALIZE CHARACTER SIZE 
      STA UAPTY     INITIALIZE PARITY 
      STA UASTP     INITIALIZE STOP BITS/CHAR 
UTC04 LDA UAWD3     GET WORD 3 COMMAND
      IOR UACSZ 
      IOR UAPTY 
      IOR UASTP 
      STA UTP01     SAVE
      JSB UTS01     TEST XMIT DATA
UTP01 BSS 1 
      JSB UARTS     UPDATE TEST CONDITIONS
      JMP UTC05     CONTINUE
      JMP UTC04     CONTINUE
UTC05 JSB SUBTT     CHECK SUB-TEST NO 
      JMP UTTST,I   RETURN
      SPC 2 
UTCNT BSS 1 
UTMBA ABS RSPAR 
      SKP 
UTS01 DEF *-*       RETURN ADDRESS
      LDA UTS01,I   GET PARAMETERS
      STA UTSP1 
      STA UTSP2 
      STA UTSP3 
      STA UTSP4 
      ISZ UTS01     UPDATE RETURN ADDRESS 
      JSB CMND      SELECT PARITY / TYPE
UTSP1 BSS 1 
      JSB CLBFR     CLEAR INPUT BUFFER
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1         ASCENDING PATTERN 
      JSB XARI      OUTPUT THE DATA 
      JSB SDIN      SUPPLY CLOCKS AND RECEIVE SERIAL DATA 
UTSP2 BSS 1 
      JSB FIXDA 
UTSP4 BSS 1 
      JSB CBURT     CHECK DATA
UTSP3 BSS 1         WORD 3 COMMAND
      DEF EM116     POINTER TO ERROR MSG
      JMP UTS01,I   RETURN
      LST 
      SKP 
UARTS DEF *-*       RETURN ADDRESS
      LDA UACSZ     GET CHARACTER SIZE
      INA 
      AND MSK3
      SZA,RSS 
      JMP UAC05     CONTINUE
      STA UACSZ     SAVE
      JMP UAC04     CONTINUE
UAC05 STA UACSZ     SAVE
      LDA UAPTY     GET PARITY TYPE 
      RAR,RAR 
      INA 
      CPA D1
      INA 
      AND MSK3
      SZA,RSS 
      JMP UAC06     CONTINUE
      RAL,RAL 
      STA UAPTY 
      JMP UAC04     CONTINUE
UAC06 STA UAPTY     SAVE
      LDA UASTP     GET NO STOP BITS / CHAR 
      XOR UASPP 
      SZA,RSS 
      JMP UAC07     CONTINUE
      STA UASTP     SAVE
UAC04 ISZ UARTS     UPDATE RETURN ADDRESS 
UAC07 JMP UARTS,I   RETURN
      SPC 2 
UAWD3 ABS WRD3      WORD 3 COMMAND
UASTP BSS 1 
UACSZ BSS 1 
UAPTY BSS 1 
UASPP ABS STB 
      SKP 
TST10 EQU * 
URTST DEF *-*       RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 117 
      JSB MRST      MASTER RESET
      JSB CMNDD 
      ABS WRD4+CD 
      JSB CSTUS     CHECK STATUS
      ABS RSPAR+CB
      DEF EM117 
      JSB CMNDD 
URWD4 ABS WRD4
      JSB CSTUS     CHECK STATUS
      ABS RSPAR+TEST
      DEF EM117 
      JSB SHUTA     UPDATE SUB-TEST NO
      CLA           INITIALIZE TEST CONDITIONS
      STA UACSZ 
      STA UAPTY 
      STA UASTP 
URC04 JSB MRST      MASTER RESET
      JSB CMND      SELECT RECEIVE MODE 
      ABS WRD4
      LDA UAWD3     CONSTRUCT COMMAND 
      IOR UACSZ     BITS/CHAR 
      IOR UAPTY     PARITY
      IOR UASTP     STOP(S) 
      STA URP01     SAVE
      JSB URS01 
URP01 BSS 1 
      JSB UARTS     UPDATE TEST CONDITIONS
      JMP URC05     CONTINUE - LAST TEST CONDITION
      JMP URC04     CONTINUE - NEXT TEST CONDITION
URC05 JSB SHUTA     UPDATE SUB-TEST NO
      JMP URCX1,I   CONTINUE
      SPC 2 
URCX1 DEF URC10 
      SPC 1 
URS01 DEF *-*       RETURN ADDRESS
      LDA URS01,I   GET PARAMETERS
      STA URSP1 
      STA URSP2 
      STA URSP3 
      STA URSP4 
      ISZ URS01     UPDATE RETURN ADDRESS 
      LDB URWD4     GET WORD 4 COMMAND
      STB SDWD4     SAVE
      JSB CMND      SELECT MODE OF OPERATION
URSP3 BSS 1 
      JSB CLBFR     CLEAR INPUT BUFFER
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1         ASCENDING PATTERN 
      JSB FIXDA     PREPARE DATA
URSP1 BSS 1 
      JSB SDOUT     SUPPLY SERIAL DATA TO BB
URSP2 BSS 1 
      JSB RARI      INPUT DATA FROM ARI 
      JSB PTGNR     RESTORE EXPECTED PATTERN
      ABS 1 
      JSB LINBF     PREPARE BUFFERS 
      JSB CBURT     CHECK DATA
URSP4 BSS 1         WORD 3 COMMAND
      DEF EM120     POINTER TO ERROR MSG
      JSB RSTUS     READ STATUS 
      AND URPEM     MASK FOR PARITY ERROR 
      SZA,RSS 
      JMP URS01,I   RETURN
      JSB ERMS,I    REPORT ERROR
      DEF EM122 
      JMP URS01,I   RETURN
      SPC 2 
URPEM ABS PARR
      SPC 2 
URC10 JSB STSUB     SAVE SUB-TEST NO. 
      OCT 126 
      JSB MRST      MASTER RESET
      JSB CLF       CLEAR FLAG
      JSB STC       SET CONTROL 
      JSB CMND      SELECT TRANSMIT MODE
      ABS WRD4+XMIT 
      JSB CMND      INITIALIZE SPECIAL CHARACTER
      ABS WRD6+SPCHD+1
      JSB CMND      SETECT RECEIVE MODE 
      ABS WRD4
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1 
      JSB FIXDA     PREPARE DATA
URP02 ABS WRD3
      JSB CMND      SELECT FRAME PARAMETERS 
      ABS WRD3
      CCA 
      STA BCNTR     INITIALIZE COUNTER
      LDA BXMIT     BUFFER POINTER
      STA BUFFA 
      LDA URP02 
      STA SDOP1 
      LDA URCR1     GET RETURN ADDRESS
      STA SDOUT     SAVE
      JMP SDOC1     CALL OUTPUT ROUTINE 
URC07 JSB MSTUS     CHECK STATUS FOR SPCHFLG
      ABS SPCHR+RSPAR 
      ABS SPCHR+RSPAR 
      DEF EM126 
      JSB SUBTH     UPDATE SUB-TEST NO
      JSB SFS       CHECK FLAG SET
      RSS 
      JMP URC06     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM127 
URC06 JSB SUBTH     UPDATE SUB-TEST NO
      JSB CMND      RESET SPCHFLG 
      ABS WRD5+CSPEC
      JSB MSTUS 
      ABS SPCHR+RSPAR 
      ABS RSPAR 
      DEF EM130 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CLF        CLEAR FLAG FF
      JSB STC        SET CONTROL - CLEAR LOCKOUT
      JSB CMND      SELECT RECEIVE
      ABS WRD4+XMIT 
      JSB CMND      CLEAR SHCH
      ABS WRD6+0
      JSB CMND      SELECT RECEIVE MODE 
      ABS WRD4
      JSB CMND      SELECT RECEIVE
      ABS WRD4+CD 
      LDA MD38      INITIALIZE COUNTER
      STA BCNTR 
URC08 JSB CLK16     SUPPLY 16 CLICKS
      ISZ BCNTR     UPDATE COUNTER
      JMP URC08     CONTINUE
      JSB CMNDD     FINISH BREAK
      ABS WRD4
      JSB CLK16 
      JSB CSTUS     CHECK STATUS
      ABS BRK+RSPAR+TEST
      DEF EM131 
      JSB SUBTH     UPDATE SUB-TEST NO
      JSB SFS       CHECK FLAG FF 
      RSS 
      JMP URC09     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM132 
URC09 JSB SUBTH     UPDATE SUB-TEST NO
      JSB CMND      RESET BRKFLG
      ABS WRD5+CLBRK
      JSB CSTUS     CHECK STATUS
      ABS RSPAR+TEST
      DEF EM133 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CMND      SELECT RECEIVE
      ABS WRD4
      JSB CMND      SELECT ECHO 
      ABS WRD3+ECHO 
      JSB CSTUS     CHECK ECHO
      ABS RSPAR+TEST
      DEF EM134 
      JSB CMNDD     COMPLEMENT TEST DATA
      ABS WRD4+CD 
      JSB CSTUS     CHECK ECHO
      ABS CB
      DEF EM134 
      JSB SHUTA     UPDATE SUB-TEST NO
      JMP URTST,I   RETURN
      SPC 2 
URCR1 DEF URC07     POINTER 
      SKP 
TST11 EQU * 
BRTST DEF *-*       RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 135 
      JSB MRST      MASTER RESET
      CLA 
      STA BRPTR     SAVE INDEX POINTER
      LDA MD15      COUNT 
      STA BRCNT 
      LDA BRCMD     GET WORD 4 COMMAND
      STA BRP01     INITIALIZE BAUD RATE
BRC04 JSB CMND      SELECT 8 BIT 1 STOP NO PARITY 
      ABS WRD3+3
      JSB CMND      SELECT TRANSMIT 
      ABS WRD4+XMIT 
      LDB BRT2A 
      ADB BRPTR     ADD INDEX 
      LDB B,I       GET NO OF CHARACTERS
BRC01 JSB CMND      OUTPUT CHARACTER(S) 
      ABS 0 
      INB,SZB 
      JMP BRC01     CONTINUE
      JSB PTG       PLACE TO GO 
      DEF BRINT     INTERRUPT 
      DEF BRC02     DONE
      JSB CLF       CLEAR INTERFACE FLAG FF 
      JSB STC       SET INTERFACE CONTROL FF
      STF INTP      TURN INTERRUPT SYSTEM ON
      JSB CMND      START TRANSMIT AT XXXX BAUD 
BRP01 BSS 1         WRD4+XMIT+BAUD RATE 
      LDB BRT4A 
      ADB BRPTR     ADD INDEX 
      LDA B,I       GET MAXIMUM TIME
      JSB TMRR,I    CALL TIMMER 
      LDA BRPTR 
      RAL 
      ADA BRPTR 
      ADA BRT1A     ADD TABLE ADDRESS 
      LDB A,I       GET BAUD RATE 
      STB BRRS1     PLACE IN MSG
      INA 
      LDB A,I       GET BAUD RATE 
      STB BRRS2     PLACE IN MSG
      INA 
      LDB A,I       GET BAUD RATE 
      STB BRRS3     PLACE IN MSG
      LDA BRP01     GET BAUD RATE 
      CLF INTP      TRUN INTERRUPT SYSTEM OFF 
      JSB ERMS,I    REPORT ERROR
      DEF EM135     POINTER TO MSG
      JSB MRST      MASTER RESET
      JMP BRC03     CONTINUE
BRC02 LDB BRT3A 
      ADB BRPTR     ADD INDEX 
      LDB B,I       GET MINIMUM TIME
      ADA B 
      SSA,RSS 
      JMP BRC03     CONTINUE
      LDA BRPTR 
      RAL 
      ADA BRPTR 
      ADA BRT1A     ADD TABLE ADDRESS 
      LDB A,I       GET BAUD RATE 
      STB BRRF1     PLACE IN MSG
      INA 
      LDB A,I       GET BAUD RATE 
      STB BRRF2     PLACE IN MSG
      INA 
      LDB A,I       GET BAUD RATE 
      STB BRRF3     PLACE IN MSG
      LDA BRP01     GET BAUD RATE 
      CLF INTP      TURN INTERRUPT SYSTEM OFF 
      JSB ERMS,I    REPORT ERROR
      DEF EM136     MESSAGE POINTER 
BRC03 JSB SUBT      CHECK SUB-TEST HALT 
      JMP BRC04     LOOP IN THIS BAUD RATE
      ISZ BRPTR     UPDATE POINTER
      ISZ BRP01     UPDATE TO NEXT BAUD RATE
      ISZ BRCNT     UPDATE COUNT
      JMP BRC04     CONTINUE - TRY NEXT RATE
      CLF INTP      TURN INTERRUPT SYSTEM OFF 
      JSB SHUTA     UPDATE SUB-TEST NO
      JMP BRTST,I   RETURN
      SPC 1 
BRINT DEF *-*       RETURN ADDRESS
      CLF INTP      TURN INTERRUPTS OFF 
      STA BRTME     SAVE TIME 
      JSB MRST      MASTER RESET
      LDA BRTME     GET TIME
      JMP IRTN,I    RETURN - DONE 
      SPC 1 
BRTME BSS 1 
BRCMD ABS WRD4+XMIT+1     SELECT 50 BAUD
BRPTR BSS 1 
BRCNT BSS 1 
BRT1A DEF BRT01 
BRT2A DEF BRT02 
BRT3A DEF BRT03 
BRT4A DEF BRT04 
EM135 ASC 11,E135 BAUD RATE SLOW (
BRRS1 ASC 1,
BRRS2 ASC 1,
BRRS3 ASC 1,
      ASC 1,)/
EM136 ASC 11,E136 BAUD RATE FAST (
BRRF1 ASC 1,
BRRF2 ASC 1,
BRRF3 ASC 1,
      ASC 1,)/
BRT01 EQU * 
      ASC 3,  50
      ASC 3,  75
      ASC 3, 110
      ASC 3,134.5 
      ASC 3, 150
      ASC 3, 300
      ASC 3, 600
      ASC 3, 900
      ASC 3,1200
      ASC 3,1800
      ASC 3,2400
      ASC 3,2400
      ASC 3,3600
      ASC 3,4800
      ASC 3,9600
      SPC 1 
BRT02 EQU * 
      DEC -1
      DEC -1
      DEC -1
      DEC -1
      DEC -1
      DEC -1
      DEC -2
      DEC -3
      DEC -4
      DEC -6
      DEC -8
      DEC -12 
      DEC -16 
      DEC -24 
      DEC -32 
      SPC 1 
BRT03 EQU * 
      ABS 209-193 
      ABS 140-129 
      ABS 95-87 
      ABS 79-72 
      ABS 70-64 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      ABS 35-32 
      SPC 1 
BRT04 EQU * 
      DEC 209 
      DEC 140 
      DEC 95
      DEC 79
      DEC 70
      DEC 35
      DEC 35
      DEC 35
      DEC 35
      DEC 35
      DEC 35
      DEC 35
      DEC 35
      DEC 35
      DEC 35
      SPC 1 
      SKP 
TST12 EQU * 
OVPET DEF *-*       RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 137 
      JSB MRST      MASTER RESET
      JSB SPCHC     CLEAR SPECIAL CHAR RAM
      LDA OVWD4     GET WORD 4 COMMAND
      STA SDWD4     SAVE
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1 
      JSB FIXDA     PREPARE DATA
      ABS WRD3+3
      JSB CMND      SELECT 8 BIT CODE 
      ABS WRD3+3
      JSB CMND      SELECT RECEIVE MODE 
OVWD4 ABS WRD4
      JSB CMND      CLEAR FLAGS 
      ABS WRD5+CBF+CBEF+CLBRK+CBH+CSPEC+CLPE
      JSB CLF       CLEAR INTERFACE FLAG FF 
      JSB STC       SET CONTROL - CLEAR LOCKOUT 
      JSB SDOUT     OUTPUT SERIAL DATA TO INTERFACE 
      ABS WRD3+3
      JSB PTGNR 
      ABS 1 
      JSB FIXDA 
      ABS WRD3+3
      JSB CMND      CLEAR FLAGS 
      ABS WRD5+CBF+CBH
      JSB CLF       CLEAR FLAG FF 
      JSB STC       SET CONTROL FF
      JSB SDOUT 
      ABS WRD3+3
      JSB CSTUS     CHECK STATUS
      ABS PARR+RSPAR+TEST 
      DEF EM137 
      JSB SUBTH     UPDATE SUB-TEST NO
      JSB SFS       CHECK FLAG FF 
      RSS 
      JMP OVPC1     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM140 
OVPC1 JSB SUBTH     UPDATE SUB-TEST NO
      JSB CMND      RESET OVERFLOW - PE FLAG
      ABS WRD5+CLPE 
      JSB CSTUS     CHECK STATUS
      ABS RSPAR+TEST
      DEF EM141 
      JSB SHUTA     UPDATE SUB-TEST NO
      LDA WRD3P     WORD 3 COMMAND ENABLE PARITY
      STA PEP01     SAVE
PEC01 JSB MRST      MASTER RESET
      JSB PES01     PERFORM TEST
PEP01 BSS 1         WORD 3 COMMAND
      LDA PEP01     UPDATE COMMAND
      INA 
      CPA PEM02     SKIP EXHO 
      ADA PEM03 
      STA PEP01     SAVE
      CPA PEM04     CHECK FOR DONE
      RSS 
      JMP PEC01     CONTINUE - NEXT COMMAND 
      JSB SUBUP     UPDATE SUB-TEST NO
      JSB SHUTA 
      JMP OVPET,I   RETURN
      SPC 2 
PES01 DEF *-*       RETURN ADDRESS
      LDA PES01,I   GET PARAMETER - WRD 3 CMND
      STA PESP1 
      STA PESP2 
      XOR PESXS     TOGGLE PARITY SENSE 
      STA PESP3 
      JSB CMND      SELECT FRAME PARAMETERS 
PESP1 BSS 1         WORD 3 COMMAND
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1 
      JSB FIXDA     PREPARE DATA
PESP3 BSS 1 
      JSB CMND      SELECT RECEIVE MODE 
      ABS WRD4
      JSB SDOUT     PROVIDE SERIAL DATA FOR INTERFACE 
PESP2 BSS 1 
      JSB RSTUS     RESD STATUS 
      AND PEBIT     MASK
      SZA 
      JMP PESC1     CONTINUE
      LDA PESP1     GET WORD 3 COMMAND
      LDB PEMS1 
      CLE 
      JSB O2AS,I    CONVERT TO ASCII
      LDA PESP1 
      JSB ERMS,I    REPORT ERROR
      DEF EM142 
PESC1 JSB CMND      CLEAR PARITY ERROR
      ABS WRD5+CLPE 
      JSB RSTUS     READ STATUS 
      AND PEBIT     MASK
      SZA,RSS 
      JMP PESC2     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM143 
PESC2 JSB MRST      MASTER RESET
      ISZ PES01     UPDATE RETURN ADDRESS 
      JMP PES01,I   RETURN
      SPC 2 
PESXS ABS PASNS 
PEBIT ABS PARR
PEM01 ABS STB+PAR+PASNS+3B
PEM02 ABS WRD3+ECHO 
PEM03 ABS ECHO+PAR
PEM04 ABS WRD3+ECHO+STB 
WRD3P ABS WRD3+PAR
      SPC 2 
PEMS1 DEF PEMS2 
      SKP 
      ORG 10000B
TST13 EQU * 
DMATS DEF *-*       RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 144 
      JSB MRST      MASTER RESET
      JSB CLF       CLEAR FLAG FF 
      JSB STC       SET CONTROL / CLEAR LOCK
      JSB CMND      SELECT TRANSMIT MODE
      ABS WRD4+XMIT+DMA 
      LDA MD64      INITIALIZE COUNTER
      STA DMCNT 
DMC01 JSB CMND      OUTPUT DATA 
      ABS WRD0+1
      ISZ DMCNT     UPDATE COUNTER
      JMP DMC01     CONTINUE AND OUTPUT 
      JSB SFS       CHECK FLAG FF 
      JMP DMC02     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM144 
DMC02 LDA MD64      INITIALIZE COUNTER
      STA DMCNT 
DMC03 JSB CMND      FILL THE FIFO FULL
      ABS WRD0+2
      ISZ DMCNT     UPDATE COUNTER
      JMP DMC03     CONTINUE TO FILL FIFO 
      JSB SFS       CHECK FLAG FF (BFFLG) 
      JMP DMC04     CONTINUE
      JSB ERMS,I    REPROT ERROR
      DEF EM144 
DMC04 JSB CMND      SELECT RECEIVE MODE 
      ABS WRD4+DMA
      LDA MD128     INITIALIZE COUNTER
      STA DMCNT 
DMC06 JSB RDDTA     READ DATA 
      ISZ DMCNT     UPDATE COUNTER
      JMP DMC06     CONTINUE - EMPTY FIFO 
      JSB SFS       CHECK FLAG FF (BEF) 
      JMP DMC05     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM144 
DMC05 JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CLF       CLEAR FLAG AND SRQ
      JSB STC       SET CONTROL - CLEAR LOCKOUT 
      JSB CMND      SELECT TRANSMIT AND DMA 
      ABS WRD4+XMIT+DMA 
      JSB CMND      GENERATE AN INTERRUPT CONDITION 
      ABS WRD1+CFE
      JSB CMND
      ABS WRD2+CFR
      JSB SFS       CHECK FLAG FF 
      JMP DMC07     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM145 
DMC07 JSB SUBTH     UPDATE SUB-TEST NO
      JSB CLF       CLEAR FLAG - CLEAR SQR
      JSB SFS       CKECK FLAG FF - NOW SET 
      RSS 
      JMP DMC08     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM146 
DMC08 JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      SET LOCKOUT 
      JSB CLF       CLEAR FLAG
      JSB CMND      ATTEMPT TO SET SRQ
      ABS WRD4+XMIT+DMA 
      JSB CMND
      ABS WRD4+XMIT 
      JSB CMND
      ABS WRD1+CFE
      JSB CMND
      ABS WRD2+CFR
      JSB STC       SET CONTROL - RESET LOCKOUT 
      JSB SFS       CHECK NOT SRQ = 1 
      RSS 
      JMP DMC09     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM147 
DMC09 JSB SHUTA     UPDATE SUB-TEST NO
      LDA CPTO      GET COMPUTER TYPE AND OPTIONS 
      AND XDMA      ISOLATE DMA BIT 
      SZA           CHECK DMA PRESENT 
      JMP DMC10     CONTINUE
      JSB MSGC,I    OUTPUT MESSAGE NO DMA 
      DEF HM150 
      JMP DMATS,I   RETURN - NO DMA 
DMC10 JSB SHUTA     UPDATE SUB-TEST NO. 
      JSB MRST      MASTER RESET
      JSB CLF       CLEAR FLAG FF 
      JSB STC       SET CONTROL - CLEAR LOCKOUT 
      JSB SPCHC     CLEAR SPCH CHAR RAM 
      JSB CLBFR     CLEAR INPUT BUFFER
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1 
      JSB CMND      SELECT FRAME PARAMETERS 
      ABS WRD3+3
      JSB CMND      SELECT TRANSMIT MODE
      ABS WRD4+XMIT+DMA 
      JSB DMAON     TRUN DMA ON 
      DEF XBUF      POINTER TO DATA BUFFER
      LDA D4        WAIT 4 MS.
      JSB TMRR,I
      JSB SDIN      ACCEPT SERIAL DATA
      ABS WRD3+3
      JSB DMAOF     TURN DMA OFF
      JSB FIXDA     PREPARE DATA
      ABS WRD3+3
      JSB CBUFS     CHECK DATA
      DEF EM151 
      JSB SUBTH     UPDATE SUB-TEST NO
      JSB MSTUS     CHECK STATUS
      ABS BEF+BRK+PARR+RSPAR+TEST 
      ABS RSPAR+TEST+BEF
      DEF EM152 
      NOP 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CLF       CLEAR INTERFACE FLAG FF 
      JSB STC       SET INTERFACE CONTROL FF
      LDA DMWD4     GET WORD 4 COMMAND WITH DCPC
      STA SDWD4     SAVE
      JSB SPCHC     CLEAR SPEC CHAR RAM 
      JSB CLBFR     CLEAR INPUT BUFFER
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1         ASCENDING DATA
      JSB FIXDA     PREPARE DATA
      ABS WRD3+3
      JSB CMND      SELECT FRAME PARAMETERS 
      ABS WRD3+3
      JSB CMND      SELECT RECEIVE AND DMA
      ABS WRD4+DMA
      JSB DMAON     TURN DMA ON 
      DEF RBUF,I    BUFFER POINTER AND INPUT
      JSB SDOUT     SUPPLY SERIAL DATA TO BB
      ABS WRD3+3
      JSB DMAOF     TURN DMA OFF
      JSB PTGNR     REGENERATE EXPECTED DATA PATTERN
      ABS 1 
      JSB LINBF     PREPARE DATA
      JSB CBUFS     CHECK DATA
      DEF EM153     ERROR MSG POINTER 
      LDA DMSTN     GET SUB-TEST NO 
      STA SUBT.     SAVE
      JSB CSTUS     CHECK STATUS
      ABS RSPAR+TEST+BEF
      DEF EM152 
      JSB SHUTA 
      JMP DMATS,I   RETURN
      SPC 2 
DMCNT BSS 1 
XDMA  OCT 4 
DMWD4 ABS WRD4+DMA
DMSTN OCT 152 
      SKP 
      SPC 2 
XBUF  BSS 128       TRANSMIT BUFFER 
RBUF  BSS 128       RECEIVE BUFFER
FWAA  EQU * 
      END 
                                                                                                                                      