*         TEST 3   STF TSC - CLF TSC - SFS TSC - SFC TSC
* 
TST3  NOP 
      LDA LPCNT     SET LOOP
      STA CNTR        COUNTER 
      LDA HLT0      PUT TRAP IN A REG.
      CLB 
TLT3  EQU * 
T3SC1 STF TSC       * 
      RSS 
      JMP TET3      SKF SIGNAL UP 
T3SC2 CLF TSC       * 
      LDB .1        .1
T3SC3 SFC TSC       *?
      JMP TET3      *BAD
      LDB .2        .2
T3SC4 SFS TSC       *?
      RSS           * 
      JMP TET3      *BAD
T3SC5 STF TSC       * 
      LDB .3        .3
T3SC6 SFC TSC       *?
      RSS           * 
      JMP TET3      *BAD
      LDB .4        .4
T3SC7 SFS TSC       *?
      JMP TET3      *BAD
      ISZ CNTR      NO - LOOP AGAIN?
      JMP TLT3      YES 
      JMP TST3,I    NO
* 
TET3  STB TAT3      SET ERROR TYPE
      JSB ER,I      REPORT IT 
      DEF TST3,I
      DEF *+3 
TAT3  NOP 
TBT3  NOP           B REG. DISPLAY
      ASC 19,STF TSC - CLF TSC - SFS TSC - SFC TSC
      ASC 8,FAILURE (A = #)/
      SKP 
* 
*         TEST 4    SELECT CODE SCREEN TEST 
*                   CHECK THAT SETTING OTHER FLAGS
*                   DOES NOT SET THE TSC FLAG 
* 
TST4  NOP 
      LDA LPCNT     SET LOOP
      STA CNTR        COUNTER 
      LDA .10       START WITH LOWEST ADDRESS 
TLT4  STA TAT4      SAVE IT 
      CPA SC        IS IT THE TSC 
      JMP TNT4      YES SKIP IT 
      IOR STF0      SET UP SET FLAG INSTRUCTION 
      STA .STF0     PUT IN PLACE
T4SC1 CLF TSC       CLEAR TSC FLAG
.STF0 NOP           EXECUTE STF SC INSTRUCTION
T4SC2 SFS TSC       TEST SCG FLAG 
      RSS 
      JMP TET4      IT WAS SET - SO ERROR 
TNT4  LDA TAT4      GET TEST SELECT CODE
      INA           MOVE IT TO NEXT ONE 
      CPA .100      IS IT FINISHED
      RSS           YES 
      JMP TLT4      NO
      ISZ CNTR      ALL LOOP DONE?
      JMP TLT4-1    NO
      JMP TST4,I    YES 
* 
TET4  JSB ER,I      REPORT ERROR
      DEF TST4,I
      DEF *+3 
TAT4  NOP 
TBT4  NOP 
      ASC 10,STF #  SET TSC FLAG/ 
* 
STF0  STF 0 
      SKP 
* 
*         TEST 5    CHECK FOR INTERRUPT HOLD OFF
* 
TST5  NOP 
      LDA LPCNT     SET LOOP
      STA CNTR        COUNTER 
TLT5  LDA T5.I0     SET TRAP CELL JSB 
      STA SC,I
      CLA           SET UP FOR TEST 
      STA TFT5
      STA TIT5
      STA TZT5
      LDA HLT0
      LDB HLT1
T5SC1 STC TSC       TURN ON 
T5SC2 STF TSC         TSC 
      STF 0         AND INTERRUPTS
      STC 1         * 
      STF 1         * 
      CLC 1         * 
      CLF 1         *  NO INTERRUPT 
      JMP *+1,I     *  SHOULD OCCURR
      DEF *+1       *  HERE 
      JSB *+1,I     * 
      DEF *+1       * 
TFT5  NOP           * 
      ISZ TZT5      INT. SHOULD BE HERE 
      ISZ TZT5
      CLF 0         TURN OFF INTERRUPT SYSTEM 
      LDA TIT5      DID IT INTERRUPT
      SZA,RSS       ? 
      JMP TET5C     NO - REPORT ERROR 
      LDA TZT5      CHECK INTERRUPT CORRECTLY 
      CPA .2        ? 
      RSS           YES 
      JMP TET5D     NO - REPORT ERROR 
      CLF 0         TURN OFF INTERRUPTS 
T5SC3 CLF TSC         AND TSC FLAG
      ISZ CNTR      LOOP DONE?
      JMP TLT5      NO
TRT5  JMP TST5,I    RETURN TO EXEC
* 
TZT5  NOP 
TDT5  DEF TFT5-1
TDT5A DEF TFT5+1
      SKP 
TIT5  NOP 
      CLF 0         TURN OFF INTERRUPTS 
      LDA TDT5      CHECK TO SEE IF ALL 
      CPA TFT5        INSTRUCTIONS COMPLETED
      RSS           YES - CONTINUE
      JMP TET5A         AND REPORT ERROR
      JSB TCJMP     SET SECOND INTP JMP INST. 
      DEF TET5B     INT LOCATION
      LDA TDT5A     CHECK RETURN ADDRESS
      CPA TIT5      FOR CORRECTNESS 
      JMP TIT5A     GOOD
      INA 
      CPA TIT5      AND + 1 
      JMP TIT5A     GOOD
      JMP TET5D     INTERRUPT INCORRECTLY 
TIT5A LDA HLT0      RESTORE A REG HALT
      STF 0         TURN ON INTERRUPTS
      JMP TIT5,I    CONTINUE TEST 
* 
* 
TET5A JSB ER,I
      DEF TRT5
      DEF *+3 
      DEC 1         A REG. DISPLAY
TBT5  NOP           B REG. DISPLAY
      ASC 16,INT DURING HOLD OFF INSTRUCTION/ 
* 
* 
TET5B CLF 0         TURN OFF INTERRUPTS 
      JSB ER,I
      DEF TRT5
      DEF *+3 
      DEC 2 
      NOP 
      ASC 10,SECOND INT OCCURRED/ 
* 
* 
TET5C JSB ER,I
      DEF TRT5
      DEF *+3 
      DEC 3 
      NOP 
      ASC 4,NO INT/ 
* 
* 
TET5D JSB ER,I
      DEF TRT5
      DEF *+3 
      DEC 4 
      NOP 
      ASC 7,INT INCORRECT/
      SKP 
*         TEST 6    CLC TSC AND CLC 0 
* 
TST6  NOP 
      LDA LPCNT     SET LOOP
      STA CNTR        COUNTER 
      JSB TCJMP     SET TRAP CELL JMP 
      DEF TET6      JMP LOCATION
TLT6  CLA,INA 
      STA TAT6      SET INDICATOR FOR CLC TSC TEST
T6SC1 STC TSC       SET TSC CONTROL 
T6SC2 STF TSC       SET TSC FLAG
      STF 0         TURN ON INTERRUPTS
T6SC3 CLC TSC       CLEAR TSC CONTROL 
      NOP           GIVE IT A CHANCE TO INTERRUPT 
      NOP 
      CLF 0         TURN OFF INTERRUPTS 
      ISZ TAT6      INDICATE CLC 0 TEST 
T6SC4 CLF TSC       CLEAR TSC FLAG
T6SC5 STC TSC       SET TSC CONTROL 
T6SC6 STF TSC       SET TSC FLAG
      STF 0         TURN ON INTERRUPTS
      CLC 0         CLEAR I/O SYSTEM
      NOP           GIVE IT A CHANCE
      NOP             TO INTERRUPT
      CLF 0         TURN OFF INTERRUPTS 
      ISZ CNTR      DONE WITH LOOP? 
      JMP TLT6      NO
TRT6  JMP TST6,I    RETURN TO EXEC
* 
TET6  JSB ER,I
      DEF TRT6
      DEF *+3 
TAT6  NOP 
      NOP 
      ASC 16,CLC 0 OR CLC TSC FAILED (A = #)/ 
      SKP 
* 
*         TEST 7    EXTERNAL PRESET 
* 
TST7  NOP 
      LIA 1         CHECK IF LOOP ON DIAGNOSTIC 
      AND BIT12       WAS SELECTED
      SZA 
      JMP TST7,I    YES, ABORT TEST 
      JSB MS,I      NO, OUTPUT MESSAGE
      DEF TCT7
      DEF *+1 
      ASC 19,PRESS PRESET (EXTERNAL AND INTERNAL),
      ASC 5,PRESS RUN/
* 
TCT7  EQU * 
T7SC1 CLF TSC       CLEAR TSC FLAG
      STF 0 TURN ON INTERRUPTS
      JSB STOP
      HLT 0         WAIT FOR OPERATOR RESPONSE
* 
T7SC2 SFS TSC       CHECK THE FLAG
      RSS 
      JMP TNT7      OK - CHECK INT. ENABLE
* 
TET7  JSB ER,I      NOT OK REPORT ERROR 
      DEF TST7,I
      DEF *+3 
      DEC 1 
      NOP 
      ASC 13,FLAG NOT SET AFTER POPIO/
* 
TNT7  SFS 0         CHECK INTP. FLAG
      JMP TST7,I    OK RETURN TO EXEC 
      JSB ER,I      NOT OK REPORT ERROR 
      DEF TST7,I
      DEF *+3 
      DEC 2 
      NOP 
      ASC 18,INT SYSTEM NOT CLEARED AFTER PRESET/ 
      SKP 
* 
*         TESTS 8  TRANSFERS 100 WORDS-SFS TSC AND MEM TO MEM COMPARE 
* 
TST8  NOP           ENTRY POINT 
      LDA T8SAT     GET DEF POINTER 
      JSB HDWSI     DO SUBROUTINES
      JMP TST8,I    GOOD RETURN 
* 
      LDB ERROR     SET STATUS WORD 
      STB TTX4       FOR ERROR MESSAGE
* 
      CLB           SET EXIT CODE 
      JSB ERRS      FIND ERROR TYPE IF COMMON 
* 
      HLT 66B       TEMP HLT-SHOULDN'T GET HERE 
* 
      SPC 4 
T8SAT DEF T8SA
* 
*         SETUPS FOR TEST 8 
* 
T8SA  EQU * 
      DEF T8SU1     1 CPU DEF LIST
      DEF T8SU2     2 CPU XMIT DEF LIST 
      DEF T8SU3     2 CPU RCVR DEF LIST 
      SPC 4 
T8SU1 EQU * 
      DEF FXMIT     1 CPU TRANSMIT
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF RCVR      RECEIVE A WORD
      DEF LOOPR     BACK UP 4 WORDS IN LOOP 
      DEF COMPA     COMPARE BLOCKS
      DEF GOOD      COMPLETED MESSAGE 
* 
T8SU2 EQU * 
      DEF XSTAR     GET CPU'S IN STEP 
      DEF XMIT      TRANSMIT A WORD 
      DEF FLAG      WAIT FOR A FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF LOOPR     BACK UP 3 WORDS IN LOOP 
      DEF GOOD      COMPLETED MESSAGE 
* 
T8SU3 EQU * 
      DEF RSTAR     GET CPU'S IN STEP 
      DEF LOOP      WAIT FOR 1ST WORD 
      DEF FLAG      CHECK FLAG
      DEF CHFLG     WHY FLAG
      DEF RCVR      RECEIVE A WORD
      DEF LOOPR     BACK UP 3 WORDS IN LOOP 
      DEF COMPA     COMPARE BLOCKS
      DEF GOOD      COMPLETED MESSAGE 
      SKP 
* 
*     TEST 9 TRANSFERS 100 WORDS WITH INTERRUPT ENABLED AND 
*     MAKES MEM TO MEM COMPARISON 
* 
TST9 NOP           ENTRY POINT
      LDA T9SAT     GET DEF POINTER 
      JSB HDWSI     DO SUBROUTINES
      JMP TST9,I   GOOD RETURN
* 
      LDB ERROR     SET STATUS WORD 
      STB TTX4       FOR ERROR MESSAGE
* 
      CLB           SET EXIT CODE 
      JSB ERRS      FIND ERROR TYPE IF COMMON 
* 
      CPA .7        IS IN AN INT TIMEOUT? 
      JMP TETX3     YES 
* 
      HLT 66B       SHOULDN'T GET HERE
* 
TETX3 JSB ER,I      REPORT ERROR
      DEF TST9,I   RETURN POINT 
      DEF *+3       MESSAGE ADDRESS 
      OCT 7         A REG 
      NOP           B REG 
      ASC 12,NO INT IN DATA TRANSFER/ 
      SPC 4 
T9SAT DEF T9SA
* 
*     SETUPS FOR TEST 9 
* 
T9SA EQU *
      DEF T9SU1     1 CPU DEF LIST
      DEF T9SU2     2 CPU XMIT DEF LIST 
      DEF T9SU3     2 CPU RCVR DEF LIST 
      SKP 
T9SU1 EQU * 
      DEF ENINR     ENABLE INTERRUPT
      DEF FXMIT     1 CPU TRANSMIT
      DEF TIMER     WAIT FOR INT
      DEF DUMMY     FILLER
      DEF LOOPR     BACK UP 4 WORDS IN LOOP 
      DEF COMPA     COMPARE BLOCKS
      DEF GOOD      COMPLETED MESSAGE 
* 
T9SU2 EQU * 
      DEF XSTAR     GET CPU'S IN STEP 
      DEF XMTI      SEND 100 WORDS
      DEF GOOD      COMPLETED MESSAGE 
* 
T9SU3 EQU * 
      DEF RSTAR     GET CPU'S IN STEP 
      DEF LOOP      WAIT FOR 1ST WORD 
      DEF RCVI      RECEIVE 100 WORDS 
      DEF COMPA     COMPARE BLOCKS
      DEF GOOD      COMPLETED MESSAGE 
      SKP 
* 
*         TEST 10 CHECKS FOR WDO. FIRST THE FLAG IS CHECKED 
*      THEN THE STATUS WORD IS CHECKED. 
* 
TST10  NOP           ENTRY POINT
      LDA BIT9      SET WATCHDOG BIT
      STA WORD        FOR CWORD 
      LDA .17       SET TIME FOR
      STA TIME       WAIT SUBROUTINE
      LDA T10ST     GET DEF POINTER 
      JSB HDWSI     DO SUBROUTINES
      JMP TST10,I    GOOD RETURN
* 
      LDB ERROR     SET STATUS WORD 
      STB TTX4       FOR ERROR MESSAGE
* 
      LDB .2        SET EXIT CODE 
      JSB ERRS      FIND ERROR TYPE IF COMMON 
* 
      STA TAT10 
      CPA .1        WAS IT WDO FLAG NOT SET?
      JMP TT103     YES 
* 
      CPA .2        WAS IT WDO BIT NOT SET? 
      JMP TT103     YES 
* 
      HLT  66B      TEMP HLT - SHOULDNT GET HERE
* 
TT103 JSB ER,I      REPORT ERROR
      DEF TST10,I    RETURN POINT 
      DEF *+3       MESSAGE ADDRESS 
TAT10  NOP           CONTENTS FOR A REG 
      NOP           CONTENTS FOR B REG
      ASC 14,NO WATCHDOG TIMEOUT (A = #)/ 
* 
T10ST DEF T10SA 
      SKP 
* 
*     SETUPS FOR TEST 10
* 
T10SA  EQU *
      DEF T10S1     1 CPU DEF LIST
      DEF T10S2     2 CPU XMIT DEF LIST 
      DEF T10S3     2 CPU RCVR DEF LIST 
* 
T10S1 EQU * 
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF FXMIT     1 CPU TRANSMIT
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF RCVR      RECEIVE A WORD
      DEF WAIT      WAIT 15 MS
      DEF WDO       CHECK WATCHDOG
      DEF GOOD      COMPLETED MESSAGE 
* 
T10S2 EQU * 
      DEF XSTAR     GET CPU'S IN STEP 
      DEF XMIT      TRANSMIT A WORD 
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF RCVR      CLEAR WATCHDOG
      DEF WAIT      WAIT 15 MS
      DEF WDO       CHECK WATCHDOG
      DEF GOOD      COMPLETED MESSAGE 
* 
T10S3 EQU * 
      DEF RSTAR     GET CPU'S IN STEP 
      DEF LOOP      WAIT FOR 1ST WORD 
      DEF FLAG      CHECK FLAG
      DEF RCVR      RECEIVE A WORD
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF WAIT      WAIT 15 MS
      DEF WDO       CHECK WATCHDOG
      DEF GOOD      COMPLETED MESSAGE 
      SKP 
* 
*     TEST 11 CHECKS THE CLEAR CRC BIT
* 
      ORG 4000B 
* 
TST11 NOP           ENTRY POINT 
      LDA BIT11     SET SEND CRC BIT
      STA WORD       FOR CWORD
      LDA T11ST     GET DEF POINTER 
      JSB HDWSI     DO SUBROUTINES
      JMP TST11,I   GOOD RETURN 
* 
      LDB ERROR     SET STATUS WORD 
      STB TTX4       FOR ERROR MESSAGE
* 
      LDB .1        SET EXIT CODE 
      JSB ERRS      FIND ERROR TYPE IF COMMON 
* 
      CPA .2        WAS THE ERROR BIT SET?
      JMP TET11     YES 
* 
      HLT 66B       TEMP HLT - SHOULDN'T GET HERE 
* 
TET11 JSB ER,I      REPORT ERROR
      DEF TST11,I   RETURN POINT
      DEF *+3       MESSAGE ADDRESS 
      NOP           CONTENTS FOR A REG
      NOP           CONTENTS FOR B REG
      ASC 8,CLEAR CRC ERROR/
* 
T11ST DEF T11SA 
      SKP 
* 
*     SETUPS FOR TEST 11
* 
T11SA EQU * 
      DEF T11S1     1 CPU DEF LIST
      DEF T11S2     2 CPU XMIT DEF LIST 
      DEF T11S3     2 CPU RCVR DEF LIST 
* 
T11S1 EQU * 
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF FXMIT     1 CPU TRANSMIT
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF CCRC      CHECK CRC ERROR 
      DEF GOOD      COMPLETED MESSAGE 
* 
T11S2 EQU * 
      DEF XSTAR     GET CPU'S IN STEP 
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF XMIT      TRANSMIT DUMMY WORD 
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF CCRC      CHECK CRC ERROR 
      DEF GOOD      COMPLETED MESSAGE 
* 
T11S3 EQU * 
      DEF RSTAR     GET CPU'S IN STEP 
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF XMIT      TRANSMIT DUMMY WORD 
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF CCRC      CHECK CRC ERROR 
      DEF GOOD      COMPLETED MESSAGE 
      SKP 
* 
*     TEST 12 CHECKS SENDING CRC AS TEXT WORD AFTER 100 WORD BLOCK
* 
TST12 NOP           ENTRY POINT 
      LDA .5        SET TIME FOR
      STA TIME       WAIT SUBROUTINE
      LDA BIT11     GET SEND CRC BIT
      STA WORD        SAVE FOR CWORD
* 
      LDA T12ST     GET DEF POINTER 
      JSB HDWSI     DO SUBROUTINES
      JMP TST12,I   GOOD RETURN 
* 
      LDB ERROR     SET STATUS WORD 
      STB TTX4       FOR ERROR MESSAGE
      LDB CRC 
      STB TTX12 
* 
      CLB           SET EXIT CODE 
      JSB ERRS      FIND ERROR TYPE IF COMMON 
* 
      CPA .17       WAS CRC TO CRC = 0? 
      JMP TE121     NO
* 
      CPA .2        TEXT CRC ERROR? 
      JMP TE122     YES 
* 
      CPA .6        CRC WRONG?
      JMP TE123     YES 
* 
      HLT 66B 
      SKP 
TE121 JSB ER,I      REPORT ERROR
      DEF TST12,I   RETURN POINT
      DEF *+3       MESSAGE ADDRESS 
TTX12 NOP           CONTENTS FOR A REG
      NOP           CONTENTS FOR B REG
      ASC 10,CRC TO CRC EQUAL #/
* 
TE122 JSB ER,I      REPORT ERROR
      DEF TST12,I   RETURN POINT
      DEF *+3       MESSAGE ADDRESS 
      OCT 2         A REG 
      NOP           CONTENTS FOR B REG
      ASC 8,TEXT CRC ERROR/ 
* 
TE123 LDA REM1      GET CALCULATED CRC
      STA TT121     STORE FOR MESSAGE 
      LDA DEST,I    GET RECEIVED CRC
      STA TT122     STORE FOR MESSAGE 
      LDB TEE       SET FOR TRANSMIT CRC
      LDA TYPE      WHICH IS IT?
      SZA           SKIP IF TRANSMIT
      LDB ARE       SET FOR RECEIVE CRC 
      STB TT123 
      JSB ER,I      REPORT ERROR
      DEF TST12,I   RETURN POINT
      DEF *+3       MESSAGE ADDRESS 
TT121 NOP           A REG 
TT122 NOP           B REG 
TT123 ASC 12,X CRC SHOULD BE #, IS #/ 
* 
TEE   ASC 1,T 
ARE   ASC 1,R 
T12ST DEF T12SA 
      SKP 
* 
*     SETUPS FOR TEST 12
* 
T12SA EQU * 
      DEF T12S1     1 CPU DEF LIST
      DEF T12S2     2 CPU XMIT DEF LIST 
      DEF T12S3     2 CPU RCVR DEF LIST 
* 
T12S1 EQU * 
      DEF CXMIT     TRANSMIT + FIND CRC 
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG
      DEF RCVR      RECEIVE A WORD
      DEF LOOPR     BACK UP 4 WORDS IN LOOP 
      DEF COMPA     COMPARE BLOCKS
      DEF RESET     RESET POINTERS
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF FXMIT     DUMMY TRANSMIT
      DEF FLAG      WAIT FOR FLAG 
      DEF RCVR      RECEIVE CRC 
      DEF COMPS     COMPARE THEM
      DEF INIT      INITIALIZE
      DEF FCRC      SET CRC KIND TO RECEIVE 
      DEF FXMIT     1 CPU TRANSMIT
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG
      DEF CRCVR     RECEIVE + FIND CRC
      DEF LOOPR     BACK UP 4 WORDS IN LOOP 
      DEF COMPA     COMPARE BLOCKS
      DEF RESET     RESET POINTERS
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF FXMIT     DUMMY TRANSMIT
      DEF FLAG      WAIT FOR FLAG 
      DEF RCVR      RECEIVE CRC 
      DEF COMPS     COMPARE THEM
      DEF GOOD      COMPLETION MESSAGE
      SKP 
* 
T12S2 EQU * 
      DEF XSTAR     GET CPU'S IN STEP 
      DEF XMIT      TRANSMIT A WORD 
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF LOOPR     BACK UP 3 WORDS IN LOOP 
      DEF WAIT      WAIT 5 MS 
      DEF RESET     RESET POINTERS
      DEF RESET     RESET POINTERS
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF FXMIT     TRANSMIT DUMMY WORD 
      DEF LOOP      WAIT FOR RETURN CRC 
      DEF FLAG      CLEAR FLAG
      DEF RCVR      RECEIVE A WORD
      DEF ZERO      IS IT ZERO? 
      DEF WAIT      GET 2 CPU'S IN SYNC 
      DEF GOOD      COMPLETED MESSAGE 
* 
T12S3 EQU * 
      DEF RSTAR     GET CPU'S IN STEP 
      DEF LOOP      WAIT FOR 1ST WORD 
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF CRCVR     RECEIVE + FIND CRC
      DEF LOOPR     BACK UP 3 WORDS IN LOOP 
      DEF COMPA     COMPARE BLOCKS
      DEF RESET     RESET POINTERS
      DEF LOOP      WAIT FOR CRC
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF RCVR      RECEIVE A WORD
      DEF COMPS     COMPARE CRC'S 
      DEF CWORD     OUTPUT CONTROL WORD 
      DEF XMIT      TRANSMIT DUMMY WORD 
      DEF FLAG      WAIT FOR FLAG 
      DEF CHFLG     WHY FLAG? 
      DEF CCRC      CHECK CRC ERROR 
      DEF GOOD      COMPLETED MESSAGE 
      SKP 
                                                        