* * SUBROUTINE TO TEST OTA/B, LIA/B & MIA/B ON * SC 01, SC 02 & SC 03 * T4S1 NOP CLA STA T4FG SET TEST FLAG TO OTA - LIB STB T4OG STORE ORIGN. VALUE OF B-REG T41 OTA 0B TEST OTA - LIB LIB 0B CPA B JMP *+2 JSB T4ER1 ISZ A JMP T41-1 * INB CLEAR B-REG ISZ T4FG SET TEST FLAG TO OTB - LIA STA T4OG STORE ORIGN. VALUE OF A-REG T42 OTB 0B TEST OTB - LIA LIA 0B CPB A JMP *+2 JSB T4ER1 ISZ B JMP T42-1 * INA CLEAR A-REG ISZ T4FG SET FLAG TO OTA - MIB STA T4ABF STORE VALUE TO BE OUTPUT STB T4BBF STORE VALUE TO BE MERGED INTO T43 OTA 0B MIB 0B TEST OTA - MIB IOR T4BBF CREATE EXPECTED MERGED VALUE CPA B & CHECK IF COMPARE JMP *+2 YES JSB T4ER1 NO, ERROR LDA T4ABF INCREMENT THE VALUE TO BE ISZ A OUTPUT JMP T43-2 * SKP * INB CLEAR B-REG ISZ T4FG SET FLAG TO OTB - MIA STA T4ABF STORE VALUE TO BE MERGED INTO STB T4BBF STORE VALUE TO BE OUTPUT T44 OTB 0B MIA 0B TEST OTB - MIA STA T4ARS STORE MERGED VALUE TO FREE A-REG LDA T4BBF FOR IOR OF EXPECTED VALUE IOR T4ABF STA T4ART STORE IT TO RELOAD A-REG W MERGED LDA T4ARS VALUE IN CASE OF ERROR CPA T4ART & COMPARE ACTUAL W EXPECTED VALUE JMP *+2 YES, OK JSB T4ER1 NO, ERROR ISZ B INCREMENT THE VALUE TO BE OUTPUT JMP T44-2 * JMP T4S1,I * SKP * * SUBROUTINE TO TEST OTA/B, LIA/B & MIA/B * ON INTERFACE BOARD. * T4S2 NOP LDA T4ORG ESTABLISH TABLE POINTER IN CASE STA T4PT OF SHORT INSTR. EXECUTION CLA STA T4FG STB T4OG T4.00 OTA CH TEST OTA - LIB T4.01 STC CH,C JSB TOSBR T4.02 LIB CH CPA B JMP *+2 JSB T4ER1 T4I1 NOP NOP FOR LONG, JSB FOR SHORT INSTR EXEC ISZ A JMP T4.00-1 * LDA T4ORG ESTABLISH TABLE POINTER IN CASE STA T4PT OF SHORT INSTR. EXECUTION CLA CLB ISZ T4FG STA T4OG T4.03 OTB CH TEST OTB - LIA T4.04 STC CH,C JSB TOSBR T4.05 LIA CH CPB A JMP *+2 JSB T4ER1 T4I2 NOP NOP FOR LONG, JSB FOR SHORT INSTR EXEC ISZ B JMP T4.03-1 * SKP * LDB T4ORG ESTABLISH TABLE POINTER FOR STB T4PT SHORT INSTR EXEC CLB CLA CLEAR A-REG ISZ T4FG SET FLAG TO OTA - MIB STA T4ABF STORE VALUE TO BE OUTPUT STB T4BBF STORE VALUE TO BE MERGED INTO T4.06 OTA CH T4.07 STC CH,C TEST OTA - LIB JSB TOSBR T4.08 MIB 0B IOR T4BBF CREATE EXPECTED MERGED VALUE CPA B & CHECK IF COMPARE JMP *+2 YES JSB T4ER1 NO, ERROR LDA T4ABF LOAD VALUE TO BE OUTPUT (IF IN LONG TEST) T4I3 NOP NOP FOR LONG, JSB FOR SHORT TEST ISZ A INCREMENT THE VALUE TO BE OUTPUT JMP T4.06-2 * LDA T4ORG ESTABLISH TABLE POINTER IN CASE OF STA T4PT SHORT INSTR EXEC CLA CLB CLEAR B-REG ISZ T4FG SET FLAG TO OTB - MIA STA T4ABF STORE VALUE TO BE MERGED INTO STB T4BBF STORE VALUE TO BE OUTPUT T4.09 OTB CH T4.10 STC CH,C TEST OTB - MIA JSB TOSBR T4.11 MIA CH STA T4ARS STORE MERGED VALUE TO FREE A-REG LDA T4BBF FOR IOR OF EXPECTED VALUE IOR T4ABF STA T4ART STORE IT TO RELOAD A-REG W MERGED LDA T4ARS VALUE IN CASE OF ERROR CPA T4ART & COMPARE ACTUAL W EXPECTED VALUE JMP *+2 YES, OK JSB T4ER1 NO, ERROR T4I4 NOP NOP FOR LONG, JSB FOR SHORT EXEC ISZ B INCREMENT THE VALUE TO BE OUTPUT JMP T4.09-2 * JMP T4S2,I * SKP * * SUBROUTINE TO SUPPLY 4 DATA VALUES TO BE TRANSFERED * TO THE I/O BOARD FOR SHORT EXECUTION TEST * T4AMD NOP FETCH DESIRED DATA VALUE W A-REG LDA T4PT,I ISZ T4PT JMP T4AMD,I * T4BMD NOP FETCH DESIRED DATA VALUE W B-REG LDB T4PT,I ISZ T4PT JMP T4BMD,I * JSB4A JSB T4AMD JSB INSTR TO BE STORED INTO TEST SUBROUT JSB4B JSB T4BMD FOR SHORT TEST * T4ORG DEF T4TL STARTING TABLE POINTER T4PT OCT 0 MOVING TABLE POINTER * * * * SUBROUTINE TO TEST FOR 2115/16 COMPUTERS * (IF COMPUTER IS NOT A 2115/16 RETURN ADDRESS * IN "CPTY" IS INCREMENTED) * CPTY NOP LDA CPTO LOAD COMPUTER TYPE & CHECK IF AND S1512 IT IS A 2115 CPA SW14 JMP CPTY,I YES, EXIT AND S1514 NO, CHECK IF IT IS A 2116 SZA,RSS JMP CPTY,I YES, EXIT ISZ CPTY NO, INCREMENT RETURN ADDRESS JMP CPTY,I & EXIT * SKP * * ERROR HANDLING SUBROUTINE FOR TEST 04 * * STORE OTA/B, LIA/B, MIA/B INTO ERROR MESSAGE * T4ER1 NOP STA T4A STORE BOTH REG AWAY STB T4B LDB SREBF IN CASE THAT ERR ROUTINE WAS ENTERED LDA IOSC FROM DATA TRANSFER VIA S-REG (SC 1) CPA .+1 RESTORE SELECTED DIAGNOSTIC OTB 1B OPTIONS LDB T4FG FROM WHERE WAS ROUTINE ENTERED? LDA AS.TA LOAD A-REG W ASCII "TA" SLB IS IT AN OTA INSTR? INA NO, LOAD B-REG W ASCII "TB" STA BE31+3 YES, STORE "TA" OR "TB" INTO MESSAGE LDA AS.IA LOAD B-REG W ASCII "IA" SLB,RSS IS IT A *IB INSTR? INA YES, LOAD A-REG W ASCII "IB" STA BE31+7 NO, STORE "IB" OR "IA" INTO MESSAGE * * STORE "A/B"-REG INTO ERROR MESSAGE * LDA AS..A LOAD A-REG W ASCII " A" SLB IS IT AN A-REG? INA NO, CONVERT IT TO " B" STA BE311+11 YES, STORE IT IN DATA OUTPUT LDA AS..A SLB,RSS INA STA BE312+11 STORE IT IN DATA INPUT STA BE313+11 STORE IT IN ORIG. DATA * * STORE TRANSFERED DATA WORDS INTO ERROR MESSAGE * LDA T4A ASSUME THAT IT WAS AN OTA SLB IS THAT CORRECT? LDA T4B NO, IT WAS AN OTB CLE YES, CONVERT THE OUTPUTTED DATA LDB B31PT WORD TO ASCII & STUFF IT JSB O2AS,I INTO MESSAGE LDB T4FG LOAD TEST FLAG AGAIN LDA T4B ASSUME THAT IT WAS A *IB SLB IS THAT CORRECT? LDA T4A NO, IT WAS A *IA CLE YES, CONVERT THE INPUTTED DATA LDB B31PU WORD TO ASCII & STUFF IT JSB O2AS,I INTO ERROR MESSAGE LDA T4OG CONVERT THE ORIG DATA CLE WORD TO ASCII & STUFF IT LDB B31PV INTO ERROR MESSAGE JSB O2AS,I * SKP * * STORE "L" OR "M" INTO ERROR MESSAGE * LDA AS..L ASSUME THAT ROUTINE WAS ENTERED LDB T4FG FROM AN OT* - LI* TEST BRS,SLB IS THAT CORRECT? INA NO, WAS ENTERED FROM A OT* - MI* STA BE31+6 YES, ENTER IT INTO ERROR MESSAGE * * STORE SC INTO ERROR MESSAGE * LDA T4SC LOAD A-REG WITH SC JSB N2AO CONVERT SC TO ASCII STA BE31+4 & STORE IT INTO MESSAGE STA BE31+8 * * OUTPUT THE E031 ERROR MESSAGE * LDA T4A YES, LOAD A-REG W OUTPUT LDB T4B & B-REG W RECEIVED DATA E031 JSB ERMS,I OUTPUT ERROR MESSAGE E031 DEF BE31,I DEF BE311,I DEF BE312,I DEF BE313 * LDA T4SC DETERMEN RETURN POSITION TO NEXT CPA .+1 SC IN TEST 04 AFTER ERROR MESSAGE JMP T4RT1 CPA .+2 JMP T4RT2 CPA .+3 JMP T4IB JMP T4RT4 SKP * SREBF OCT 0 T4FG OCT 0 T4A OCT 0 T4B OCT 0 T4OG OCT 0 T4ABF OCT 0 T4BBF OCT 0 T4ARS OCT 0 T4ART OCT 0 AS.TA OCT 52101 AS.IA OCT 44501 AS..A OCT 20101 AS..L OCT 20114 T4SC OCT 0 * IOT41 DEF *+1 * DEF T41 DEF T41+1 DEF T42 DEF T42+1 DEF T43 DEF T43+1 DEF T44 DEF T44+1 DEC -1 * B31PT DEF BE311+15 B31PU DEF BE312+15 B31PV DEF BE313+15 BE31 ASC 12,E031 OT*SC - LI*SC ERR/ BE311 ASC 19, DATA OUTPUT FROM *-REG XXXXXX/ BE312 ASC 19, DATA INPUT INTO *-REG YYYYYY/ BE313 ASC 19, ORIGINAL DATA IN *-REG ZZZZZZ/ * * * ***************************************************************** SKP HED TEST 05 * * * TEST 05 * ------- * THIS TEST CHECKS THE MANUAL INTERVENTIONS * TO THE S-REG * * TST05 EQU * NOP LDB S812 CHECK IF TEST SHALL BE SUPPRESSED JSB SWRT,I ? JMP *+2 YES, SKIP S-REG TEST JSB T05 NO, PERFORM TEST CLC INTP,C JMP TST05,I * * * OUTPUT 1. MESSAGE TO CONSOLE REQUESTING * "125252" INPUT ON S-REG * T05 NOP CLC INTP,C TURN OFF ALL I/O LIA 1B STORE SELECTED DIAGNOSTIC STA SREBF OPTIONS AWAY AND SW10 CLEAR THE S-REG FOR INPUT EXEPT S-REG OTA 1B BIT 10 (SUPPRESS NON ERR MSG) LDA .1252 FETCH VALUE TO BE OUTPUT JSB H033 & GO TO H033 OUTPUT SUBROUTINE * * * TEST LIA/B FROM S-REG WITH 125252 * LDA CPR STORE "CPA .1252" INTO TEST STA CPA IOR SW11 STORE "CPB .1252" INTO TEST STA CPB CLA SET TEST FLAG TO "LIA 125252" STA T4FG JSB T5S1 EXERCISE TEST * * * TEST MIA/B FROM S-REG WITH 125252 * LDA LOAD STORE "LDA .1252" INTO TEST STA LDA LDA INOR STORE "IOR .1252" INTO TEST STA IOR ISZ T4FG SET TEST FLAG TO "MIA 125252" JSB T5S2 EXERCISE TEST * SKP * * OUTPUT 2. MESSAGE TO CONSOLE REQUESTING * "52525" INPUT ON S-REG * LDA SREBF CLEAR THE S-REG FOR NEW INPUT EXEPT AND SW10 S-REG BIT 10 OTA 1B LDA .0525 FETCH VALUE TO BE OUTPUT & JSB H033 GO TO H033 OUTPUT ROUTINE * * * * TEST LIA/B FROM S-REG WITH 052525 * LDA CPR STORE "CPA .0525" INTO TEST INA STA CPA IOR SW11 STORE "CPB .0525" INTO TEST STA CPB ISZ T4FG SET TEST FLAG TO "LIA 052525" JSB T5S1 * * * TEST MIA/B FROM S-REG WITH 052525 * LDA LOAD STORE "LDA .0525" INTO TEST INA STA LDA LDA INOR STORE "IOR .0525" INTO TEST INA STA IOR ISZ T4FG SET TEST FLAG TO "MIA 052525" JSB T5S2 EXERCICE TEST * * * * EXIT ROUTINE FOR TEST 05 * T5EX LDA SREBF RESTORE SELECTED DIAGNOSTIC OTA 1B OPTIONS JSB CPTY CHECK IF CPU IS A 2115/16 JSB SREST YES, OUTPUT MESSAGE H034 JMP T05,I NO, EXIT * SKP * * SUBROUTINE TO OUTPUT INSTRUCTION MESSAGE * H033 NOP LDB B33PT CLE JSB O2AS,I STORE NUMBER INTO ASCII STRING JSB MSGH,I OUTPUT MESSAGE DEF BE33 JMP H033,I * * * SUBROUTINE TO TEST LIA/B FROM S-REG * T5S1 NOP CLA STA T5BUF CLEAR A-REG & STORE IN BUFFER LIA 1B READ S-REG IN CPA NOP COMPARE AGAINST EXPECTED VALUE JMP *+2 YES, OK JSB T5ER NO, ERROR LDA T5BUF INCREMENT THE ORIG A-REG VALUE ISZ A & REPEAT JMP T5S1+2 * ISZ T4FG SET TEST FLAG TO "LIB 125252" OR "LIB 052525" CLB STB T5BUF CLEAR B-REG & STORE IN BUFFER LIB 1B READ S-REG IN CPB NOP COMPARE AGAINST EXPECTED VALUE JMP *+2 YES, OK JSB T5ER NO, ERROR LDB T5BUF INCREMENT THE ORIG B-REG VALUE ISZ B & REPEAT JMP CPB-2 JMP T5S1,I * * * SUBROUTINE TO TEST MIA/B FROM S-REG * T5S2 NOP CLA STA T5BUF CLEAR A-REG & STORE IN BUFFER MIA 1B MERGE S-REG IN & STORE AWAY STA T5MRG FOR IOR OPERATION LDA NOP LOAD A-REG W EXPECTED INPUTTED PATTERN IOR T5BUF IOR ORIG CONTENTS & COMPARE CPA T5MRG AGAINST MERGED IN VALUE JMP *+2 OK JSB T5ER ERROR LDA T5BUF INCREMENT THE ORIG BUFFER ISZ A & REPEAT OPERATION JMP T5S2+2 * SKP * ISZ T4FG SET TEST FLAG TO "MIB 125252" OR "MIB 052525" CLB STB T5BUF CLEAR B-REG & TRANSFER CONTENTS TO LDA B A-REG FOR IOR OPERATION MIB 1B MERGE S-REG IN IOR NOP IOR EXPECTED VALUE CPA B & COMPARE JMP *+2 OK JSB T5ER ERROR LDB T5BUF INCREMENT THE ORIG BUFFER ISZ B & REPEAT OPERTION JMP IOR-3 JMP T5S2,I * * * * OUTPUT MESSAGE TO RESTORE DIAGN. OPTIONS IN S-REG * SREST NOP H035 JSB MSGH,I RESTORE S-REG IF CPU IS A 2115/16 DEF BE35 JMP SREST,I * SKP * * * ERROR SUBROUTINE FOR TEST 05 * T5ER NOP STA T4A STORE BOTH REG AWAY STB T4B LDB T4FG LOAD TEST FLAG LDA AS.IA ASSUME THAT ROUTINE WAS ENTERED SLB FROM A LIA/MIA TEST INA NO, FROM A LIB/MIB TEST STA BE34+3 STORE "A" OR "B" INTO ERR MESSAGE * LDA AS..A STORE "A" OR "B" INTO THE SLB FOURTH LINE OF THE ERR INA MESSAGE (*-REG) STA BE313+11 * LDA T4A ASSUME THAT THE ACTUAL VALUE SLB WAS STORED IN T4A LDA T4B NO, IN T4B LDB B342P CONVERT VALUE TO ASCII & CLE STORE IN MESSAGE JSB O2AS,I "ACTUAL VALUE" * LDA T5BUF CONVERT "ORIG DATA" TO LDB B31PV ASCII & STORE IN STRING ADA .+4 CLE JSB O2AS,I * LDB T4FG LOAD TEST FLAG LDA AS..L ASSUME THAT ROUTINE WAS ENTERED BRS,SLB FROM A LIA/B CHECK INA NO, FROM A MIA/B CHECK STA BE34+2 STORE "L" OR "M" INTO 1. LINE * LDA .1252 ASSUME THAT EXPECTED VALUE = 125252 (LIA/B) SZB,RSS IS THAT CORRECT? JMP EXPVA YES LDA .0525 NO, ASSUME THAT EXP. VALUE = 052525 (LIA/B) SLB,RSS IS THAT CORRECT? JMP EXPVA YES LDA T4A NO, ASSUME THAT EXP VALUE IS IN T4A (MIA) LDB T4FG & CHECK TEST FLAG FOR A-REG SLB LDA T4B NO, ITS A MIB INSTR EXPVA CLE CONVERT EXPECTED VALUE TO ASCII LDB B341P & STORE IT INTO 2. LINE JSB O2AS,I * SKP * LDA SREBF TRY TO RESTORE ORIG S-REG SO THAT MSG OTA 1B CAN BE SKIPPED IF BIT 11 SET LDA T4FG A = EXPECTED, B = ACTUAL VALUE LDB T4A ASSUME THAT THE ACTUAL VALUE SLA WAS STORED IN T4A. TRUE? LDB T4B NO, IN T4B ARS,SLA WAS EXPECTED VALUE = 125252? JMP *+3 NO, 052525 LDA .1252 YES RSS LDA .0525 E033 JSB ERMS,I OUTPUT ERROR MESSAGE E033 DEF BE34,I DEF BE341,I DEF BE342,I DEF BE313 JMP T5EX GO TO EXIT ROUTINE * * * T5BUF OCT 0 T5MRG OCT 0 * CPR CPA .1252 LOAD LDA .1252 INOR IOR .1252 * B33PT DEF *+10 BE33 ASC 18,H033 SET S-REG TO XXXXXX, PRESS RUN/ * B342P DEF BE342+15 B341P DEF BE341+15 BE34 ASC 14,E034 XI* FAILED FROM S-REG/ BE341 ASC 19, EXPECTED VALUE XXXXXX/ BE342 ASC 19, ACTUAL VALUE YYYYYY/ * BE35 ASC 21,H035 RESET S-REG TO DESIRED PROGR OPTIONS, OCT 6412 ASC 08, PRESS RUN/ * * * *************************************************************** SKP HED TEST 06 * * * TEST 06 * ------- * EXTERNAL & INTERNAL PRESET TEST * * TST06 EQU * NOP LDB S812 CHECK TO SUPPRESS TEST JSB SWRT,I ? JMP *+2 YES, SKIP PRESET TEST JSB T06 CLC INTP,C TURN OFF ALL I/O JMP TST06,I RETURN TO CALLER * T06 NOP CLC INTP,C TURN OFF ALL I/O H024 JSB MSGC,I TELL OPERATOR DEF BM24 PRESS PRESET * T6.01 CLF CH CLEAR CH FLAG STF INTP TURN ON INTS JSB TCJI SET TRAP CELL JSB INSTRUCTION DEF BI70 HLT 24B WAIT FOR OPERATOR CLA,INA SET UP FLAGS FOR TESTS SFS INTP CHECK INTP FLAG CLA NOT SET SO CLEAR FLAG RAL MOVE TO NEXT FLAG CLF INTP TURN OFF INTRPT T6.02 SFS CH CHECK CHANNEL FLAG INA NOT SET SO FLAG IT RAL MOVE TO NEXT FLAG LIB 0 CHECK I/O BUS SZB SHOULD BE ZERO INA NOT SO FLAG IT RAL MOVE TO NEXT FLAG STF INTP CHECK CONTROL ON CARD NOP GIVE IT A CHANCE NOP CLF INTP TURN OFF INTPS SKP B70 SLA,RSS CHECK FOR ERRORS JMP *+3 E040 JSB ERMS,I E040 DID NOT CLEAR CONTROL DEF BE40 RAR SLA,RSS JMP *+3 E041 JSB ERMS,I E041 I/O LINES NOT CLEAR DEF BE41 RAR SLA,RSS JMP *+3 E036 JSB ERMS,I E036 FLAG NOT SET DEF BE36 RAR SLA,RSS JMP *+3 E037 JSB ERMS,I E037 DID NOT DIABLE INTS DEF BE37 JMP T06,I RETURN TO CALLER * BI70 NOP CONTROL FAILED CLF INTP TURN OFF INTPS INA JMP B70 * BE36 ASC 17,E036 PRESET(EXT) DID NOT SET FLAG/ BE37 ASC 20,E037 PRESET(INT) DID NOT DISABLE INTRPT/ BE40 ASC 20,E040 PRESET(EXT) DID NOT CLEAR CONTROL/ BE41 ASC 21,E041 PRESET(EXT) DID NOT CLEAR I-O LINES/ BM24 ASC 17,H024 PRESS PRESET (EXT&INT),RUN/ * * * *************************************************************** SKP