ASMB,A,B,L,C HED HPIB 59310 DIAGNOSTIC ORG 0 DSN 103122 20 JULY 1977 REV 1728 SUP HED GLOSSARY OF IBI TERMS ******************************************** * 59310 INTERFACE BUS INTERFACE DIAGNOSTIC * ******************************************** * * ** DEFINITION OF MNEMONICS OR ABBREVIATIONS ** * * * * ATN - ATTENTION (FORMERLY MULTTIPLE RESPONSE ENABLE) * * CRS - CONTROL RESET ISSUED TO I-O BY A CLC INTP,C * * DAC - DATA ACCEPTED * * DAV - DATA VALID * * EOI - END OR IDENTIFY * * EOR - END OF RECORD. * * FLAG - A SIGNAL GENERATED BY THE IBI TO INDICATE AT LEAST * TWO CONDITIONS HAVE BEEN MET (I.E.- * IRLFLG AND IRLFLGEN) * * FLG - SAME AS FLAG * * GROUP 3 MODE CONTROL * - IBI CONTROL VIA BITS 15-7 OF THE CONTROL WORD. * * IBI(S)- INTERFACE BUS INTERFACE(S) * * IB - INTERFACE BUS * * IFC - INTERFACE CLEAR * (FORMERLY BUS CLEAR OR EOP) * * IFC OS- INTERFACE CLEAR ONE-SHOT * * I-O FLAG * - FLAG FF ON IBI SET BY SOME FLAG (SEE FLAG) * * IRL - INPUT REGISTER LOADED. * * MAR - MEMORY ADDRESS REGISTER IN DMA * * MYADDR- THE ADDRESS ASSIGNED TO THE INTERFACE. * * OBR - OUTPUT BYTE REGISTER * * OBRL - OUTPUT BYTE REGISTER LOADED * * OWR - OUTPUT WORD REGISTER * * OWRL - OWR LOADED. * * PPLEX - PARALLEL POLL ENABLE * * PPPID - PARALLEL POLL PRIORITY IDENTIFICATION. * * PPREQ - PARALLEL POLL REQUEST * * REN - REMOTE ENABLE * * RFD - READY FOR DATA * * SC - SELECT CODE. * * SKF - SKIP FLAG GENERATED FROM I-O * * SPM - SERIAL POLL MODE. * * SRQ - SERVICE REQUEST FROM THE IB INDICATING A DEVICE * NEEDS SERVICING. ALSO, THE STANDARD DMA SERVICE * REQUEST. * * SSR - SERVICE SELECT REGISTER IN DMA. * * WCR - WORD COUNT REGISTER IN DMA * SKP HED GENERAL OPERATING PROCEDURE * A. LOAD THE DIAGNOSTIC CONFIGURATOR AND SET IT UP. * B. LOAD THE DIAGNOSTIC MAIN PROGRAM. * C. SET THE P-REGISTER TO 100B. * D. LOAD THE SWITCH REG. WITH THE TEST SELECT CODES(S) * WHERE: * BITS 11-6=SECOND IBI SC (IF TWO IBIS ARE TESTED) * BITS 5-0=FIRST IBI SC * E. PRESS RUN AND WAIT FOR A HALT 102070. * F. SET THE S-REG= MYADDR WHERE: * BITS 11-6=SECOND IBI MYADDR (IF TWO IBIS ARE TESTED) * BITS 5-0=FIRST IBI MYADDR * G. PRESS RUN AND WAIT FOR A HALT 102071. * H. SET THE S-REG= PPPID WHERE: * BITS 15-8=SECOND IBI PPPID (IF TWO IBIS ARE TESTED) * BITS 7-0=FIRST IBI PPPID * I. PRESS RUN AND WAIT FOR HALT 102074. * J. LOAD THE SWITCH REGISTER * IF SET BIT- * 14 = SUPPRESS ERROR HALTS * 12 = LOOP ON DIAGNOSTIC * 11 = SUPPRESS ERROR MESSAGES * 10 = SUPPRESS NON-ERROR MESSAGES * (EXCEPT IN THE TROUBLESHOOTING * MODULE) * 8 = SUPPRESS PRESET TEST * 3 = EXECUTE PARALLEL POLL REQUEST TEST * 2 = ENTER THE TROUBLESHOOTING MODULE * USING THE SECOND IBI. * (IF USED, THIS BIT PRECLUDES * AND OVERRIDES * SETTING SW.REG. BIT 1) * 1 = ENTER THE TROUBLESHOOTING MODULE * USING THE FIRST IBI. * 0 = EXECUTE CABLE TEST * K. PRESS RUN. * L. RESTART - LOAD ADDRESS 2000B AND GO TO STEP J * M. RECONFIGURE - LOAD ADDRESS 100B AND GO TO STEP D * * GENERAL COMPUTER HALTS * * 1020XX E OR H 000 TO 067 * 1030XX E OR H 100 TO 167 * 1060XX E OR H 200 TO 267 * * CONTROL HALT MESSAGES * * 102077 END OF DIAGNOSTIC (A=PASS COUNT) * 102075-76 RESERVED * 102074 HARDWARE CONFIGURATION INPUT COMPLETE * 102073 TEST SELECT CODE INPUT ERROR * 102072 RESERVED * 102071 MYADDR INPUT COMPLETE * 102070 TEST SELECT CODE INPUT COMPLETE * * 106077 ILLEGAL TRAP CELL HALT HED CONFIGURATOR LINKAGE INTP EQU 0 A EQU 0 B EQU 1 DMAI EQU 2 DMA EQU 6 IBI EQU 15B * * ORG 100B * JMP CFIG,I GO TO CONFIGURATION SECTION BSS 1 FAST INPUT (PHOTO READER) BSS 1 SLOW OUTPUT (LIST) BSS 1 FAST OUTPUT (DUMP OR PUNCH) SLOIN BSS 1 SLOW INPUT (KEYBOARD) DEF FWAA FIRST WORD OF AVBL. MEMORY BSS 1 LAST WORD OF AVBL. MEMORY BSS 1 NOT USED (MAG TAPE) BSS 1 1 MILL SEC TIME OUT COUNT BSS 1 SELECT CODES FOR I/O CONSC BSS 1 CONSOLE SELECT CODE. BSS 2 CPTO BSS 1 COMPUTER TYPE/OPTIONS BSS 1 USER CARD TYPE AND SELECT CODE BSS 1 MEMORY SIZE AND TYPE BSS 1 INTERNAL SWITCH REGISTER TMRR BSS 1 1 MILL SEC TIMER BSS 1 CONFIGURATOR SWITCH CK PTR BSS 1 INTEGER TO ASCII CONVERSION O2AS BSS 1 OCTAL TO ASCII CONVERSION ASCON BSS 1 ASCII CONVERSION DSN OCT 103122 DIAGNOSTIC SERIAL NUMBER FMTR BSS 1 FORMATTER CFIG DEF CONFG CONFIGURATION SECTION SUP SKP HED CONSTANTS AND VARIABLES SAVEA NOP SAVEB NOP TSTSC NOP RSAVB NOP MESPT NOP IBH1 OCT 15 IBH2 OCT 15 SDATA NOP SAVPA NOP SAVPB NOP MASK NOP ERRCD NOP HOLDD NOP MIN2 DEC -2 MIN6 DEC -6 HLT00 HLT 0 B6 OCT 6 B12 OCT 12 B16 OCT 16 B17 OCT 17 B30 OCT 30 B33 OCT 33 B37 OCT 37 B43 OCT 43 B52 OCT 52 B77 OCT 77 ASCA OCT 101 B103 OCT 103 ASCD OCT 104 ASCE OCT 105 ASCI OCT 111 B112 OCT 112 ASCS OCT 123 B125 OCT 125 B140 OCT 140 B170 OCT 170 B177 OCT 177 B250 OCT 250 B252 OCT 252 B257 OCT 257 B377 OCT 377 B760 OCT 760 B3000 OCT 3000 B7000 OCT 7000 B7760 OCT 7760 UPASC OCT 30060 PSCW2 OCT 40001 PSCAE OCT 140001 HIBYT OCT 177400 ISTAT OCT 3020 BIT3 OCT 10 BIT4 OCT 20 BIT8 OCT 400 BIT9 OCT 1000 BIT10 OCT 2000 BIT11 OCT 4000 BIT12 OCT 10000 B8A12 OCT 10400 BIT13 OCT 20000 BIT14 OCT 40000 BIT15 OCT 100000 HALTC OCT 106077 JMPT3 JMP 3,I BCCOM OCT 130000 NB77 OCT 177700 NBIT8 OCT 177377 PATTN NOP PNTR NOP SAVIN NOP SAVPT NOP LPNTR NOP CTLWD NOP PASCT NOP SAVIO NOP SAVAH NOP PSIND NOP PARAM NOP WSCOD NOP NOLSN NOP NOTAK NOP CW2 DEF *+1 NOP PID1 NOP PID2 NOP MYA1 NOP MYA2 NOP EXPID NOP EXMYA NOP SAVSR NOP STAR DEF CKTSM MANL DEF MAINL TSMOD DEF IBTSM CHRIN DEF PARAM SKP * * DO NOT SEPERATE ANY CODE IN THESE TABLES * CTAB1 NOP CTABL DEF *+1 FOUR OCT 4,5 THREE OCT 3 TWO OCT 2 B60 OCT 60 B40 OCT 40,60,4,5,40 OCT 110 B100 OCT 100 OCT 120,100 MIN1 DEC -1 * ETAB1 NOP ETABL DEF *+1 B11 OCT 11 B31 OCT 31 OCT 431,31 OCT 231,31,231,11,231,31 OCT 71,31 OCT 131,31 MTAB1 NOP MTABL DEF *+1 DEF ACTF DEF RENF DEF ATNF DEF ATNF DEF ATNF DEF TALKF DEF LSTNF INPUT DEF *+1 BSS 6 EOBUF DEF * BUFFR DEF *+1 BSS 3 ASC 1,/ HED DIAGNOSTIC SUBROUTINES * * IFCMD SETS ACTIVE AND CLEARS ATN AND EOI ON THE ISSUING * IBI. SETS IFCFLG AND CLEARS SPMFLG ON ANY IB DEVICE * AND CLEARS ACTIVE ON ANY DEVICE BUT THE ISSUING ONE. * IFCMD NOP JSB CONT EXECUTE COMMAND. OCT 1 JMP IFCMD,I SPC 3 * * SATN SETS ATN AND CLEARS EOI * SATN NOP JSB CONT EXECUTE COMMAND. OCT 60 JMP SATN,I SPC 3 * * SACTV SETS ACTIVE * SACTV NOP JSB CONT EXECUTE COMMAND. OCT 5 JMP SACTV,I SPC 3 * * CACTV CLEARS ACTIVE * CACTV NOP JSB CONT EXECUTE COMMAND. OCT 4 JMP CACTV,I SPC 3 * * SINPD CLOCKS THE RFD AND IRL FF'S WITH THE CONTENTS * OF THE INPUT BYTE CNTR. WHEN COMMAND IS DISABLED THE * INPUT BYTE CNTR IS CLOCKED LOW. * SINPD NOP JSB CONT EXECUTE COMMAND. OCT 6 JMP SINPD,I SKP * * STFIB SETS THE COMMAND MODE ON THE IBI. * STFIB NOP IO.13 STF IBI EXECUTE COMMAND. JMP STFIB,I SPC 3 * INITF IS THE INITIALIZE FLAGS COMMAND WHICH * CLEARS THE DMAOUTREQFLG,OUTBYTE CNTR AND OBRL FF'S, AND * SETS THE OWRL AND RFD FF'S. * INITF NOP JSB CONT EXECUTE COMMAND. SEVEN OCT 7 JMP INITF,I SPC 3 * SDMOD SETS THE DATA MODE BY * CLEARING THE ATN AND EOI FF'S. * SDMOD NOP JSB CONT EXECUTE COMMAND. OCT 40 JMP SDMOD,I SPC 3 * SEOI SETS THE END OR IDENTIFY MODE BY * CLEARING THE ATN FF AND SETTING THE EOI FF. * SEOI NOP JSB CONT EXECUTE COMMAND. OCT 50 JMP SEOI,I SPC 3 * CLCCF ISSUES A CLC IBI,C WHICH * ISSUES A CLRINTFLG TO THE * IBI WHICH CLEARS THE IBI FLAG,FLAG BUFFER, CONTROL, * EOR AND IFCFLG FF'S. * CLCCF NOP IO.07 CLC IBI,C JMP CLCCF,I SKP * STALK SETS TALK WHICH * SETS THE TALK FF AND CLEARS THE LISTEN FF. * STALK NOP JSB CONT EXECUTE COMMAND. OCT 110 JMP STALK,I SPC 3 * * CTLSN CLEARS THE TALK AND LISTEN FF'S. * CTLSN NOP JSB CONT EXECUTE COMMAND. OCT 100 JMP CTLSN,I SPC 3 * SLSTN SETS THE LISTEN MODE BY * CLEARING THE TALK FF AND SETTING THE LISTEN FF. * SLSTN NOP JSB CONT EXECUTE COMMAND. OCT 120 JMP SLSTN,I SPC 3 * SFSIB SIMULATES A SFS IBI * * CALLING FORMAT: * * JSB SFSIB SKIP CONDITION. * DEF ERR MESG MESG TO BE PRINTED IF * NO SKIP OCCURS. * SFSIB NOP STA SAVAH SAVE A-REG. IO.09 SFC IBI EXECUTE OPPOSITE SKIP INST. JMP SKIP FLAG SET. EXIT NORMALLY. LDA SFSIB,I FLAG NOT SET. GET ERROR MESG PNTR. STA SK1 PUT IT IN LINE. JSB SENDM SEND ERROR MESSAGE. SK1 DEF * MESSAGE POINTER. SKIP ISZ ERRCD UPDATE ERROR NUMBER AND ISZ SFSIB RETURN ADDRESS. LDA SAVAH RESTORE A-REG. JMP SFSIB,I RETURN. SKP * SPPMD SETS THE PARALLEL POLL MODE BY * SETTING THE ATN FF AND EOI FF. * SPPMD NOP JSB CONT EXECUTE COMMAND. B70 OCT 70 JMP SPPMD,I SPC 3 * SFCIB SIMULATES A SFC IBI. * * CALLING FORMAT: * * JSB SFCIB SKIP CONDITION. * DEF ERR MSG ERROR MESSAGE TO BE REPORTED * IF NO SKIP OCCURS. * SFCIB NOP STA SAVAH SAVE A-REG. IO.10 SFS IBI EXECUTE OPPOSITE SKIP INST. JMP SKPOK FLAG CLEAR. NO ERROR. LDA SFCIB,I FLAG SET. GET ERROR MESG. PNTR. STA SK2 PUT IT IN LINE. JSB SENDM SEND ERROR MESSAGE. SK2 DEF * ERROR MESSAGE POINTER. SKPOK ISZ ERRCD UPDATE ERROR NUMBER AND ISZ SFCIB RETURN ADDRESS. LDA SAVAH RESTORE A-REG. JMP SFCIB,I RETURN. SPC 3 * CDATA CHECKS THE DATA INPUT WHICH * VERIFIES THE INPUT DATA EQUALS THE EXPECTED DATA(FOUND * IN THE B-REG) * CDATA NOP STA SAVAH SAVE A-REG. JSB LIAIB GET INPUT DATA. STA NOLSN SAVE ACTUAL DATA. CPA B DOES ACTUAL=EXPECTED? JMP CRETN YES! EXIT NORMALLY. LDA CDATA,I NO! GET ERROR MESG POINTER. STA SK3 PUT IT IN LINE. LDA NOLSN RETRIEVE ACTUAL DATA. JSB SENDM SEND ERROR MESSAGE. SK3 DEF * MESSAGE POINTER. CRETN ISZ CDATA UPDATE RETURN ADDRESS. ISZ ERRCD UPDATE ERROR NUMBER. LDA SAVAH RESTORE A-REG. JMP CDATA,I RETURN. SKP * DATOT OUTPUTS A DATA WORD TO THE IBI(ASSUMES IBI IS IN * THE DATA MODE). * DATOT NOP IO.11 OTA IBI OUTPUT DATA TO IBI. STA CTLWD SAVE OUTPUT DATA FOR ANY MESG. JMP DATOT,I SPC 3 * LIAIB LOADS A DATA WORD FROM THE IBI INTO THE A-REG * (ASSUMES THE IBI IS IN THE DATA MODE). * LIAIB NOP IO.12 LIA IBI GET DATA WORD. JMP LIAIB,I EXIT. SPC 3 * * STLAT SETS THE TALK AND LISTEN FF'S * STLAT NOP JSB CONT EXECUTE COMMAND. OCT 130 JMP STLAT,I EXIT. SPC 3 * * CG3MC CLEARS THE GROUP 3 MODE CONTROL * CG3MC NOP JSB CONT EXECUTE COMMAND. BIT7 OCT 200 JMP CG3MC,I SPC 3 * * ITDMA INITIALIZES DMA CHANNEL ONE FOR A ONE WORD OUTPUT * TRANSFER FROM ADDR 246B. * ITDMA NOP LDA WSCOD GET WORKING SELECT CODE. OTA DMA OUTPUT TO DMA SSR. LDA CW2 GET DMA ADDRESS. CLC DMAI READY DMA MAR. OTA DMAI OUTPUT ADDRESS TO DMA MAR. CCA FORM -1 WORD COUNT. STC DMAI READY DMA WCR. OTA DMAI OUTPUT TO DMA WCR. STC DMA,C TURN ON DMA CH1. JMP ITDMA,I RETURN. SKP * * *SWAP* IS RESPONSIBLE FOR INITIALIZING POINTERS * TO I-O ROUTINES BASED ON THE FIRST OR SECOND PASS * OF THE DIAGNOSTIC. * * SWAP NOP LDA PSIND GET PASS INDICATOR. LDB MYA1 GET FIRST IBI MYADDR. SZA,RSS FIRST PASS? LDB MYA2 NO! GET SECOND IBI MYADDR. STB EXMYA SAVE MYADDR FOR TESTING. LDB PID1 GET FIRST IBI PPPID. SZA,RSS FIRST PASS? LDB PID2 NO! GET SECOND IBI PPPID. STB EXPID SAVE PPPID FOR TESTING. LDB IBH1 GET FIRST SELECT CODE. CMA,SZA COMPLEMENT PASS IND. FIRST PASS? LDB IBH2 NO! GET SECOND SELECT CODE. STA PSIND UPDATE PASS INDICATOR. LDA IOTBL GET I-O INST. POINTER. JSB INTIO INITIALIZE I-O INSTRUCTIONS. LDB PSIND RESTORE PASS INDICATOR. JMP SWAP,I EXIT SWAP. SPC 3 * * CONX ISSUES CONTROL WORDS TO THE IBI DURING THE CABLE TEST. * CONX NOP IO.X1 STF IBI READY COMMAND MODE. LDA CONX,I GET CONTROL WORD. IO.X2 OTA IBI OUTPUT IT TO IBI. ISZ CONX UPDATE RETURN. JMP CONX,I RETURN. SPC 3 * * CMORG COMPLEMENTS THE O-REG AS AN INDICATOR ONLY. * CMORG SOC OVERFLOW CLEAR? JMP SKX NO! GO CLEAR IT. STO YES! SET IT. JMP STAR,I RETURN TO START OF TEST. SKX CLO CLEAR OVERFLOW. JMP STAR,I RETURN TO START OF TEST. SKP * * GETTM CHECKS SW.REG. BITS 1 & 2 TO DETERMINE IF THE * OPERATOR WANTS TO ENTER THE TS MODULE. * GETTM NOP LDB B6 LOOK FOR SW.REG. BIT 1 OR 2. JSB SWRT IS EITHER ONE SET? JMP TSMOD,I YES! GO TO TS MODULE. JMP GETTM,I NO! RETURN NORMALLY. SPC 2 * * INTIO INITIALIZES THE I-O INSTRUCTIONS IN THE TABLE * DESIGNATED IN THE A-REG TO THE SC DESIGNATED IN THE B-REG. * INTIO NOP STB WSCOD SAVE SELECT CODE. LDB A GET I-O INST. TABLE POINTER. STB SAVIO SAVE POINTER. IOLOP LDB SAVIO GET I-O INST. PNTR (1ST LEVEL). LDA B,I GET I-O INST. PNTR (2ND LEVEL). CPA MIN1 END OF LIST? JMP INTIO,I YES! EXIT. STA B NO! PUT POINTER IN B-REG. LDA B,I GET I-O INSTRUCTION. AND NB77 MASK OFF OLD SC. IOR WSCOD MERGE IN NEW SELECT CODE. STA B,I PUT NEW INSTRUCTION BACK. ISZ SAVIO UPDATE POINTER. JMP IOLOP TRY NEXT I-O INSTRUCTION. SPC 2 NIOTB DEF CATAB IOTBL DEF *+1 DEF IO.02 DEF IO.03 DEF IO.04 DEF IO.06 DEF IO.07 DEF IO.10 DEF IO.11 DEF IO.13 DEF IO.15 DEF IO.16 CATAB DEF IO.01 DEF IO.X1 DEF IO.X2 DEF IO.X3 DEF IO.09 DEF IO.12 DEC -1 END OF LIST SPC 3 SKP * * * * *SENDM* FORMS AN ERROR MESSAGE FROM THE * PARAMETERS PASSED TO IT AS FOLLOWS: * A-REG = INPUT (ACTUAL) DATA OR STATUS WORD * B-REG = EXPECTED DATA OR STATUS WORD * CTLWD = CONTROL OR DATA WORD LAST OUTPUT TO THE IBI * ERRCD = ERROR NUMBER * PARAM = SUBROUTINE CONTROL (SEE BELOW) * * * CALLING FORMAT: * * JSB SENDM * * DEF MSG (MESSAGE STRING POINTER) * * * PARAM FORMAT: * * BIT 15=1 SUPPRESS OUTPUT MESSAGE * BIT 14=1 PRINT ENTIRE ERROR MESSAGE * BIT 0=1 PRINT FAILING SELECT CODE * SENDM NOP CLF INTP TURN OFF INTERRUPT SYSTEM. STA SAVPA SAVE ACTUAL STB SAVPB AND EXPECTED DATA. LDB SENDM,I GET MESSAGE STARTING ADDRESS. STB MESPT SAVE IT. LDA IO.X1 STRIP TO OUTPUT AND B77 TEST SELECT CODE. STA TSTSC SAVE OUTPUT TEST SC. JSB CNVRT CONVERT SC TO ASCII. STA OSTR2,I PUT SC IN OUTPUT MESSAGE. LDA IO.07 STRIP TO INPUT AND B77 TEST SELECT CODE. JSB CNVRT CONVERT SC TO ASCII. STA FALSC,I PUT SC IN SC MESSAGE. STA ISTR2,I PUT SC IN INPUT MESSAGE. LDB BIT11 CHECK FOR JSB SWRT SUPPRESS ERROR MESSAGES. JMP HONLY NO PRINTOUT. GO HALT ONLY. * * FORM EXXX MESSAGE AND PRINT IT. * LDA EMESG GET EXXX STRING. AND HIBYT STRIP X OFF. STA EMESG RESTORE. LDA ERRCD GET ERROR CODE VALUE. ALF,ALF SHIFT UPPER DIGIT OF ERROR RAL,RAL CODE INTO BITS 2-0. AND SEVEN STRIP DIGIT. ADA B60 ADD ASCII ZERO. IOR EMESG MERGE NUMBER INTO STA EMESG MESSAGE STRING. LDA ERRCD GET ERROR CODE. JSB CNVRT CONVERT LOWER 2 DIGITS TO ASCII. STA EMESG+1 PUT THEM IN MESSAGE. JSB PCRLF GO PRINT CR-LF. CLA,CLE LDB ERMES GET MESSAGE POINTER JSB FMTR,I PRINT EXXX