/PDP-8E ISZ TEST /COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. 01754 / /CONSTANTS AND VARIABLES *0 0 JMP 1 /PERIPHERAL INTERRUPT FRMLOC, 2 /ISZ TEST INSTRUCTION LOCATION LIMLO, 3 /LOW LIMIT TEST AREA 0 0 LIMHI, -7576 /HIGH LIMIT TEST AREA ASUC, SUC MSK7, 0007 /OCTAL CONVERSION MASK WORK, 0 /IR0 WORK1, 0 /IR1 M377, -377 NUM, 3607 /THE RANDOM NUMBER LOCATION THREE, 3 ISZ1, ISZ I TOLOC /MOVING ISZ JMP1, JMP BACK /TEST INSTRUCTION JMP2, JMP BAKBRN /GROUP. TOLOC, 0 /LOCATION TO BE ISZ'D PATRN, 0 /STARTING ISZ PATTERN BEFOR, 0 /FAILING PATTERN BEFORE FAILING ISZ AFTER, 0 /PREDICTED RESULTS OF EACH ISZ K4, 4 /SWITCH REGISTER MASKS K0400, 0400 K0200, 0200 K0100, 0100 NOTE, 0 /7'S=ERROR WITH NO SKIP PRINT, INF1-1 /0'S=ERROR WITH SKIP AERR1, ERR1 AERR2, ERR2 APDR, PDR ITADNM, TAD NUM ATFCLF, TFCLF /SR0(0)=HALT AFTER ERROR PRINTOUT /SR1(1)=NO PRINTOUTS /SR3(1) = HOLD FROM CONSTANT /SR4(1) = HOLD TO CONSTANT /SR5(1) = HOLD PATTERN CONSTANT /SR9(0) = DO ONE ISZ ONLY /SR11(1) = DO TEST PART 2 / / /PROGRAM START START, JMS I .+1 /ION PATCH /LAS AND THREE SZA CLA /SKIP IF PART 1 JMP I K0400 /GO TO PART 2 TAD ITADNM DCA RANUM+1 /CHECK FOR FIXED PATTERN CHEK1, LAS AND K0100 SZA JMP CHEK2 /SELECT THE PATTERN SELPAT, JMS RANUM DCA PATRN /CHECK FOR FIXED TO CHEK2, LAS AND K0200 SZA CLA JMP CHEKS /SELECT THE TO LOCATION SELTO, JMS RANUM DCA TOLOC TAD TOLOC JMS LIMTST /CHECK FOR FIXED FROM CHEKS, LAS AND K0400 SZA CLA JMP PLCINT /SELECT THE FROM LOCATION SELFRM, JMS RANUM DCA FRMLOC TAD FRMLOC JMS LIMTST /PLACE FROM INSTRUCTIONS PLCINT, CLA CMA TAD FRMLOC DCA WORK TAD ISZ1 DCA I WORK TAD JMP1 DCA I WORK TAD JMP2 DCA I WORK /DEPOSIT PATTERN IN TO LOCATION TAD PATRN DCA I TOLOC /STORE PREDICTED ISZ RESULT TAD PATRN DCA BEFOR LUP1, TAD BEFOR IAC DCA AFTER JMP I ASUC /RETURN NO SKIP CONDITION BACK, LAS RAL SPA CLA JMP LAS1 TAD I TOLOC CIA TAD AFTER SZA CLA JMP I AERR1 /ERROR IN ISZ OPERATION TAD I TOLOC SNA CLA JMP I AERR1 /ERROR IN ISZ SKIP DETECTION LAS1, LAS AND K4 SNA CLA /SKIP IF NOT ONE ISZ (SR9) JMP CHEK1 IAC TAD BEFOR JMP LUP1-1 /RETURN FOR SKIP CONDITION BAKBRN, LAS RAL SPA CLA JMP CHEK1 TAD I TOLOC SZA CLA /SKIP IF TO LOCATION OK JMP I AERR2 /ERROR IN ISZ LOCATION JMP CHEK1 /TEST HIGH-LOW LIMITS LIMTST, 0 SPA JMP .+5 TAD LIMLO SMA CLA JMP I LIMTST JMP RANUM+1 TAD LIMHI SMA CLA JMP RANUM+1 JMP I LIMTST /RANDOM NUMBER GENERATOR RANUM, 0 TAD NUM RAL CLL SZL TAD THREE DCA NUM TAD NUM /AC=NEW RANDOM NUMBER JMP I RANUM A1, SKPDAT A2, SKPDAT+1 K1000, 1000 KP, 0 *200 JMP START /ERROR ROUTINE 1 ERR1, TAD SKPDAT+6 DCA SKPDAT CMA DCA NOTE JMP KPGO /ERROR ROUTINE 2 ERR2, TAD SKPDAT-1 DCA SKPDAT KPGO, TAD SKPDAT+7 DCA SKPDAT+1 TAD FRMLOC DCA WORK TAD A3 JMS SETUP TAD TOLOC DCA WORK TAD A4 JMS SETUP TAD PATRN DCA WORK TAD A5 JMS SETUP TAD BEFOR DCA WORK TAD A6 JMS SETUP TAD I TOLOC DCA WORK TAD A7 JMS SETUP /TTY PRINT ROUTINE TTY, IOF TAD PRINT DCA WORK TAD I WORK TLS TSF JMP .-1 TAD M377 SZA CLA JMP TTY+3 TCF ION LAS SMA CLA HLT /HALT AFTER ERROR (SR0) TAD NOTE SNA CLA JMP CHEK1 DCA NOTE JMP LAS1 /RETURN TO NO SKIP ROUTINE /ERROR PRINT OUT LINE 1 INF1, 306 /F FROM (INSTRUCTION LOCATION) 240 /SPACE INDATA, 0 /X LOCATION 0 /X 0 /X 0 /X 240 /SPACE 240 /SPACE 324 /T TO (OPERAND ADDRESS) 240 /SPACE ONDATA, 0 /X ADDRESS 0 /X 0 /X 0 /X 215 /CR 212 /LF 215 /CR 215 /CR /ERROR PRINT OUT LINE 2 317 /O OPERAND (STARTING COUNT) 240 /SPACE STDATA, 0 /X PATTERN 0 /X 0 /X 0 /X 240 /SPACE 240 /SPACE 306 /F FAILING COUNT 240 /SPACE FLDATA, 0 /X PATTERN BEFORE FAILING ISZ 0 /X 0 /X 0 /X 240 /SPACE 240 /SPACE 322 /R RESULT AFTER FAILURE 240 /SPACE RSDATA, 0 /X PATTERN AFTER FAILING ISZ 0 /X 0 /X 0 /X 240 /SPACE 240 /SPACE SKPDAT, 316 /N NO 323 /S SKIP 215 /CR 212 /LF 212 /LF 377 /RUBOUT 316 /N 323 /S SETUP, 0 DCA WORK1 TAD WORK RTL RTL JMS MORSU RTR RTR RTR JMS MORSU RTR RAR JMS MORSU JMS MORSU CLA JMP I SETUP MORSU, 0 AND MSK7 TAD TW6 DCA I WORK1 TAD WORK JMP I MORSU /PAGE 1 CONSTANTS A3, INDATA-1 A4, ONDATA-1 A5, STDATA-1 A6, FLDATA-1 A7, RSDATA-1 TW6, 0260 /PART 2 INITIALIZATION ROUTINE *400 TAD LIMLO CIA DCA FROM /LOW LIMIT TO FROM TAD LIMLO CMA DCA TO TAD A0 DCA PATCYC TAD INST1 DCA RANUM+1 JMP CHEK1 /GO TO PAGE 0 START /PATH DECISION ROUTINE PDR, TAD RANUM CIA TAD GFROM SNA CLA /SKIP IF NOT REQUESTING FROM JMP FRUT /GO TO TO ADDRESS ROUTINE TAD RANUM CIA TAD GTO SNA CLA /SKIP IF NOT REQUESTING TO JMP TORUT /GO TO ADDRESS ROUTINE JMP PRUT /GO TO PATTERN ROUTINE /SELECT PATTERN AND OTHER THINGS PRUT, TAD I PATCYC DCA PATT TAD PATT SNA /NO SKIP IF END OF PATTERN TABLE JMP .+6 /END PATTERN TABLE LOOK AROUND CLA IAC TAD PATCYC DCA PATCYC TAD PATT JMP I RANUM /RETURN, AC=NEW PATTERN / TAD AK7776 DCA PATCYC /RESTOR START ADDRESS OF PATT. TABLE IAC TAD TO DCA TO /INCREMENT TO TAD TO CIA TAD FROM SZA CLA /SKIP IF TO = FROM JMP .+4 TAD TO TAD THREE DCA TO /SKIP AROUND FROM TAD TO SMA JMP GOUT TAD LIMHI SPA CLA /SKIP IF END TEST AREA JMP GOUT CLA IAC TAD FROM DCA FROM /ADVANCE FROM TAD LIMLO CIA DCA TO /RESET TO ADDRESS TAD FROM TAD LIMHI SPA CLA JMP GOUT JMP 400 GOUT, CLA TAD PATT JMP I RANUM /SELECT TO ROUTINE TORUT, TAD TO JMP I RANUM /SELECT FROM ROUTINE FRUT, TAD FROM JMP I RANUM /PAGE 3 CONSTANTS GFROM, SELFRM+1 /STORED RETURN ADDRESS WHEN /RANDOM FROM IS REQUESTED GTO, SELTO+1 /STORED RETURN ADDRESS WHEN /RANDOM TO IS REQUESTED GPAT, SELPAT+1 /STORED RETURN ADDRESS WHEN /RANDOM PATTERN IS REQUESTED FROM, 0 /CURRENT FROM ADDRESS TO, 0 /CURRENT TO ADDRESS PATT, 0 /CURRENT PATTERN PATCYC, 0 /CURRENT PATTERN ADDRESS INST1, JMP I APDR K7776, 7776 7775 7773 7767 7757 7737 7677 7577 7377 6777 5777 3777 0001 0003 0007 0017 0037 0077 0177 0377 0777 1777 K3777, 3777 0 AK7776, K7776 A0, K3777+1 SUC, TAD CT IAC DCA CT TAD CT SZA CLA JMP I ATFCLF TAD KP TAD K1000 DCA KP TAD KP SZA CLA JMP I ATFCLF IOF TAD INF2+1 DCA I A1 TAD INF2+2 DCA I A2 TAD INF2 DCA WORK JMP I .+1 7602 INF2, 333 306 301 CT, 0 *600 /CHECK FOR TO=FROM CONFLICT TFCLF, TAD TOLOC CIA TAD FRMLOC SNA JMP CHEK2 IAC SNA JMP CHEK2 IAC SNA CLA JMP CHEK2 JMP I FRMLOC PATCH, 0 /RESTORE THEN GO AWAY DCA 0 TAD X DCA 1 TAD X1 DCA 2 TAD X2 DCA 3 TAD X3 DCA START TAD X4 DCA START+1 ION JMP I PATCH X, 7402 X1, 0 X2, 7157 X3, ION X4, LAS *7602 TAD I WORK TLS TSF JMP .-1 TAD M377 SZA CLA JMP .-6 JMP OVR *7617 OVR, TCF ION JMP I ATFCLF $