HED TEST 01 * * * TEST 01 * ------- * OVERFLOW REGISTER CHECK. THE TEST IS DIVIDED INTO * 2 SECTIONS: THE 1. SECTIONS TESTS THE SETTING OF * THE OVERFLOW REGISTER BY ADA/B AND INA/B INSTRUC- * TIONS. THE 2. SECTION TESTS THE EAU INSTRUCTIONS * WHICH SET OR CLEAR THE OVERFLOW REGISTER. * * TST01 EQU * NOP JSB T01 CLC INTP,C JMP TST01,I * * * THIS SECTION TESTS THE SETTING OF THE OVERFLOW REG. * CAUSED BY ADA/B AND INA/B INSTRUCTIONS. * T01 NOP LDA INPPT GET TABLE POINTER TO FETCH THE 2 INSTR. OVTST LDB A,I FETCH THE 1. INSTR & CHECK IF END OF CPB .-1 TABLE HAS BEEN REACHED JMP EAUIN YES, EXIT STB TLO1 NO, STORE 1. INSTR INTO TEST INA INCR. TABLE POINTER LDB A,I FETCH 2. INSTR & STB TLO2 STORE IT INTO TEST INA INCR. TABLE POINTER STA INPTR & STORE IT * CLO START TEST BY CLEARING OVERFLOW REG TLO1 NOP TLO2 NOP SOS IS OVERFLOW SET E004 JMP ER04 NO, ERROR LDA INPTR YES, GET TABLE POINTER & JMP OVTST RETURN SKP * * INSTRUCTION TABLE FOR ADA/B & INA/B INSTR. * INPPT DEF *+1 * LDA P7777 ADA .+1 LDA .+1 ADA P7777 LDB P7777 ADB .+1 LDB .+1 ADB P7777 LDA SW14 ADA SW14 POSITIVE OVERFLOW W ADA/B INSTR LDB SW14 ADB SW14 LDA P7777 ADA P7777 LDB P7777 ADB P7777 LDA P7777 ADA .+2 LDB P7777 ADB .+2 * LDA SW15 ADA .-1 LDA .-1 ADA SW15 LDB SW15 ADB .-1 LDB .-1 ADB SW15 LDA SM14 ADA SM14 NEGATIVE OVERFLOW W ADA/B INSTR LDB SM14 ADB SM14 LDA SW15 ADA SW15 LDB SW15 ADB SW15 LDA SW15 ADA .-2 LDB SW15 ADB .-2 * LDA P7777 INA POSITIVE OVERFLOW WITH LDB P7777 INA/B INSTR. INB * OCT 177777 SKP * * ERROR SUBROUTINE FOR OVERFLOW REGISTER TEST * CAUSED BY ADA/B OR INA/B INSTRUCTIONS. * ER04 NOP CLC INTP,C TURN OFF ALL I/O LDA TLO2 DETERMEN IF THE INSTRUCTION AND S1412 EXECUTED IN TLO2 IS AN AD* STA LIBUF INSTRUCTION CPA SW14 JMP ADA.B YES LDB INCIN NO, IN* INSTR, STORE "IN" IN ST1AS STB BE04+12 ERROR ASCII STRING LDA TLO2 DETERMEN IF THE INSTR EXECUTED AND SW11 IN TLO2 REFERENCES THE B-REG CPA SW11 JMP B.REG YES LDB A.BLK NO, A-REG IS REFERENCED, STORE "A" ST2AS STB BE04+13 IN ERROR ASCII STRING JMP DATLN B.REG LDB B.BLK STORE B-REG JMP ST2AS ADA.B LDB ADINS STORE "AD" JMP ST1AS * DATLN LDA LIBUF CHECK IF FAILING INSTR SZA,RSS WAS AN AD* JMP INERM NO, IN* -> SINGLE LINE ERR MESSAGE LDA TLO1 YES, AD* -> OUTPUT DATA WORDS ADDED AND SWM11 CONVERT THE 1. FETCHED INSTR TO A STA FDAWD LDA & STORE IT IN THE LAST ROUTINE STA O2AR1 & IN THE OCTAL TO ASCII CONV ROUT CLE O2AR1 NOP CONVERT THE 1. DATA WORD TO ASCII LDB BE4DP & STORE IN "BE4D" JSB O2AS,I * LDA TLO2 CONVERT THE 2. FETCHED INSTR IOR SW13 TO A LDA & STORE IT INTO AND SWM11 THE OCTAL TO ASCII CONVERTION STA O2AR2 ROUTINE IOR SW11 CONVERT IT TO A LDB & STORE STA SDAWD IT IN THE LAST ROUTINE CLE O2AR2 NOP CONVERT THE 2. DATA WORD TO ASCII LDB BE4DP & STORE IN "BE4D" ADB .+4 JSB O2AS,I * SKP * FDAWD NOP LOAD A-REG WITH 1. DATA WORD SDAWD NOP LOAD B-REG WITH 2. DATA WORD & JSB ERMS,I OUTPUT DUAL LINE ERR MESSAGE DEF BE04,I FOR FAILING ADA/B INSTR. DEF BE4D JMP E004+1 * INERM JSB ERMS,I OUTPUT SINGLE LINE ERROR MESSAGE DEF BE04 FOR FAILING INA/B INSTR JMP E004+1 * INPTR OCT 0 LIBUF OCT 0 ADINS OCT 40504 INCIN OCT 44516 A.BLK OCT 40440 B.BLK OCT 41040 * BE4DP DEF BE4D+6 * BE04 ASC 17,E004 OV REG NOT SET BY XXX INSTR/ BE4D ASC 14, DATA: XXXXXX YYYYYY/ SKP * * THIS SECTION TESTS THE SETTING & CLEARING OF * THE OVERFLOW REG BY EXECUTING EAU INSTR. * THE OVERFLOW REG SHOULD BE SET BY: * ASL, IF AN OVERFLOW OCCURES, * DIV, IF DIVIDEND IS TOO BIG OR DIVISOR = 0 * THE OVERFLOW REG SHOULD BE CLEARED BY: * MPY, ARS OR ALS IF NO OVERFLOW OCCURES. * EAUIN LDA CPTO CHECK IF EAU IS PRESENT ARS IN CPU SLA,RSS JMP T01,I NO, EXIT TEST * CLC INTP,C YES, TURN OFF ALL I/O CLO PERFORM EAU INSTR TEST CLA SET 010000,000000 INTO B & LDB SW12 A-REG & PERFORM AN ASL 4 ASL INSTR. SOC IS OVERFLOW CLEARED? JMP *+3 NO, OK E005 JSB ERMS,I YES, ERROR DEF ER05 * CLO SET 037777,100000 INTO B & LDB M1514 A-REG & PERFORM A LDA SW15 DIV BY 077777 DIV P7777 SOC IS OVERFLOW CLEAR? JMP *+3 NO, OK E006 JSB ERMS,I YES, ERROR DEF ER06 * CLO CLB SET 000000,000001 INTO B & LDA .+1 A-REG & PERFOCRM A DIV . DIV BY 0 SOC IS OVERFLOW CLEAR? JMP *+3 NO, OK E007 JSB ERMS,I YES, ERROR DEF ER07 * STO CLA,INA SET A-REG TO 1 & PERFORM A MPY SW12 MPY BY 10000 SOS IS OVERFLOW SET? JMP *+3 NO, OK E010 JSB ERMS,I YES, ERROR DEF ER10 * SKP STO CLA SET 010000 & 000000 INTO B & LDB SW12 A-REG & PERFORM AN ASL 2 ASL INSTRUCTION SOS IS OVERFLOW SET? JMP *+3 NO, OK E011 JSB ERMS,I YES, ERROR DEF ER11 * STO CLA SET 010000 & 000000 INTO B & LDB SW12 A-REG & PERFORM AN ASR 2 ASR INSTRUCTION SOS IS OVERFLOW SET? JMP *+3 NO, OK E012 JSB ERMS,I YES, ERROR DEF ER12 JMP T01,I EXIT TEST * * ER05 ASC 18,E005 ASL W. OVFW DID NOT SET OV REG/ ER06 ASC 14,E006 DIV W. DIVIDEND TOO BIG OCT 6412 ASC 12, DID NOT SET OV REG/ ER07 ASC 17,E007 DIV BY 0 DID NOT SET OV REG/ ER10 ASC 15,E010 MPY DID NOT CLEAR OV REG/ ER11 ASC 15,E011 ASL WITHOUT OVFW DID NOT OCT 6412 ASC 09, CLEAR OV REG/ ER12 ASC 15,E012 ASR DID NOT CLEAR OV REG/ * * * *************************************************************** SKP HED TEST 02 * * * TEST 02 * ------- * INTERRUPT TEST. THIS TEST IS DIVIDED INTO 4 ROUTINES. * THE 1. CHECKES THE CAPABILITY TO TURN OFF THE INTRPT * SYSTEM AFTER INITIATON. THE 2. TESTS THE INTERPT * HOLD OFF BY I/O INSTRUCTIONS, JMP,I & JSB,I & THE * PROPER OCCURENCE OF INTRPTS. THE 3. CHECKS THE CLC SC * & THE CLC 0 INSTRUCTIONS AND THE LAST ONE CHECKS THE * STC SC,C & CLC SC,C INSTRUCTIONS. * * TST02 EQU * NOP JSB T02 CLC INTP,C JMP TST02,I * * * 1. TURN OFF INTERRUPT AFTER INITIALIZATION * T02 NOP LDA LSC GET 1. SC OF INTERFACE BOARD LDB IOID GET I/O INSTRUCTION TABLE POINTER JSB ISC & CONFIGURE I/O INSTRUCTIONS CLC INTP,C JSB TCJI SET JSB INSTR INTO TRAP CELL DEF B3E OF INTFACE BOARD T2.00 STF CH SET THE FLAG T2.01 STC CH SET THE CONTROL STF INTP TURN I/O SYSTEM ON THEN CLF INTP TURN I/O SYSTEM OFF NOP GIVE IT A CHANCE TO INTERRUPT NOP NOP T2.02 CLF CH RESET CH FLAG JMP BIO5 * BE13 ASC 22,E013 CLF 0 DID NOT INHIBIT INTRPT ON SC XX/ * B3E NOP CLF INTP TURN OFF INTS JSB LDSC LOAD SC INTO ERROR MESSAGE & A-REG STA BE13+20 LDA IOSC E013 JSB ERMS,I OUTPUT ERROR MESSAGE DEF BE13 SKP * * 2. INERRUPT HOLD OFF & INTERRUPT CHECK * BIO5 JSB TCJI SET JSB INSTR INTO TRAP CELL DEF BI15 OF INTERFACE BOARD CLA SET UP STA BF5 FLAGS STA BI15 FOR TEST STA BTMP T2.03 STC CH TURN ON T2.04 STF CH CARD STF INTP AND INTRPT SYSTEM STC 1 * STF 1 * CLC 1 * CLF 1 * NO INTERRUPT JMP *+1,I * SHOULD OCCUR DEF *+1 * HERE JSB *+1,I * DEF *+1 * BF5 NOP * ISZ BTMP INT. SHOULD BE HERE ISZ BTMP CLF INTP TURN I/O SYSTEM OFF LDA BI15 DID IT INTERRUPT? SZA JMP *+7 JSB LDSC LOAD SC INTO ERROR MESSAGE & A-REG STA BE16+10 LDA IOSC E016 JSB ERMS,I E016 NO INT DEF BE16 JMP BIO6 ABORT REST OF SECTION LDA BTMP CHECK FOR CORRECT INTERRUPT CPA .+2 ? JMP *+3 E020 JSB ERMS,I E020 INT EXECUTION ERROR DEF BE20 T2.05 CLF CH TURN OFF CH FLAG JMP BIO6 GO TO NEXT SECTION * BD5 DEF BF5-1 BD5A DEF BF5+1 * BE14 ASC 22,E014 INTRPT F. SC XX DURING HOLD OFF INSTR/ BE15 ASC 19,E015 SECOND INTRPT OCCURRED F. SC XX/ BE16 ASC 12,E016 NO INTRPT F SC XX/ BE17 ASC 13,E017 INTRPT RTN ADDR ERR/ BE20 ASC 13,E020 INTRPT EXECUTION ERR/ SKP BI15 NOP CLF INTP TURN I/O SYSTEM OFF LDA BD5 CHECK TO SEE IF ALL CPA BF5 INSTRUCTION COMPLETED JMP *+6 YES JSB LDSC NO, LOAD SC INTO ERROR MESSAGE & A-REG STA BE14+9 LDA IOSC E014 JSB ERMS,I E014 INT DURING HOLD OFF DEF BE14 LDA BD5A CHECK RETURN ADDRESS LDB CPTO IF 210X SSB ADD ONE INA CPA BI15 JMP BI15A E017 JSB ERMS,I E017 INT RTN ADDR ERROR DEF BE17 JMP BIO6 BI15A JSB TCJI SET SECOND INT TRAP DEF BT15 STF INTP TURN I/O SYSTEM ON JMP BI15,I CONTINUE TEST * BT15 NOP CLF INTP TURN I/O SYSTEM OFF JSB LDSC LOAD SC INTO ERROR MESSAGE & A-REG STA BE15+17 LDA IOSC E015 JSB ERMS,I E015 SECOND INT OCURRED DEF BE15 * SKP * * 3. CLC CH AND CLC 0 * BIO6 JSB TCJI SET JSB INSTRUCTION DEF BI61 T2.06 STC CH SET CH CONTROL T2.07 STF CH SET CH FLAG STF INTP TURN ON INTERRUPTS T2.08 CLC CH CLEAR CH CONTROL NOP GIVE IT A CHANCE NOP NOP CLF INTP TURN INTS OFF B60 JSB TCJI SET JSB INSTRUCTION DEF BI62 T2.09 CLF CH CLEAR CH FLAG T2.10 STC CH SET CH CONTROL T2.11 STF CH SET CH FLAG STF INTP TURN ON INTS CLC INTP CLEAR I/O SYSTEM NOP GIVE IT A CHANCE NOP NOP CLF INTP TURN OFF INTS JMP BIO7 * BI61 NOP CLF INTP TURN OFF INTRPTS JSB LDSC LOAD SC INTO ERROR MESSAGE & A-REG STA BE21+5 LDA IOSC E021 JSB ERMS,I E021 CLC CH ERROR DEF BE21 JMP B60 * BI62 NOP CLF INTP TURN OFF INTS E022 JSB ERMS,I E022 CLC 0 ERROR DEF BE22 JMP BIO7 EXIT SECTION * BE21 ASC 9,E021 CLC XX ERR/ BE22 ASC 8,E022 CLC 0 ERR/ * SKP * * 4. STC SC,C TEST * BIO7 JSB TCJI SET JSB INSTR INTO TRAP CELL DEF BI71 OF INTRF BOARD T2.12 STC CH,C TURN ON CHANNEL CONTROL STF INTP TURN ON INTRPT SYST T2.13 CLC CH DISABLE THE CHANNEL CONTROL NOP NO INTRPT NOP SHOULD OCCURE NOP HERE * B72 CLC INTP,C TURN ALL I/O OFF JSB TCJI SET JSB INSTR INTO TRAP CELL DEF BI72 OF INTRF BOARD T2.14 STC CH,C TURN ON CHANNEL CONTROL STF INTP TURN ON INTRP SYST NOP WAIT FOR 12554 INTERFACE BOARD NOP NOP INTRPT SHOULD OCCUR HERE CLF INTP TURN INTRPT OFF JSB LDSC LOAD SC INTO ERROR MESSAGE & A-REG STA BE16+10 LDA IOSC E016A JSB ERMS,I E025 NO INTRPT ON CHANNEL DEF BE16 (BOARD REQUIRES TEST CONNECTOR) * CLC INTP,C TURN ALL I/O OFF T2.15 STC CH,C TURN ON CHANNEL CONTROL & NOP GIVE THE BOARD TIME TO REPLY NOP NOP T2.16 SFC CH DID BOARD ANSWER BACK? JMP *+6 YES, OK JSB LDSC LOAD SC INTO ERROR MESSAGE & A-REG STA BE26+8 LDA IOSC E026 JSB ERMS,I NO, ERROR DEF BE26 * T2.17 STF CH TURN ON CHANNEL CONTROL T2.18 CLC CH,C CLEAR CHANNEL CONTROL & FLAG NOP GIVE 12554 BOARD TIME TO RESPOND NOP NOP T2.19 SFS CH DID CLC,C INSTR CLEAR THE FLAG? JMP *+6 CHECK IF TEST IS FINISHED JSB LDSC LOAD SC INTO ERROR MASSAGE & A-REG STA BE27+5 LDA IOSC E027 JSB ERMS,I E027 CLC CH,C INSTR DID NOT CLEAR FLAG DEF BE27 * JSB MIOTS CHECK IF TEST IS REQUIRED ON SEVERAL BOARDS JMP T02,I NO, EXIT TEST JMP T02+2 YES, REENTER TEST & REPEAT WITH NEW SC SKP * * EXPECTED INTRPT ROUTINE * BI72 NOP EXPECTED INTRPT OCCURED CLF INTP JMP T2.15-1 RETURN TO TEST * BE26 ASC 20,E026 CARD IN SC XX DID NOT REPLY W FLAG/ BE27 ASC 17,E027 CLC XX,C DID NOT CLEAR FLAG/ * * * *************************************************************** SKP HED TEST 03 * * * TEST 03 * ------- * SELECT CODE SCREEN TEST * ORG 4000B TST03 EQU * NOP JSB T03 CLC INTP,C JMP TST03,I * T03 NOP LDA LSC GET SC OF 1. INTF. BOARD LDB IOID GET I/O INSTR. TABLE POINTER JSB ISC & CONFIGURE I/O INSTR CLC INTP,C LDB .+8 START WITH LOWEST ADDRESS B40 LDA IOSC GET SELECT CODE STORED BY SUBROUT "ISC" CPB A IS IT = TO THE BOARD UNDER TEST? JMP .CLF+1 YES - SKIP TEST LDA .STF NO, CONFIGURE STF INSTR. AND IOM WITH SC. IOR B STA .STF PUT IT IN PLACE LDA .CLF SET UP AND IOM IOR B CLF INSTRUCTION STA .CLF PUT IT IN LINE T3.00 CLF CH CLEAR FLAG ON BOARD UNDER TEST .STF STF CH EXECUTE STF CH INSTR ON ALL OTHER SC'S NOP GIVE 12554 BOARD TIME TO REPLAY NOP NOP T3.01 SFC CH TEST FLAG ON BOARD UNDER TEST JMP B41 .CLF CLF CH CLEAR FLAG ON ALL OTHER SC'S CPB .77 IS TEST FINISHED? JMP T03RT YES INB NO JMP B40 DO NEXT CHANNEL * T03RT JSB MIOTS CHECK IF TEST IS REQUIRED ON SEVERAL I/O BOARD JMP T03,I NO, EXIT TEST JMP T03+2 YES, REENTER TEST WITH NEXT BOARDS SC * SKP * BE30 ASC 19,E030 STF XX SET BOARD FLAG ON SC YY/ * B41 STB BTMP SAVE INTERFERING CHANNEL NUMBER LDA B CONVERT INTERFERING CH FOR MESSAGE JSB N2AO STA BE30+5 LDA IOSC CONVERT INTERFERED BOARDS SC JSB N2AO FOR MESSAGE STA BE30+17 LDA BTMP RETRIEVE SC NUMBERS LDB IOSC E030 JSB ERMS,I E030 DEF BE30 JMP T03RT EXIT ROUTINE * * * ***************************************************************** SKP HED TEST 04 * * * TEST 04 * ------- * THIS TEST CHECKS THE OTA/B, LIA/B & MIA/B * INSTRUCTIONS ON SC'S 01 (S-REG), SC 02 & * 03 (IF DMA IS INSTALLED) AND THE INTERFACE * BOARD(S) UNDER TEST. * TST04 EQU * NOP JSB T04 CLC INTP,C JMP TST04,I * * * TEST EXECUTION ON SC 01 (S-REG) * T04 NOP CLC INTP,C TURN OFF ALL I/O JSB CPTY CHECK IF COMPUTER IS A 2115/16 JMP C1516 YES, SKIP S-REG SUBTEST * LIA 1B NO, STORE SELECTED DIAGNOSTIC STA SREBF OPIONS AWAY LDA .+1 STORE SC 01 INTO STA T4SC SC BUFFER LDB IOT41 LOAD I/O ADDRESS POINTER JSB ISC CONFIGURE I/O TO SC 1 JSB T4S1 EXECUTE TEST ON SC 1 T4RT1 LDA SREBF RESTORE SELECTED DIAGNOSTIC OTA 1B OPTIONS * * * TEST EXECUTION ON SC 02 (WORD COUNT REG ON DMA 1) * C1516 LDA CPTO CHECK IF DMA IS PRESENT AND .204 SZA,RSS JMP T4IB NO DMA, SKIP THIS SUBTEST * LDA .+2 STORE SC 2 INTO STA T4SC BUFFER LDB IOT41 LOAD I/O ADDRESS POINTER JSB ISC CONFIGURE I/O INSTR TO SC 2 STC 2B SET DMA TO ACCEPT BLOCK LENGTH JSB T4S1 EXECUTE TEST ON SC 2 * SKP * * TEST EXECUTION ON SC 03 (WORD COUNT REG ON DMA 2) * T4RT2 LDA CPTO CHECK IF DUAL DMA IS PRESENT AND .+4 SZA,RSS JMP T4IB NO, ITS A 2114 * LDA .+3 STORE SC 3 INTO STA T4SC BUFFER LDB IOT41 LOAD I/O ADDRESS POINTER JSB ISC CONFIGURE I/O INSTR TO SC 3 STC 3B SET DMA TO ACCEPT BLOCK LENGTH JSB T4S1 EXECUTE TEST ON SC 3 * * * TEST EXECUTION ON THE 1. SELECTED INTERFACE BOARD * (LONG TEST EXECUTION) * T4IB CLA STORE NOP'S INTO TEST SUBOUTINE STA T4I1 FOR LONG TEST EXECUTION (65536 STA T4I2 TRANSFERS) STA T4I3 STA T4I4 LDA LSC GET SC OF 1. INTERFACE BOARD, STA T4SC STORE SC INTO BUFR FOR ERR MSG & LDB IOID CONFIGURE I/O INSTR. JSB ISC JSB T4S2 EXECUTE TEST ON INTERFACE BOARD * * * TEST EXECUTION ON ALL SELECTED INTERFACE BORDS EXCEPT * THE FIRST ONE (4 TRANSFERS ONLY PER BOARD) * T4RT4 LDA JSB4A STORE JSB INTO TEST SUBROUTINE FOR STA T4I1 SHORT TEST EXECUTION STA T4I3 LDA JSB4B STA T4I2 STA T4I4 JSB MIOTS CHECK IF TEST IS REQUIRED ON OTHER I/O JMP T04,I NO, EXIT TEST LDB IOID YES, GET I/O INSTR. TABLE POINTER & JSB ISC CONFIGURE I/O INSTR. JSB T4S2 EXECUTE TEST ON NEXT I/O BOARD JMP *-5 & RETURN * SKP