S11CK NOP 
      LDB SW11      SWITCH 11 SET?
      JSB SWRCK,I      *
      RSS           YES 
      ISZ S11CK     NO, ADJUST RETURN 
      JMP S11CK,I 
* 
*     SWITCH 14 CHECK 
* 
*        JSB S14CK
*        < SWITCH 14 SET >
*        < SWITCH 14 NOT SET >
* 
S14CK NOP 
      LDB SW14      SWITCH 14 SET?
      JSB SWRCK,I      *
      RSS           N--YES
      ISZ S14CK     NO, ADJUST RETURN 
      JMP S14CK,I 
      SPC 1 
      SPC 1 
*    PRINT CYCLE COUNT
 SPC 1
PCYCT NOP 
      CLA,CLE 
      LDB .MS00 
      JSB FMTR,I    'CYCLE(S)'
      CLA,INA 
      LDB CYCNT 
      JSB FMTR,I    CYCLE COUNT 
      JMP PCYCT,I 
      SKP 
*             **  COMMAND EXERCISE ROUTINE  **
 SPC 1
*        SW 0   READ ONE RECORD FORWARD (RRF) 
*        SW 1   FORWARD SPACE ONE RECORD (FSR)
*        SW 2   FORWARD SPACE ONE FILE (FSF)
*        SW 3   CLEAR THE CONTROLLER (CLR)
*        - - - - - - - - - - - - - - - - -
*        SW 4   BACKSPACE ONE RECORD (BSR)
*        SW 5   BACKSPACE ONE FILE (BSF)
*        SW 6   REWIND TO LOAD POINT (REW)
*        SW 7   CLEAR THE CONTROLLER (CLR)
*        - - - - - - - - - - - - - - - - -
*        SW 8   REWIND AND GO OFF LINE (RWO)
* 
*    ANY OF THE FIRST FOUR COMMANDS CAN BE COMBINED WITH ANY
*    OF THE NEXT FOUR, OR ANY OF THE NINE CAN BE USED ALONE.
* 
*        SW 12  10 MILL. SEC. DELAY 
*        SW 13  15 MILL. SEC. DELAY 
*        SW 14  30 MILL. SEC. DELAY 
* 
*    THESE TIMING DELAYS BETWEEN COMMANDS CAN BE USED 
*    AT ANY TIME. ONLY THE LEFTMOST SET SWITCH WILL BE
*    EXECUTED (I.E. SW 14 HAS PRIORITY OVER SW 13, ETC.). 
* 
*        SW 15  HALT AFTER COMMAND(S) HAS(HAVE) BEEN EXECUTED.
* 
 SPC 1
      ORG 1000B 
BEGIN LIA CMMD,C   LOAD THE STATUS AND CHECK
      AND B40      -FOR END-OF-TAPE BIT 
      SZA,RSS      IS IT SET ?
      JMP BENT1    NO, CONTINUE 
      LDA REW      YES, REWIND THE TAPE 
      JMP ENT17+1 
BENT1 LDB B377      ANY COMMAND OPTIONS 
      JSB SWRCK,I     ENTERED?
      RSS           YES 
      JMP BENT0     NO, TAKE NORMAL HALT IMMEDIATELY
      AND B17       YES, ISOLATE FIRST COMMAND FIELD
      SZA,RSS       ANY OF THESE OPTIONS WANTED?
      JMP ENT77     NO, GO CHECK FOR 2ND OPTION 
      LDB CMDS0     YES, GET POINTER TO COMMAND LIST
ENT72 SLA,RAR       TEST FOR THE COMMAND, SHIFT 
      JMP ENT17     OUTPUT THE COMMAND
      ISZ B         ADVANCE POINTER 
      JMP ENT72 
ENT17 LDA B,I       GET THE COMMAND 
      JSB ACMMD     OUTPUT THE CMMD 
      JSB RWDWT     TEST FOR REWINDING OPERATION
      JSB TIMER     TEST FOR TIMING OPTION
ENT77 LDB B760      ANY COMMANDS IN 
      JSB SWRCK,I     SECOND FIELD? 
      RSS           YES 
      JMP ENT16     NO
      ALF,ALF 
      ALF 
      LDB CMDS1     YES, SET 2ND CMMD STACK S.A.
ENT14 SLA,RAR       TEST FOR THE COMMAND, SHIFT 
      JMP ENT15     COMMAND FOUND, OUTPUT IT
      ISZ B         NOT THIS ONE, ADVANCE POINTER 
      JMP ENT14 
ENT15 LDA B,I       GET THE COMMAND 
      JSB ACMMD     OUTPUT CMMD 
      JSB RWDWT     TEST FOR THE REWINDING OPERATION
      JSB TIMER     TEST FOR TIMING OPTION
ENT16 LDB SW15
      JSB SWRCK,I  IS SWITCH 15 SET?
BENT0 HLT 77B       YES, NORMAL HALT
      JMP BEGIN     GO TO START 
 SPC 1
TIMER NOP           TIMING PERIOD ROUTINE 
      LDB B70K      ANY TIMING BITS SET?
      JSB SWRCK,I     * 
      RSS           YES 
      JMP TIMER,I   NO, USE FLAG
      LDB TMPRD     SET TIMING CONSTANT 
      RAL 
      RAL,SLA       THIS TIME ? 
      JMP ENT18     YES, START THE DELAY
      ISZ B         NO, TRY NEXT
      JMP *-3 
ENT18 LDA B,I       GET THE CONSTANT
      JSB TIMR,I
      JMP TIMER,I   RETURN +1 
 SPC 1
FLGWT NOP           THIS ROUTINE WILL WAIT APPROX.
      STA AREG      -ONE SECOND FOR THE COMMAND 
      STB BREG
      LDB N4000     4000 MS COUNT 
      STB TG
CIO2  SFC CMMD
      JMP ENT20     GOT THE FLAG
      ISZ TG        DO 1MS WAIT FOR 4000 TIMES
      RSS           NOT DONE YET! 
      JMP ENT19     ERROR ON COMMAND FLAG 
      LDA D1
      JSB TIMR,I    WAIT FOR 1 MS 
      JMP CIO2      GO BACK AND CHECK AGAIN 
ENT19 JSB STATS     GET THE STATUS & HOLD 
      JSB S11CK     SUPPRESS ERROR MESSAGE? 
      JMP ENT20-2 
      ISZ TNUMB     UPDATE TEST NUMBER
      JSB TSTNI,I   PRINT TEST NUMBER 
      JSB DECNO     UPDATE TEST NUMBER
      CLA,CLE 
      LDB .MS12 
      JSB FMTR,I   'CMMD FLAG WAIT TIMED OUT !' 
      JSB SKPL     CR/LF
      LDA CLR       CLEAR THE INTERFACE 
      JSB ACMMD 
ENT20 JSB STATS     GET THE STATUS AND HOLD 
      LDA AREG      RESTORE THE "A" REG 
      LDB BREG      RESTORE THE "B" REG 
      JMP FLGWT,I 
      SPC 2 
*      COMMAND OUT PUT TO MAG TAPE SUBROUTINE 
       SPC 1
OCMMD NOP          CMMD SHOULD BE IN THE "B" REG. 
CIO3  OTB CMMD
      JSB STATS     GET THE STATUS
      JSB REJBT     TEST REJECT BIT 
      SZA,RSS 
      JMP REJCT 
CIO4  STC CMMD,C
      JMP OCMMD,I 
       SPC 1
ACMMD NOP           COMMAND IN THE "A" REG
CIO5  OTA CMMD
CIO6  STC CMMD,C
      JMP ACMMD,I 
 SPC 1
STATS NOP 
CIO7  LIA CMMD
      AND STRIP     GET RID OF THE EXTRA BITS 
      STA STATU     HOLD THE STATUS TEMPORARILY 
      STA B            *
      JMP STATS,I 
       SPC 1
CLEAR NOP           CLEAR THE CONTROLLER
      LDA CLR       OUT PUT CLEAR CMMD
      JSB ACMMD 
      JSB FLGWT     WAIT FOR THE OPERATION TO FINISH
      JMP CLEAR,I 
 SPC 1
BSRWF NOP           BACKSPACE RECORD WITH FLAG LOOP 
      LDA BSR       BACK SPACE COMMAND
      JSB ACMMD     DO THE COMMAND
      JSB FLGWT     WAIT FOR THE CMMD FLAG
      JMP BSRWF,I 
 SPC 1
FWDSP NOP           FORWARD SPACE ONE RECORD
      LDB FSR 
      JSB OCMMD 
      JMP FWDSP,I 
      SKP 
*             **  REJECT ROUTINES  ** 
 SPC 1
*    CALL:  "A" - CONTAINS THE STATUS WORD
* 
*  RETURN:  "A" = 1 IF THE REJECT BIT IS NOT SET
*               = 0 IF THE REJECT BIT IS SET
 SPC 1
REJBT NOP           REJECT STATUS BIT TEST
      AND D8
      CPA D8
      CLA,RSS 
      CCA 
      JMP REJBT,I 
 SPC 1
REJCT JSB S11CK     SUPPRESS ERROR MESSAGE? 
      JMP REJC0     YES 
      CLA,CLE 
      LDB .MS01 
      JSB FMTR,I   'COMMAND WAS REJECTED' 
REJC0 CLB           THE EXPECTED STATUS IS CLEAR
      CCA 
      JSB TEST
*                        *
      JSB DECNO     DECREMENT THE TEST NUMBER 
      JSB S14CK     SUPPRESS ERROR HALT?
      JMP RECYL,I   YES,START DIAGNOSTIC OVER 
      JSB STATS     NO, GET STATUS
      LDA TNUMB     GET TEST NUMBER 
      HLT 55B       ERROR HALT INDICATOR
      JSB LOPTN     TEST FOR LOOP OPTION
      JMP RECYL,I   RESTART DIAGNOSTIC
 SPC 1
*            **  PROGRAM TEST ROUTINE  ** 
 SPC 1
TEST  NOP 
      STB BREG      HOLD THE EXPECTED STATUS
      ISZ TNUMB     INCREMENT THE TEST'S NUMBER 
      SZA,RSS       WAS THE TEST IN ERROR 
      JMP TEST2     NO, CHECK SWITCH 15 
      JSB S11CK     SUPPRESS ERROR MESSAGE? 
      JMP TEST1     IT'S SET, DON'T PRINT OR STORE
      JSB TTYCK     CHECK FOR TELEPRINTER 
      JMP TEST4     NO, STORE THE MESSAGE 
      JSB TSTNI,I   THERE IS A TTY, PRINT THE 
      LDB BREG      -ERROR MESSAGE
      JSB PRSTI,I   -THEM 
      LDA RDOP      CHECK THE READ OPERATION PRO- 
      SZA,RSS       -GRAM FLAG
      JMP TEST0     IT WASN'T SET, SPACE ONE LINE 
      JSB PCHRI,I   -AND PRINT BOTH WORDS 
      CLA           RESET THE READ OPERATION PRO- 
      STA RDOP      GRAM FLAG 
TEST0 JSB SKPL       SPACE ONE LINE 
TEST1 JSB S14CK     SUPPRESS ERROR HALT?
      JMP TEST2    YES CHECK SWITCH 15
      LDA CLR      NO, CLEAR THE INTERFACE
      JSB ACMMD 
      LDA TNUMB    LOAD TEST NUMBER 
      LDB STATU      AND STATUS 
      HLT 55B 
TEST2 JSB S15CK     CHECK SWITCH 15 
TEST3 JSB EOTTS     CHECK FOR THE END OF TAPE 
      NOP 
      JMP TEST,I    EXIT
TEST4 LDA ERBUF 
      CPA INBUF     ERROR BUFFER FULL?
      JMP TEST6     YES, CONTINUE 
      LDA CYCNT    GET CYCLE COUNT AND POS- 
      ALF,ALF       -ITION IT TO THE UPPER HALF OF
      LDB TNUMB     -WORD, WITH THE TEST'S NUMBER 
      IOR B         -IN THE LOWER HALF
      STA ERBUF,I   PUT IT IN THE 1ST WORD OF THE 
      ISZ ERBUF     ERROR MESSAGE & MOVE THE POINTER
      LDA STATU     GET THE TEST'S STATUS AND PUT IT
      STA ERBUF,I   -IN THE 2ND WORD OF THE ERROR 
      ISZ ERBUF     -MESSAGE AND MOVE THE POINTER 
      LDA RDOP      CHECK THE PROGRAM'S READ OPER-
      SZA           -ATION FLAG 
      JMP TEST5     IT WAS SET, STORE THE WORDS 
      CLA           NO READ, STORE ZEROS
      STA ERBUF,I   THE 3RD WORD
      ISZ ERBUF     MOVE THE POINTER
      STA ERBUF,I   THE 4TH WORD
      ISZ ERBUF     MOVE THE POINTER
      JMP TEST1     CHECK CONTROL SWITCHES
TEST5 LDA TBF05,I   GET THE WORD IN ERROR AND STORE 
      STA ERBUF,I   -IT IN THE 3RD WORD 
      ISZ ERBUF     MOVE THE POINTER
      LDA TBF04,I   GET THE GOOD WORD AND STORE IT
      STA ERBUF,I   -IN THE 4TH WORD
      ISZ ERBUF     MOVE THE POINTER
      JMP TEST1     CHECK CONTROL SWITCHES
TEST6 HLT 56B 
      JMP MDIAI,I   GO BACK TO THE START
      SKP 
*    TEST LOOPING ADDRESS ROUTINES
 SPC 1
SAVAD NOP           SAVE TEST STARTING ADDRESS
      ISZ LPCYC     LOOPING INDICATOR 
      JMP SAVAD,I 
      ISZ LPCYC 
      JMP SAVAD,I 
 SPC 1
LOPTN NOP           TEST SW 13 FOR LOOP OPTION
      LDB SW13
      JSB SWRCK,I  SWITCH 13 SET? 
      JMP ENT29     YES, GET THE S.A. 
      LDB LPCYC     NO, LOOK AT LOOPING INDICATOR 
      SZB           LOOPING BEFORE ?
      JMP LOPTN,I   NO, CONTINUE WITH NEXT TEST 
      JMP RECYL,I   YES, START DIAGNOSTIC OVER
ENT29 JSB EOTTS     TEST FOR THE END OF TAPE
      NOP 
      CLB 
      STB LPCYC     RESET LOOPING INDICATOR 
      JMP SAVAD,I 
 SPC 1
*             **  FORMAT ID. CHECK  **
 SPC 1
*    CALL:  "A" - CONTENTS NOT SIGNIFICANT
*           "B" -    "      "      "
* 
*  RETURN:  P+1 - THE RECORDING MODE IS A 9 TRACK FORMAT
*           P+2 - THE RECORDING MODE IS A 7 TRACK FORMAT EVEN 
*                 PARITY
*           P+3 - THE RECORDING MODE IS A 7 TRACK FORMAT ODD
*                 PARITY
*           "A" - CONTENTS FROM ENTRY ARE UNCHANGED 
*           "B" - CONTAINS THE CURRENT FORMAT'S ID. 
 SPC 1
FORID NOP 
      STA AREG0     SAVE THE CONTENTS OF "A" FOR EXIT 
      LDA ID        LOAD THE CURRENT FORMAT'S ID. 
      LDB ID         "    "     "       "      "
      AND D6        MASK OFF ALL BUT BITS 1&2 
      SZA,RSS       IS IT A 7 OR 9 TRACK FORMAT ? 
      JMP ENT48     IT'S 9 TRACK
      ISZ FORID     IT'S 7 TRACK, BUT WHICH ONE ? 
      LDA ID        LOAD THE CURRENT ID. AGAIN
      AND B7        MASK OFF ALL BUT BITS 0,1,& 2 
      RAR,RAR       POSITION BIT 2
      SLA,RSS       IS IT SET ? 
      JMP ENT48     NO, IT'S EVEN PARITY, EXIT P+2
      AND MSK2M     MASK OFF ORGINAL BIT 2 (0 NOW)
      SZA           IS IT EVEN OR ODD PARITY
      ISZ FORID     IT'S ODD PARITY, EXIT P+3 
ENT48 LDA AREG0     RESTORE THE CONTENTS OF "A" 
      JMP FORID,I 
      SKP 
*    BUFFER FILL ROUTINE    * 
 SPC 1
*  CALL:  "A" - CONTAINS THE NUMBER OF PATTERNS IN THE SEQUENCE 
*         "B" - CONTAINS THE S.A. OF THE PATTERN SEQUENCE 
 SPC 1
.FILL NOP 
      STA AREG      HOLD THE S.A. OF THE PATTERN
      STA TBF01 
      STB BREG      HOLD THE NUMBER OF PATTERNS IN
      STB CNT1      -THE SEQUENCE & SET ITS COUNT 
      LDA N1024     FILL THE CORE BUFFER
      STA COUNT     SET THE WORD COUNTER
      LDA INBUF     SET THE INPUT BUFFER'S S.A. 
MORE  LDB TBF01,I 
      STB A,I       START FILLING THE BUFFER
      ISZ TBF01 
      INA 
      ISZ CNT1      INCREMENT THE PATTERN COUNT 
      JMP .ENT0 
      LDB BREG      RESET THE PATTERN SEQUENCE
      STB CNT1      -COUNTER
      LDB AREG      RESET THE PATTERN SEQUENCE
      STB TBF01     -POINTER
.ENT0 ISZ COUNT     INCREMENT THE BUFFER WORD 
      JMP MORE      - COUNT 
      JMP .FILL,I 
 SPC 1
*    BUFFER CLEAR ROUTINE    *
 SPC 1
CLRBF NOP 
      STB TBF06     SAVE THE CONTENTS OF "B"
      STA TBF02     SAVE THE CONTENTS OF "A"
      LDA DHT55     HALT55'S
      LDB N1
      JSB .FILL     LOAD THE HALTS INTO THE BUFFER
      LDA TBF02     RESTORE THE "A" REGISTER
      LDB TBF06     RESTORE THE "B" REGISTER ALSO 
      JMP CLRBF,I 
 SKP
*    ANSI WORST CASE PATTERN GENERATION    *
 SPC 1
ANSI  NOP 
      STB BREG      SAVE THE CONTENTS OF "B"
      ISZ ITCNT     INCREMENT THE ITERATION COUNT 
      JMP ENT67     USE THE SAME PATTERN AGAIN
      ISZ THIRD     INCREMENT THE THIRD COUNT 
      JMP ENT68     GO TO THE SAME KEY WORD 
      LDA N3        RESET THE THIRD COUNTER 
      STA THIRD 
      ISZ KEYPT     ADVANCE THE KEY WORD POINTER
ENT68 LDA THIRD     GET THE THIRD COUNT 
      CMA           1'S COMPLEMENT
      SLA           IS IT THE 2ND THIRD ? 
      JMP ENT69     YES, GET THE ITERATION COUNT
      RAR,SLA       NO, IS IT THE 1ST THIRD?
      JMP ENT70     YES, GET THE ITERATION COUNT
      LDA KEYPT,I   LOAD THE KEY WORD & GET THE 
      RAR,RAR       -COUNT
      RAR 
ENT71 LDB A         HOLD THE WORD 
      AND D3        GET THE ITERATION COUNT 
      CMA 
      STA ITCNT     SET THE ITERATION COUNTER 
      LDA B         SET UP TO GET THE PATTERN 
      ALF,RAR       -CODE 
      AND B7
      LDB ANPAT     GET THE ANSI PATTERN BUFFER'S 
      ADB A         -S.A. & SELECT THE PATTERN WORD 
      LDA B,I       GET THE PATTERN WORD
      STA ANBUF     HOLD IT FOR THE NEXT TIME, MAYBE
      JMP ENT81     CONTINUE
ENT69 LDA KEYPT,I   LOAD THE KEY WORD AND GET THE 
      ALF,ALF       -COUNT
      JMP ENT71     GO GET THE ITERATION COUNT
ENT70 LDA KEYPT,I   LOAD THE KEY WORD AND GET 
      ALF,RAR       -COUNT
      JMP ENT71     GO GET THE ITERATION COUNT
ENT67 LDA ANBUF     USE THE SAME PATTERN WORD AGAIN 
      LDB KEYPT,I   LOAD THE KEY WORD AND CHECK FOR 
      SSB,RSS       -THE LAST WORD INDICATOR
      JMP ENT81     CONTINUE
      LDB THIRD     LOAD THE COUNT FOR THE KEY WORD 
      CMB           -PACK 
      SLB,RSS       IS THE COUNT = 1 ?
      JMP ENT81     NO, CONTINUE
      LDB ITCNT     GET THE ITERATION COUNT AND 
      CPB N1        -CHECK IT FOR THE LAST ONE
      RSS 
      JMP ENT81     IT WASN'T, CONTINUE 
      LDB .KEYP     RESET THE KEY WORD POINTER
      STB KEYPT 
      LDB N3        RESET THE THIRD COUNTER 
      STB THIRD 
      LDB N5        PRESET THE ITERATION COUNTER
      STB ITCNT 
      CCB           PRESET THE FIRST PATTERN WORD 
      STB ANBUF 
ENT81 LDB BREG      RESTORE "B" 
      JMP ANSI,I
 SPC 1
*             **  RANDOM DATA AND ANSI PATTERN DATA COMPARE  ** 
 SPC 1
WDCOM NOP 
      LDA TBF10    SET POINTER FOR PCHAR
      STA TBF04 
      LDA BUFAD     SET THE BUFFER'S S.A. 
      STA TBF05 
      LDA WDCNT     SET THE WORD COUNT
      STA CNT11 
      STA RDOP      SET THE READ OPERATION FLAG 
WENT0 NOP           GET THE WORD AND COMPARE
      LDB FLAG7     CHECK THE PROGRAM'S FORMAT FLAG 
      SZB,RSS       IS IT SET ? 
      JMP WENT2     NO, IT'S 9 TRACK DATA 
      AND MASK7     YES, IT'S 7 TRACK DATA
      SLB,RSS       WHICH 7 TRACK PARITY ?
      JMP WENT2     IT'S ODD PARITY 
      STA B         HOLD THE CONTENTS OF "A"
      AND MSKT8     MASK OFF THE 8 LOWER BITS 
      SZA,RSS       ARE ALL BITS IN THE BYTE ZERO ? 
      JMP WENT3     YES, ADD THE DATA PAD 
      LDA B         RESTORE THE CONTENTS OF "A" 
      AND B377      MASK OFF THE 8 HIGHER BITS
      SZA,RSS       IS THIS BYTE ZERO ? 
      JMP WENT3     YES 
      LDA B         RESTORE THE CONTENTS OF "A" 
      JMP WENT2     NO
WENT3 LDA B         RESTORE THE CONTENTS OF "A" 
      IOR PADAT     ADD THE BIT PAD 
WENT2 CPA TBF05,I 
      JMP WENT1     IT COMPARES, CONTINUE 
      STA TBF10,I  SAVE WORD IN ERROR 
      CCA 
      CLB           THE EXPECTED STATUS IS CLEAR
      JSB TEST
*                        *
      ISZ CNT11     INCREMENT THE WORD COUNTER
      RSS 
      JMP WDCOM,I 
ENT74 NOP           CYCLE THE ROUTINE 
      ISZ CNT11 
      JMP *-2 
      JMP WDCOM,I 
WENT1 ISZ TBF05     ADVANCE THE BUFFER'S POINTER
      ISZ CNT11     INCREMENT THE WORD COUNTER
      JMP WENT0     COMPARE THE NEXT WORDS
      CLA           RESET THE READ OPERATION FLAG 
      STA RDOP
      JSB TEST
      JMP WDCOM,I 
 SKP
*           **  PATTERN - DATA COMPARE ROUTINE  **
 SPC 1
*    CALL:  "A" - CONTAINS THE S.A. OF THE DATA PATTERN SEQUENCE
*           "B" - CONTAINS THE NUMBER OF WORDS IN THE SEQUENCE
* 
*  RETURN:  "A" - CONTENTS ARE LOST 
*           "B" -    "      "   " 
PATCM NOP 
      STA AREG      THE S.A. OF THE PATTERN 
      STA TBF04 
      STB BREG      THE # OF WORDS IN THE PAT. SEQ. 
      STB CNT1      SET THE PATTERN SEQUENCE COUNT
      LDB BUFAD     SET THE BUFFER'S S.A. 
      STB TBF05 
      LDA WDCNT     SET THE WORD COUNT
      STA CNT11 
      STA RDOP      SET THE READ OPERATION'S FLAG 
ENT11 LDA TBF05,I   GET THE INPUT BUFFER WORD AND 
      LDB FLAG7     CHECK THE PROGRAM'S FORMAT FLAG 
      SZB,RSS       IS IT SET ? 
      JMP PENT0     NO, IT'S 9 TRACK DATA 
      STA TBF08     IT'S 7 TRACK, HOLD "A"
      LDA DEFLG     LOAD THE PROGRAM'S FLAG 
      SZA,RSS       IS THIS THE "DE" TEST ? 
      JMP ENP01     NO
      LDA TBF04,I   LOAD THE PATTERN WORD 
      AND MASK7     STRIP THE TOP 2 BITS OFF
      JMP ENP02 
ENP01 LDA TBF04,I   LOAD THE PATTERN WORD 
      AND MASK7     MASK OFF THE EXTRA BITS 
      SLB,RSS       WHICH 7 TRACK PARITY
      JMP PENT2      IT'S ODD PARITY
ENP02 STA B         HOLD THE CONTENTS OF "A"
      AND MSKT8     MASK OFF THE 8 LOWER BITS 
      SZA,RSS       ARE ALL BITS IN THE BYTE ZERO ? 
      JMP PENT3     YES, ADD THE BIT PAD
      LDA B         RESTORE THE CONTENTS OF "A" 
      AND B377      MASK OFF THE 8 HIGHER BITS
      SZA,RSS       IS THIS BYTE ZERO ? 
      JMP PENT3     YES 
      LDA B         RESTORE THE CONTENTS OF "A" 
      JMP PENT2     NO
PENT3 LDA B         RESTORE THE CONTENTS OF "A" 
      IOR PADAT     ADD THE DATA BIT PAD
PENT2 CPA TBF08     COMPARE THE TWO WORDS 
      JMP ENT08     THEY COMPARE
      JMP PENT1     NON-COMPARE 
PENT0 CPA TBF04,I   COMPARE THE DATA TO THE PATTERN 
      JMP ENT08     IT COMPARES, CONTINUE 
PENT1 CCA           IT DIDN'T COMPARE 
      LDB ODD       CHECK THE ODD BYTE INDICATOR
      SZB,RSS 
      JMP ENT79     IT'S NOT SET
      LDB B4000     SET THE EXPECTED STATUS AS "OB" 
      RSS 
ENT79 CLB           THE EXPECTED STATUS IS CLEAR
      JSB TEST
*                        *
      JMP PATCM,I   -THE LAST ONE IN THE BUFFER 
ENT08 ISZ CNT1      INCREMENT THE PATTERN SEQ. COUNT
      JMP ENT10 
      LDA AREG      RESET THE PATTERN BUFFER'S
      STA TBF04     -POINTER
      LDB BREG      RESET THE PATTERN SEQUENCE COUNTER
      STB CNT1
      RSS 
ENT10 ISZ TBF04     ADVANCE THE PATTERN POINTER 
      ISZ TBF05     ADVANCE THE BUFFER'S POINTER
      ISZ CNT11 
      JMP ENT11     GO COMPARE THE NEXT WORDS 
      CLA           RESET THE READ OPERATION'S FLAG 
      STA RDOP
      JSB TEST
      JMP PATCM,I 
* 
*              **  ERROR BUFFER CLEAR ROUTINE  ** 
* 
CLRER NOP 
      CLA           CLEAR A REG.
      LDB ERRBF     LOAD B WITH ERROR BUFFER LOC. 
CLRE1 EQU * 
      STA B,I       STORE A ZERO IN ERROR BUFFER
      ISZ B         INCREMENT ERROR BUFFER POINTER
      CPB INITI     FINISHED? 
      JMP CLRE2     YES- EXIT 
      JMP CLRE1     NO-GO ZERO OUT NEXT LOCATION
CLRE2 EQU * 
      JMP CLRER,I 
                                                                                                                  