* * PRINT ERROR MESSAGE * CLA,CLE PREPARE FOR FMTR. LDB MESPT GET MESSAGE POINTER FROM JSB JSB FMTR,I PRINT ERROR MESSAGE. * * PRINT FAILING SELECT CODE MESSAGE(IF SPECIFIED) * LDB PARAM GET SENDM CONTROL WORD. SLB,RSS PRINT MESSAGE? JMP PEMES NO! PRINT NEXT MESSAGE. CLA,CLE READY FORMATTER. LDB SCFAL GET MESSAGE POINTER. JSB FMTR,I PRINT MESSAGE. * * PRINT OUTPUT MESSAGE (IF SPECIFIED) * PEMES LDB PARAM GET PARAMETER WORD. RBL SHIFT BIT 14 AROUND. SSB,RSS PRINT ENTIRE ERROR MESSAGE? JMP HONLY NO! GO HALT. RBR YES! SHIFT CONTROL WORD BACK. SSB PRINT OUTPUT MESSAGE? JMP NOINM NO! GO DO INPUT MESSAGE. LDA CTLWD GET CONTROL WORD THAT WAS OUTPUT LDB OSTR1 AND PUT IT IN JSB O2AS,I THE OUTPUT MESSAGE. CLA,CLE PRINT LDB OTMES OUTPUT JSB FMTR,I MESSAGE. * * PRINT ACTUAL INPUT FROM SC. * NOINM LDA SAVPA GET PASSED INPUT VALUE LDB ISTR1 AND PUT IT JSB O2AS,I IN THE INPUT MESSAGE. CLA,CLE PRINT LDB INMES INPUT JSB FMTR,I MESSAGE. * * PRINT EXPECTED INPUT * LDA SAVPB GET EXPECTED INPUT. LDB ESTR1 GET MESSAGE POINTER. JSB O2AS,I MERGE EXPECTED INPUT INTO MESG. CLA,CLE PRINT LDB EXMES EXPECTED INPUT JSB FMTR,I MESSAGE. * * ERROR HALT SECTION * HONLY ISZ SENDM UPDATE RETURN THRU SENDM. LDB BIT14 SUPPRESS JSB SWRT ERROR HALTS? JMP EXITN YES! RETURN TO PROGRAM. LDA ERRCD GET ERROR CODE. AND B77 STRIP TO SC OF HALT. IOR HLT00 MERGE 102000. LDB ERRCD GET ERROR CODE. BLF,BLF MOVE UPPER DIGIT AROUND TO RBL,SLB BIT 0. IS IT SET? IOR BIT11 YES! SET TO 1060XX HALT. RBL,SLB IS NEXT DIGIT SET? IOR BIT9 YES! FORM 103000 OR 107000. STA INLIN PUT HALT IN LINE. LDB PARAM GET SENDM CONTROL. RBL IS ACTUAL AND EXPECTED SSB DATA VALID? JMP RESAB YES! GO GET DATA. CLA NO! SET NO CARE CLB DATA IN A & B. JMP INLIN GO HALT. RESAB LDA SAVPA RESTORE ACTUAL AND LDB SAVPB EXPECTED DATA. INLIN HLT 0 CODED ERROR HALT. * * THE ABOVE CONFIGURED HALT INDICATES AN ERROR HAS * OCCURRED. THE HALT CODE MAY BE INTERPRETED BY * REFERRING TO THE MOD OR DIAGNOSTIC ITSELF. * * A-REG=ACTUAL DATA RECEIVED FROM THE IBI * * B-REG=EXPECTED DATA FROM THE IBI. * * *NOTE- IF A=B THEN THE ACTUAL AND EXPECTED DATA IS IRRELEVANT * (E.G.- A SFS IBI ERROR OCCURRED) * * **PRESS RUN TO OBTAIN FURTHER ERROR DATA** * * SKP LDB BIT11 SUPPRESS JSB SWRT ERROR MESSAGES? RSS YES! HALT. JMP EXITN NO! DON'T HALT. LDA CTLWD RESTORE OUTPUT DATA OR CNTL WD. LDB TSTSC GET TEST SELECT CODE. E267 OCT 106067 SECONDARY ERROR HALT. * * HALT 106067 IS REACHED BY PRESSING RUN AFTER THE * ORIGINAL ERROR HALT OCCURRED. * * A-REG=CONTROL WORD OR DATA LAST OUTPUT TO THE IBI. * * B-REG=SELECT CODE UNDER TEST WHEN FAILURE OCCURRED. * EXITN JSB GETTM SEE IF OPERATOR WANTS TS MODULE. LDA SAVPA RESTORE ACTUAL AND LDB SAVPB EXPECTED DATA. JMP SENDM,I RETURN. SKP SPC 3 * * CNVRT CONVERTS A 2-DIGIT OCTAL NUMBER TO ASCII. * CNVRT NOP STA SDATA SAVE BOTH NUMBERS. AND B70 STRIP TO SECOND DIGIT. ALF,RAL FORM ASCII INTO ADA UPASC UPPER BYTE. STA SAVEA SAVE IT. LDA SDATA GET LOWER DIGIT AND AND SEVEN STRIP TO IT. IOR SAVEA ASCII STRING FORMED. JMP CNVRT,I EXIT. SPC 1 * * STAT COMPARES THE DATA IN THE B-REG (MASKED WITH THE TEST MASK) * WITH THE STATUS OF THE IBI (MASKED WITH THE TEST MASK). * STAT NOP STA SAVAH SAVE A-REG LDA B SHIFT B TO A FOR MASK. AND MASK STRIP TO TEST BITS. STA RSAVB SAVE A-REG. IO.01 STF IBI INITIALIZE IBI TO CNTL MODE. JSB LIAIB GET IBI STATUS. AND MASK MASK TEST BITS CPA RSAVB IS DATA AS EXPECTED? JMP GOODS YES! PROCESS RETURN. LDB STAT,I NO! GET MESSAGE POINTER. STB SK5 PUT IT IN LINE. LDB RSAVB GET EXPECTED STATUS BACK. JSB SENDM SEND ERROR MESSAGE. SK5 DEF * MESSAGE POINTER. GOODS ISZ ERRCD UPDATE ERROR CODE. ISZ STAT UPDATE RETURN ADDRESS. LDB RSAVB GET ORIGINAL B-REG VALUE. LDA SAVAH RESTORE A-REG. JMP STAT,I RETURN. SPC 1 * * CONT OUTPUTS A CONTROL WORD TO THE IBI. * CALLING FORMAT= * JSB CONT * OCT XX WHERE XX=CONTROL WORD VALUE * CONT NOP STA SAVAH SAVE A-REG. LDA CONT,I GET COMMAND DATA. JSB STFIB INITIALIZE IBI TO CNTL MODE. STA CTLWD SAVE CONTROL WORD. JSB DATOT OUTPUT CONTROL WORD TO IBI. ISZ CONT UPDATE RETURN ADDRESS. LDA SAVAH RESTORE A-REG. JMP CONT,I RETURN. SKP * * PCRLF PRINTS A CR-LF ON THE CONSOLE. * PCRLF NOP CLA,CLE READY FORMATTER. LDB CRLF GET CR-LF STRING POINTER. JSB FMTR,I GO PRINT CR-LF. JMP PCRLF,I RETURN. SPC 2 * * TIMOT DELAYS FOR APPROXIMATELY 1 MS. * TIMOT NOP STA SAVAH SAVE A-REG. STB SAVEB SAVE B-REG CLA,INA GET 1 MS TIME CONSTANT JSB TMRR,I CALL TIMER LDA SAVAH YES! RESTORE A-REG. LDB SAVEB RESTORE B-REG JMP TIMOT,I EXIT. SPC 3 * * CKMYA DETERMINES IF A MYADDR WAS DECODED. * CKMYA NOP STA SAVAH SAVE A-REG. ISZ ERRCD UPDATE ERROR NUMBER. CPA MIN1 HAS A NEW PARAMETER BEEN STORED? RSS NO! SEND ERROR MESSAGE. JMP OKEXT YES! RETURN NORMALLY. CLA SET THE NO-CARE VALUES OF THE CLB ACTUAL AND EXPECTED DATA. JSB SENDM SEND ERROR DEF MYADR MESSAGE. LDA SAVAH RESTORE A-REG. OKEXT ISZ ERRCD UPDATE ERROR NUMBER. JMP CKMYA,I RETURN. SPC 3 * * DECREMENT ERROR COUNT * DECEC NOP STA SAVAH SAVE A-REG. CCA FORM -1 ADA ERRCD ERROR NUMBER-1 STA ERRCD SAVE NEW ERROR NUMBER. LDA SAVAH RESTORE A-REG. JMP DECEC,I RETURN. SKP * * CKDAV IS A COMMON ROUTINE USED TO CHECK ASCIIMODE COMMANDS. * CKDAV NOP STA HOLDD SAVE OUTPUT DATA. JSB INITF INITIALIZE OBR LOGIC FOR OUTPUT. LDA HOLDD RESTORE OUTPUT DATA. JSB ASCOT CHECK ASCII COMMAND. JMP CKDAV,I RETURN. SPC 1 * * ASCOT IS A COMMON ROUTINE USED TO CHECK ASCIIMODE COMMANDS. * ASCOT NOP JSB DATOT OUTPUT DATA TO IBI. JSB STAT CHECK STATUS. IS IT OK? DEF ASCIM NO! REPORT ASCIIMODE ERROR. LDA HOLDD RESTORE TEST PATTERN. JMP ASCOT,I RETURN. SPC 1 * SWITCH REGISTER CHECK * SWRT NOP STA SAVEA SAVE A-REG. JSB DEBON GO DEBOUNCE SW.REG. AND B MASK OUT TEST BIT(S). SZA,RSS ANY SWITCHES UP? ISZ SWRT NO! UPDATE RETURN TO P+2. LDA SAVEA RESTORE A-REG. JMP SWRT,I RETURN. SKP * SWITCH REGISTER DEBOUNCE ROUTINE * TO PREVENT OVERLAY OF A HALT BY A DEPRESSED SW. REG. BIT. * DEBON NOP LIA 1 GET SWITCH REG. STA SAVSR SAVE SW.REG. SETTING. CLE FOR TESTING. LDA CPTO GET COMPUTER TYPE WORD. ADA BCCOM E=0 IF 2115 OR 2116. CLA,SEZ,RSS IS THIS A 2115 OR 2116? JMP RESSW YES! SKIP DEBOUNCE. WAITS OTA 1 TRY TO CLEAR SW.REG. LIA 1 GET SW.REG. BACK. SZA,RSS IS OPERATOR PRESSING A SWITCH? JMP WAITO NO! GO DO NEXT SW. REG. TEST. CLA,CLE SET DELAY MARKER. JMP WAITS WAIT TIL OPER. LETS GO. WATM1 CLE SET DELAY MARKER. WAITO CCA SET TEST PATTERN. OTA 1 ATTEMPT TO SET ALL SR BITS. LIA 1 GET SR CONTENTS. ISZ A IS OPERATOR CLEARING A SWITCH? JMP WATM1 YES! WAIT UNTIL HE LETS GO. SEZ WAS A SW.REG. BIT PRESSED? JMP RESSW NO! GO RESTORE SW.REG. INA YES! DELAY SZA ABOUT JMP *-2 400 MS. JMP WAITS GO TRY AGAIN. RESSW LDA SAVSR RESTORE ORIGINAL SW.REG. OTA 1 RESTORE DISPLAY. JMP DEBON,I RETURN. SKP * * STUFJ PUTS A JMP 3,I IN THE IBI TRAP CELL AND PUTS * THE ADDRESS FOUND IN JSB+1 INTO ADDRESS 3. * STUFJ NOP LDB JMPT3 GET JMP 3,I. STB WSCOD,I PUT IT IN IBI TEST SC. LDA STUFJ,I GET SUBROUTINE ADDRESS. STA 3 PUT IT IN ADDRESS 3. ISZ STUFJ UPDATE RETURN. JMP STUFJ,I RETURN. SPC 3 * * NOTWM INITIALIZES THE SENDM ROUTINE TO SEND THE FAILING SC * AND ERROR MESSAGE TO THE CONSOLE IF AN ERROR OCCURS. * NOTWM NOP CLA,INA SET ERROR REPORT TO PRINT FAILING STA PARAM SC AND MESSAGE ONLY. JMP NOTWM,I RETURN. SPC 3 * * PRWMS INITIALIZES THE SENDM ROUTINE TO SEND THE ENTIRE * ERROR MESSAGE TO THE CONSOLE IF AN ERROR OCCURS. * PRWMS NOP LDA PSCW2 SET ERROR REPORT TO PRINT STA PARAM ENTIRE ERROR MESSAGE. JMP PRWMS,I RETURN. SPC 3 * * DMAER IS A COMMON ROUTINE USED TO REPORT * IBI FAILURES RELATED TO DMA. * DMAER NOP JSB SENDM REPORT DMA DEF DMAFL RELATED FAILURE. JMP DMAER,I RETURN. SPC 3 HED MESSAGES CF ASC 01, / CRLF DEF CF INTRO ASC 11,HPIB 59310 DIAGNOSTIC INTRX ASC 07, DSN XXXXXX/ HDMX DEF INTRX+3 INTMS DEF INTRO OUTMS ASC 13, OUTPUT XXXXXX TO SC XX/ OTMES DEF OUTMS OSTR1 DEF OUTMS+4 OSTR2 DEF OUTMS+11 INMSG ASC 15, INPUT XXXXXX FROM SC XX/ INMES DEF INMSG ISTR1 DEF INMSG+4 ISTR2 DEF INMSG+12 EXMSG ASC 14, EXPECTED INPUT = XXXXXX/ EXMES DEF EXMSG ESTR1 DEF EXMSG+9 ISTAF ASC 12,INITIAL STATUS FAILURE/ ACTF ASC 05,ACTIVE / RENF ASC 04,REN / ATNF ASC 04,ATN / TALKF ASC 04,TALK / LSTNF ASC 05,LISTEN / IFCF1 ASC 04,IFC OS/ RNIFC ASC 06,REN OR IFC/ EOR ASC 02,EOR/ SCFAL DEF FAILS FAILS ASC 08,FAILING SC XX/ FALSC DEF FAILS+6 IOFLG ASC 05,I-O FLAG/ EOFEN ASC 05,EOR FLAG/ ORAFL ASC 05,ORA FLAG/ IRLFL ASC 05,IRL FLAG/ SPMFF ASC 05,SPM FLAG/ SRQFL ASC 04,SRQFLG/ PPFL2 ASC 03,PPPID/ PPREQ ASC 06,PP REQUEST/ BUSDF ASC 04,IB DATA/ MYADR ASC 04,MY ADDR/ ASCIM ASC 06 ASCII MODE/ HANDS ASC 05,HANDSHAKE/ DMAFL ASC 02,DMA/ FLGER ASC 02,SKF/ IENFL ASC 02,IEN/ SCFL ASC 05,SC XTALK/ CLCFL ASC 02,CLC/ CABLF ASC 03,CABLE/ PASSC ASC 07,PASS XXXXXX/ PASSN DEF PASSC PASPT DEF PASSC+3 IAKFL ASC 02,IAK/ INTFL ASC 02,INT/ TSINM DEF *+1 OCT 6412,6412 ASC 18,HPIB DEVICE TROUBLESHOOTING MODULE/ ERMES DEF *+1 EMESG ASC 03,EXXX _ PRMPT DEF *+1 ASC 01,:_ ERMSG DEF *+1 OCT 6412 ASC 06,INPUT ERROR/ PRMSG DEF *+1 OCT 6412 ASC 15,H256 PRESS PRESET(S) AND RUN/ PRERR ASC 13,PRESET DID NOT CLEAR IBI/ SKP HED MAIN 59310A DIAGNOSTIC ORG 2000B CLC 0,C CLEAR I-O. JMP STARX GO TO RESTART LOCATION. * * CONFIGURATION SECTION CONFG CLC 0,C CLEAR I-O. LIA 1 GET SC INFO FROM SW. REG. AND B77 MASK TO FIRST IBI SC. STA IBH1 SAVE IT FOR TESTING. AND B70 MASK TO UPPER SC DIGIT. SZA,RSS IS SC>7? JMP HLT73 NO! GO TELL OPERATOR. LIA 1 GET SW. REG. AGAIN. ALF,ALF SHIFT SECOND RAL,RAL SC AROUND TO LOWER BYTE. AND B77 MASK TO SECOND IBI SC. STA IBH2 SAVE IT FOR TESTING. SZA,RSS IS THERE A SECOND SC? JMP NOSC1 NO! GO HALT NORMALLY. AND B70 MASK TO UPPER SC DIGIT. SZA IS SC > 7 ? JMP NOSC1 YES! CONTINUE NORMALLY. HLT73 HLT 73B NO! TELL OPERATOR HE ENTERED JMP CONFG ILLEGAL SC AND THEN RETURN. NOSC1 CLA OTA 1 CLEAR SW REG HLT 70B TEST SC'S ENTERED PROPERLY. LIA 1 GET SW.REG. WITH MYADDR(S). STA SAVEA SAVE IT FOR LATER USE. AND B77 MASK TO FIRST MYADDR. CPA B37 ADDRESS 37 IS NOT ALLOWED JMP HLT73 TRY AGAIN STA MYA1 SAVE IT. LDA SAVEA GET ORIGINAL SW. REG. ALF,ALF ROTATE SECOND MYADDR INTO RAL,RAL POSITION FOR MASK. AND B77 MASK TO SECOND MYADDR. CPA B37 ADDRESS 37 IS NOT ALLOWED JMP HLT73 TRY AGAIN STA MYA2 SAVE IT. CLA OTA 1 CLEAR SW REG HLT 71B MYADDR(S) ENTERED. LIA 1 GET PPPID INPUT FROM SW.REG. AND B377 MASK TO FIRST PPPID. STA PID1 SAVE IT. LIA 1 GET SW. REG. AGAIN. ALF,ALF SHIFT SECOND PPPID AROUND AND B377 AND MASK IT OFF. STA PID2 SAVE IT. LDA IBH2 IS THERE A SECOND SC SZA UNDER TEST? JMP NOSSC YES! GO HALT 74B. LDA IBH1 NO! UPDATE ALL INPUT PARAMETERS STA IBH2 SO THAT ONLY ONE IBI LDA MYA1 WILL BE TESTED BECAUSE OPERATOR STA MYA2 INDICATED ONLY ONE IBI IS LDA PID1 PRESENT. STA PID2 NOSSC CLA OTA 1 CLEAR SW REG HLT 74B END OF CONFIGURATION. SKP * * START OF MAIN DIAGNOSTIC * STARX LDA HALTC GET TRAP CELL HALT. LDB TWO GET FIRST TRAP CELL LOCATION. TRAPL STA B,I PUT A HALT IN THE TRAP CELL. CPB B77 STORED LAST TRAP CELL? JMP SKIN YES! GO TO TESTING. INB NO! UPDATE TRAP CELL POINTER. JMP TRAPL GO STORE THE NEXT TRAP CELL. SKIN CLA INITIALIZE THE STA PASCT PASS COUNT. LDB BIT10 SEE IF OPERATOR SUPPRESSED NON- JSB SWRT ERROR MESSAGES. DID HE? JMP CKTSM YES! SKIP PRINTING. CLE LDA DSN GET DSN LDB HDMX ADDR OF MESSAGE STRING JSB O2AS,I CONVERT OCTAL TO ASCII. JSB PCRLF GO PRINT CR-LF. CLA,CLE LDB INTMS GET INFORMATION AND MESSAGE POINTER. JSB FMTR,I GO PRINT MESSAGE. CKTSM JSB GETTM SEE IF OPERATOR WANTS TS MODULE. CLA CLEAR THE STA CTLWD CONTROL WORD. LDA B7760 GET THE INITIAL TEST MASK. STA MASK SAVE IT FOR TEST. CCA INITIALIZE PASS STA PSIND INDICATOR. MAINL JSB NOTWM SET ERROR REPORTING MODE. JSB SWAP GO SET UP TEST INFORMATION. CLA SET UP INITIAL STA ERRCD ERROR HALT NUMBER. * * TEST FLAG AND SKF LOGIC OF IBI * CLC INTP,C SHOULD SET IFC FLG FF. JSB CLCCF CLEAR FLAG ON IBI. JSB TIMOT ALLOW TIME FOR IFC TO SETTLE. JSB SFCIB IS I-O FLAG CLEAR? E000 DEF FLGER NO! REPORT ERROR. JSB CONT SET ACTIVE AND OCT 100205 SRQFLGEN. I-O FLAG SHOULD SET. JSB SFSIB DID FLAG SET? E001 DEF FLGER NO! REPORT ERROR. IO.02 SFS IBI SKF SHOULD OCCUR. RSS IT DIDN'T. ERROR. JMP SK6 IT DID . CONTINUE. JSB SENDM REPORT ERROR. E002 DEF FLGER NO SKF ON SFS. SK6 ISZ ERRCD UPDATE ERROR CODE. JSB CLCCF SHOULD CLEAR IFC FLG FF. IO.03 SFC IBI SKF SHOULD OCCUR. RSS IT DIDN'T. REPORT ERROR. JMP SK7 IT DID SO CONTINUE NORMALLY. JSB SENDM REPORT ERROR. E003 DEF FLGER NO SKF ON SFC. SK7 ISZ ERRCD UPDATE ERROR CODE. SKP * * TEST INTERRUPT LOGIC * JSB STUFJ SET UP RETURN JMP IN THE DEF RTN1 IBI TRAP CELL. CLC INTP,C SET IFC FLG FF. JSB TIMOT ALLOW IFC TIME TO SETTLE. JSB CONT SET SRQFLGEN TO SET OCT 100205 THE IBI FLAG FF. IO.04 STC IBI SET THE CONTROL FF. STF INTP TURN I/O SYSTEM ON THEN CLF INTP TURN IT OFF. NOP IBI SHOULDN'T INTERRUPT. JMP XSCTT IT DIDN'T.GO TO NEXT TEST. RTN1 JSB SENDM IT DID SO REPORT ERROR. E004 DEF IENFL IEN LOW DIDN'T HOLD OFF INT. XSCTT ISZ ERRCD UPDATE ERROR CODE. * * TEST FOR ILLEGAL SELECT CODE DECODE. * LDB BIT3 START WITH SC 10. SCLOP CLC INTP,C ISSUE CRS TO IBI. JSB TIMOT ALLOW TIME FOR IFC TO SETTLE. JSB CONT SET ACTIVE AND OCT 100205 SRQEN. LDA IO.04 GET I-O INSTRUCTION. AND B77 MASK TO SC. CPB A IS THIS THE IBI TEST SC? JMP EXCTT YES! SKIP TEST. LDA CLC NO! SET UP AND NB77 A CLC IBI,C IOR B INSTRUCTION. STA CLC PUT IT IN LINE. CLC CLC IBI,C ISSUE CLRINTFLG TO IBI. JSB SFSIB WAS FLAG CLEARED ILLEGALLY? E005 DEF SCFL YES! REPORT ERROR. JSB DECEC DECREMENT ERROR CODE. EXCTT CPB B77 IS TEST FINISHED? JMP BIO6C YES! GO EXIT. INB NO! UPDATE TO NEXT SC JMP SCLOP AND GO TEST IT. * * CHECK CONTROL FF LOW * HOLDS OFF AN INTERRUPT. * BIO6C ISZ ERRCD UPDATE ERROR CODE. JSB STUFJ PUT RETURN JMP IN IBI DEF RTN2 TRAP CELL. IO.06 STC IBI SET CONTROL FF ON IBI. STF INTP TURN ON INTERRUPT SYSTEM. IO.15 CLC IBI CLEAR CONTROL FF ON IBI. NOP ALLOW TIME TO INTERRUPT. JMP XINTT NO INT? GO DO NEXT TEST. RTN2 JSB SENDM INT? SEND ERROR MESSAGE. E006 DEF CLCFL CNTL LOW DIDN'T HOLD OFF INT. XINTT ISZ ERRCD UPDATE ERROR CODE. * * CHECK IBI CAN INTERRUPT * JSB STUFJ SET UP RETURN JMP DEF RTN5 IN IBI TRAP CELL. IO.16 STC IBI SET CONTROL FF ON IBI. NOP IBI SHOULD INTERRUPT HERE. JSB SENDM NO INTERRUPT SO E007 DEF INTFL REPORT ERROR. RTN5 ISZ ERRCD UPDATE ERROR CODE. JSB STUFJ SET UP RETURN JMP IN DEF RTN6 IBI TRAP CELL. STF INTP TURN ON INTERRUPT SYSTEM. NOP NO INT SHOULD OCCUR. JMP CINST IT DIDN'T! CONTINUE. RTN6 JSB SENDM IT DID! REPORT ERROR. E010 DEF IAKFL IAK DID NOT WORK. * * TEST INITIAL STATUS OF IBI1 AND IBI2. * CINST CLF INTP TURN OFF INT. SYSTEM. ISZ ERRCD UPDATE ERROR CODE. LDA PSCAE UPDATE ERROR MESSAGE STA PARAM CONTROL WORD. JSB CLCCF INITIALIZE I-O. JSB INITF INITIALIZE OBR LOGIC. LDB ISTAT GET EXPECTED IBI STATUS WORD. JSB STAT GET IBI STATUS. IS IT OK? E011 DEF ISTAF NO! INITIAL STATUS FAILURE. SKP * * TEST THE SET AND CLEAR CONTROL WORD * CAPABILITIES OF THE ACTIVE,REN,ATN,TALK * AND LISTEN FLIP-FLOPS. * JSB PRWMS SET UP ERROR REPORTING MODE. STO SET MESG INDICATOR. LDA B760 SET UP STA MASK TEST MASK. LDA MTABL SET STA MTAB1 UP LDA CTABL MESSAGE, STA CTAB1 CONTROL DATA AND LDA ETABL EXPECTED STA ETAB1 DATA TABLE POINTERS. TL01B LDA MTAB1,I GET ERROR MESSAGE POINTER. STA E012 PUT IT IN LINE. LDA CTAB1,I GET CONTROL WORD FROM TABLE. STA INLCO PUT IT IN LINE. LDB ETAB1,I GET EXPECTED STATUS. JSB CONT OUTPUT CONTROL WORD TO IBI . INLCO NOP CONTORL WORD. JSB STAT GET STATUS FROM IBI . E012 DEF * ERROR MESG POINTER. *E012 - E027* ISZ CTAB1 INCREMENT CONTROL WORD POINTER. LDA CTAB1,I GET CONTROL WORD. CPA MIN1 IS THIS THE END OF THE TABLE? JMP TL02A YES! GO TO NEXT TEST. ISZ ETAB1 NO! INCREMENT EXPECTED DATA TABLE. SOS OVERFLOW SET? JMP SK8 NO! GO UPDATE MESG TABLE PNTR. CLO YES! CLEAR OVERFLOW AND SKIP JMP TL01B MESG PNTR UPDATE. SK8 STO SET OVERFLOW. ISZ MTAB1 UPDATE MESSAGE TABLE PNTR. JMP TL01B GO CONTINUE TESTING. SKP * * THIS SECTION TESTS THE IFC ONE-SHOT LOGIC * CAN CLEAR ATN AND SET ACTIVE. * TL02A JSB CONT SET ATN AND OCT 64 CLEAR ACTIVE JSB IFCMD SET IFC. LDB B31 EXPECTED STATUS. JSB STAT GET IBI STATUS. IS IT OK? E030 DEF IFCF1 NO! IFC OS FAILURE. * * NOW TEST IFC OS STAYS ON FOR APPROXIMATELY * 40 MICROSECONDS. * JSB IFCMD TRIGGER IFC. JSB CACTV CLEAR ACTIVE. JSB STAT GET IBI STATUS. ACTIVE CLEAR? E031 DEF IFCF1 YES! IFC FAILED AFTER 40 US. * * INSURE IFC OS EVENTUALLY CLEARS * JSB TIMOT ALLOW TIME FOR IFC TO SETTLE. JSB CACTV CLEAR ACTIVE. LDB B11 GET EXPECTED STATUS. JSB STAT DID ACTIVE CLEAR? E032 DEF IFCF1 NO! REPORT ERROR. * * THIS SECTION TESTS THE ABILITY OF CRS TO * SET IFC AND CLEAR REN. * JSB CONT SET THE OCT 3 REN FF. CLC INTP,C ISSUE CRS. JSB TIMOT ALLOW IFC TIME TO SETTLE. LDB B31 GET EXPECTED STATUS. JSB STAT IS ACTIVE SET & REN CLEAR? E033 DEF RNIFC NO! REN OR IFC FAILURE. SKP * * THIS SECTION TESTS THE EORFLG * AND EORFLGEN LOGIC * LDB BIT12 SET TEST STB MASK MASK TO 10000. JSB SPPMD SET ATN FF AND EOI FF. JSB SINPD STROBE EOR FF. JSB STAT GET IBI STATUS. IS EOR FF SET? E034 DEF EOR NO! EOR FAILURE. * * ATN SHOULD BE CLEAR FROM STROBE INPUT DATA, * THUS DISABLING EOI. * JSB CLCCF CLEAR EOR FF. JSB SATN SET ATN AND CLEAR EOI. JSB SINPD STROBE EOR FF CLEAR. CLB GET EXPECTED STATUS. JSB STAT GET IBI STATUS. IS EOR FF CLEAR? E035 DEF EOR NO! EOR FAILURE. * * NOW CHECK THAT CLC IBI,C CLEARS THE EOR FF. * JSB SPPMD SET END OR IDENTIFY AND ATN. JSB SINPD STROBE EOR FF SET. JSB CLCCF CLC IBI,C CLEARS THE EOR FF. JSB STAT GET IBI STATUS. IS EOR FF CLEAR? E036 DEF EOR NO! EOR FAILURE. * * CHECK NO ATN DISABLES EOI TO IB * JSB SEOI CLEAR ATN, SET EOI. JSB SINPD CLOCK EOI LOW. JSB STAT DID EOI CLEAR? E037 DEF EOR NO! REPORT ERROR. * * THIS SECTION CHECKS THE EOI FF CAN BE CLEARED. * JSB SATN SET ATN FF. CLEAR EOI FF. JSB SINPD STROBE EOR FF. SHOULD CLEAR IT. JSB STAT GET IBI STATUS. IS EOR CLEAR? E040 DEF EOR NO! EOR FAILURE. JSB STALK SET TALK MODE. JSB SEOI SET EOI FF. JSB IFCMD TRIGGER IFC. CLEARS EOI. JSB TIMOT ALLOW IFC TO SETTLE OUT. JSB SINPD STROBE EOR FF. SHOULD CLEAR IT. JSB STAT GET IBI STATUS. IS EOI CLEAR? E041 DEF EOR NO! EOR FAILURE. SKP