MSC02 JSB SHUTA     UPDATE SUB-TEST NO. 
      JSB CMNDD 
      ABS WRD4+CD+CA+SCA
      JSB MRST      MASTER RESET
      JSB ESTUS 
      ABS NULL
      DEF EM042 
      JSB SUBTT 
      JMP MSTST,I   RETURN
      SPC 2 
MSTT1 ABS CC+CE+CB
      SPC 2 
MSS1  DEF *-*       RETURN ADDRESS
      LDA MSS1,I    GET PARAMETERS
      STA MSP1
      ISZ MSS1
      LDA MSS1,I
      STA MSP2
      ISZ MSS1
      LDA MSS1,I
      STA MSP3
      STA MSP4
      ISZ MSS1      UPDATE RETURN ADDRESS 
      JSB CMNDD     OUTPUT COMMAND
MSP1  BSS 1         WORD 4 COMMAND
      JSB ESTUS     CHECK STATUS
MSP2  BSS 1         EXPECTED STATUS 
MSP3  DEF *-*       ERROR MESSAGE 
      JSB CMNDD     OUTPUT COMMAND
      ABS WRD4+NULL 
      JSB ESTUS     CHECK STATUS
      ABS NULL      EXPECTED STATUS 
MSP4  DEF *-*       ERROR MESSAGE 
      JMP MSS1,I    RETURN
      SKP 
EM030 ASC 14,E030 FLAG NOT SET BY CLC 0/
EM031 ASC 16,E031 CONTROL NOT RESET BY CLC 0/ 
EM032 ASC 16,E032 FLAG NOT SET BY MR COMMAND/ 
EM034 ASC 13,E034 CONTROL NOT RESET BY  
      ASC 6, MR COMMAND/
EM033 ASC 18,E033 FLAG SET - STATUS RESET FAILED/ 
EM035 ASC 11,SBA-SCA, SBB-SCF, CF)/ 
EM036 ASC 6,CA, CC, CE)/
EM037 ASC 4,CD, CB)/
EM040 ASC 12,E040 STATUS NOT RECVD ON 
      ASC 10, INPUT AFTER CLC CH/ 
EM041 ASC 10,E041 STATUS RECVD ON 
      ASC 10, INPUT AFTER STC CH/ 
EM042 ASC 2,MR)/
EM043 ASC 6,EN SBB-SCF)/
EM044 ASC 4,EN CF)/ 
EM045 ASC 4,EN CE)/ 
EM046 ASC 4,EN CC)/ 
EM047 ASC 4,EN CB)/ 
EM050 ASC 7,REF SBB-SCF)/ 
EM051 ASC 4,REF CF)/
EM052 ASC 4,REF CE)/
EM053 ASC 4,REF CC)/
EM054 ASC 4,REF CB)/
EM055 ASC 4,EN MR)/ 
EM056 ASC 4,REF MR)/
EM057 ASC 17,E057 FLAG SET - LOCK INOPERATIVE/
EM060 ASC 14,E060 FLAG NOT SET - DEVINT/
EM110 ASC 4,CA INH)/
EM111 ASC 3,SPCH)/
EM112 ASC 3,SPCH)/
EM113 ASC 11,E113 BA = 0 AFTER MR/
EM114 ASC 10,UART CHAR CTR DOWN)/ 
EM115 ASC 14,E115 BA = 1 (NO START BIT)/
EM116 ASC 11,UART XMIT
      OCT 6412
      ASC 2,
EM117 ASC 5,TEST, BB)/
EM120 ASC 11,UART RCVE
      OCT 6412
      ASC 2,
EM122 ASC 9,E122 PARITY ERROR/
EM126 ASC 5,SPCHFLG)/ 
EM127 ASC 15,E127 FLAG NOT SET BY SPCHFLG/
EM130 ASC 8,SPCHFLG RESET)/ 
EM131 ASC 6,BREAK FLAG)/
EM132 ASC 14,E132 FLAG NOT SET BY BREAK/
EM133 ASC 7,BREAK RESET)/ 
EM134 ASC 3,ECHO)/
EM137 ASC 5,OVER-RUN)/
EM140 ASC 15,E140 FLAG NOT SET BY OVPEFLG/
EM141 ASC 8,OVPEFLG RESET)/ 
EM142 ASC 11,E142 NO PARITY ERROR ( 
PEMS2 ASC 4,XXXXXX)/
EM143 ASC 18,E143 OVPEFLG NOT RESET (WORD5&CLPE)/ 
EM144 ASC 20,E144 FLAG SET BY BUFFER FLAGS (DCPC=1)/
EM145 ASC 17,E145 FLAG SET BY DEVINT WITH SRQ/
EM146 ASC 19,E146 FLAG NOT SET AFTER CLF CH (SRQ)/
EM147 ASC 14,E147 SRQ SET WHILE LOCK = 1/ 
HM150 ASC 20,H150 DCPC DATA TRANSFER OMITTED-NO DCPC/ 
EM151 ASC 8,DCPC TRANSMIT)/ 
EM152 ASC 14,STATUS ERROR IN DCPC TEST)/
EM153 ASC 7,DCPC RECEIVE)/
EM154 ASC 15,E154 DCPC ABNORMAL COMPLETION/ 
HDMS  ASC 16,BUFFERED ASYNC COMM INTFC DIAG/
      SKP 
TST03 EQU * 
RMTST DEF *-*       RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 43
      JSB MRST      MASTER RESET INTERFACE
      JSB CMNDD     INITIALIZE INTERFACE
      ABS WRD4+CD+CA+SCA
      LDA MD5       COUNT 
      STA RMCNT 
      LDA RMCM1     INITIAL COMMAND 
      STA RMP02     SAVE
      LDA AEM43     GET ERROR POINTER 
      STA RMEPT 
RMC01 LDA RMEPT,I   GET POINTER TO ERROR MSG
      STA RMP03     SAVE
      STA RMP04 
      JSB CMND      GIVE COMMAND
RMP02 BSS 1         COMMAND (ENABLE)
      JSB CSTUS     CHECK STATUS
      ABS DEVI+DEVI+CC+CB+CE+CF+SCF+RSPAR 
RMP03 DEF *-*       POINTER TO ERROR MSG
      JSB CMND      GIVE COMMAND (RESET ENABLE) 
      ABS WRD1+NULL 
      JSB CSTUS     CHECK STATUS
      ABS CC+CB+CE+CF+SCF+RSPAR 
RMP04 DEF *-*       POINTER TO ERROR MSG
      ISZ RMCNT     UPDATE COUNT
      RSS 
      JMP RMC02     CONTINUE
      ISZ RMEPT 
      LDA RMP02     GET LAST COMMAND
      SLA 
      AND MSK37     MASK
      IOR WRDD1 
      STA RMP02     SAVE NEW COMMAND
      JSB SUBUP     UPDATE SUB-TEST NO
      JMP RMC01     CONTINUE
      SPC 2 
RMC02 JSB SHUTA 
      JSB MRST      MASTER RESET
      JSB RMS01     TEST REFERANCE COMMAND
      ABS WRD1+SCFE 
      ABS WRD2+SCFR 
      DEF EM050 
      JSB SHUTA 
      JSB RMS01     TEST REFERANCE COMMAND
      ABS WRD1+CFE
      ABS WRD2+CFR
      DEF EM051 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB RMS01     TEST REFERANCE COMMAND
      ABS WRD1+CEE
      ABS WRD2+CER
      DEF EM052 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB RMS01     TEST REFERANCE COMMAND
      ABS WRD1+CCE
      ABS WRD2+CCR
      DEF EM053 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB RMS01     TEST REFERANCE COMMAND
      ABS WRD1+CBE
      ABS WRD2+CBR
      DEF EM054 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB CMND      ENABLE TO ONES
      ABS WRD1+CCE+CBE+CFE+SCFE+CEE 
      JSB MRST      MASTER RESET
      JSB CMNDD     CREATE CONDITIONS THAT
      ABS WRD4+CA+CD+SCA
      JSB CMND      WOULD OTHERWISE PRODUCE AN INTERRUPT
      ABS WRD2+NULL 
      JSB ESTUS     CHECK STATUS
      ABS CC+CF+SCF+CB+CE 
      DEF EM055 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB CMND      SET REF TO ONES 
      ABS WRD2+CCR+CER+CFR+SCFR+CBR 
      JSB MRST      MASTER RESET
      JSB CMND      ENABLE
      ABS WRD1+CCE+CEE+CFE+SCFE+CBE 
      JSB CMNDD 
      ABS WRD4
      JSB ESTUS     CHECK STATUS
      ABS NULL
      DEF EM056 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB MRST      MASTER RESET
      JSB CLF       CLEAR FLAG FF 
      JSB CMND      GENERATE DEVICE INTERRUPT 
      ABS WRD1+CCE+CEE+CBE
      JSB CMND
      ABS WRD2+CCR+CER+CBR
      JSB SFS 
      JMP RMC03     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM057 
RMC03 JSB SUBUP     UPDATE SUB-TEST NO
      JSB STC        SET CONTROL AND CLEAR LOCK 
      JSB SFS 
      RSS 
      JMP RMC04     CONTINUE
      JSB ERMS,I    REPORT ERROR
      DEF EM060 
RMC04 JMP RMTST,I   RETURN
      SPC 2 
RMS01 DEF *-*       RETURN ADDRESS
      LDA RMS01,I   GET ARM COMMAND 
      STA RMP05     SAVE
      ISZ RMS01 
      LDA RMS01,I   GET REFERANCE COMMAND 
      STA RMP06     SAVE
      ISZ RMS01 
      LDA RMS01,I   GET ERROR POINTER 
      STA RMP07     SAVE
      STA RMP08 
      STA RMP09 
      STA RMP10 
      ISZ RMS01     UPDATE RETURN ADDRESS 
      JSB CMND      OUTPUT ARM COMMAND
RMP05 BSS 1 
      JSB CMNDD     OUTPUT CONTROL COMMAND
      ABS WRD4+NULL 
      JSB CMND      OUTPUT REFERANCE COMMAND
RMP06 BSS 1 
      JSB ESTUS     CHECK STATUS
      ABS DEVI+DEVI 
RMP07 DEF *-*       ERROR POINTER 
      JSB CMNDD     OUTPUT CONTROL COMMAND
      ABS WRD4+CD+CA+SCA
      JSB ESTUS     CHECK STATUS
      ABS CC+CB+CE+CF+SCF 
RMP08 DEF *-*       ERROR POINTER 
      JSB CMND      OUTPUT REFERANCE COMMAND
      ABS WRD2+NULL 
      JSB ESTUS     CHECK STATUS
      ABS DEVI+DEVI+CC+CE+CF+SCF+CB 
RMP09 DEF *-*       ERROR POINTER 
      JSB CMNDD     OUTPUT CONTROL COMMAND
      ABS WRD4+NULL 
      JSB ESTUS     CHECK STATUS
      ABS NULL
RMP10 DEF *-*       ERROR POINTERS
      JMP RMS01,I   RETURN
          SPC 1 
MD5   DEC -5
RMCM1 ABS WRD1+SCFE 
WRDD1 ABS WRD1
RMEPT DEF *-*       POINTER TO ERROR MSG
RMCNT BSS 1         COUNTER 
AEM43 DEF RMETB 
RMETB DEF EM043 
      DEF EM044 
      DEF EM045 
      DEF EM046 
      DEF EM047 
      SKP 
TST04 EQU * 
FIFO  NOP           RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 61
      JSB PTGNR     GENERATE FIRST DATA PATTERN 
      ABS 0         ALL ZEROS 
      JSB XMT       TRANSMIT,RECEIVE,COMPARE DATA 
      JSB PTGNR     GENERATE 2ND DATA PATTERN 
      ABS -1        ALL ONES
      JSB XMT       TRANSMIT,RECEIVE,COMPARE DATA 
      JSB PTGNR     GENERATE 3RD DATA PATTERN 
      ABS 1         ASCENDING 
      JSB XMT       TRANSMIT,RECEIVE,COMPARE DATA 
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB CHECK     GO TO MASTER RESET ROUTINE
      JSB SHUTA     UPDATE SUB-TEST NO
      JSB PTGNR     CREATE 128 CHAR PATTERN 
      ABS 1         ASCENDING 
      JSB VALID     GO TO VALIDITY TEST 
      JSB SUBTT 
      JMP FIFO,I    RETURN
XMT   NOP           TRANSMIT,RECEIVE AND COMPARE
      JSB MRST      MASTER RESET
      CLA 
      STA NOERS     CLEAR ERROR FLAG
      JSB CMND      START TRANSMIT MODE 
      ABS WRD4+XMIT 
      JSB CMND      SEND BLANK CHAR TO
      ABS WRD0      CLEAR UART
      JSB XARI      OUTPUT WORD 0 DATA
      LDB MD128     LOAD CHAR COUNT 
      STB BCNTR 
      JSB CMND      SELECT RECEIVE MODE 
      ABS WRD4
      LDA BXMIT     LOAD STARTING ADDRESS 
      STA BUFFA     OF BUFFER 
      NOP 
RLOOP LDA BUFFA,I   GET EXPECTED DATA CHAR
      AND LOHWD     MASK
      STA RXXDA     SAVE
      JSB MDATA     GET AND CHECK REVD CHAR 
      OCT 377       MASK
RXXDA BSS 1         EXPECTED CHAR 
      DEF EM061     POINTER TO ERROR MSG
      ISZ NOERS     CHECK FOR ERRORS
      RSS 
      JMP RXXXT     BYPASS ERRORS 
      ISZ BUFFA     INC TO NEXT CHAR
      ISZ BCNTR     INC CHAR CTR AND SKIP IF =128 
      JMP RLOOP     GET NEXT CHAR 
      LDA BXMIT     RESTORE TO START
RXXXT STA BUFFA     ADDRESS OF BUFF 
      JMP XMT,I     RETURN
      SPC 2 
CHECK NOP           RETURN ADDRESS
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS -1
      JSB XARI      OUTPUT TEST DATA
      JSB MRST
      JSB PTGNR     GENERATE EXPECTED DATA PATTERN
      ABS 0 
      JSB RARI      RECEIVE THE DATA FROM FIFO
      JSB CBUFS     CHECK THE RECEIVED DATA 
      DEF EM062     POINTER TO ERROR MSG
      JMP CHECK,I   RETURN
      SPC 2 
VALID NOP           VALIDITY TEST 
      LDA VEC 
      STA RLOOP-1   INSERT JMP CND IN XMT LOOP
      JMP XMT+1     GO TO XMT LOOP
I046  JSB CMND      SEND CHAR MODE ENABLE CMND
      ABS WRD1+ENCHM
      CLA 
      STA NOERS     CLEAR ERROR FLAG
      STA RLOOP-1   RESTORE NOP IN XMT LOOP 
      LDA MD128     INITIALIZE COUNTER
      STA BCNTR 
VFLAG JSB RDDTA     READ DATA 
      STA VSAVE 
      CLA,INA       DELAY PROCESSING FOR 1MS
      JSB TMRR,I
      LDA VSAVE     RESTORE A REG TO PREVIOUS 
      SSA,RSS       CHECK BIT 15 FOR 1 (VALDA)
      JSB ERR15     ERROR,BIT15 NOT A 1 
      JSB SFS       CHECK FOR FLAG SET (CHAR ENABLE MODE) 
      JSB VERR      ERROR,FLAG NOT SET
      JSB CLF 
      JSB STC 
      ISZ NOERS     CHECK FOR ERRORS
      RSS 
      JMP VALID,I   BYPASS ERRORS - RETURN
      ISZ BCNTR     INC TO NEXT CHAR
      JMP VFLAG     GET NEXT CHAR 
      JMP VALID,I   RETURN
VERR  NOP           CHAR ENABLE MODE ERROR
      JSB ERMS,I    GO TO ERROR ROUTINE 
      DEF EM064 
      JSB ALLER     CHECK FOR ERROR REPORTS 
      JMP VERR,I
ERR15 NOP           VALIDITY ERROR ROUTINE
      JSB ERMS,I
      DEF EM063 
      JSB ALLER     CHECK FOR ERROR REPORTS 
      JMP ERR15,I 
      SPC 2 
VEC   JMP I046
VSAVE BSS 1 
EM061 ASC 3,FIFO)/
EM062 ASC 5,FIFO MR)/ 
EM063 ASC 14,E063 VALID DATA BIT NOT SET/ 
EM064 ASC 11,E064 FLAG DID NOT SET, 
      ASC 10, CHAR MODE ENABLED./ 
EM065 ASC 9,E065 INC CHAR CTR 
      ASC 12,CNT=XXXXXX EXP  YYYYYY/
EM066 ASC 8,BHFLG NOT SET)/ 
EM067 ASC 9,E067 FLAG NOT SET 
      ASC 5,BY BHFLG./
EM100 ASC 6,WORD5&CBH)/ 
EM101 ASC 8,BFFLG NOT SET)/ 
EM102 ASC 9,E102 FLAG NOT SET 
      ASC 5,BY BFFLG./
EM103 ASC 6,WORD5&CBF)/ 
EM104 ASC 8,BEFLG NOT SET)/ 
EM105 ASC 9,E105 FLAG NOT SET 
      ASC 5,BY BEFLG./
EM106 ASC 6,WORD5&CBE)/ 
EM107 ASC 10,E107 FIFO MR DID NOT 
      ASC 8, RESET CHAR CTR/
      SKP 
      ORG 6000B 
TST05 EQU *         CHAR CTR AND BUFFER FLAG TEST 
FLAGS NOP           RETURN ADDRESS
      JSB STSUB     SAVE TEST NO
      OCT 65
      JSB MRST      MASTER RESET
      CLA 
      STA NOERS     CLEAR ERROR FLAG
      JSB PTGNR     GENERATE 128 CHAR DATA PATTERN
      ABS 1 
      JSB CMND      SEND XMIT COMMAND 
      ABS WRD4+XMIT 
      LDB MD128     SET UP 128 COUNTER FOR CHAR 
      STB BCNTR     COUNT 
      LDA BXMIT     GET BUFFER START ADDRESS
      STA BUFFA     FOR XMIT
      CLB 
FLOOP LDA BUFFA,I   LOAD NEXT CHAR TO 
      STA F5DA
      JSB CMND      FIFO
F5DA  BSS 1 
      INB           INC COUNT 
      ISZ BUFFA     UPDATE BUFFER ADDRESS 
      JSB RDDTA     GET CHAR COUNT
      AND CCMSK     MASK COUNT AND
      ALF,ALF       POSITION
      CPA B         CHECK FOR VALID COUNT 
      RSS           COUNT IS EQUAL
      JSB CTNER     ERROR,COUNT NOT SAME
      ISZ BCNTR     INC CHAR CTR AND
      CPB .77       TEST FOR FULL CTN 
      RSS           FULL COUNT
      JMP FLOOP     COUNT NOT FULL,LOOP 
      JSB SUBTH     UPDATE SUB-TEST NUMBER
      CLA 
      STA NOERS     CLEAR ERROR FLAG
F503  LDA BUFFA,I   LOAD AND SEND NEXT
      STA F5DA3 
      JSB CMND      CHAR TO INTERFACE 
F5DA3 BSS 1 
      LDB BCNTR     UPDATE CHAR CTR.
      INB,SZB,RSS   CHECK FOR BUFF FULL 
      JMP FULL      BUFFER IS FULL
      STB BCNTR 
      ISZ BUFFA     INC TO NEXT BUF CHAR
      CPB HFULL     CHECK FOR BUFF HALF FULL
      RSS           BUFFER IS HALF FULL 
      JMP F503      LOOP
      JSB MSTUS     CHECK FOR BUFFER
      ABS BFHF+BFF+BEF   HALF FULL FLAG 
      ABS BFHF      SET 
      DEF EM066     POINTER TO ERROR MSG
      JSB SUBTH     UPDATE SUB-TEST NUMBER
      JSB SFS       CHECK FOR FLAG SET
      JSB FERR      FLAG NOT SET,GO TO ERR RTN
      JSB SUBTH     UPDATE SUB-TEST NUMBER
      JSB CMND      RESET BUFFER HALF FULL
      ABS WRD5+77B  WITH WORD 5 COMMAND 
      JSB MSTUS     GET AND CHECK STATUS
      ABS BFHF+BFF+BEF   FOR BUFFER HALF FULL 
      ABS NULL      RESET 
      DEF EM100     POINTER TO ERROR MSG
      JSB CLF 
      JSB STC       CLEAR FLAG,REARM FOR NEXT CK
      JSB SUBTH     UPDATE SUB-TEST NUMBER
      JMP F503      RETURN TO NORMAL LOOP 
FERR  DEF *-*       FLAG NOT SET,BUF HALF FULL
      JSB ERMS,I    GO TO ERROR MSG ROUTINE 
      DEF EM067 
      JMP FERR,I    RETURN
FCTR  BSS 1 
FCTR1 BSS 1 
      SPC 2 
CTNER NOP           COUNT ERROR ROUTINE 
      STA FCTR1     SAVE ACTUAL COUNT 
      STB FCTR      STORE CONTENTS OF REG 
      LDB ME65A     LOAD ADDRESS
      CLE 
      JSB O2AS,I    GO TO ASCII CONVERT RTN 
      LDA FCTR      LOAD EXPECT COUNT 
      LDB ME65B     LOAD MSG ADDRESS
      CLE 
      JSB O2AS,I    GO TO ASCII CONVERT RTN 
      LDA NOERS     GET ERROR FLAG
      INA,SZA 
      JMP CTNC1     NO MORE ERRORS TO REPORT
      LDB FCTR      GET EXPECT COUNT
      LDA FCTR1     GET ACTUAL COUNT
      JSB ERMS,I    GO TO ERROR MSG ROUTINE 
      DEF EM065 
      JSB ALLER     WANT ANY MORE ERRORS REPORTED 
CTNC1 LDB FCTR
      JMP CTNER,I   RETURN
      SPC 1 
ME65A DEF EM065+11
ME65B DEF EM065+17
      SPC 2 
FULL  JSB MSTUS     GET AND CHECK STATUS
      ABS BFHF+BFF+BEF   FOR BUFFER FULL FLAG 
      ABS BFF       SET 
      DEF EM101     POINTER TO ERROR MSG
      JSB SUBTH     UPDATE SUB-TEST NUMBER
      JSB SFS       CHECK IF FLAG SET 
      JSB FERR2     FLAG NOT SET,GO TO ERR RTN
      JSB SUBTH     UPDATE SUB-TEST NUMBER
      JSB CMND      SEND COMMAND 5
      ABS WRD5+77B  CLEAR BUFF FULL 
      JSB MSTUS     GET AND CHECK STATUS
      ABS BFHF+BFF+BEF
      ABS NULL      RESET 
      DEF EM103     POINTER TO ERROR MSG
      JSB SUBTH     UPDATE SUB-TEST NO. 
      JSB CMND
      ABS WRD4
      LDB MD128     SET COUNTER TO
      STB BCNTR     128 
F5R   JSB RDDTA     GO TO RECEIVE ROUTINE 
      ISZ BCNTR     ROUTINE 
      JMP F5R       LOOP FOR 128 CHARS
      JSB CMND
      ABS WRD4+XMIT 
      LDA MD16
      STA BCNTR 
F5RR  JSB CLK16 
      ISZ BCNTR 
      JMP F5RR
      JSB MSTUS     GET AND CHECK STATUS
      ABS BFHF+BFF+BEF   FOR BUFFER EMPTY FLAG
      ABS BEF       SET 
      DEF EM104     POINTER TO ERROR MSG
      JSB SUBTH     UPDATE SUB-TEST NUMBER
      JSB SFS       CHECK IF FLAG SET 
      JSB FERR4     FLAG NOT SET,GO TO ERR RTN
      JSB SHUTA     UPDATE SUBTEST NUMBER 
      JSB CMND      SEND COMMAND 5,TO CLEAR 
      ABS WRD5+77B  STATUS
      JSB MSTUS     GET AND CHECK STATUS
      ABS BFHF+BFF+BEF   FOR BUFFER EMPTY FLAG
      ABS NULL      RESET 
      DEF EM106     POINTER TO ERROR MSG
      JSB SHUTA     UPDATE SUB-TEST NO. 
      JSB MRST      MASTER RESET
      JSB XARI      FILL THE FIFO BUFFER
      JSB MRST      MASTER RESET
      JSB RDDTA     GET DATA WORD 
      AND CCMSK 
      SZA           CHECK FOR ZERO CTR
      JSB FERR6     CTR NOT ZERO,GO TO ERR
      JSB SHUTA     UPDATE SUB-TEST NO. 
      JSB MRST      MASTER RESET
      JSB PTGNR     GENERATE A TEST PATTERN 
      ABS 1 
      JSB XARI      FILL FIFO - CCNT7 NOT 
      JSB CMND      ATTEMPT TO RAISE LINE CA
      ABS WRD4+CA 
      JSB MSTUS     CHECK CC AND CE 
      ABS CC+CE 
      ABS NULL
      DEF EM110     POINTER ERROR MSG 
      JSB SHUTA     UPDATE SUB-TEST NO. 
      JMP FLAGS,I   RETURN TO START OF TEST 
      SPC 1 
FERR2 DEF *-*       FLAG NOT SET,BUF FULL 
      JSB ERMS,I    GO TO ERROR ROUTINE 
      DEF EM102 
      JMP FERR2,I   RETURN
      SPC 1 
FERR4 DEF *-*       FLAG NOT SET,BUF EMPTY
      JSB ERMS,I
      DEF EM105 
      JMP FERR4,I 
      SPC 1 
FERR6 DEF *-*       MASTER CLEAR ERROR
      JSB ERMS,I    GO TO ERROR ROUTINE 
      DEF EM107 
      JMP FERR6,I 
      SPC 1 
CCMSK OCT 37400 
FMASK ABS BFHF+BFF+BEF
HFULL EQU MD64
      SKP 
TST06 EQU * 
SCTST NOP           RETURN ADDRESS
      JSB STSUB     SAVE SUB-TEST NO
      OCT 111 
      JSB MRST      MASTER RESET INTERFACE
      JSB CMND      GO TO XMIT MODE 
      ABS WRD4+XMIT 
      JSB CMND      OUTPUT DUMMY
      ABS WRD0+NULL 
      CLA 
      STA SCSSX 
      JSB SCS02     INTIALIZE SPCH RAM
      ABS WRD6
      JSB SCS01     CHECK DATA AND SC 
      ABS SCALL     RAM = ALL ZEROS 
      DEF EM111     POINTER ERROR MSG 
      CLA 
      STA SCSSX 
      JSB SCS02     INITIALIZE SPCH RAM 
      ABS WRD6+SPCHD
      JSB SCS01     CHECK RAM DATA = ALL ONES 
      ABS SCALL+SCCMP+SCCMP 
      DEF EM111     POINTER TO ERROR MSG
      JSB SHUTA     UPDATE SUB-TEST NO
      LDA SCSCM 
      STA SCSSX 
      JSB SCS02     INITIALIZE SPCH RAM 
      ABS WRD6
      JSB SCS01     CHECK RAM DATA
      ABS SCCHX 
      DEF EM112     POINTER TO ERROR MSG
      LDA SCSCM 
      STA SCSSX 
      JSB SCS02     INITIALIZE SPCH RAM 
      ABS WRD6+SPCHD
      JSB SCS01     CHECK RAM DATA
      ABS SCCHX+SCCMP+SCCMP 
      DEF EM112     POINTER TO ERROR MSG
      JSB SHUTA     UPDATE SUB-TEST NO. 
      JMP SCTST,I   RETURN
      SKP 
SCS01 NOP           RETURN ADDRESS
      CLA 
      STA NOERS     CLEAR ERROR FLAG
      LDA SCS01,I   GET PARAMETERS
      STA SCTYP     SAVE PATTERN TYPE 
      ISZ SCS01 
      LDA SCS01,I 
      STA SCPE1 
      CLA 
      STA SCCHR     INITIALIZE CHARACTER
      ADA SCWD0     WORD 0 COMMAND
      STA SCPS1     SAVE
SCSC5 JSB CMND      OUTPUT WORD 4 COMMAND 
      ABS WRD4+XMIT 
      JSB CMND      OUTPUT WORD 0 COMMAND 
SCPS1 BSS 1 
      JSB CMND      SET INTERFACE TO RECEIVE
      ABS WRD4+NULL 
      LDB SCTYP     GET TYPE OF PATTERN 
      RBL 
      RBL,SLB 
      JMP SCSC1     ALL 
      RBL,SLB 
      JMP SCSC2     CHECKS
      LDA SCTYP 
      AND LOHWD 
      STA B 
      LDA SCPS1     GET DATA
      AND LOHWD     LOWER HALF WORD 
      CPA B 
      JMP SCSC1 
      LDA SCMX
      JMP SCSC3     CONTINUE
SCSC1 LDA SCSCN 
      JMP SCSC3     CONTINUE
SCSC2 LDA SCPS1 
      SLA 
      JMP SCSC4 
      LDA SCSCN 
      RSS 
SCSC4 LDA SCMX
SCSC3 LDB SCTYP 
      SSB 
      XOR SCMX
      STA B 
      LDA SCPS1     SAVE
      AND LOHWD 
      IOR B 
      IOR SCMYY     CONSTRUCT EXPECTED DATA 
      STA SCPS2 
      JSB CDATA     CHECK DATA
SCPS2 BSS 1 
SCPE1 DEF *-*       POINTER TO ERROR MSG
      ISZ NOERS     CHECK ERROR FLAG
      RSS           CONTINUE
      JMP SCSC6     NO MORE ERROR REPORTS 
      LDA SCPS1 
      INA           UPDATE TEST DATA
      STA SCPS1 
      AND LOHWD 
      SZA 
      JMP SCSC5     CONTINUE
SCSC6 ISZ SCS01 
      JMP SCS01,I   RETURN
      SPC 2 
SCS02 NOP           RETURN ADDRESS
      JSB CMND      GO TO XMIT OPERATION
      ABS WRD4+XMIT 
      LDA SCS02,I 
      ISZ SCS02     UPDATE RETURN ADDRESS 
SCC03 STA SCP03 
      JSB CMND      FILL SPCH RAM 
SCP03 BSS 1 
      LDB SCP03     UPDATE PATTERN
      INB 
      LDA LOHWD 
      AND B 
      SZA,RSS 
      JMP SCS02,I   RETURN
      LDA SCSSX 
      XOR B 
      JMP SCC03     CONTINUE
      SPC 1 
SCALL EQU 40000B
SCCMP EQU 40000B
SCCHX EQU 20000B
SCMX  ABS SCM 
SCTYP BSS 1 
SCSCM ABS SPCHD 
SCSCN ABS NULL
SCWD0 ABS WRD0
                                                                                                                                                                                                  