* 
*     *   LOAD 2100 MICROCODE ROUTINE  *
* 
*         *    LOADS 2100 MICROPROGRAM BUFFER INTO CURRENT WCS. 
* 
*              CALLING SEQUENCE : 
* 
*              JSB L2100
* 
L2100 NOP 
      LDA ABUF1     PUT 2100 POINTER
      STA PBUF1      INTO PBUF1 
      JSB WBUFF     WRITE ON WCS
      LDA BBUF1     RESTORE PBUF1 POINTER 
      STA PBUF1      TO POINT TO 21XX BUFFER
      JMP L2100,I 
* 
*     *   LOAD 21XX MICROCODE ROUTINE  *
* 
*         *    LOADS 21XX MICROPROGRAM BUFFER INTO CURRENT WCS. 
* 
*              CALLING SEQUENCE : 
* 
*              JSB L21XX
* 
L21XX NOP 
      LDA BBUF1     PUT 21XX POINTER
      STA PBUF1      INTO PBUF1 
      JSB WBUFF     WRITE ON WCS
      LDA ABUF1     RESTORE PBUF1 POINTER 
      STA PBUF1      TO POINT TO 2100 BUFFER
      JMP L21XX,I 
      HED REMOD 
* 
*     *   RESTORE 2100 MICROCODE FOR MODULE #1 ROUTINE   *
* 
*         *    RESTORES MICROCODE FOR 2100 FOR USE IN MODULE #1 
* 
*              CALLING SEQUENCE : 
* 
*              JSB REMOD
* 
REMOD NOP 
      LDA PMOD1     SET 
      STA TEMP7      POINTER
      LDB MOD.1 
RM.1  LDA TEMP7,I   DO FIRST
      STA B,I       16(DECIMAL) 
      ISZ TEMP7       LOCATIONS 
      INB 
      CPB MOD.5     DONE? 
      RSS 
      JMP RM.1      NO
      ADB B140      YES,BUMP POINTER
RM.2  LDA TEMP7,I   DO SECONDARY
      STA B,I        JMP TABLE
      ISZ TEMP7 
      INB 
      CPB MODE2     DONE? 
      RSS 
      JMP RM.2      NO
      ADB B532
RM.3  LDA TEMP7,I   DO ROUTINE
      STA B,I        FORM 
      ISZ TEMP7 
      INB 
      CPB MOD.6     DONE? 
      JMP REMOD,I   YES,RETURN
      JMP RM.3      NO
      HED CMOD3 
* 
*     *   CHANGE 2100 MICROCODE FOR MODULE #3 ROUTINE  *
* 
*         *    MODIFIES MICROCODE FOR 2100 FOR USE IN MODULE #3 
* 
*              CALLING SEQUENCE : 
* 
*              JSB CMOD3
* 
CMOD3 NOP 
      LDA PMOD2     SET 
      STA TEMP7      POINTERS 
      LDA MODE3 
      STA TEMP4 
      LDB MOD.3 
CM3.1 LDA TEMP7,I   GET MICRO FROM
      AND MASK2      TABLE & STORE
      STA TEMP9       LEFT 8 BITS 
      LDA JMP16     PUT NEW MICRO-JUMP
      STA B,I        IN MICROCODE 
      LDA TEMP4,I   FORM NEW JUMPS
      AND MASK3      IN MICROCODE 
      IOR TEMP9 
      STA TEMP4,I 
      ISZ TEMP4 
      ISZ TEMP7 
      INB 
      CPB MOD.2     DONE? 
      JMP CM3.2     YES 
      ISZ TEMP4     NO,BUMP 
      ISZ TEMP7      POINTERS 
      INB 
      JMP CM3.1 
CM3.2 LDA B,I       PLACE ADDITIONAL
      IOR B2         NEW JUMPS FOR MOD #3 
      STA B,I 
      INB 
      LDA JMP16 
      STA B,I 
      INB 
      CPB MODE4     DONE? 
      RSS 
      JMP CM3.2     NO
      LDA TEMP7     YES,BUMP
      ADA B25        POINTERS 
      STA TEMP7 
      ADB B153
CM3.3 LDA TEMP7,I   GET MICRO FROM
      ADA BIT12      TABLE AND CHANGE 
      STA B,I         REMAINING 16 BITS 
      ISZ TEMP7 
      INB 
      CPB MODE2     DONE? 
      JMP CM3.4     YES 
      ISZ TEMP7     NO,BUMP 
      INB            POINTERS 
      JMP CM3.3 
CM3.4 ADB B535      BUMP POINTER
      LDA MSJMP     FORM NEW MICRO
      STA B,I 
      JMP CMOD3,I 
      HED CMOD2 
* 
*     *   CHANGE 2100 MICROCODE FOR MODULE #2 ROUTINE  *
* 
*         *    MODIFIES MICROCODE FOR 2100 FOR USE IN MODULE #2 
* 
*              CALLING SEQUENCE : 
* 
*              JSB CMOD2
* 
CMOD2 NOP 
      LDA MODE1     SET 
      STA TEMP4      POINTERS 
      LDA PMOD1 
      STA TEMP7 
      LDB MOD.1 
CM2.1 LDA TEMP7,I   GET MICRO FROM
      ADA M2         TABLE & CHANGE 
      STA B,I         LEFT 8 BITS 
      ISZ TEMP7 
      INB 
      LDA TEMP7,I   GET MICRO FROM
      AND MASK2      TABLE & STORE
      STA TEMP9       LAST 8 BITS 
      LDA JMP16     GET NEW MICRO 
      STA B,I        AND PUT IT IN MICROPROGRAM 
      LDA TEMP4,I   GET NEXT FIVE JMPS
      AND MASK3      IN MICROCODE AND 
      IOR TEMP9       FORM NEW JUMPS
      STA TEMP4,I 
      ISZ TEMP7     INCREMENT 
      ISZ TEMP4      POINTERS 
      ISZ TEMP4 
      INB 
      CPB MOD.2     DONE? 
      RSS 
      JMP CM2.1     NO
      LDA TEMP7     YES,RESET 
      ADA B24        POINTERS 
      STA TEMP7 
      ADB B164
CM2.2 LDA TEMP7,I   GET MICRO FROM
      ADA M2         TABLE & CHANGE 
      STA B,I         LEFT 8
      ISZ TEMP7 
      INB 
      LDA TEMP7,I   GET MICRO FROM
      ADA BIT12      TABLE & CHANGE 
      STA B,I         REMAINING 16 BITS 
      ISZ TEMP7 
      INB 
      CPB MODE2     DONE? 
      RSS 
      JMP CM2.2     NO
      ISZ TEMP7     YES,BUMP
      ADB B533       POINTERS 
      LDA TEMP7,I   GET MICRO AND 
      ADA M400       CHANGE LAST 16 
      STA B,I 
      ISZ TEMP7 
      INB 
      LDA TEMP7,I   GET MICRO AND 
      ADA M2         CHANGE LEFT 8
      STA B,I 
      ISZ TEMP7 
      INB 
      LDA TEMP7,I   GET MICRO AND 
      ADA BIT12      CHANGE LAST 16 
      STA B,I 
      JMP CMOD2,I 
      HED START 
* 
*     *   PROGRAM ENTRY  *
* 
*         *    SETS UP TRAP CELLS,INITIALIZES VARIABLES 
*              AND CONTROLS TEST EXECUTION
* 
      ORG 2000B 
START NOP 
      CLF 0         TURN OFF INTERRUPT SYSTEM 
      CLA 
      JSB PRINT     "12908 WCS DIAGNOSTIC"
      LDA THLT      SET UP
      LDB B2         TRAP CELL
RTRAP STA B,I         HALTS IN
      CPB ETRAP        ADDRESS
      JMP STVAR         LOCATIONS 
      INB                2 THRU 77
      JMP RTRAP 
STVAR EQU *         INITIALIZE VARIABLES
      CLA 
      STA TEMPA 
      STA TEMPB 
      STA SPASS 
      STA MMFLG 
      CLA,INA       START WITH
      STA PASS       PASS 1 
      LDA SAVE4     CONFIGURE 
      ALF,ALF        PROGRAM FOR
      ALF             LOW ORDER WCS 
      IOR SAVE5        MODULE 
      JSB PCNF1,I 
      JSB REMOD     RESTORE 2100 MICROCODE
      JSB REMX      RESTORE 21XX MICROCODE
      LDA MASK5     RESTORE STANDARD
      STA TESTS      TEST RUN(ALL TESTS)
RSTRT EQU * 
      CLA           START WITH
      STA TEST       TEST SECTION 0 
      STA STEP      START WITH STEP 1 
      LDA TESTS     RESET TEST
      STA SECT       SELECTION
TLOOP EQU * 
      LDB BIT6      PERFORM 
      JSB SWRG       TSTLL? 
      JMP PTSTL,I   YES 
      LDB BIT1      PERFORM 
      JSB SWRG       TSTSS? 
      JMP PTSTS,I   YES 
      LDB BIT9      USER SELECTION
      JSB SWRG       OF TESTS?
      JSB USELT     YES,GO GET TESTS DESIRED
      LDA SECT      NO,USE CURRENT OR DEFAULT SET 
      RAR           PERFORM 
      STA SECT       THIS TEST
      SSA,RSS         SECTION?
      JMP SKIP      NO
      LDA TEST      EXECUTE 
      ADA SECTN      CURRENT
      LDA A,I         TEST
      JSB A,I          SECTION
      CLA           CLEAR ERROR 
      STA ERCNT      COUNTER
      LDB BIT2      HALT ON LAST STEP 
      JSB SWRG       IN TEST SECTION? 
      RSS 
      JMP HL50+1    NO
      LDA STEP      YES,GET STEP #
      CLB            IN A REGISTER
HL50  HLT 50B 
      LDA MACH1     IS THIS 
      SZA            A 2100?
      JMP *+3       YES 
      LDA LDA1D     NO. ONLY ONE
      STA T.LDA      MACRO IN STEP 22 
      LDB BIT3      LOOP ON LAST
      JSB SWRG       STEP IN TEST SECTION?
      JMP SAVES,I   YES 
      JMP CONT      NO,CONTINUE 
SKIP  EQU * 
      LDA TEST      GET 
      ADA PTEST      CURRENT
      LDB A,I         STEP #
      STB STEP         AND STORE IT 
CONT  EQU * 
      LDB BIT15     HALT AT 
      JSB SWRG       END OF TEST? 
      RSS 
      JMP NOHLT     NO
      LDA TEST      YES,GET TEST #
      CLB            IN A REG AND CLEAR B REG 
HLT76 HLT 76B 
NOHLT EQU * 
      LDB BIT13     LOOP
      JSB SWRG       TEST?
      RSS 
      JMP NOLP      NO
      LDA SECT      YES,POSITION
      RAL            FOR TEST 
      STA SECT        SELECTION 
      JMP TLOOP 
NOLP  EQU * 
      LDA TEST      FINISHED
      CPA LTEST      PASS?
      JMP CPASS     YES 
      INA           NO,CONTINUE 
      STA TEST       TEST 
      JMP TLOOP       SEQUENCE
CPASS EQU * 
      LDB BIT0      PERFORM 
      JSB SWRG       TSTMM? 
      JMP PTSTM,I   YES 
      CLA           NO,CLEAR TSTMM
      STA MMFLG      CONFIGURATION FLAG 
      LDA PP8,I     RESTORE 
      AND MASK2      NORMAL 
      IOR SPACE       PASS
      STA PP8,I        MESSAGE
      LDA SAVE4     FORM UP LOW ORDER 
      ALF,ALF        WCS MODULE SELECT
      ALF             CODE AND CONTROL
      IOR SAVE5        STORE MODULE # 
      JSB PCNF1,I   GO CONFIGURE PROGRAM
      LDA JBACI     SET PROGRAM 
      STA JBAC1      OPTION BIT12 
      STA JBAC2       TO NORMAL TESTING 
MRTRN EQU * 
      CLE           FINISHED A
      LDA PASS       PASS. SET UP 
      LDB PPASS       PARAMETERS FOR
      JSB C.124,I      PASS COUNT 
      LDA .8
      JSB PRINT     "PASS XXXXXX" 
      ISZ PASS      BUMP PASS COUNTER 
      LDB BIT12     LOOP ON 
      JSB SWRG       DIAGNOSTIC?
JBAC1 BSS 1         YES,DO ANOTHER PASS 
      LDA PASS      NO
      ADA M1        GET PASS # IN 
      CLB            A REG AND CLEAR B REG
HLT77 HLT 77B 
JBAC2 BSS 1         DO ANOTHER PASS 
      HED TEST SECTION 0
* 
*     *   TEST SECTION 0   *
* 
*         *    CHECKS I/O BUS.
* 
*              TESTS DMA FLAG AND INTERRUPT CIRCUITRY,IF PRESENT, 
*              (DMA CHANNEL 1 ONLY) BY ATTEMPTING 2 WORD TRANSFERS. 
* 
* 
TST00 EQU * 
TEST0 NOP 
      LDA TEST      ARM MESSAGE 
      JSB TMSG       H030 
      LDA CW1       INITIALIZE
      AND MASK4      VARIABLES
      IOR SC
      STA CW1 
STP01 JSB SSTEP     STEP  1 
      LIA 0         I/O BUS 
      SZA            CLEAR? 
E001  JSB ERROR     NO,"IO BUS NOT CLEAR" 
      LDA DMAFG     DMA 
      SZA,RSS        PRESENT? 
      JMP T.105     YES,DO NEXT STEPS 
      JSB CSTEP     NO,SKIP DMA CHECK 
      JSB CSTEP      AND UPDATE SKIP #
      JMP TEST0,I 
T.105 EQU * 
STP02 JSB CSTEP     STEP  2 
      LDA .M5       SET 
      STA TEMP1      COUNTER
      LDA CW1       INITIALIZE DMA
      OTA 6B         FOR WCS
      CLC 2B          SELECT CODE,
      LDA CW2          STC TO WCS EACH DMA CYCLE, 
      OTA 2B            CLC TO WCS AT END OF BLOCK. 
      STC 2B             2 WORD TRANSFER
      LDA CW3             CONTAINING
      OTA 2B               ALL 0'S
      STC 6B,C      START DMA TRANSFER
STF4  STF WCS       WRITE ON
CLF1  CLF WCS        WCS
T.103 SFS 6B        DMA FLAG? 
      JMP T.101     NO,DELAY & TRY AGAIN,THEN ERROR 
      JMP T.102 
T.101 CLA,INA       DELAY A 
      JSB C.121,I    MILLISECOND
      ISZ TEMP1     TRIED 5 TIMES?
      JMP T.103     NO,TRY AGAIN
E002  JSB ERROR     YES,"NO DMA FLAG" 
T.102 EQU * 
STP03 JSB CSTEP     STEP  3 
      CLF 6B        DISABLE DMA INTERRUPT SIGNAL
      LDA JMP.1     SET UP JMP INSTRUCTION IN 
      STA DMA        TRAP CELL FOR INTERRUPT
      STF 0         TURN ON INTERRUPT SYSTEM
      LDA CW1       RE-INITIALIZE 
      OTA 6B         DMA FOR
      CLC 2B          2 WORD TRANSFER 
      LDA CW2          TO WCS 
      OTA 2B
      STC 2B
      LDA CW3 
      OTA 2B
      STC 6B,C      START DMA TRANSFER
STF5  STF WCS       WRITE ON
CLF2  CLF WCS        WCS
      LDA .5        DELAY ABOUT 
      JSB C.121,I    5 MILLISECONDS 
      CLF 0         TURN OFF INTERRUPT FOR E003 
E003  JSB ERROR     "NO DMA INT"
T.104 EQU *         DMA INTERRUPT RETURN POINT
      CLC 0,C       TURN EVERYTHING BACK OFF
      LDA 5B        RESTORE TRAP
      STA 6B          CELL HALT 
      JMP TEST0,I 
      HED TEST SECTION 1
* 
*     *   TEST SECTION 1   *
* 
*         *    ADDRESS TEST - WRITES AND READS EACH ADDRESS IN WCS
*              MODULE WITH ITS OWN ADDRESS,THEN COMPARES THEM.
* 
TST01 EQU * 
TEST1 NOP 
      LDA TEST      ARM MESSAGE 
      JSB TMSG       H030 
STP04 JSB SSTEP     STEP  4 
      LDA .M16      SET 
      STA TEMP7      COUNTER
      JSB SET2      SET BUFFER POINTER
      CLA           BUILD UP DATA 
      CLB            BUFFER TO CONTAIN
T.200 EQU *           ADDRESSES 0 THRU 377
      JSB STORE        IN THOSE ADDRESSES 
      ADA IADDR         EXAMPLE-ADDRESS 174 HAS 174 
      INB                 IN THE DATA FIELD 
      CPA EMOD2     DONE BUILDING UP BUFFER?
      RSS           YES 
      JMP T.200     NO,CONTINUE 
T.203 EQU * 
      JSB WBUFF     WRITE BUFFER ONTO WCS 
      JSB COMP      READ WCS,COMPARE TO BUFFER VALUE
      ISZ TEMP7     DONE IT 16 TIMES? 
      JMP T.203     NO,CONTINUE 
      NOP           TEMPORARY 
STP05 JSB CSTEP     STEP  5 
      LDA .M16      SET 
      STA TEMP8      COUNTER
T.204 EQU * 
      LDA .M256     SET ADDRESS 
      STA TEMP1      COUNTER AND DATA 
      LDA PBUF2       BUFFER POINTER TO 
      STA TBUFF        START AT END OF BUFFER 
T.201 EQU * 
      LDB TBUFF,I   WRITE BUFFER
      LDA TBUFF      ONTO WCS 
      ADA M1          IN DESCENDING 
      STA TBUFF        ORDER
      LDA TBUFF,I 
      JSB WRITE 
      LDB TBUFF 
      ADB M1
      STB TBUFF 
      ISZ TEMP1     DONE? 
      JMP T.201     NO,CONTINUE 
      JSB COMP      YES,COMPARE DATA
      ISZ TEMP8     DONE IT 16 TIMES? 
      JMP T.204     NO,CONTINUE 
STP06 JSB CSTEP     STEP  6 
      LDA .M16      SET 
      STA TEMP9      COUNTER
T.205 EQU * 
      JSB SET2      SET BUFFER POINTERS TO THE
      LDA PBUF3      BEGINNING AND MIDDLE OF THE
      STA TEMP4        DATA BUFFER
      LDA .M128     SET ADDRESS 
      STA TEMP1      COUNTER
T.202 EQU * 
      LDA TBUFF,I   WRITE BUFFER
      ISZ TBUFF      INTO WCS 
      LDB TBUFF,I     ALTERNATING 
      ISZ TBUFF        ADDRESSES
      JSB WRITE         UP AND DOWN 
      LDA TEMP4,I        IN MODULE
      ISZ TEMP4 
      LDB TEMP4,I 
      ISZ TEMP4 
      JSB WRITE 
      ISZ TEMP1     DONE? 
      JMP T.202     NO, CONTINUE
      JSB COMP      YES,COMPARE DATA
      ISZ TEMP9     DONE IT 16 TIMES? 
      JMP T.205     NO,CONTINUE 
      JMP TEST1,I 
      HED TEST SECTION 2
* 
*     *   TEST SECTION 2  * 
* 
*         *    PATTERN TESTS - WRITES A SERIES OF PATTERNS INTO 
*              WCS,THEN READS THEM BACK AND COMPARES THEM. LAST 
*              PATTERN IS REPEATED USING DMA,IF PRESENT.
* 
TST02 EQU * 
TEST2 NOP 
      LDA TEST      ARM MESSAGE 
      JSB TMSG       H030 
STP07 JSB SSTEP     STEP  7 
      LDA .M96      SET 
      JSB SET3       COUNTERS 
      JSB SET2
      CLA           BUILD 
      CLB            DATA 
T.300 EQU *           BUFFER TO 
      JSB STORE        CONTAIN
      ADA IADDR         ALL 0'S 
      CPA EMOD2 
      RSS 
      JMP T.300 
T.301 EQU * 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
      ISZ TEMP7     DONE IT 96 TIMES? 
      JMP T.301     NO
STP10 JSB CSTEP     STEP 10 
      LDA .M256     YES,SET 
      JSB SET1       NEW COUNTERS 
      LDA .M96
      JSB SET3
      JSB SET2
      LDA MASK2     BUILD 
      CCB            DATA 
T.302 EQU *           BUFFER TO 
      JSB STORE        CONTAIN
      ADA IADDR         ALL 1'S 
      ISZ TEMP1 
      JMP T.302 
T.303 EQU * 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
      ISZ TEMP8     DONE IT 96 TIMES? 
      JMP T.303     NO
STP11 JSB CSTEP     STEP 11 
      LDA .M96      YES,SET 
      JSB SET3       NEW COUNTERS 
      LDA .M256 
      JSB SET1
      JSB SET2
      LDA MASK2 
      LDB M2
T.314 EQU * 
      STA SAVE1     BUILD 
      STB SAVE2      DATA 
T.304 EQU *           BUFFER TO 
      JSB STORE        CONTAIN
      ADA IADDR         A 0 IN A
      ISZ TEMP1          FIELD OF 1'S 
      JMP T.304 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
      LDA .M256     RESET 
      JSB SET1       COUNTERS 
      JSB SET2
      LDA SAVE1     ROTATE THE
      LDB SAVE2      0 ONE
      JSB ROTE        TO THE LEFT 
      ISZ TEMP8     DONE IT 96 TIMES? 
      JMP T.314     NO
STP12 JSB CSTEP     STEP 12 
      LDA .M256     RESET 
      JSB SET1       COUNTERS 
      LDA .M96
      JSB SET3
      JSB SET2
      CLA 
      LDB B1
T.315 EQU * 
      STA SAVE1     BUILD 
      STB SAVE2      DATA 
T.305 EQU *           BUFFER TO 
      JSB STORE        CONTAIN
      ADA IADDR         A 1 IN A
      ISZ TEMP1          FIELD OF 0'S 
      JMP T.305 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
      LDA .M256     RESET 
      JSB SET1       COUNTER
      JSB SET2
      LDA SAVE1     ROTATE THE
      LDB SAVE2      1 ONE
      JSB ROTE        TO THE LEFT 
      ISZ TEMP9     DONE IT 96 TIMES? 
      JMP T.315     NO
STP13 JSB CSTEP     STEP 13 
      LDA .M256     YES,SET 
      JSB SET1       NEW COUNTERS 
      JSB SET2
      CLA           BUILD 
      CLB            DATA 
      JSB STORE       BUFFER TO 
      ISZ TEMP1        CONTAIN
      LDA ONES1         ALL 0'S IN
      CCB                FIRST WORD,
T.306 EQU *               ALL 1'S IN
      JSB STORE            REMAINDER
      ADA IADDR 
      ISZ TEMP1 
      JMP T.306 
      LDA PBUF1     SET BUFFER
      STA SAVE2      POINTER
T.307 EQU * 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
      JSB ROLL      ROLL BUFFER UP ONE MICROWORD
      JMP T.307     CONTINUE
      JSB WBUFF     WRITE LAST BUFFER 
      JSB COMP      READ AND COMPARE DATA 
STP14 JSB CSTEP     STEP 14 
      LDA .M256     RESET 
      JSB SET1       COUNTERS 
      JSB SET2      SET POINTER 
      LDA ONES0     BUILD 
      CCB            DATA 
      JSB STORE       BUFFER TO 
      ISZ TEMP4        CONTAIN
      LDA ZERO1         ALL 1'S IN
      CLB                FIRST WORD 
T.308 EQU *               AND ALL 0'S 
      JSB STORE            IN REMAINDER 
      ADA IADDR 
      ISZ TEMP4 
      JMP T.308 
      LDA PBUF1     SET BUFFER
      STA SAVE2      POINTER
T.309 EQU * 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
      JSB ROLL      ROLL BUFFER UP ONE MICROWORD
      JMP T.309     CONTINUE
      JSB WBUFF     WRITE LAST BUFFER 
      JSB COMP      READ AND COMPARE DATA 
STP15 JSB CSTEP     STEP 15 
      LDA .M256     SET NEW 
      JSB SET3       COUNTERS 
      JSB SET2
      LDA PATTA     BUILD 
      LDB PATTB      DATA 
T.310 EQU *           BUFFER TO 
      JSB STORE        CONTAIN
      ADA IADDR         101010101010101010101010
      XOR MASK2         010101010101010101010101
      CMB               101010101010101010101010
      ISZ TEMP7         ETC.
      JMP T.310 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
T.311 EQU * 
      JSB SET2      RESET POINTER 
      JSB ALT       COMPLEMENT PATTERNS 
      JSB WBUFF     WRITE BUFFER
      JSB COMP      READ AND COMPARE DATA 
      ISZ TEMP8     DONE IT 256 TIMES?
      JMP T.311     NO
STP16 JSB CSTEP     STEP 16 
      LDA .M256 
      JSB SET3      SET COUNTER 
      CLA           CLEAR FOR POSSIBLE
      STA TEMP8      USE IN DMA TIME OUT
      LDA DMAFG     DMA 
      SZA            PRESENT? 
      JMP T.313     NO
T.312 EQU * 
      JSB DRITE     YES,WRITE DATA VIA DMA
      JSB COMP      READ AND COMPARE DATA 
      JSB SET2      RESET POINTER 
      JSB ALT       COMPLEMENT PATTERNS 
      ISZ TEMP9     DONE IT 256 TIMES?
      JMP T.312     NO
T.313 EQU * 
      JMP TEST2,I   YES,RETURN
      HED TEST SECTION 3
                                                                                                                                                                                            