      JSB READ
      LDA PAT2
      JSB READ
      JMP RPAT1 
      SPC 2 
* THE READ SUBROUTINE IS ENTERED WITH THE 
* DATA PATTERN TO BE COMPARED AGAINST IN THE
* A-REG.  THE DATA IS READ FROM THE ADDRESS 
* STORED IN THE ADDRESS POINTER AND COMPARED. 
* THE ADDRESS POINTER IS COMPARED WITH THE
* UPPER BOUND AND IF IT COMPARES THE PATTERN SHIFT
* ROUTINE IS ENTERED.  OTHERWISE IT IS TESTED 
* FOR CHANGE OF PATTERN AND THE RETURN ADDRESS
* IS MODIFIED IF A CHANGE IS NECESSARY. 
      SPC 2 
READ  NOP 
      STA PPAT
      LDB ADDRS,I 
      CPA B         DOES DATA COMPARE?
      RSS 
      JMP ERROR     NO ,GO TO ERROR ROUTINE 
      CMA           YES, COMPLEMENT AND RETRY.
      STA ADDRS,I 
      LDB ADDRS,I 
      CPA B         DOES DATA COMPARE?
      RSS 
      JMP ERROR     NO GO TO ERROR ROUTINE. 
      CMA 
      STA ADDRS,I   RESTORE MEMORY CELL.
      JMP *+4 
      SPC 2 
* ERROR ROUTINE CAUSES HALT 107021 WITH BAD 
* DATA IN THE B-REG AND GOOD DATA IN THE
* A-REG.  PUSH RUN AND HALT 107022 OCCURS 
* WITH ADDRESS IN THE A-REG AND BAD DATA
      SKP 
* IN THE B-REG. 
ERROR OCT 107021
      LDA ADDRS 
E322  OCT 107022
      LDA ADDRS 
      CPA UBOU      TEST FOR UPPER BOUND
      JMP SPAT      GO SHIFT THE PATTERN
      INA 
      STA ADDRS     MODIFY THE ADDRESS POINTER
      AND XXMSK 
      SZA,RSS       END OF 32 BLOCK?
      JMP READ,I     YES,CHANGE PATTERNS. 
      LDA PPAT
      JMP READ+2
      SPC 2 
* SHIFT PATTERN ROUTINE SHIFTS EACH 
* PATTERN BY ONE BIT AND THEN RE-ENTERS 
* THE WRITE ROUTINE IF THE BIT TESTER 
* DOES NOT INDICATE 16 SHIFTS HAVE BEEN 
* MADE.  IF IT DOES SO INDICATE, THE
* PATTERN SWITCH ROUTINE IS ENTERED.
      SPC 2 
SPAT  LDA PAT1
      RAL 
      STA PAT1      ROTATE PATTERN ONE
      LDA PAT2
      RAL 
      STA PAT2      ROTATE PATTERN TWO
      LDA BITPT 
      RAL,SLA 
      JMP SWPAT      16 SHIFTS HAVE BEEN MADE 
      NOP 
      STA BITPT 
      CAX 
      JMP BEGW      RE-ENTER WRITE ROUTINE. 
      SKP 
* THE SWITCH PATTERN ROUTINE DECIDES
* IF ANOTHER PASS IS TO BE MADE.  IF SO 
* IT SWITCHES PATTERN ONE WITH PATTERN
* AND BEGINS AGAIN. 
      SPC 2 
SWPAT LDA PAT1
      LDB PAT2
      STA PAT2
      STB PAT1      SWITCH IS MADE. 
      ISZ MCNT
      JMP W1+6
      JMP JACK
      SPC 3 
BITPT OCT 1 
ADDRS BSS 1 
PAT1  OCT 1 
PAT2  OCT 177776
MCNT  BSS 1 
MTIME OCT 177776
IPAT1 OCT 1 
IPAT2 OCT 177776
XXMSK OCT 77
PPAT  BSS 1 
LBOU  OCT 20000 
UBOU OCT 77777
      HED ENDIT 
FWAA  EQU * 
      ORG 20000B
USSA1 EQU * 
      NOP 
      ORG 22000B
SSSA1 EQU * 
      NOP 
      END 
                                                                                                                                