ASMB,A,B,L,C HED 2100 SERIES COMPUTER ALTER-SKIP TEST ORG 2B * ******************************************************************* * * * DIAGNOSTIC CHECKS ALTER-SKIP INSTR GROUP * * DIAGNOSTIC ASSUMES THE FOLLOWING TESTS HAVE BEEN RUN * * MEMORY REFERENCE GROUP DSN 101000 * * RUNS IN 4K OF MEMORY * * TELETYPE NOT REQUIRED * * DIAGNOSTIC CONFIGURATOR NOT REQUIRED * * DIAGNOSTIC SERIAL NO (DSN) 101001 * * OPERATING INSTRUCTIONS: * * 1. LOAD ASG DIAGNOSTIC. * * 2. SET P REGISTER TO 100. * * 3. SELECT PROGRAM OPTIONS: * * *************** SWITCH REGISTER OPTIONS *************************** * * BIT MEANING * * 0 LOOP BACK TO REPEAT A FAILING INSTRUCTION * BUT HALT 76 BEFORE EXECUTION * 1-11 RESERVED * 12 CLEAR TO HALT 102077 AT END OF PASS.(A REGISTER = * PASS COUNT) SET TO LOOP ON DIAGNOSTIC. * 13-15 RESERVED * * * 4. PRESS PRESET(INT. & EXT. IF PRESENT), AND RUN. * SKP *************** COMPUTER HALTS ************************************* * * HALT MEANING * * 10200X X= 1, A OR B ERROR; =2, E ERROR; =4, SKIP ERROR * A = ACTUAL A OR B RESULT * B = EXPECTED A OR B RESULT * E = ACTUAL E RESULT * 102000 ERROR DISPLAY HALT * A = FAILING INSTR CODE * B = ORIGINAL VALUE IN A OR B * E = ORIGINAL VALUE IN E * 10204X CLE,CCE,CME,SEZ,RSS ERROR (X=O-6) * 102076 HALT BEFORE REPEATING ERROR CONDITION * 102077 END OF PASS HALT. A REG. = PASS # * 103000 UNEXPECTED CHANGE IN A REG * 103001 UNEXPECTED CHANGE IN B REG * 106077 UNEXPECTED TRAP CELL HALT * * ******************************************************************* * SKP * UNL * REP 62 FILL TRAP CELLS * OCT 106077 LOC 2 THRU 77 UNL REP 62 OCT 106077 LST ORG 100B JMP START ORG 126B OCT 101001 DIAGNOSTIC SERIAL NO ORG 130B JMP START JMP START SPC 3 PATA DEF PAT1 PAT1 OCT 0 OCT 177777 OCT 1 OCT 100000 OCT 100001 OCT 74170 OCT 103607 OCT 125252 OCT 52525 PATE DEF * SPC 3 AAB NOP ACTUAL A OR B REG RESULT ARG NOP ORIGINAL CONTENTS IN A OR B REG. EAB NOP EXPECTED A OR B REG RESULT EE NOP EXPECTED E REGISTER RESULT ESKP NOP EXPECTED SKIP FLAG (0=NO SKIP) IE NOP INITIAL CONTENTS OF E REGISTER PCA NOP PASS COUNT PT NOP DATA POINTER SKPEI NOP SKIP ERROR INDICATOR: 0=ERROR BIT0 OCT 1 BIT1 OCT 2 BIT2 OCT 4 BIT3 OCT 10 BIT5 OCT 40 BIT6 OCT 100 BIT7 OCT 200 BIT8 OCT 400 BIT9 OCT 1000 BIT11 OCT 4000 BIT12 OCT 10000 BIT15 OCT 100000 B3 OCT 3 B11 OCT 11 B20 OCT 20 B21 OCT 21 B31 OCT 31 B41 OCT 41 B73 OCT 73 B300 OCT 300 .0 OCT 0 .1 OCT 1 M1 DEC -1 M2 DEC -2 A1400 OCT 1400 A2001 OCT 2001 A4000 OCT 4000 I0001 OCT 100001 PATX OCT 43210 DATA FOR NON WORKING REGISTER .0X EQU 00 B EQU 1 B REGISTER SPC 3 * EXECUTE & CHECK ROUTINE FOR ALTER SKIP INSTRUCTIONS * E.C NOP LDB INSTR B _ INSTRUCTION LDA ESKP CPA .0 TEST EXPECTED SKIP JMP NSE NO SKIP EXPECTED STB INSTX SKIP EXPECTED JSB INITT INITIALIZE JMP *+2 JUMP OVER REPEAT HALT RPTS HLT 76B HALT BEFORE REPEAT INSTX NOP EXECUTE ALTER SKIP INSTRUCTION ISZ SKPEI DID NOT SKIP - STEP INDICATOR JMP E.C2 NSE JSB INITT INITIALIZE JMP *+2 JUMP OVER REPEAT HALT RPTNS HLT 76B HALT BEFORE REPEAT INSTR NOP EXECUTE ALTER SKIP INSTRUCTION JMP *+2 OK - IT DID NOT SKIP ISZ SKPEI UNEXPECTED SKIP - STEP INDICATOR E.C2 STA AAB ASSUME ACTUAL A OR B IS A REG. LDA INSTR AND BIT11 CPA BIT11 TEST REGISTER INVOLVED JMP E.C4 ACTUAL REG. IS B CPB PATX JMP E.C5 LDA INSTR ERROR: UNEXPECTED CHANGE IN B OCT 103001 HALT: T_103001, A_INSTR JMP E.C9 GO CHECK FOR REPEAT E.C4 LDA AAB RESTORE A REGISTER RESULT STB AAB WORKING REGISTER IS B CPA PATX JMP E.C5 LDB INSTR ERROR: UNEXPECTED CHANGE IN A OCT 103000 HALT: T_103000, B_INSTR JMP E.C9 GO CHECK FOR REPEAT E.C5 CLB INITIALIZE POSSIBLE HALT CODE ISZ SKPEI CHECK SKIP INDICATOR - IT SHOULD JMP *+2 HAVE BEEN -2 ADB BIT2 WAS -1: SKIP OR NO SKIP ERROR LDA EAB CPA AAB COMPARE ACTUAL & EXPECTED A OR B JMP *+2 REGISTER RESULTS ADB BIT0 A OR B REGISTER ERROR LDA .0 SEZ LDA M1 A _ ACTUAL E REG: -1 IF NOT 0 CPA EE CHECK ACTUAL & EXPECTED E RESULT JMP *+2 ADB BIT1 E REGISTER RESULT ERROR CPB .0 JMP E.C,I B=0, NO ERRORS, RETURN P+1 * * ERROR HALT & DISPLAY 1 * ADB HLT0 STB HLTI A _ ACTUAL A OR B REG. RESULT LDA AAB B _ EXPECTED A OR B REG. RESULT LDB EAB E _ ACTUAL E REGISTER RESULT HLTI HLT .0X T _ 10200X * * 2ND DISPLAY HALT * LDA IE CCE E _ ORIGNAL E REG. CONTENTS CPA .0 A _ ALTER SKIP INSTRUCTION CLE B _ ORIGINAL A OR B REG. CONTENT LDA INSTR T _ 102000 LDB ARG HLT0 HLT 0 * E.C9 LIA 1 AND BIT0 CPA .0 SWITCH 0 CLEAR JMP E.C,I DON'T LOOP REPEAT ON ERROR LDA ESKP BEFORE REPEATING, CHECK THE CPA .0 EXPECTED SKIP INDICATOR AGAIN JMP E.C3 JSB INITT REINITIALIZE JMP RPTS DO AGAIN - SKIP EXPECTED E.C3 JSB INITT JMP RPTNS DO AGAIN - NO SKIP EXPECTED * INITT NOP LDB M2 STB SKPEI RESET SKIP INDICATOR TO -2 LDA IE CCE CPA .0 CLE INITIALIZE E REGISTER LDA INSTR AND BIT11 CPA BIT11 JMP INIT1 LDA ARG A REG. INSTRUCTION LDB PATX A_ARG, B_043210 JMP INITT,I INIT1 LDA PATX B REG. INSTRUCTION LDB ARG A_043210, B_ARG JMP INITT,I SPC 3 START CLC 0,C TURN EVERYTHING OFF CLA STA PCA RESET END OF PASS COUNT * SOP RSS HLT 40B RSS FAILED * CLE SEZ CLE HLT 41B SEZ COMBINATION FAILED * CLE SEZ,RSS JMP *+2 CLE HLT 42B SEZ,RSS COMBINATION FAILED * CCE SEZ,RSS CCE HLT 43B SEZ,RSS COMBINATION FAILED * CCE SEZ JMP *+2 CCE HLT 44B SEZ COMBINATION FAILED * CLE CME CLE SEZ,RSS CME HLT 45B SEZ,RSS COMBINATION FAILED * CCE CME CCE SEZ CME HLT 46B SEZ COMBINATION FIALED SPC 3 LDA A2001 START WITH OCTAL 2001 X1 STA INSTR SAVE NEXT INSTRUCTION LDA .0 X2 STA IE FOR E = 0,1 LDB PATA X3 STB PT FOR 9 DATA PATTERNS LDA B,I STA ARG ARG _ NEXT DATA PATTERN STA EAB ASSUME EAB = ARG LDB .0 STB ESKP ASSUME NO SKIP EXPECTED LDA IE STA EE ASSUME EE = IE LDA INSTR AND A1400 CPA BIT8 STB EAB CLA OR CLB: EAB _ 0 LDB M1 CPA A1400 STB EAB CCA OR CCB: EAB _ 177777 CPA BIT9 JMP *+2 JMP X4 LDA ARG XOR M1 CMA OR CMB: STA EAB EAB _ 1'S COMPLIMENT OF ARG X4 LDA INSTR AND B41 CPA BIT5 JMP *+2 JMP X5 NOT SEZ LDA IE CPA .0 STB ESKP SEZ & E=0: ESKP _ -1 JMP X6 X5 CPA B41 JMP *+2 JMP X6 NOT SEZ,RSS LDA IE CPA M1 STB ESKP SEZ,RSS & E=1: ESKP _ -1 X6 LDA INSTR LDB .0 AND B300 CPA BIT6 STB EE CLE: EE _ 0 LDB M1 CPA B300 STB EE CCE: EE _ -1 CPA BIT7 JMP *+2 JMP X7 NOT CME LDA IE XOR M1 CME: STA EE EE _ 1'S COMPLIMENT OF IE X7 LDA INSTR AND B31 CPA B31 JMP *+2 JMP X8 NOT SS*,SL*,RSS LDA EAB AND I0001 CPA I0001 SS*,SL*,RSS & BIT15 = BIT0 = 1: STB ESKP ESKP _ -1 JMP X12 X8 LDA INSTR AND B21 CPA B21 JMP *+2 JMP X9 NOT SS*,RSS LDA EAB AND BIT15 CPA BIT15 STB ESKP SS*,RSS & BIT 15=1: ESKP _ -1 JMP X10 X9 CPA B20 JMP *+2 JMP X10 NOT SS* LDA EAB AND BIT15 CPA .0 STB ESKP X10 LDA INSTR SS* & BIT15=0: ESKP _ -1 AND B11 CPA B11 JMP *+2 JMP X11 NOT SL*,RSS LDA EAB AND BIT0 CPA BIT0 STB ESKP SL*,RSS & BIT0=1: ESKP _ -1 JMP X12 X11 CPA BIT3 JMP *+2 JMP X12 NOT SL* LDA EAB AND BIT0 CPA .0 STB ESKP SL* & BIT0=0: ESKP _ -1 X12 LDA INSTR AND BIT2 CPA .0 JMP X13 NOT IN* LDA EAB CPA M1 STA EE IN* & REG=177777: EE _ -1 ADA .1 STA EAB IN*: EAB _ EAB+1 X13 LDA INSTR AND B3 CPA B3 JMP *+2 JMP X14 NOT SZ*,RSS LDA EAB CPA .0 JMP X15 STB ESKP SZ*,RSS & REG NOT 0: ESKP _ -1 JMP X15 X14 CPA BIT1 JMP *+2 JMP X15 NOT SZ* LDA EAB CPA .0 STB ESKP SZ* & REG=0: ESKP _ -1 X15 LDA INSTR AND B73 CPA BIT0 STB ESKP RSS: ESKP _ -1 JSB E.C GO EXECUTE & CHECK LDB PT ADB .1 CPB PATE JMP *+2 JMP X3 NEXT DATA PATTERN LDA IE ADA M1 CPA M1 JMP X2 REPEAT FOR E=1 LDA INSTR ADA .1 INSTR _ INSTR + 1 CPA A4000 ADA A2001 MAKE 6001 IF 4000 CPA BIT12 JMP EOP END OF PASS IF 10000 JMP X1 ELSE DO NEXT INSTRUCTION SPC 3 EOP LDA PCA STEP END OF PASS COUNT ADA .1 STA PCA LIA 1 AND BIT12 CPA BIT12 JMP SOP LDA PCA HLT 77B END OF PASS HALT JMP SOP GO AROUND AGAIN * END