* * INITIALIZE SELECT CODE I/O INSTRUCTIONS * ISC NOP STA IOSC SAVE SELECT CODE IOL LDA B,I GET ADDRESS OF LOCATION CPA .-1 IS IT THE TERMINATOR JMP ISC,I YES RETURN TO CALLER STA SAVA SAVE ADDR LDA A,I GET INSTR AND IOM MASK OFF OLD SELECT CODE IOR IOSC ADD IN NEW SELECT CODE STA SAVA,I RESTORE IT INB MOVE TO NEXT ADDRESS JMP IOL DO IT * * * CONFIGURATION SECTION * .CONF JSB CONF CONFIG I-O CHANNEL JMP STEX1,I RETURN TO DIAG CONTROL * CONF NOP CLC INTP,C TURN I/O SYSTEM OFF CON1 LIA SW GET SELECT CODE AND OPTIONS STA USSC SAVE THEM AND .77 ELIMINATE OPTIONS STA LSC STORE INTO LOWER SC BUFFER CMA,INA CHECK THAT SC > 7 STA B ADA .+7 SSA ? JMP *+3 OK GO ON HLT73 HLT 73B NO JMP CON1 TRY AGAIN * LDA USSC GET SC & OPTIONS AGAIN SSA IS TEST FOR EXTENDER REQUESTED? JMP IOINI YES AND .7700 NO, MASK OFF UPPER SC ALF,ALF TRANSFER 2. SC TO BITS 0-5 & RAL,RAL STORE IN UPPER SC BUFFER STA USC SZA,RSS HAS AN UPPER SC BEEN SPECIFIED? JMP IOINI NO, JUMP OVER 2. SC TEST ADA .-1 YES, CHECK IF USC > LSC ADA B SSA JMP HLT73 NO, INPUT ERROR IOINI LDA LSC YES, INITIALIZE TEST I/O TO LOWER SC LDB IOID INITIALIZE TEST I/O JSB ISC INSTRUCTIONS CLA CLEAR OTA SW SWITCH REGISTER HLT 74B ALLOW OPERATOR TO CHANGE SR OPTIONS JMP CONF,I GO TO EXEC CONTROL SECTION * STEX1 DEF STEX * * * ROUTINE TO TEST IF EXECUTION IS REQUIRED ON SEVERAL I/O BOARDS * MIOTS NOP LDA USC CHECK IF AN UPPER SC HAS BEEN SPECIFIED SZA,RSS JMP MIOTS,I NO, RETURN & EXIT TEST CPA IOSC YES, CHECK IF IT IS EQUAL TO CURRENT SC JMP MIOTS,I YES, RETURN & EXIT TEST LDA IOSC NO, INCREMENT CURRENT SC INA STA T4SCP,I STORE SC INTO BUFR. F ERR MSG. ISZ MIOTS INCREMENT RETURN ADDRESS & RETURN JMP MIOTS,I * T4SCP DEF T4SC * * * SUBROUTINE TO CHECK TIME OUT IN TST 04 ON INTFACE BOARDS * TOSBR NOP NOP GIVE 12554 BOARD TIME TO RESPOND T4.12 SFC CH HAS BOARD RECEIVED THE DATA? JMP TOSBR,I YES, RETURN STA TOBFR NO, STORE A-REG TO SET LDA IOSC NO, TIME OUT ERROR JSB N2AO CONVERT CURRENT SC & STA BE32+10 STORE IN MESSAGE LDA IOSC LOAD SC & PRINT ERROR E032 JSB ERMS,I MESSAGE E032 DEF BE32 LDA TOBFR RESTORE A-REG JMP TOSBR,I RETURN TO TEST * BE32 ASC 12,E032 TIME OUT ON SC XX/ * TOBFR OCT 0 * * * TRAP CELL ROUTINE FOR TEST 02, E023 * BI71 NOP CLF INTP TURN OFF INTRPT SYST JSB LDSC LOAD SC INTO ERROR MESSAGE & A-REG STA BE23+5 LDA IOSC E023 JSB ERMS,I E023 CLC CH ERR DEF BE23 JMP *+1,I DEF B72 BE23 ASC 19,E023 CLC XX DID NOT CLEAR CONTROL FF/ * SKP * * CONFIGURATION & SPECIAL HEADER MESSAGE * SUBROUTINE FOR TEST 08 OR 09 * EXTSL NOP LDA STDAS ASSUME THAT TESTS 00-07 STA STDA WILL BE SELECTED LDA USSC IS TEST FOR EXTENDER REQUESTED? SSA,RSS JMP EXTSL,I NO, STANDARD TEST ALF,ALF YES, CONVERT BUS SWITCH SC1 SPECIFIED RAL,RAL IN S-REG BITS 6-8 TO ASCII & STUFF AND .+7 INTO HEADER MESSAGE IOR .70 STA BSSC1 STORE BUS SWITCH SC1 JSB N2AO STA BH60D+11 LDA USSC DOES THE SYSTEM UNDER TEST HAVE RAL,RAL REDUNDANT EXTENDERS? (BIT 14 SET) SLA,RSS JMP RDCPU NO, REDUNDANT CPU'S * ALF,RAL YES, REDUNDANT EXTENDERS AND .+7 CONVERT BUS SWITCH SC2 SPECIFIED IN IOR .70 S-REG BITS 9-11 TO ASCII, STUFF STA BSSC2 INTO HEADER MESSAGE & STORE JSB N2AO BUS SWITCH SC2 STA BH60E+11 LDA DFEXD LINK BH40D DEF STATEMENT WITH BIT 15 IOR SW15 STA DFEXD LDA B60BP PULL "EXTENDER" DEF STATEMENT & LINK IOR SW15 WITH BIT 15 JMP DFEB * RDCPU LDA DFEXD REDUNDANT CPU'S, REMOVE LINKAGE BIT AND P7777 IN DEF STATEMENT STA DFEXD LDA B60CP PULL "CPU" DEF STATEMENT & LINK WITH IOR SW15 BIT 15 * DFEB STA DFEXB JSB MSGC,I OUTPUT MESSAGE H040 DEF BH60A,I DFEXB NOP DFEXD DEF BH60D DEF BH60E NOP * LDA STDAX SET UP STDA FOR EXTENDER TESTS STA STDA JMP EXTSL,I * B60BP DEF BH60B B60CP DEF BH60C * SKP * BH60A OCT 6412 ASC 22,H060 12979B EXTENDER TEST, WITH REDUNDANT _ BH60B ASC 05,EXTENDERS/ BH60C ASC 05,CPU'S / BH60D ASC 13, BUS SWITCH SC1 = YY/ BH60E ASC 13, SC2 = ZZ/ * BSSC1 OCT 0 BSSC2 OCT 0 BSSCX OCT 0 * * * SUBROUTINE TO TEST THAT BOTH EXTENDERS CAN BE * DICONNECTED FROM THE CPU (TEST 08 & 09) * DISCO NOP LDA EXT09+1 CONFIGURE THE CLC INSTR FOR THE AND IOM EXTENDER ON BSSC2 IOR BSSC2 STA EXT09+1 EXT09 CLC BSC1 TURN BOTH EXTENDER OFF TO PREVENT CLC BSC2 INTERFERENCE LDA SW150 GO TO SUBROUT "DAFSR" & CHECK IF JSB DAFSP,I FLAG SET OR DATA COMPARED RSS YES, AN EXT. IS STILL CONNECTED JMP DISCO,I NO, BOTH EXT'S ARE DISCONNECTED * LDA BSSC1 CONVERT BOTH SC TO ASCII & JSB N2AO STUFF INTO MESSAGE STA BE57+5 LDA BSSC2 JSB N2AO STA BE57+9 E057 JSB ERMS,I PRINT MESSAGE DEF BE57,I DEF BE57A JMP DISCO,I * BE57 ASC 15,E057 CLC XX, CLC YY DID NOT/ BE57A ASC 16, DISCONNECT BOTH EXTENDERS/ * DAFSP DEF DAFSR * * * ROUTINE TO WARN OPERATOR OF INPUT ERROR * ER61 LDA SINA RETRIEVE PREVIOUS TEST SELECTION LDB SINB JSB ERMS,I GO TO ERR MESG 61 DEF BE61 JMP EXCX,I * EXCX DEF EXC BE61 ASC 18,E061 CONFIG & TEST SEL INCOMPATIBLE/ SKP HED DIAGNOSTIC PROGRAM CONTROL ORG 2000B STEX CLC INTP,C TURN I/O SYSTEM OFF CLE LDA DSN OUTPUT DSN LDB HDMX WITH THE JSB O2AS,I HEADER MESSAGE JSB MSGC,I PRINT HEADER DEF HDMS CLA CLEAR PASS STA EOLC COUNT JSB EXTSL CHECK IF 12979B EXTENDER TEST EXCZ LDB SW9 CHECK FOR USER SELECTION REQ JSB SWRT,I JMP USR IT'S USERS CHOICE NUSR LDA STDA GET ONE OF THE TWO LDB STDB STANDARD TEST RUNS JMP EXC * USR LIA SW READ SW-REG AND SWM9 MASK OFF BIT 9 OTA SW OUTPUT TO SW-REG LDA SINA RETRIEVE PREVIOUS RUN LDB SINB HLT 75B WAIT FOR USER INPUT EXC STA UINA SAVE STB UINB USER STA SINA INPUT STB SINB PROGRAM LDB SW9 WAS USER CHOICE REQUESTED? JSB SWRT,I JMP USR YES, RETURN FOR NEW SELECTION CCA NO, CONTINUE. STA TSTN SET TEST NUMBER TO -1 STA CFTT CLA STA TSTA CLEAR TEST RUN FLAG * EXCL LDA UINA RESTORE A REG. LDB UINB RESTORE B REG. ERA,RAL ROTATE ERB FIRST ERA TEST BIT STA UINA SAVE POSITIONS STB UINB ISZ TSTN MOVE TEST UP ONE NOP XCL1 LDA TSTN ADA TSTP GET IT'S LDA A,I ADDRESS CPA .-1 IS IT END OF LIST JMP EOL YES LDB UINB SSB,RSS SHOULD IT BE RUN? JMP EXCL NO STA TSTA YES - SAVE TEST ADDRESS JSB ITCH INITIALIZE TRAP CELL HALTS LDA TSTN CHECK IF OPERATOR CHOSE INCOM- ADA .-8 PATIBLE CONFIG & TEST SELECTION XOR USSC CHECK IF BIT 15 ARE DIFFERENT SSA,RSS JMP ER61 YES, REPORT INCOMPATIBILITY JSB TSTA,I NO, OK, GO DO TEST .EXRT LDA TSTN DISPLAY TEST NUMBER IF HALTED LDB SW15 CHECK FOR HALT AT END OF TEST JSB SWRT,I HLT 76B YES WAIT FOR OPERATOR LDB SW9 CHECK FOR ABORT JSB SWRT,I JMP USR YES LDB SW13 CHECK FOR LOOP ON ROUTINE JSB SWRT,I JMP XCL1 YES - LOOP JMP EXCL CONTINUE * EOL LDA TSTA CHECK IF ANY TESTS WERE RUN SZA,RSS ? JMP NUSR NO, SO PICK UP STANDARD RUN LDA EOLC UP DATE PASS COUNT INA STA EOLC CCE LDB PSCA GET PASS COUNT ADB .+2 ADDRESS JSB O2AS,I CONVERT IT JSB MSGC,I CALL PRINT ROUTINE PSCA DEF PSC LDB SW12 CHECK FOR LOOP ON DIAG. JSB SWRT,I JMP *+3 YES LDA EOLC HLT 77B NO WAIT AND DISPLAY PASS COUNT LDA SINA RESTORE ORIGINAL PROGRAM LDB SINB NO, STANDARD TEST JMP EXC DO IT ALL AGAIN * * * *************************************************************** SKP HED TEST 00 * * * TEST 00 * ------- * INTERRUPT FLAG CHECK (STF00, CLF00, SFS00, SFC00) * OVERFLOW REGISTER CHECK (STF01, CLF01, SFS01, SFC01) * INTERFACE BOARD(S) FLAG CHECK (STFXX, CLFXX, SFSXX, SFCXX) * * TST00 EQU * NOP JSB T00 DO BASIC I/O CLC INTP,C TURN OFF ALL I/O JMP TST00,I * T00 NOP CLC INTP,C TURN OFF ALL I/O * LDA IOSPT FETCH THE FIRST SOURCE ADDRESS OF STA IOSAD THE INSTRUCTION TABLE & STORE IN IOSAD CLA SET SC=00 (INTRPT) INTO THE VALUE STA SCVA OF THE SC JSB IO1 EXERCISE TEST W STANDARD CLF,STF,SFS,SFC JSB IO1 " " " SPECIAL CLF,STF JSB IO1 " " " " SFC,SFS JSB IO1 " " " STANDARD SFC,C SFS,C SFS JSB IO1 " " " SPECIAL SFC,C SFS,C SFS * LDA IOSPT RECONFIGURE THE SC TO 01 (OVERFLOW REG) STA IOSAD & REPEAT THE SAME TESTS AS ABOVE ISZ SCVA JSB IO1 JSB IO1 JSB IO1 JSB IO1 JSB IO1 * LDA LSC RECONFIGURE THE SC TO THE SPECIFIED STA SCVA INTERFACE CARD & REPEAT THE SAME T00RP LDA IOSPT TESTS AS ABOVE EXCLUDING STA IOSAD THE LAST 2 SUBROUTINES JSB IO1 BECOUSE OF 21MX M-SERIES JSB IO1 REV. 1813 & LATER) JSB IO1 * LDA USC LOAD THE UPPER SC SZA,RSS IS ONE? JMP T00,I NO, EXIT TEST CPA SCVA YES, IS IT = SC JUST TESTED JMP T00,I YES, EXIT TEST ISZ SCVA NO, INCREMENT SC & REPEAT TEST JMP T00RP * SKP * * SUBROUTINE TO SET THE INSTRUCTION COUNTER TO 7, * SET THE DESTINATION & SOURCE ADDRESSES, * CONFIGURE THE I/O INSTRUCTIONS & RUN ONE TEST LOOP * IO1 NOP LDA .-7 7 I/O INSTR HAVE TO BE CONFIGURED & STA ISCT MOVED INTO THE TEST LDB IODPT STORE DESTINATION ADDRESS OF STB IODAD 1. INSTRUCTION IN GROUP AWAY JSB STIO CONFIGURE & STORE I/O INSTR INTO TEST JSB BIO1 EXERCISE TEST JMP IO1,I * ISCT OCT 0 * * * * SUBROUTINE TO PULL I/O INSTRUCTION FROM SOURCE, * CONFIGURE IT & STORE IT INTO THE DESTINATION IN * THE TEST. (SC MUST BE IN SCVA, NUMBER OF INSTR * TO BE MOVED IN ISCT, DESTINATION ADDRESS OF 1. * INSTRUCTION IN "IODAD" AND SOURCE ADDRESS OF NEXT * INSTRUCTION IN "IOSAD") * STIO NOP LDA IOSAD,I LOAD INSTR FROM SOURCE IOR SCVA CONFIGURE I/O INSTR LDB IODAD,I FETCH DESTIN. ADDRESS POINTER STA B,I STORE INSTR VIA POINTER INTO TEST * ISZ IOSAD INCREMENT SOURCE ADDRESS NOP ISZ ISCT CHECK IF PREDEFINED # OF I/O INSTR RSS HAVE BEEN TRANSFERED? JMP STIO,I YES, EXIT SUBROUTINE ISZ IODAD NO, INCREMENT DESTINATION ADDRESSES NOP JMP STIO+1 RETURN FOR TRANSFER OF NEXT INSTR * IOSAD OCT 0 IODAD OCT 0 SKP * * SUBROUTINE TO TEST STF, CLF, SFS & SFC INSTRUCTIONS * BIO1 NOP NOP TOGGLE FLAG ON, NOP THEN OFF NOP IS IT CLEARED? E000 JSB ER000 NO, ERROR NOP YES, IS IT SET? RSS NO, OK E001 JSB ER001 YES, ERROR NOP SET FLAG NOP IS IT SET? E002 JSB ER002 NO, ERROR NOP YES, IS IT CLEARED? RSS NO, OK E003 JSB ER003 YES, ERROR JMP BIO1,I * SKP * * I/O INSTRUCTION TABLE TO BE CONFIGURED & * TRANSFERED INTO TEST * IOSPT DEF *+1 * OCT 102100 STF OCT 103100 CLF OCT 102200 SFC OCT 102300 SFS OCT 102100 STF OCT 102300 SFS OCT 102200 SFC * OCT 102100 STF OCT 107100 CLF WITH BIT 11 SET OCT 102200 SFC OCT 102300 SFS OCT 106100 STF " " " " OCT 102300 SFS OCT 102200 SFC * OCT 102100 STF OCT 103100 CLF OCT 106200 SFC WITH BIT 11 SET OCT 106300 SFS " " " " OCT 102100 STF OCT 106300 SFS " " " " OCT 106200 SFC " " " " * OCT 102100 STF OCT 103100 CLF OCT 103200 SFC,C OCT 102300 SFS OCT 102100 STF OCT 103300 SFS,C OCT 102300 SFS * OCT 102100 STF OCT 103100 CLF OCT 107200 SFC,C WITH BIT 11 SET OCT 102300 SFS OCT 102100 STF OCT 107300 SFS,C " " " " OCT 106300 SFS WITH BIT 11 SET * OCT 177777 SKP * * DESTINATION ADDRESSES OF I/O INSTRUCTIONS * IODPT DEF *+1 * DEF BIO1+1 DEF BIO1+2 DEF BIO1+3 DEF BIO1+5 DEF BIO1+8 DEF BIO1+9 DEF BIO1+11 * SKP * * ERROR SUBROUTINE, CONVERTS THE 2 FAILING INSTRUCTIONS * TO ASCII & STORES THEM INTO THE ERROR MESSAGE STRING, * INSERTS THE CURRENT SC INTO THE ERROR MESSAGE STRINGS, * CHECKS THE ENTERY POINTS TO THE SUBROUTINES & OUTPUTS * ERROR MESSAGES. * ER000 NOP CLA STA ENPTC LDA E000-2 LDB E000-1 JMP STLOK ER001 NOP LDA .+1 STA ENPTC LDA E001-5 LDB E001-2 MARK THE ENTERY POINT IN "ENPTC" & JMP STLOK LOAD THE 2 FAILING INSTRUCTIONS ER002 NOP FROM THE TEST & JUMP TO THE LDA .+2 ERROR SUBROUTINE STA ENPTC LDA E002-2 LDB E002-1 JMP STLOK ER003 NOP LDA .+3 STA ENPTC LDA E003-5 LDB E003-2 * STLOK CLC INTP,C TURN ALL I/O OFF STA FIINS STORE THE 2 FAILING INSTRUCTIONS STB SEINS CLE CONVERT THE 2 FAILING INSTRUCTIONS FROM LDB BEADP OCTAL TO ASCII & STORE THEM INTO JSB O2AS,I THE "BEAD" STRING. CCE LDA SEINS LDB BEADP ADB .+3 JSB O2AS,I * LDA SCVA CONVERT THE SC WHICH IS STORED IN JSB N2AO MEM LOC "SCVA" FROM OCTAL TO STA BE00+5 ASCII & STORE IT INTO THE STA BE01+5 ERROR MESSAGES E000, E001, STA BE02+5 E002 & E003. STA BE03+5 STA BESC * SKP * LDA FIINS DETERMEN ENTERY POINT OF ERROR LDB ENPTC SUBROUTINE SO THAT CORRECT SZB,RSS ERROR MESSAGE CAN BE JMP EX000 ACCESSED. CPB .+1 JMP EX001 CPB .+2 JMP EX002 * EX003 LDB SEINS OUTPUT THE APPROPRIATE JSB ERMS,I ERROR MESSAGE DEF BE03,I DEF BESC,I DEF BEAD JMP ER003,I EX002 LDB SEINS JSB ERMS,I DEF BE02,I DEF BESC,I DEF BEAD JMP ER002,I EX001 LDB SEINS JSB ERMS,I DEF BE01,I DEF BESC,I DEF BEAD JMP ER001,I EX000 LDB SEINS JSB ERMS,I DEF BE00,I DEF BESC,I DEF BEAD JMP ER000,I * * ENPTC OCT 0 FIINS OCT 0 SEINS OCT 0 * BEADP DEF BEAD+3 * BE00 ASC 09,E000 CLF XX SFC _ BE01 ASC 09,E001 CLF XX SFS _ BE02 ASC 09,E002 STF XX SFS _ BE03 ASC 09,E003 STF XX SFC _ BESC ASC 04,XX ERR/ BEAD ASC 10, XXXXXX XXXXXX/ * * * *************************************************************** SKP