ASMB,A,B,C,L HED 12936A PRIVILEGED INTERRUPT FENCE DIAGNOSTIC ORG 0 DSN=103115 OCT 21, 1976 REV 1643 SUP * GENERAL OPERATING PROCEDURE * * A. LOAD DIAGNOSTIC CONFIGURATOR AND SET IT UP. * B. LOAD DIAGNOSTIC MAIN PROGRAM * C. LOAD ADDRESS 100B. * D. LOAD SWITCH REGISTER WITH BITS 11-6 AND BITS 5-0 WITH * HIGH AND LOW INTERFACE SC RESPECTIVELY. * E. PRESS RUN AND WAIT FOR HALT 102070 * F. LOAD SWITCH REG WITH SC OF PRIVILEGED INTERRUPT FENCE * G. PRESS RUN AND WAIT FOR HALT 102074 * L. LOAD SWITCH REGISTER * IF SET =: * 15 = HALT AT END OF EACH TEST * 14 = SUPRESS ERROR HALTS * 13 = LOOP ON LAST TEST * 12 = LOOP ON DIAGNOSTIC * (SUPPRESS ALL OPERATOR INTERVENTION) * 11 = SUPRESS ERROR MESSAGES * 10 = SUPRESS NON-ERROR MESSAGES * 9 = GO TO USER CONTROL SECTION * AT END OF PRESENT TEST * 8 = SUPPRESS OPERATOR INTERVENTION TESTS * 7 * = DIAGNOSTIC OPTIONS * 0 * NOTE: STANDARD RUN SHOULD BE WITH SW. REG. = 0 * I. PRESS RUN. * J. RESTART - LOAD ADDRESS 2000B * K. RECONFIGURE IF TESTING I/O INTERFACE - LOAD ADDRESS 100B * * * GENERAL COMPUTER HALTS * * 102030-102064 E OR H 030 TO 064 * 106000-106077 E OR H 100 TO 177 * * CONTROL PROGRAM HALT MESSAGES * * 102077 END OF DIAG (A = PASS COUNT) * 102076 END OF TEST (A = TEST #) * 102075 USER SELECTION REQUEST * 102074 SELECT CODE INPUT COMPLETE * 102073 USER SELECT CODE ERROR * 102072 INCORRECT FENCE SELECT CODE ENTERED * 102071 INCORRECT INTERFACE SELECT CODE ENTERED * 102070 VALID INTERFACE SELECT CODE ENTERED * * 106077 TRAP CELL HALT * * 106070-106076 CONFIGURATOR HALTS. SEE DIAG CONF MANUAL * HED PROGRAM ORGANIZATION CHART * ******************************************* * * CONFIGURATOR 100B * * * LINKAGE TABLE * * ******************************************* * * EXECUTIVE 130B * * * LINKAGE * * ******************************************* * * CONSTANTS 150B * * * AND * * * STORAGE * * ******************************************* * * 2000B * * * EXECUTIVE CONTROL * * * * * ******************************************* * * IF USED * * * BASIC I/O TESTS (TEST 00) * * * ZCEND * * ******************************************* * * TABLE OF TEST POINTERS * * * TABLE OF I/O INSTR POINTERS * * ******************************************* * * * * * * * * * * * * * * * * * MAIN DIAGNOSTICS (1-31) * * * * * * * * * * * * * * * * * ******************************************* * * * * * * * * * * * * * * * * * * * * HED CONFIGURATOR LINKAGE TABLE A EQU 0 A REGISTER REFERENCE B EQU 1 B REGISTER REFERENCE SW EQU 1 SWITCH REGISTER REFERENCE INTP EQU 0 INTERRUPT CHANNEL REFERENCE * * ORG 100B * JMP CFIG,I GO TO CONFIGURATION SECTION FAIN BSS 1 FAST INPUT (PHOTO READER) SLOP BSS 1 SLOW OUTPUT (LIST) FAOP BSS 1 FAST OUTPUT (DUMP OR PUNCH) SLIN BSS 1 SLOW INPUT (KEYBOARD) FWAM DEF FWAA FIRST WORD OF AVBL. MEMORY HWAM BSS 1 LAST WORD OF AVBL. MEMORY BSS 1 NOT USED (MAG TAPE) OTMC BSS 1 1 MILL SEC TIME OUT COUNT BSS 4 SELECT CODES FOR I/O CPTO BSS 1 COMPUTER TYPE/OPTIONS USSC BSS 1 USER CARD TYPE AND SELECT CODE MEMO BSS 1 MEMORY SIZE AND TYPE ISWR BSS 1 INTERNAL SWITCH REGISTER TMRR BSS 1 1 MILL SEC TIMER SWRC BSS 1 CONFIGURATOR SWITCH CK PTR I2AS BSS 1 INTEGER TO ASCII CONVERSION O2AS BSS 1 OCTAL TO ASCII CONVERSION AS2N BSS 1 ASCII CONVERSION DSN OCT 103115 DIAGNOSTIC SERIAL NUMBER FMTR BSS 1 FORMATTER * * * CONTROL LINKAGE AND DATA REFERENCES * CFIG DEF ZCONF CONFIGURATION SECTION MSGC DEF ZMSGC MESSAGE WITH NO HALT MSGH DEF ZMSGH MESSAGE WITH HALT ERMS DEF ZERMS ERROR MESSAGE SWRT DEF ZSWRT SWITCH REGISTER CHECK ROUTINE TSTN OCT 0 CURRENT TEST NUMBER SWDB DEF ZSWDB DISPLAY REG SWITCH RELEASE ROUTINE NOP RESERVED * * * * * * * * * * * * HED EXECUTIVE CONTROL ORG 2000B ZSTEX CLC INTP,C TURN I/O SYSTEM OFF JSB MSGC,I DO CRLF DEF ZRTLF LDA LDMP GET INTRODUCTORY MESSAGE STA *+2 JSB MSGC,I OUT PUT IT NOP CLA CLEAR PASS STA ZEOLC COUNT LDB ZSW9 CHECK FOR USER SELECTION REQ JSB SWRT,I JMP ZUSR IT'S USERS CHOICE ZNUSR LDA STDA GET STANDARD TEST RUN LDB STDB * JMP ZEXC * ZUSR LDA ZSINA RETRIEVE PREVIOUS RUN LDB ZSINB JSB SWDB,I GO TO DISPLAY REG CHECK HLT 75B WAIT FOR USER INPUT NOP NOP NOP ZEXC STA ZUINA SAVE STB ZUINB USER STA ZSINA INPUT STB ZSINB PROGRAM LDB ZSW9 CHECK IF SW9 IS DOWN JSB SWRT,I JMP ZUSR NO GO AND WAIT CCA SET TEST NUMBER STA TSTN =-1 CLA STA ZTSTA CLEAR TEST RUN FLAG * * * * * * * * * * * * * * * * SKP ZEXCL LDA ZUINA RESTORE A REG. LDB ZUINB RESTORE B REG. ERA,RAL ROTATE ERB FIRST ERA TEST BIT STA ZUINA SAVE POSITIONS STB ZUINB ISZ TSTN MOVE TEST UP ONE NOP ZXCL1 LDA TSTN ADA TSTP GET IT'S LDA A,I ADDRESS CPA Z.M1 IS IT END OF LIST JMP ZEOL YES LDB ZUINB SSB,RSS SHOULD IT BE RUN? JMP ZEXCL NO STA ZTSTA YES - SAVE TEST ADDRESS JSB ZITCH INITIALIZE TRAP CELL HALTS CLC 0B RESETS CONSOLE TO INPUT JSB ZTSTA,I GO DO TEST ZEXRT LDA TSTN YES, DISPLAY TEST NUMBER IF HALTED LDB ZSW15 CHECK FOR HALT AT END OF TEST JSB SWRT,I GO TO SWITCH REG CHECK RSS S-REG 15 SET JMP *+3 S-REG 15 CLEARED JSB SWDB,I GO TO DISPLAY REG CHECK HLT 76B YES WAIT FOR OPERATOR LDB ZSW9 CHECK FOR ABORT JSB SWRT,I JMP ZUSR YES LDB ZSW13 CHECK FOR LOOP ON ROUTINE JSB SWRT,I JMP ZXCL1 YES - LOOP JMP ZEXCL CONTINUE ZEOL LDA ZTSTA CHECK IF ANY TESTS WERE RUN SZA,RSS ? JMP ZNUSR NO SO PICK UP STANDARD RUN LDA ZEOLC UP DATE PASS COUNT INA STA ZEOLC CCE LDB ZPSCA GET PASS COUNT ADB Z.2 ADDRESS JSB O2AS,I CONVERT IT JSB MSGC,I CALL PRINT ROUTINE ZPSCA DEF ZPSC LDB ZSW12 CHECK FOR LOOP ON DIAG. JSB SWRT,I JMP *+4 YES LDA ZEOLC JSB SWDB,I GO TO DISPLAY REG CHECK HLT 77B NO WAIT AND DISPLAY PASS COUNT LDA ZSINA RESTORE ORIGINAL LDB ZSINB PROGRAM JMP ZEXC DO IT ALL AGAIN SKP * MESSAGE OUTPUT WITH OUT HALT * ZMSGC NOP ENTRY JSB ZMSG OUTPUT MESSAGE OCT 2000 SWITCH 10 CHECK JMP ZMSGC,I RETURN TO CALLER * * MESSAGE OUTPUT WITH HALT * ZMSGH NOP ENTRY JSB ZMSG OUTPUT MESSAGE OCT 2000 SWITCH 10 CHECK LDA ZHLT GET HALT CODE STA *+3 PUT IT IN PLACE LDA ZSAVA RESTORE A REGISTER JSB SWDB,I GO TO DISPLAY REG CHECK NOP HALT FOR DISPLAY JMP ZMSGH,I RETURN TO CALLER * * ERROR MESSAGE WITH HALT * ZERMS NOP ENTRY JSB ZMSG OUTPUT MESSAGE OCT 4000 SWITCH 11 CHECK CLA LDB ZSW14 CHECK SWR BIT 14 TO SUPPRESS JSB SWRT,I HALT STA *+4 PUT HALT IN PLACE LDA ZSAVA RESTORE A & B LDB ZSAVB JSB SWDB,I GO TO DISPLAY REG CHECK ZHLT NOP WAIT FOR OPERATOR JMP ZERMS,I RETURN TO CALLER * * * * * * * * * * * * * SKP * OUTPUT MESSAGE * ZMSG NOP STA ZSAVA SAVE A AND B REGISTERS STB ZSAVB LDB ZMSG,I GET SWITCH REGISTER BIT LDA ZMSG ADA Z.M2 DECREMENT RETURN ADDRESS STA ZMSG JSB SWRT,I CHECK TO SUPPRESS MESSAGE JMP ZMSG0 YES LDA ZMSG,I CHECK IF ERROR LDA A,I LDA A,I IF SO ALF,ALF AND Z.177 CPA ZA.E JSB ZCFTN CHECK TO OUTPUT TEST NUMBER LDA ZMSG,I NO RETRIEVE FORMAT LDB A,I ADDRESS CLA,CLE JSB FMTR,I ZMSG0 LDA ZMSG,I CONVERT HALT CODE LDB A,I FROM ASCII STRING CCA,CCE JSB AS2N,I STA ZN2AO SAVE RESULT AND Z.300 DECODE LDB ZH2 HALT CODE CPA Z.100 LDB ZH6 CPA Z.200 LDB ZH3 CPA Z.300 LDB ZH7 LDA ZN2AO GET HALT NUMBER AND Z.77 IOR B STA ZHLT SAVE IT ISZ ZMSG,I ADJUST RETURN POINTERS ISZ ZMSG ISZ ZMSG ISZ ZMSG LDA ZSAVA RESTORE A AND B REGISTERS LDB ZSAVB JMP ZMSG,I * * * * * * SKP ZCFTN NOP LDA TSTN GET TEST NUMBER CPA ZCFTT IS IT THE SAME ONE? JMP ZCFTN,I YES SKIP OUTPUT STA ZCFTT NO - THEN UPDATE IT JSB ZN2AO CONVERT IT STA ZTSTN PUT IT IN STRING CLA DO A CRLF JSB SLOP,I CLA,CLE INDICATE START OF FORMAT LDB ZTSTF JSB FMTR,I JMP ZCFTN,I RETURN * * * ZSAVA NOP ZSAVB NOP ZEOLC NOP ZTSTA NOP ZSINA NOP ZSINB NOP ZUINA NOP ZUINB NOP Z.2 OCT 2 Z.7 OCT 7 Z.17 OCT 17 Z.60 OCT 60 Z.77 OCT 77 Z.177 OCT 177 Z.M1 DEC -1 Z.M2 DEC -2 ZIOM OCT 177700 ZSW15 OCT 100000 ZSW14 OCT 40000 ZSW13 OCT 20000 ZSW12 OCT 10000 ZSW9 OCT 1000 Z.100 OCT 100 Z.200 OCT 200 Z.300 OCT 300 ZH2 OCT 102000 ZH6 OCT 106000 ZH3 OCT 103000 ZH7 OCT 107000 ZCFTT DEC -1 ZTSTF DEF *+1 ASC 3,TEST ZTSTN ASC 2,XX// ZRTLF ASC 1,// ZPSC ASC 6,PASS XXXXXX/ ZA.E OCT 105 ZASI0 OCT 030060 ZLOCT OCT 0 ZSDBA OCT 0 ZSDBB OCT 0 HED GENERAL ROUTINES * * ZN2AO NOP STA ZIOAD SAVE NUMBER AND Z.17 CONVERT TEST NUMBER TO LDB ZASI0 ASCII CODE FOR PRINT ADA B OUT WITH ERROR MESSAGE JMP ZN2AO,I AND RETURN * * * * SWITCH REGISTER CHECK * ZSWRT NOP STA ZN2AO SAVE A REGISTER LIA SW GET SWITCH REG. AND B MASK OUT BIT SZA,RSS IS IT UP? ISZ ZSWRT NO LDA ZN2AO RESTORE A REGISTER LIB SW LET B = SWITCH REGISTER JMP ZSWRT,I RETURN TO CALLER * * * * CHECK DISPLAY REG FOR ANY SWITCHES BEEING PRESSED * ZSWDB NOP STA ZSDBA STORE A & B REG AWAY STB ZSDBB LDA ZIOM SET LOOP COUNTER TO -100 STA ZLOCT FOR DEBOUNCE PROTECTION LIB SW READ PRESENT S-REG CONTENTS LDA B OUTPUT THE COMPLEMENTED VALUE OF CMA THE S-REG TO THE S-REG, READ OTA SW IT BACK AND COMPARE IT AGAINST LIA SW THE ORIGINAL VALUE AFTER OTB SW RESTORING ORIGINAL CMA VALUE. CPA B RSS VALUES ARE EQUAL, NO SWITCH PRESSED JMP *-11 VALUES ARE NOT EQUAL, TRY AGAIN ISZ ZLOCT INCREMENT LOOP COUNTER AND JMP *-11 REPEAT LOOP LDA ZSDBA RESTORE A & B REG LDB ZSDBB JMP ZSWDB,I EXIT SUBROUTINE * SKP * * * * INITIALIZE TRAP CELL HALTS * ZITCH NOP LDA ZTSH GET STARTING TRAP CELL HALT LDB Z.2 GET FIRST TRAP CELL LOCATION ZTSHL STA B,I PUT IT IN PLACE CPB Z.77 AM I FINISHED JMP ZITCH,I YES INB NEXT ADDRESS JMP ZTSHL * ZTSH OCT 106077 * * * * PUT JSB INSTRUCTION IN TRAP CELL * ZTCJI NOP LDB ZJSBI GET INSTRUCTION STB ZIOSC,I PUT IT IN TRAP CELL LDA ZTCJI,I GET LOCATION STA 3B SAVE IT FOR JSB INSTRUCTION ISZ ZTCJI ADJUST RETURN JMP ZTCJI,I RETURN TO CALLER * ZJSBI JSB 3B,I JSB INSTRUCTION * * * INITIALIZE SELECT CODE I/O INSTRUCTIONS * ZISC NOP STA ZIOSC SAVE SELECT CODE STB ZIOAD SAVE TABLE ADDRESS ZIOL LDB ZIOAD,I GET ADDRESS OF LOCATION CPB Z.M1 IS IT THE TERMINATOR JMP ZISC,I YES RETURN TO CALLER LDA B,I NO - GET CONTENTS AND ZIOM MASK OFF OLD SELECT CODE IOR ZIOSC ADD IN NEW SELECT CODE STA B,I RESTORE IT ISZ ZIOAD MOVE TO NEXT ADDRESS JMP ZIOL DO IT * ZIOSC NOP ZIOAD NOP * * * * SKP * CONFIGURATION SECTION * ZCONF CLC INTP,C TURN I/O SYSTEM OFF LIA SW GET SELECT CODE AND OPTIONS STA USSC SAVE THEM AND Z.77 ELIMINATE OPTIONS LDB A CMB,INB CHECK THAT SC > 7 ADB Z.7 SSB ? JMP *+3 OK GO ON E.73 HLT 73B NO JMP ZCONF TRY AGAIN LDB LSCS CHECK IF LOW CMB SC IS LESS THAN THE ADB A SC OF THE FENCE SSB JMP E072 NO, ERROR LDB HSCS CHECK IF HIGH CMB,INB SC IS BIGGER THAN THE ADB A SC OF THE FENCE SSB JMP *+3 YES,PROCEED E072 HLT 72B NO, RETURN FOR RECONFIGURATION JMP ZCONF LDB IOIP INITIALIZE TEST I/O JSB ZISC INSTRUCTIONS CLA CLEAR S-REG FOR INPUT OTA 01B HLT 74B ALLOW OPERATOR TO INPUT PROGRAM OPTIONS JMP ZSTEX GO TO EXEC CONTROL SECTION * * * * * * * * * * * * * * * * * * * * * * * HED 12936 PRIVILEGED INTERRUPT CARD DIAGNOSTIC * * CNTLF CNTL * ***** **** * * * *********************************** * * * * * * * * * * NO * LOWER * * FLGF * ACTION * PRIORITY * * **** * (00) * (10) * * * * * * * * * * *********************************** * * * * * * * * * * INTERRUPT * * * * AND * LOWER * * FLG * LOWER * PRIORITY * * *** * PRIORITY * (11) * * * (01) * * * * * * * *********************************** * * * * FLG = FLAG * CNTL = CONTROL * * * HED 12936 PRIVILEGED INT DIAG - POINTERS ORG 100B JMP PCFG,I GO TO CONFIGURE HI-LO SC ORG 140B IOIP DEF IODP TSTP DEF TSTD LDMP DEF LDMS STDA OCT 777 STDB OCT 0 ORG 150B IODP EQU * DEF FSC01 DEF FSC02 DEF FSC03 DEF FSC04 DEF FSC05 DEF FSC06 DEF FSC07 DEF FSC10 DEF FSC11 DEF FSC12 DEF FSC13 DEF FSC14 DEF FSC15 DEF FSC16 DEF FSC17 DEF FSC20 DEF FSC21 DEF FSC22 DEF FSC23 DEF FSC24 DEF FSC25 DEF FSC26 DEF FSC27 DEF FSC30 DEF FSC31 DEF FSC32 DEF FSC33 DEF FSC34 DEF FSC35 DEF FSC36 DEF FSC37 DEF FSC40 DEF FSC41 DEF FSC42 DEC -1 SPC 3 HIODP EQU * DEF HSC00 DEF HSC01 DEF HSC02 DEF HSC03 DEF HSC04 DEF HSC07 DEF HSC10 DEF HSC11 DEF HSC12 DEF HSC13 DEF HSC14 DEF HSC15 DEF HSC16 DEF HSC17 DEF HSC20 DEF HSC21 DEF HSC22 DEF HSC23 DEC -1 SPC 3 LOODP EQU * DEF LSC00 DEF LSC01 DEF LSC02 DEF LSC03 DEF LSC04 DEF LSC05 DEF LSC06 DEF LSC07 DEF LSC10 DEF LSC11 DEF LSC12 DEF LSC13 DEF LSC14 DEF LSC15 DEF LSC16 DEF LSC17 DEF LSC20 DEF LSC21 DEF LSC22 DEF LSC23 DEC -1 SPC 3 TSTD EQU * DEF TST00 DEF TST01 DEF TST02 DEF TST03 DEF TST04 DEF TST05 DEF TST06 DEF TST07 DEF TST08 DEF TST09 DEC -1 LDMS ASC 22,12936 PRIVILEGED INTERRUPT CARD DIAGNOSTIC/ SKP HSC EQU 12B FCH EQU 11B LSC EQU 10B SPC 3 HIOIP DEF HIODP LOOIP DEF LOODP SPC 3 HITJ JSB HITP,I HCCJ JSB HCCP,I HPSJ JSB HPSP,I H00J JSB H00P,I H01J JSB H01P,I H10J JSB H10P,I H11J JSB H11P,I * HITP DEF HITR HCCP DEF HCCR HPSP DEF HPSR H00P DEF H00R H01P DEF H01R H10P DEF H10R H11P DEF H11R * FCCJ JSB FCCP,I FPSJ JSB FPSP,I F00J JSB F00P,I F01J JSB F01P,I F10J JSB F10P,I F11J JSB F11P,I FPRJ JSB FPRP,I * FCCP DEF FCCR FPSP DEF FPSR F00P DEF F00R F01P DEF F01R F10P DEF F10R F11P DEF F11R FPRP DEF FPRR * LOTJ JSB LOTP,I L00J JSB L00P,I L01J JSB L01P,I L10J JSB L10P,I L11J JSB L11P,I LPRJ JSB LPRP,I * LOTP DEF LOTR L00P DEF L00R L01P DEF L01R L10P DEF L10R L11P DEF L11R LPRP DEF LPRR