ASMB,A,B,L,C HED HP 21MX MEMORY DIAGNOSTIC (DSN 102104) ORG 0 OCT. 25, 1976 DATE CODE 1644 SUP * GENERAL OPERATING PROCEDURE * * A. IF MEMORY PROTECT IS PRESENT,THEN PLACE PARITY * ERROR/MEMORY PROTECT SWITCH A1S1 TO INT/IGNORE. IF * MEMORY PROTECT IS NOT PRESENT,THEN PLACE PARITY * ERROR/MEMORY PROTECT SWITCH A1S1 TO HALT. * * B. LOAD DIAGNOSTIC PROGRAM. * * C. LOAD SWITCH-REGISTER WITH DESIRED PROGRAM OPTIONS: * IF SET =: * 15 = HALT AT END OF EACH TEST SECTION. A=TEST #. * 14 = SUPPRESS ERROR HALTS. * 13 = LOOP ON LAST TEST SECTION. * 12 = LOOP ON DIAGNOSTIC. TESTS REQUIRING * OPERATOR INTERVENTION ARE SKIPPED. * 11 = RESERVED * 10 = RESERVED * 9 = GO TO USER SELECTION AT END OF PRESENT * TEST SECTION. * 8 = SUPPRESS OPERATOR INTERVENTION * 7 = RESERVED * 6 = RESERVED * 5 = STORE NONFATAL ERRORS ABOVE 8K IN ERROR * TABLE INSTEAD OF HALTING. * 4 = RESERVED * 3 = RESERVED * 2 = EXECUTE PROGRAM CHECK INSTEAD OF MAIN * PROGRAM. * 1 = RESERVED * 0 = ABORT CURRENT EXECUTION AND HALT TO ENTER * NEW MEMORY TEST LIMITS IN A & B OR LEAVE * A & B UNCHANGED TO KEEP CURRENT TEST * LIMITS. PRESS PRESET,RUN TO RESTART PASS. * * ****NOTE-CLEAR SWITCH-REGISTER WILL EXECUTE THE DEFAULT SET OF * TESTS (TST00 THRU TST10) HALTING ON ERRORS AND * THE END OF THE PASS. * * D. SET P-REGISTER TO 100. PRESS PRESET AND THEN RUN. * * E. RESTART-GO TO STEP C. * SKP * * PROGRAM CHECK PROCEDURE * * IF MEMORY FAILURES IN THE INITIALIZATION AREA WON'T * ALLOW EXECUTION OF THE MAIN PROGRAM,THEN FOLLOW THESE * STEPS TO RUN THE PROGRAM AREA CHECK ON ADDRESSES * 1000 TO 7777. * * A. RELOAD DIAGNOSTIC PROGRAM. * B. SET SWITCH-REGISTER BIT 2. * C. SET P-REGISTER TO 100. PRESS PRESET AND THEN RUN. * * ERROR TABLE * MODULE # ERROR TABLE LOCATIONS ERROR TABLE LOCATIONS * IN BASE FOR BASE MEMORY ONLY FOR BASE MEMORY + DMS * MEMORY** * 2** 1600-1604 1600-1623 * 3** 1624-1627 1624-1647 * 4** 1650-1653 1650-1673 * 5** 1674-1677 1674-1717 * 6** 1720-1723 1720-1743 * 7** 1744-1747 1744-1767 * * ERROR TABLE ENTRY FORMAT * * M ERROR ADDRESS(15 BIT IN BASE OR 10 BIT IN DMS) * M+1 DATA WRITTEN * M+2 DATA READ * M+3 ONES IF ERROR IS IN BASE MEMORY OR PAGE # IF IN DMS * M+4 NUMBER OF TIMES AN ERROR OCCURRED AT THIS ADDRESS * * ERROR TABLE SUMMARY * * BASE MEMORY ADDRESS CONTAINING THE NUMBER OF ERRORS * MODULE #** (MAXIMUM OF 4 PER MODULE) IN THE MODULE * 2** 1770 * 3** 1771 * 4** 1772 * 5** 1773 * 6** 1774 * 7** 1775 * * **NOTE-ERRORS MAY BE ENTERED IN ANY ORDER IF DMS IS PRESENT. * ****NOTE-IN SOME PHASES OF TESTING,THE PROGRAM OR SEGMENTS OF * THE PROGRAM ARE MOVED TO TEST THE PROGRAM AREA. THIS * MAY CAUSE DATA PATTERNS TO BE IN THE ERROR TABLE OR * LOCATION 126 AND THE PROGRAM TO NOT BE RESTARTABLE. * HED TRAP CELL HALTS AND INTERRUPT LINK FOR 5 ORG 2 OCT 106077 DEF PARCK INITIALLY ASSUME FATAL PE OCT 106077 JSB 3,I INITIALLY ASSUME MP IS PRESENT * * UNL * REP 72B * OCT 106077 TRAP CELL HALLTS * UNL REP 72B OCT 106077 TRAP CELL HALTS LST * CONFIGURATOR LINKAGE TABLE * * ****NOTE-THE CONFIGURATOR IS NOT USED IN THIS DIAGNOSTIC. * THE PROGRAM WILL NOT,HOWEVER,DESTROY THE CONFIGURATOR * IF ALREADY IN MEMORY. * A EQU 0 A-REGISTER INT EQU 0 INTERRUPT SYSTEM B EQU 1 B-REGISTER SWREG EQU 1 SWITCH-REGISTER MP EQU 5 MEMORY PROTECT/PARITY ERROR PAGE EQU 4000B * ORG 100B GO TO INITIALIZATION SECTION OR JMP05 JMP PJMP,I IF RESTART TO 2000 ORG 105B DEF PEND FIRST WORD AVAILABLE MEMORY BSS 1 LAST WORD AVAILABLE MEMORY ORG 126B OCT 102104 DIAGNOSTIC SERIAL NUMBER ORG 130B PJMP DEF INIT POINT TO INITIALIZATION FOR NOW HED PROGRAM CHECK * PERFORMS THE FOLLOWING TESTS ON ADDRESSES 1000 TO 7777: * * ONES AND ZEROS/MARCHING ONES AND ZEROS * ADDRESS PARITY * ADDRESS * CHECKERBOARD * * ASSUMES MEMORY PROTECT IS PRESENT. DESTROYS ANY PROGRAMS * RESIDING IN TEST AREA 1000 TO 7777(INCLUDING COMOD AND THE * CONFIGURATOR IF 4K MEMORY). * ALT LDA PAPAR POINT INTERRUPT TO 5 STA 3 INTO APAR LDA A1000 SET TEST STA ASADR LIMITS OF LDB A7777 1000 TO STB AEADR 7777 * MARCHING ONES AND ZEROS CLA,CLE TEST PATTERN OF STA ATPAT ZEROS.CLEAR E CCA BACKGROUND PATTERN STA ABPAT OF ONES LP306 JSB ABLOC WRITE TEST AREA TO DATA IN A LDB ASADR START AT 1000 LP305 STO SET READING FLAG CPA B,I BACKGROUND STILL THERE? RSS YES JMP AEROR NO.ERROR IN MODULE 0 CLO SET WRITING FLAG LDA ATPAT GET TEST PATTERN STA B,I WRITE IT CPA B,I READ AND CHECK IT RSS OK JMP AEROR ERROR IN MODULE 0 CPB AEADR DONE? JMP AL300 YES INB NO.BUMP POINTER LDA ABPAT GO BACK TO BACKGROUND JMP LP305 CONTINUE AL300 STO SET READING FLAG CPA B,I TEST PATTERN STILL THERE? RSS YES JMP AEROR NO.ERROR IN MODULE 0 CLO SET WRITING FLAG LDA ABPAT NOW USE BACKGROUND PATTERN STA B,I WRITE IT CPA B,I READ AND CHECK IT RSS OK JMP AEROR ERROR IN MODULE 0 CPB ASADR DONE? JMP AL301 YES.GO CHECK FOR OTHER PATTERNS ADB AM1 DECREMENT POINTER LDA ATPAT GO BACK TO TEST PATTERN JMP AL300 CONTINUE AL301 JSB ACKPT DO ANOTHER PATTERN? JMP LP306 YES SKP * ADDRESS PARITY TESTS * LP308 CLO SET WRITING FLAG LP309 LDB ASADR START AT 1000 LP313 LDA A.M16 SET COUNTER STA ATEMP =-16 DECIMAL STB A ADDRESS IN A CLE CLEAR BIT FLAG LP307 RAR,SLA ADDRESS BIT SET? CME YES.TOGGLE BIT FLAG ISZ ATEMP DONE? JMP LP307 NO SEZ EVEN # OF BITS? JMP AL305 NO.ODD # LDA ABPAT YES USE BACKGROUND PATTERN AL307 SOS WRITING? STA B,I YES CPA B,I NO.CHECK DATA RSS OK JMP AEROR ERROR IN MODULE 0 CPB AEADR DONE? JMP AL309 YES INB NO.BUMP POINTER JMP LP313 CONTINUE AL305 LDA ATPAT USE TEST JMP AL307 PATTERN AL309 SOC JUST FINISH WRITING? JMP AL308 NO.GO CHECK FOR MORE PATTERNS STO YES.GO BACK AND JMP LP309 READ THIS TIME AL308 JSB ACKPT DO ANOTHER PATTERN? JMP LP308 YES SKP * ADDRESS TESTS * LP312 CLO SET WRITING FLAG LP311 LDB ASADR START AT 1000 LP310 LDA ATPAT USE ADDRESS OR SZA COMPLEMENT ADDRESS? JMP AL311 COMPLEMENT ADDRESS LDA B USE ADDRESS JMP AL310 AL311 LDA B GET ADDRESS CMA COMPLEMENT IT AL310 SOS WRITING? STA B,I YES CPA B,I NO.CHECK DATA RSS OK JMP AEROR ERROR IN MODULE 0 CPB AEADR DONE? JMP AL312 YES INB NO.BUMP POINTER JMP LP310 CONTINUE AL312 SOC JUST FINISH WRITING? JMP AL313 NO.GO SEE IF DONE STO YES.GO BACK AND JMP LP311 READ THIS TIME AL313 LDA ATPAT DONE BOTH ADDRESS AND INA,SZA,RSS COMPLEMENT ADDRESS TESTS? JMP AL314 YES CCA NO.SET ATPAT TO USE STA ATPAT COMPLEMENT ADDRESS JMP LP312 GO BACK & DO COMPLEMENT ADDRESS AL314 STA ATPAT RESTORE TEST PATTERN TO ZEROS SKP * CHECKERBOARD TESTS * LDA PATBL POINT TO STA PTBL2 PATTERN TABLE LP318 LDA PTBL2,I GET PATTERN ENTRY STA APATT PUT IT IN PATTERN VALUE LP315 CLO SET WRITING FLAG LP314 LDB ASADR START AT 1000 LP319 STB A GET ADDRESS IN A AND APATT ARE EITHER OF THE SZA,RSS PATTERN BITS SET? JMP AL315 NO CPA APATT YES.ARE BOTH BITS SET? JMP AL315 YES LDA ATPAT NO.USE TEST JMP AL316 PATTERN AL315 LDA ABPAT USE BACKGROUND PATTERN AL316 SOS WRITING? STA B,I YES CPA B,I NO.CHECK DATA RSS OK JMP AEROR ERROR IN MODULE 0 CPB AEADR DONE? JMP AL317 YES INB NO.BUMP POINTER JMP LP319 CONTINUE AL317 SOC JUST FINISH WRITING? JMP AL318 NO.GO CHECK FOR MORE PATTERNS STO YES.GO BACK JMP LP314 AND READ DATA AL318 JSB ACKPT DO ANOTHER PATTERN? JMP LP315 YES ISZ PTBL2 ANY MORE ENTRIES LDB PTBL2,I IN THE PATTERN INB,SZB TABLE FOR VARIOUS VENDORS? JMP LP318 YES.GO BACK AND DO THAT PATTERN LIA SWREG IS BIT ALF,SLA 12 SET? JMP ALT YES.DO ANOTHER PASS RAR,SLA IS BIT 13 SET? JMP ALT YES.DO ANOTHER PASS H167 OCT 106067 END OF ALTERNATE TESTS JMP ALT DO ANOTHER PASS OF ALT TESTS HED ACKPT * * SETS UP BACKGROUND AND TEST PATTERNS IN ABPAT AND ATPAT * RESPECTIVELY,BASED ON THE DATA IN ABPAT. * * ENTRY VALUE OF ABPAT EXIT VALUES OF ABPAT,ATPAT & RETURN * * 177777 000000,177777,P+1 * 000000 000001,177777,P+1 * 000001 000003,177776,P+1 * 000003 177777,000000,P+2 * ACKPT NOP LDA ABPAT GET BACKGROUND IN A INA,SZA JUST DO A BACKGROUND OF ONES? JMP AL302 NO.MUST BE 0,1 OR 3 STA ABPAT YES.MAKE IT ZEROS CCA MAKE TEST STA ATPAT PATTERN ONES CLA EXIT WITH BACKGROUND JMP ACKPT,I IN A AL302 SLA,RSS JUST DO 000000? JMP AL303 NO.MUST BE 1 OR 3 STA ABPAT USE BACKGROUND=000001. TEST=1'S JMP ACKPT,I AL303 CPA AB4 JUST DO 3? JMP AL304 YES CCA NO.TEST ADA AM1 PATTERN STA ATPAT =177776 LDA AB3 BACKGROUND STA ABPAT =000003 JMP ACKPT,I AL304 CLA ALL DONE.SET STA ATPAT TEST=000000 CCA AND BACKGROUND STA ABPAT =177777 ISZ ACKPT RETURN JMP ACKPT,I P+2 HED ABLOC,AEROR * * WRITE TEST AREA TO DATA IN A. * VERIFIES DATA WRITTEN * ABLOC NOP CLO SET WRITING FLAG LP317 LDB ASADR START AT 1ST ADDRESS LP316 SOS WRITING? STA B,I YES CPA B,I NO.CHECK DATA RSS OK JMP AEROR ERROR IN MODULE 0 CPB AEADR DONE LOOP? JMP AL319 YES.GO CHECK IF DONE INB NO.BUMP POINTER JMP LP316 AL319 SOC JMP ABLOC,I STO JMP LP317 * * PROCESSES ERRORS FOR AEROR * AEROR EQU * STB ATEMP SAVE ADDRESS LDB B,I GET BAD DATA IN B E104C OCT 106004 MODULE 0 HAS FAILURE LDA ATEMP GET FAILING ADDRESS LDB ATEMP IN A & B E105C OCT 106005 FATAL MODULE 0 ERROR JMP *-1 IRRECOVERABLE HED APAR * * PROCESSES PARITY ERROR INTERRUPTS FOR ALTERNATE TEST * APAR EQU * NOP STA ATEMP SAVE A CLF INT RE-DISABLE INTERRUPTS LIA MP GET VIOLATION REGISTER CLF MP TURN OFF PARITY ERROR SSA BIT 15 OF VIOLATION REG SET? JMP AL320 YES.PE-OK E102A OCT 106002 NO.ERRONEOUS MP VIOLATION JMP *-1 IRRECOVERABLE AL320 AND A.32K MASK OFF VR BIT 15 STA ASTOR SAVE ADDRESS CMA,INA MAKE IT - ADA A777 IS THE FAILING ADDRESS SSA BELOW 1000? JMP AL323 NO.OK AL321 LDA ASTOR YES.PROGRAM AREA FAILURE LDB ASTOR ADDRESS IN A & B E101C OCT 106001 PARITY AREA IN MODULE 0 JMP *-1 IRRECOVERABLE AL323 LDA ATEMP RESTORE A LDB ASTOR,I GET BAD DATA E116A OCT 106016 PARITY ERROR DURING ALT TEST JMP AL321 GO SHOW ADDRESS HED CONSTANTS,LINKS AND STORAGE FOR ALT AB3 OCT 3 AB4 OCT 4 PAPAR DEF APAR LINK TO PARITY ERROR ROUTINE PATBL DEF ATBL LINK TO TABLE OF VENDOR PATTERNS A1000 OCT 1000 A777 OCT 777 A7777 OCT 7777 A.32K DEC 32767 A.M16 DEC -16 AEADR BSS 1 LAST ADDRESS IN TEST AREA ABPAT BSS 1 BACKGROUND PATTERN APATT BSS 1 STORAGE FOR CHECKERBOARD PATTERN ASADR BSS 1 STARTING ADDRESS OF TEST AREA ASTOR BSS 1 STORAGE ATEMP BSS 1 FOR ALT TESTS ATPAT BSS 1 TEST PATTERN PTBL2 BSS 1 PATTERN POINTER * * CHECKERBOARD PATTERN TABLE * ATBL EQU * OCT 101 M0 EOR M6(TI 4030,4050) AM1 OCT 177777 HED PROGRAM CONSTANTS,LINKS & STORAGE ORG 700B TSTNO BSS 1 CURRENT TEST NUMBER .1 DEC 1 BIT0 EQU .1 B2 OCT 2 B3 OCT 3 B4 OCT 4 B7 OCT 7 B10 OCT 10 BIT3 EQU B10 B14 OCT 14 B16 OCT 16 B24 OCT 24 SWAP DEC 24 UP TO 32K ADDRESSABLE MEMORY B40 OCT 40 BIT5 EQU B40 B131 OCT 131 B400 OCT 400 PTST DEF TSTNO LINK TO TEST # PETBL DEF ETABL LINK TO START OF ERROR TABLE PSTBL OCT 1770 LINK TO START OF SUMMARY TABLE B1777 OCT 1777 PL073 DEF L073 LINK TO L073 IN TST07 PL100 DEF L100 LINK TO L100 IN TST10 PL140 DEF L140 LINK TO L140 PWCNT DEF WDCNT LINK TO WORK COUNT IN MOVE PMOVE DEF IMOVE LINK TO MOVE ROUTINE PENTR DEF ENTRY LINK TO ERROR TABLE ROUTINE PDBNC DEF DEBNC LINK TO S-REG DEBOUNCE RTN. B7777 OCT 7777 B10K OCT 10000 BIT12 EQU B10K MASK2 OCT 10400 B40K OCT 40000 BIT14 EQU B40K B70K OCT 70000 B76K OCT 76000 .32K DEC 32767 B100K OCT 100000 BIT15 EQU B100K HLT00 HLT 0 TRAP OCT 106075 HALT PLACED IN UNUSED MEMORY M10K OCT -10000 .M64 DEC -64 MASK1 EQU .M64 .M16 DEC -16 M10 OCT -10 M5 OCT -5 M3 OCT -3 .M1 DEC -1 AERR BSS 1 STORAGE FOR A & B AP.E. BSS 1 STORAGE FOR A & B BACKP OCT 177777 DEFAULT OF 1'S BERR BSS 1 DURING ERROR ROUTINES BP.E. BSS 1 DURING P.E. ROUTINE CNTR1 BSS 1 COUNTER LOWER BSS 1 LOWER LIMIT OF TESTING MERR BSS 1 ONES OR PAGE # PASS BSS 1 PASS COUNT PERR BSS 1 BASE MEMORY OR PAGE ADDRESS SAVAD BSS 1 ADDRESS OF VIOLATION TEMP2 BSS 1 STORAGE TEMP3 BSS 1 STORAGE TEMP4 BSS 1 STORAGE TEMP5 BSS 1 STORAGE TEMP6 BSS 1 STORAGE TEMP7 BSS 1 STORAGE MODUL EQU TEMP7 1ST ADDRESS IN CURRENT 4K MODULE PDIAG EQU TEMP7 POINTER TO DIAGONAL ADDRESS TEMP9 BSS 1 STORAGE FOR ERROR ROUTINE TESTP NOP DEFAULT OF 0'S TESTS OCT 777 DEFAULT SET OF TESTS(TST00-10) UPPER BSS 1 UPPER LIMIT OF TESTING HED INIT * INITIALIZATION SECTION * * A. DETERMINES MEMORY SIZE & DISPLAYS SIZE IN SWITCH-REGISTER * FOR OPERATOR VERIFICATION. * B. DETERMINES IF MEMORY PROTECT IS PRESENT OR NOT. * C. PLACES 106075 IN UNUSED MEMORY LOCATIONS AFTER SAVING THE * CONFIGURATOR IN LOCATIONS 6500-7677. * D. MOVES A COPY OF THE MODULE 0 CHECK ROUTINE TO LOCATIONS * 131-677 AND SETS IT TO CHECK ADDRESSES 4000-7777. * E. JUMPS TO ADDRESS 4131 TO RUN A CHECK ON MEMORY MODULE 0. * * THE DEF TO INIT IN ADDRESS 130 IS OVERLAYED UPON COMPLETION * OF A. & B. AND THEN INIT IS OVERLAYED AND CANNOT BE REUSED. * ORG 1000B INIT EQU * LIA SWREG RUN PROGRAM RAR,RAR CHECK INSTEAD OF SLA MAIN PROGRAM? JMP ALT YES LDB I70K START WITH 32K LP202 CCA TRY TO WRITE STA B,I ONES THERE CPA B,I SUCCESSFUL? JMP FOUND YES.MEMORY IS THERE CLA NO.SHOULD BE CPA B,I ZEROS THEN RSS OK JMP UH.OH NOT ZEROS.GO DECIDE IF CONTINUE ADB IM10K DROP POINTER DOWN 4K SZB DID POINTER BOTTOM OUT? JMP LP202 NO. TRY NEXT MODULE E111 OCT 106011 YES.SOMETHING IS AMISS JMP *-1 FIX PROBLEM BEFORE PROCEEDING FOUND LDA PATT3 CAN 125252 STA B,I BE STORED CPA B,I THERE? RSS OK JMP UH.OH NO. GO DECIDE TO CONTINUE ADB I7777 FORM MEMORY SIZE GOTIT STB MSIZE SAVE IT LIA SWREG SAVE STA TEMP1 SW REG CLA LP203 OTA SWREG OUTPUT A TO SW REG LIB SWREG READ IT BACK INTO B CPB A DATA CHECK? JMP *+3 YES E113 OCT 106013 NO.CAN'T JMP *-1 PROCEED INA,SZA DONE? JMP LP203 NO LDA MSIZE YES.OUTPUT LAST WORD OF OTA SWREG MEMORY ADDRESS TO SW REG LDB I.M10 DELAY INA,SZA FOR JMP *-1 APPROXIMATELY INB,SZB 3 SECONDS JMP *-3 LDA TEMP1 RESTORE OTA SWREG SW REG LDB PHNDL PUT DEF TO STB 3 HANDL IN 3 LDA I.3 SET UP OTA MP FENCE=3 CLC INT CLEAR ANY I/O INTERRUPTS STF INT TURN ON INTERRUPT SYSTEM STC MP TURN ON MEMORY PROTECT CLA TRY TO VIOLI STA 2 VIOLATE MP NOP SHOULD INT HERE IF MP PRESENT CLF INT DISABLE INTERRUPTS CPA 2 MP NOT THERE. DID 2 GET STORED? RSS YES JMP BADMP NO.SOMETHING IS WRONG LDA SHALT PUT SPECIAL HALT IN 5 FOR STA MP ERRONEOUS INT TO 5 W/OUT MP JMP GONE GO TO QUICK TESTS HANDL NOP RETURN PT FOR MP INT CLF INT DISABLE INT'S LIA MP GET VIOLATION REGISTER SSA WAS THERE A PARITY ERROR? JMP PARCK YES.GO DECIDE WHAT TO DO LDB A,I GET VIOLATING INSTRUCTION CPB VIOLI IS IT RIGHT? RSS YES JMP BADMP NO.SOMETHING IS WRONG LDA PVIOL DID JSB IN 5 CAPTURE CPA HANDL RETURN ADDRESS CORRECTLY? RSS YES JMP BADMP NO.SOMETHING IS WRONG LDA JMP01 INTERRUPTS NOW STA MP ARE ERRORS LDA 2 WERE CONTENTS OF LOC 2 CPA THALT PROTECTED? RSS YES JMP BADMP NO.SOMETHING IS WRONG CLC INT CLEAR ANY I/O INTERRUPTS STF INT TURN INT SYSTEM BACK ON CCA IS MP STA 2 TURNED OFF? NOP CLF INT YES.DISABLE INT'S