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