SKP ORG 1775B CFCMP CLA CLEAR S-REG. OTA SW H074 HLT 74B CONFIGURATION COMPLETE CLC INTP,C TURN I/O SYSTEM OFF CPB FPMC DID HE SET FOR FRONT PANNEL? JMP WCS21 LDA MEMO CHECK IF ONLY 4K OF MEMORY AND B70K SZA ?? JMP EXCS GREATER SO DO DIAGNOSTIC LDB FPMC GET MACROINSTRUCTION CLA DO MODULE 0 LDY ALPT0 GET TEST PATTERN LDX ALPT1 AND BACKGROUND H000 HLT 0B WAIT FOR OPERATOR WCS21 STF WCS TURN ON WCS JMP 1 EXECUTE FRONT PANNEL ROUTINE EXCS CLA CLEAR PASS STA EOLC COUNT LDA STDA SET STANDARD RUN STA SINA LDB SW10 CHECK TO SUPPRESS HEADER MESSAGE JSB SWRT JMP *+4 YES LDA HM00C NO OUTPUT HEADER MESSAGE LDB HM00P JSB CNSLO,I LDB SW9 CHECK FOR USER SELECTION REQ JSB SWRT JMP USR IT'S USERS CHOICE NUSR LDA STDA GET STANDARD TEST RUN CLB AND MEMORY BLOCK JMP EXC * USR JSB SWDB DEBOUNCE S-REG. LIA SW GET S-REGISTER AND SWM9 MASK OUT BIT 9 OTA SW UPDATE S-REGISTER LDA SINA RETRIEVE PREVIOUS RUN LDB USADD AND USER MEMORY BLOCK H075 HLT 75B WAIT FOR USER INPUT SKP EXC STA UINA SAVE STB USADD USER STA SINA INPUT LDA USADD CHECK UPER BOUND IS GREATER AND B377 STA B LDA USADD ALF,ALF AND B377 CMB,INB SZA,RSS JMP *+4 ADA B SSA IS IT? JMP USR NO ASK AGAIN CCA SET TEST NUMBER STA TSTN =-1 CLA STA TSTA CLEAR TEST RUN FLAG EXCL LDA UINA RESTORE A REG. RAR ROTATE FIRST TEST BIT STA UINA SAVE POSITIONS ISZ TSTN MOVE TEST UP ONE NOP EXCL1 LDA TSTN ADA TSTP GET IT'S LDA A,I ADDRESS CPA BM1 IS IT END OF LIST JMP EOL YES LDB UINA SSB,RSS SHOULD IT BE RUN? JMP EXCL NO STA TSTA YES - SAVE TEST ADDRESS CLA CLEAR PARITY ERROR STA PERRA STA G.R.F CLEAR GAL READ FLAG STA SFTER CLEAR SOFT ERROR FLAG STF 5B TURN ON PARITY ERROR LOGIC JSB TSTA,I GO DO TEST SKP LDA LWAA MOVE CONFIG BACK AND B7777 LDB LWAA TO LAST MEMORY LOCATION MVW MCCT DO IT LDA TSTN DISPLAY TEST NUMBER IF HALTED LDB SW15 CHECK FOR HALT AT END OF TEST JSB SWRT RSS JMP *+3 JSB SWDB DEBOUNCE S-REG. H076 HLT 76B YES WAIT FOR OPERATOR LDB SW9 CHECK FOR ABORT JSB SWRT JMP USR YES LDB SW13 CHECK FOR LOOP ON ROUTINE JSB SWRT JMP EXCL1 YES - LOOP JMP EXCL CONTINUE EOL LDA TSTA CHECK IF ANY TESTS WERE RUN SZA,RSS ? JMP NUSR NO SO PICK UP STANDARD RUN ISZ EOLC UP DATE PASS COUNT CLE LDA EOLC CONVERT PASS COUNT FOR DISPLAY LDB HM77X JSB O2AS,I LDB SW10 CHECK TO SKIP OUTPUT OF PASS COUNT JSB SWRT JMP *+4 YES LDA D21 LDB HM77P JSB CNSLO,I LDB SW12 CHECK FOR LOOP ON DIAG. JSB SWRT JMP H077+1 YES LDA EOLC JSB SWDB DEBOUNCE S-REG. H077 HLT 77B NO WAIT AND DISPLAY PASS COUNT LDA SINA RESTORE ORIGINAL LDB USADD PROGRAM JMP EXC DO IT ALL AGAIN * HM77X DEF HM77+5 HM77P DEF HM77 HM77 ASC 12,H077 PASS XXXXXX * HM00C DEC 42 HM00P DEF HM00 HM00 ASC 21,MICROCODED SEMICONDUCTOR MEMORY DIAGNOSTIC SKP * MEMORY ADDRESS TEST (SOFTWARE) * TST00 EQU * ADDPT NOP CLA FIRST TIME THROUGH JSB TBLK GET TEST AREA JMP ADDPT,I DONE ALL OF MEMORY EXIT LDA LOADD GET STARTING ADDRESS CAX PUT IT IN X-REG. AND B7777 USE ONLY 4K MODULE ADDRESS LDB A ADD00 SBX 0 PUT ADDRESS IN ADDRESS LOCATION CXA CPA HIADD IS THIS THE LAST ADDRESS? JMP *+4 YES - GO VERIFY INB MOVE TO NEXT LOCATION ISX JMP ADD00 AND DO IT LDA LOADD GET LOWER LIMIT CAX PUT IT IN X-REG. AND B7777 CHECK ONLY 4K MODULE ADDRESS LDB A ADD01 LAX 0 GET CONTENTS STB BG SAVE EXPECTED CPA B DID ADDRESS STORE? JMP ADD02 YES JSB HLTS REPORT ERROR DEF EM10 E010 HLT 10B ADD02 LIA SW CHECK BIT 9 ALF,ALF RAR,SLA JMP .USR,I ABORT TEST CXA CPA HIADD END OF CHECK? JMP *+4 YES INB NO - MOVE TO NEXT LOCATION ISX JMP ADD01 SKP * MEMORY PATTERN TEST (SOFTWARE) * LDA LOADD GET STARTING ADDRESS CAX PUT IT IN X-REG. LDB ALPT0 GET 052525 STB TMP SAVE THE PATTERN PAT00 SBX 0 PUT IT IN LOCATION CMB CXA PUT ADDRESS IN A REG CPA HIADD DONE 4K BLOCK? JMP *+3 YES - VERIFY IT ISX JMP PAT00 NO DO NEXT LOCATION LDA LOADD RESET TO STARTING OF BLOCK CAX PUT IT IN X-REG. LDB TMP GET ORIGINAL PATTERN PAT01 LAX 0 GET CONTENTS STB BG SAVE EXPECTED CPA B IS THIS PATTERN OK? JMP PAT02 YES JSB HLTS NOW REPORT ERROR DEF EM10 EO10 HLT 10B PAT02 LIA SW CHECK BIT 9 ALF,ALF RAR,SLA JMP .USR,I ABORT TEST CMB REVERSE PATTERN CXA PUT ADDRESS IN A CPA HIADD DONE ALL OF 4K BLOCK? JMP *+3 ISX NO MOVE TO NEXT LOCATION JMP PAT01 AND DO IT LDB TMP YES - GET ORIGINAL PATTERN CPB ALPT0 DONE SECOND PATTERN JMP *+3 YES CCA CALL FOR NEXT BLOCK JMP ADDPT+2 CMB REVERSE PATTERN LDA LOADD RESET LOW ADDRESS CAX PUT IT IN X-REG. JMP PAT00-1 DO THE OPPSITE PATTERN * * EM10 ASC 10,E010 ADDR.PAT ERROR OCT -1 SKP * GALLOPING READ RECOVERY * TST01 EQU * G.R01 NOP LDA ALPT1 LDB ALPT0 GET 052525 JSB G.R EXECUTE GAL.READ JMP G.R01,I RETURN * TST02 EQU * G.R02 NOP LDA ALPT0 LDB ALPT1 GET 125252 JSB G.R EXECUTE GAL.READ JMP G.R02,I RETURN * TST03 EQU * G.R03 NOP LDA B3 LDB BM2 GET 177776 FOR PARITY CHIP JSB G.R EXECUTE GAL.READ JMP G.R03,I RETURN * TST04 EQU * G.R04 NOP LDA BM2 LDB B3 GET 000003 FOR PARITY CHIP JSB G.R EXECUTE GAL.READ JMP G.R04,I RETURN SKP G.R NOP STA TP SAVE TEST PATTERN STB BG AND BACKGROUND CLA FIRST TIME THROUGH JSB TBLK GET TEST AREA JMP G.R,I DONE ALL OF MEMORY JSB TSTR GO TO MACRO EXECUTION ROUTINE OCT 105622 EXECUTE WRT.READ DEF EM11 E011 HLT 11B WRITE.READ ERROR JSB TSTR GO TO MACRO EXECUTION ROUTINE OCT 105623 EXECUTE READ DEF EM12 E012 HLT 12B ERROR HALT CODE LDA D32 SET GAL.READ FLAG FOR ERROR MESSAGE STA G.R.F JSB TSTR GO TO MACRO ECECUTION ROUTINE OCT 105624 EXECUTE GAL.READ DEF EM13 E013 HLT 13B GAL.READ ERROR HALT CLA CLEAR GAL.READ FLAG STA G.R.F JSB TSTR GO TO MACRO EXECUTION ROUTINE OCT 105622 EXECUTE WRT.READ TO LOAD MEMORY DEF EM14 E014 HLT 14B WRITE.READ ERROR JSB TSTR GO TO MACRO EXECUTION ROUTINE OCT 105625 EXECUTE REFRESH DEF *-* E015 HLT 15B ERROR HALT CODE SHOULD NEVER OCCUR JSB TSTR GO TO MACRO ECECUTION ROUTINE OCT 105623 EXECUTE READ TO CHECK MEMORY DEF EM16 E016 HLT 16B REFRESH ERROR HALT CCA JMP G.R+4 * * EM11 ASC 10,E011 WRT.READ ERROR OCT -1 EM12 ASC 10,E012 READ ERROR OCT -1 EM13 ASC 10,E013 GAL.READ ERROR OCT -1 EM14 ASC 10,E014 WRT.READ ERROR OCT -1 EM16 ASC 10,E016 READ ERROR OCT -1 SKP * MODULE 0 TEST (FIRST 4K) * TST05 EQU * .4K NOP LDA USADD CHECK IF IT'S USER SELECTION SZA JMP .4K,I YES - EXIT THIS TEST LDA B2 MOVE PROGRAM TO SECOND 4K LDB B10K ADB B2 MVW B10K LDA B2 CHECK MOVE LDB B10K ADB B2 CMW B10K LDA .4KPE STA 3B LIA SW UPDATE S-REG. AND SWMM JMP *+1,I DEF *+1+10000B GO TO SECOND 4K MODULE SKP * ADDRESS TEST * OTA SW LDA .4KJX SET RESTART AT 10000 LDB .10K PUT AT 10000 STA B,I INB LDA .4KJD SET LINK STA B,I LDA .6 GET STARTING ADDRESS CAX PUT IT IN X-REG. LDB .6 AD4K0 SBX 0 PUT ADDRESS IN ADDRESS LOCATION CPB .7777 IS THIS THE LAST ADDRESS? JMP *+4 YES - GO VERIFY INB MOVE TO NEXT LOCATION ISX JMP AD4K0 AND DO IT LDA .6 GET LOWER LIMIT CAX PUT IT IN X-REG. LDB .6 AD4K1 LAX 0 GET CONTENTS CPA B DID ADDRESS STORE? JMP *+2 YES E020 HLT 20B NO TELL OPERATOR LIA SW CHECK BIT 9 ALF,ALF RAL,SLA JMP .4KEX ABORT TEST CPB .7777 END OF CHECK? JMP *+4 YES INB NO - MOVE TO NEXT LOCATION ISX JMP AD4K1 SKP * PATTERN TEST * * _ LDA .6 GET STARTING ADDRESS CAX PUT IT IN X-REG. LDB .ALP0 GET 052525 STB .SAVA SAVE THE PATTERN PT4K0 SBX 0 PUT IT IN LOCATION CMB CXA PUT ADDRESS IN A REG CPA .7777 DONE 4K BLOCK? JMP *+3 YES - VERIFY IT ISX JMP PT4K0 NO DO NEXT LOCATION LDA .6 RESET TO STARTING OF BLOCK CAX PUT IT IN X-REG. LDB .SAVA GET ORIGINAL PATTERN PT4K1 LAX 0 GET CONTENTS CPA B IS THIS PATTERN OK? JMP *+2 YES EO20 HLT 20B NO TELL OPERATOR LIA SW CHECK BIT 9 ALF,ALF RAL,SLA JMP .4KEX ABORT TEST CMB REVERSE PATTERN CXA PUT ADDRESS IN A CPA .7777 DONE ALL OF 4K BLOCK? JMP *+3 ISX NO MOVE TO NEXT LOCATION JMP PT4K1 AND DO IT LDB .SAVA YES - GET ORIGINAL PATTERN CPB .ALP1 DONE SECOND PATTERN JMP *+5 YES CMB REVERSE PATTERN LDA .6 RESET LOW ADDRESS CAX PUT IT IN X-REG. JMP PT4K0-1 DO THE OPPSITE PATTERN SKP * MICROCODED GALLOPING READ RECOVERY AND REFRESH * LDA .ALP1 LDB .ALP0 JSB .4KR DO 125252 LDA .ALP0 LDB .ALP1 JSB .4KR DO 052525 LDA .3 LDB .M2 JSB .4KR DO 000003 LDA .M2 LDB .3 JSB .4KR DO 177775 * .4KEX LDA .10K MOVE PROGRAM BACK ADA .2 LDB .2 MVW .10K+10000B JMP .4K,I RETURN TO EXEC * .4KR NOP STA .TP SAVE TEST PATTERN STB .BG AND BACKGROUND JSB T4KR GO TO MACRO EXECUTION ROUTINE OCT 105622 EXECUTE WRT.READ E021 HLT 21B WRITE.READ ERROR JSB T4KR GO TO MACRO EXECUTION ROUTINE OCT 105623 EXECUTE READ E022 HLT 22B ERROR HALT CODE JSB T4KR GO TO MACRO ECECUTION ROUTINE OCT 105624 EXECUTE GAL.READ E023 HLT 23B GAL.READ ERROR HALT JSB T4KR GO TO MACRO EXECUTION ROUTINE OCT 105622 EXECUTE WRT.READ TO LOAD MEMORY E024 HLT 24B WRITE.READ ERROR JSB T4KR GO TO MACRO EXECUTION ROUTINE OCT 105625 EXECUTE REFRESH E025 HLT 25B ERROR HALT CODE SHOULD NEVER OCCUR JSB T4KR GO TO MACRO ECECUTION ROUTINE OCT 105623 EXECUTE READ TO CHECK MEMORY E026 HLT 26B REFRESH ERROR HALT JMP .4KR,I RETURN * SKP T4KR NOP LDA T4KR,I GET MACRO INSTRUCTION TO BE EXECUTED STA MAC4K ISZ T4KR LDA T4KR,I GET HALT CODE STA T4KEX ISZ T4KR LDA .6 GET STARING ADDRESS CAX PUT IT IN X LDA .7777 AND ENDING ADDRESS CAY PUT IT IN Y LDA .TP TEST PATTERN IF APP LDB .BG AND BACKGROUND W.SSF STF WCS TURN ON WCS MAC4K NOP W.SCF CLF WCS TURN OFF WCS STA .SAVA SAVE ACTUAL DATA CXA PUT X REG IN TO A REG SSA IS THIS AN ERROR? JMP T4KER YES CYA PUT Y REG IN A REG SSA,RSS IS THIS OPERATOR INTERRUPT? JMP T4KR,I NO THEN COMPLETE T4KRN LIA SW ALF,ALF CHECK BIT 9 FOR ABORT RAR,SLA ? JMP .4KEX YES EXIT TEST CXA CLEAR BIT 15 IN X REG ELA,CLE,ERA CAX STA .SAVA CYA NOW DO THE Y REG ELA,CLE,ERA CAY CPA .7777 LAST ADDRESS? XOR .SAVA SZA,RSS JMP T4KR,I YES EXIT LDA MAC4K CHECH IF GAL READ REENTER CPA M4KGL ?? LDA M4KGR YES GET DIFFERENT MACRO STA MAC4K CPA M4KGR IS THIS A RETURN TO GAL.READ? RSS YES DONT UPDATE X REG ISX UPDATE X-REG. JMP MAC4K-1 CONTINUE EXECUTION * M4KGL OCT 105624 M4KGR OCT 105627 * T4KER LDA .SAVA RESTORE A REGISTER T4KEX NOP SET TO ERROR HALT JMP T4KRN CONTINUE SKP .2 OCT 2 .3 OCT 3 .6 OCT 6 .7777 OCT 7777 .M2 OCT -2 .10K OCT 10000 .4KPE OCT 102064 .ALP0 OCT 125252 .ALP1 OCT 052525 .SAVA NOP .TP NOP .BG NOP .4KJX OCT 126001 .4KJD DEF .4KEX+10000B