ASMB,A,B,L,C HED 12665 DIAGNOSTIC PROGRAM -- BASIC TESTS ORG 2 * * 12665 DIAGNOSTIC PROGRAM * * SOURCE TAPES 29005-80001 (1 OF 2) DATE CODE 1636 * AND 29005-80002 (2 OF 2) DATE CODE 1636 * * STARTING ADDRESS 2 * * RESTARTING ADDRESS 100B * * REQUIRES TAPE READER ONLY, THE SWITCH REGISTERS ARE * USED FOR ENTERING THE NECESSARY INFORMATION REQUIRED * BY THE PROGRAM. THE FOLLGWING TABLE SHOWS THE PROGRAM * WORD ORGANIZATION. * * * ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ * BIT^15^14^13^12^11^10^ 9^ 8^ 7^ 6^ 5^ 4^ 3^ 2^ 1^ 0^ * ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ * ^ ^ ^ ^ ^ ^ ^ * ^ ^ ^ ^ ^ ^ ^ * ^ ^ ^ ^ ^ * / ^ ^ / / * DMA INDI- / / / / * CATOR / WIRED BIT / SELECT CODE * 1 - YES / LENGTH COMPUTER FROM 10 TO 77 * 0 - NO / 000- 1US 000- ILL. OCTAL * / 001- 2US 011-2114/15 BELOW 10B ILL. * / 010- 4US 001/010 ILL. HALT * 2570 IN- 011- 8US -2100/16 AT 2 * DICATOR 100-16US 100 - 21MX * 1 - YES 101-32US 101-21MX E-SERIES * 0 - NO 110- ILL. ILL. HALT * 111- ILL. AT 1 * ILL. HALT * AT 3 * * IF HALT HAPPENS AT 1, 2, 3, CORRECT THE SWITCH REGISTERS, * THEN "RUN" * IF HALT AT ANY OTHER LOCATION, LOOK THE ERROR MESSAGE TABLE * FOR DESCRIPTION OF ERROR, THE OPERATOR WILL THEN HAVE ONE * OPTION TO CHOOSE, * WITH BIT 15 1 -- SKIP THE SCOPE LOOP AND CONTINUE THE NEXT * TEST AFTER "RUN" * 0 -- GO INTO SCOPE SERVICE LOOP AFTER "RUN" * * AT THE COMPLETION OF DIAGNOSIS, THE COMPUTER WILL HALT THE 77B. * TO COMPLETE THE PARITY CHECK IT IS REQUIRED FOR THE OPERATOR * TO CONNECT TEST POINT TP18 TO GROUND, THEN "RUN", THE * COMPUTER WILL HALT AT 76B IF THE PARITY LOGIC IS CORRECT, AND * HALT AT 54B INDICATES INCORRECT PARITY LOGIC. * * FOR COMPUTER TO COMPUTER SYSTEM CHECK, IT REQUIRES THAT THE * DIAGNOSTIC PROGRAM BE LOADED AND EXECUTED ONCE IN EACH COMPUTER * THEN TIE THESE TWO COMPUTERS TOGETHER THROUGH THE COMMUNICATION * CABLE. TO START THE TEST, SIMPLY LOAD * * ADDRESS 4000B INTO THE ORIGINATING COMPUTER * * ADDRESS 5000B INTO THE RESPONDING COMPUTER * * THEN "RUN" FOR BOTH COMPUTERS. * * HALT AT 70B WILL HAPPEN WHENEVER THERE IS ANY ERROR SPOTTED * IN THE TRANSMISSION. TO CONTINUE THE TEST SIMPLY "RUN" * * RETEST AFTER HALT AT 77B REQUIRES "RUN" ONLY * * ABBREVIATIONS US -- MICROSECOND * MS -- MILLISECOND * JMP 110B,I ORG 100B RESTART ADDRESS JMP 101B,I ORG 101B RESTART BASE PAGE LINKAGE DEF ITEST ORG 110B BASE PAGE LINKAGE DEF START ORG 2000B START LIA 1 READ CONTROL WORD FROM SW REGISTERS STA DIAGW SAVE DIAGNOSTIC CONTROL WORD ALF ROTATE FOUR PLACES AND M3 MASK THE LAST TWO BITS STA TEMP0 SAVE AND M1 MASK BIT 0 STA A2570 SET 2570 INDICATOR LDA TEMP0 FETCH RAR ROTATE A RIGHT ONE PLACE AND M1 MASK BIT 0 STA ADMA SAVE IN DMA INDICATOR LDA DIAGW FETCH CONTROL WORD ALF,ALF RAR AND M7 MASK BIT LENGTH INFORMATION STA BLNG LDA DIAGW FETCH CONTROL WORD ALF,ALF RAL,RAL AND M7 MASK COMPUTER TYPE INFORMATION SZA,RSS JMP *+2 JMP *+3 HLT1 HLT 1 ERROR! CHECK COMPUTER TYPE BITS 6 TO 8 JMP START RECONFIGURE STA CTYPE SAVE LDB M67 PREPARE LDA HIS TRAPS STA *+2 FOR LDA HI ILLEGAL STA 10B INTERRUPT ISZ *-1 FROM INA ANY INB,SZB DEVICE JMP *-4 LDA DIAGW FETCH CONTROL WORD AND M77 MASK SELECT CODE STA ADDR SAVE ADDRESS AND M70 MASK BITS 3,4,5 SZA,RSS CHECK FOR ACCEPTABLE CODE JMP *+2 JMP *+3 HLT2 HLT 2 ERROR! ILLEGAL SELECT CODE JMP START RECONFIGURE JSB ADIN CONFIGURE ADDRESS INTO INSTRUCTIONS JSB WDTMM CALCULATE THE TIME MULTIPLIER * * INITIAL TEST --- CHECK THE TRANSMITTING/RECEIVING * MODE F/F, THE FLAG F/F, THE FLAG * BUFFER F/F, THE CONTROL F/F, THE * INTERRUPT CIRCUITRY, AND ALL THE * ASSOCIATED GATES. * ITEST NOP CLC 0,C TURN-OFF INTERRUPT SYSTEM CLC1 CLC 0 SET CARD IN TRANSMITTING MODE LDB CNT3 WAIT INB FOR SZB AT LEAST JMP *-2 10 US SFS1 SFS 0 TEST FLAG SET JMP HLT10 JMP *+3 HLT10 HLT 10B ERROR! FLAG IS NOT SET JSB LOOP1 SFC1 SFC 0 TEST FLAG CLEAR JMP *+3 HLT11 HLT 11B ERROR! FLAG IS CLEARED JSB LOOP1 OTA1 OTA 0 CLEAR THE FLAG SFS2 SFS 0 TEST FLAG JMP *+3 HLT12 HLT 12B ERROR! FLAG IS SET JSB LOOP1 GO TO SERVICE LOOP SFC2 SFC 0 JMP HLT13 JMP *+3 HLT13 HLT 13B ERROR! FLAG IS NOT CLEARED JSB LOOP1 GO TO SERVICE LOOP LDB CNT1 FETCH COUNTS INB WAIT SZB ABOUT JMP *-2 1 MS * * 10 US ONE - SHOT TEST * CLCC1 CLC 0,C SET CARD IN RECEIVING MODE LIA1 LIA 0 READ A DATA WORD, CLEAR FLAG CLC2 CLC 0 SET CARD IN TRANSMITTING MODE NOP WAIT SFS3 SFS 0 TEST FLAG SET JMP *+3 OK! HLT14 HLT 14B ERROR! FLAG IS SET TOO SOON JSB LOOP1 GO TO SERVICE LOOP LDB CNT2 WAIT INB AT LEAST SZB 10 JMP *-2 US SFS4 SFS 0 TEST FLAG JMP HLT15 JMP *+3 HLT15 HLT 15B ERROR! FLAG IS NOT SET YET JSB LOOP1 GO TO SERVICE LOOP * * INTERRUPT LOGIC TEST * CLC 0,C TURN-OFF INTERRUPT SYSTEM CLCC2 CLC 0,C SET CARD IN RECEIVING MODE LIA2 LIA 0 CLEAR FLAG STCC1 STC 0,C SET CONTROL SFC3 SFC 0 TEST FLAG CLEAR JMP HLT16 JMP *+3 HLT16 HLT 16B ERROR! FLAG IS NOT CLEARED JSB LOOP1 GO TO SERVICE LOOP LDA ERR SET ERROR IN STA ADDR,I TRAP CELL STF 0 TURN-ON INTERRUPT SYSTEM NOP WAIT NOP LDA OK SET OK IN STA ADDR,I TRAP CELL STC1 STC 0 SET CONTROL LDB CNT3 WAIT INB FOR SZB INTERRUPT JMP *-2 NOP HLT0 HLT 0 ERROR! WRONG INTERRUPT JSB LOOP1 GO TO SERVICE LOOP OKXX LDA HLT0 RESTORE IOR ADDR TRAP STA ADDR,I CELL CLF 0 TURN-OFF INTERRUPT SYSTEM * * TRANSMITTER/RECEIVER TEST * CLCC3 CLC 0,C SET CARD IN RECEIVING MODE LIA3 LIA 0 CLEAR FLAG SFC4 SFC 0 TEST FLAG CLEAR JMP HLT17 JMP *+3 HLT17 HLT 17B ERROR! FLAG IS NOT CLEARED JMP LOOP2 GO TO SERVICE LOOP LIAC1 LIA 0,C READ STATUS WORD LIAC2 LIA 0,C READ STATUS WORD * * AFTER READ DATA WORD AND STATUS WORD THE RECEIVER * ENABLED , MISSED WORD, RECEIVER IN PROCESS AND PARITY * FLIP-FLOPS SHOULD ALL BE CLEARED * SLA CHECK JMP HLT20 RECEIVER ENABLE JMP *+3 FLIP FLOP HLT20 HLT 20B ERROR! RECEIVER IS DISABLED JSB LOOP2 GO TO SERVICE LOOP SSA CHECK JMP HLT21 PARITY JMP *+3 F/F HLT21 HLT 21B ERROR! PARITY F/F IS SET JSB LOOP2 GO TO SERVICE LOOP RAR,RAR SSA CHECK JMP HLT22 MISSED WORD JMP *+3 F/F HLT22 HLT 22B ERROR! M.W. F/F IS SET JSB LOOP3 GO TO SERVICE LOOP SLA CHECK JMP HLT23 RECEIVER IN PROCESS JMP *+3 F/F HLT23 HLT 23B ERROR! R.I.P. F/F IS SET JSB LOOP2 GO TO SERVICE LOOP * * * TRANSMIT A WORD TO CHECK STATUS BITS, ONLY THE REC. * IN PROCESS F/F SHOULD CHANGE STATE * OTA2 OTA 0 TRANSMIT A WORD ISZ .5WTM WAIT FOR ABOUT JMP *-1 HALF A WORD TIME LIAC3 LIA 0,C READ STATUS SLA CHECK JMP HLT24 REC. JMP *+3 ENA. F/F HLT24 HLT 24B ERROR! RECEIVER IS DISABLED TOO JSB LOOP2 SOON; BIT TIME MAY BE WRONG RAR SLA CHECK JMP HLT25 M.W. F/F JMP *+3 HLT25 HLT 25B ERROR! M.W. F/F SHOULD NOT BE SET JSB LOOP3 GO TO SERVICE LOOP RAR SLA CHECK JMP *+3 R.I.P. F/F HLT26 HLT 26B ERROR! R.I.P. F/F IS NOT SET JSB LOOP2 EITHER F/F OR CLOCK IS BAD ISZ WTM WAIT FOR JMP *-1 ONE COMPLETE WORD TIME SFS5 SFS 0 TEST JMP HLT27 FLAG JMP *+3 SET HLT27 HLT 27B ERROR! FLAG DID NOT SET JSB LOOP2 GO TO SERVICE LOOP * LDA CNT RESTORE STA WTM TIMING LDA .5CNT MULTIPLIERS STA .5WTM * * READ STATUS BEFORE READ DATA, SHOULD FIND THAT * RECEIVER IS DISABLED * LIAC4 LIA 0,C READ STATUS SLA TEST JMP *+3 R. ENA. F/F HLT30 HLT 30B ERROR! RECEIVER IS NOT DISABLED JSB LOOP2 GO TO SERVICE LOOP * * TRANSMIT ANOTHER WORD WOULD CAUSE M.W. F/F TO BE SET * OTA3 OTA 0 TRANSMIT ANOTHER WORD LDB CNT1 FETCH COUNTS FOR DELAY INB WAIT SZB ABOUT JMP *-2 1 MS LIAC5 LIA 0,C READ STATUS WORD AGAIN SLA CHECK JMP *+3 R.ENA. F/F HLT31 HLT 31B ERROR! RECEIVER IS NOT DISABLED JSB LOOP3 GO TO SERVICE LOOP RAR SLA CHECK M.W. F/F JMP *+3 OK! HLT32 HLT 32B ERROR! M.W. F/F IS NOT SET JSB LOOP3 GO TO SERVICE LOOP LIAC6 LIA 0,C READ STATUS AGAIN * * SHOULD CLEAR M.W. F/F,R.D. F/F REMAIN SET AND FLAG SET * SLA CHECK JMP *+3 R. ENA. F/F HLT33 HLT 33B ERROR! RECEIVER IS NOT DISABLED JSB LOOP2 GO TO SERVICE LOOP RAR SLA CHECK M.W. F/F AGAIN JMP HLT34 JMP *+3 OK! HLT34 HLT 34B ERROR! M.W. F/F IS NOT CLEARED JSB LOOP3 GO TO SERVICE LOOP SFS6 SFS 0 TEST FLAG JMP HLT35 JMP *+3 OK! HLT35 HLT 35B ERROR! FLAG DID NOT STAY SET JSB LOOP2 GO TO SERVICE LOOP * * READ DATA WORD SHOULD CLEAR FLAG , THEN READ STATUS * SHOULD CLEAR ALL FOUR STATUS BITS * LIA4 LIA 0 READ DATA WORD SFC5 SFC 0 TEST FLAG CLEAR JMP HLT36 JMP *+3 OK! HLT36 HLT 36B ERROR! FLAG DID NOT CLEAR JSB LOOP2 GO TO SERVICE LOOP LIAC7 LIA 0,C READ STATUS WORD SSA CHECK PARITY F/F JMP HLT37 JMP *+3 OK! HLT37 HLT 37B ERROR! PARITY F/F IS SET JSB LOOP2 GO TO SERVICE LOOP SLA CHECK R. ENA. F/F JMP HLT40 JMP *+3 OK! HLT40 HLT 40B ERROR! RECEIVER IS NOT ENABLED JSB LOOP2 GO TO SERVICE LOOP RAR,RAR SSA JMP HLT41 JMP *+3 OK! HLT41 HLT 41B ERROR! M.W. F/F IS NOT CLEARED JSB LOOP3 GO TO SERVICE LOOP SLA CHECK I.P. F/F JMP HLT42 JMP *+3 HLT42 HLT 42B ERROR! I.P. F/F IS SET JSB LOOP2 * * THE FOLLOWING SUBROUTINE IS DESIGNED TO TEST * BLOCK TRANSMITTING AND RECEIVING WITH 1'S AND * 0'S PROPAGATING THROUGH THE TRANSMISSION WORDS * LDB CNT4 STB CNT5 SET COUNTER CLC3 CLC 0 SET CARD IN TRANSMIT MODE LDA ADATA STA IDATA SET START ADDRESS OF DATA BLOCK PLOOP NOP LDA IDATA,I LOAD DATA OTA4 OTA 0 TRANSMIT DATA LDB CNT1 INB WAIT SZB ABOUT JMP *-2 1 MS LIA5 LIA 0 READ DATA WORD STA TEMP0 LIBC1 LIB 0,C READ STATUS WORD SSB CHECK PARITY BIT JMP HLT43 JMP *+3 OK! HLT43 HLT 43B ERROR! PARITY F/F JSB LOOP2 GO TO SERVICE LOOP LDB A2570 READ 2570 INDICATOR SLB JMP P1 YES, CARD IS WIRED FOR 2570 CMA,INA ADA IDATA,I ADD ORIGINAL DATA TO THE COMPLE- * MENT OF THE RECEIVED DATA JMP P2 P1 NOP LDA IDATA,I LOAD ORIGINAL DATA AND M3777 MASK OFF THE UNWANTED BITS ALF SHIFT RAL 5 BITS LEFT STA TEMP1 SAVE LDA TEMP0 LOAD THE RECEIVED DATA CMA,INA CHANGE TO NEGATIVE NUMBER ADA TEMP1 ADD TO THE TRANSMITTED DATA P2 SZA TEST RESULT JMP *+2 JMP *+3 HLT44 HLT 44B ERROR! SUM IS NOT ZERO JSB LOOP2 LDA IDATA LOAD THE ADDRESS OF DATA INA INCREMENT ONE STA IDATA RESTORE THE CURRENT ADDRESS ISZ CNT5 INCREMENT ADDRESS COUNTER, TEST JMP PLOOP GO BACK TO TRANSMIT NEXT WORD LDA ADMA FETCH DMA INDICATOR SLA CHECK TO SEE IF DMAT IS NEEDED JSB DMAT GO ON TO TEST DMA IN AND OUT HLT 77B TEST COMPLETION JSB PARIT CHECK PARITY LOGIC JMP ITEST+1 HED 12665 DIAGNOSTIC PROGRAM -- ROUTINES AND SERVICE LOOPS * PREPARE WORD TIME MULTIPLIER * WDTMM NOP LDB CTYPE CPB A3 JMP P1415 CPB M1 JMP P0016 CPB A2 JMP P0016 CPB A4 JMP PMX CPB A5 JMP PXE JMP HLT1 UNRECOGNIZABLE COMPUTER TYPE P0016 LDA A2570 CHECK 2570 INDICATOR LDB A4 FETCH A4 SLA LDB A3 FETCH A3 JMP P3 P1415 LDA A2570 FETCH 2570 INDICATOR LDB A3 FETCH A3 SLA LDB A2 FETCH A2 JMP P3 PXE LDA A2570 FETCH 2570 INDICATOR LDB A9 SLA LDB A7 LDA DM4 STA CNT2 LDA DM5 STA CNT3 LDA DM300 STA CNT1 JMP P4 PMX LDA A2570 FETCH 2570 INDICATOR LDB A5 NO, FETCH A5 SLA LDB A4 FETCH A4 P3 LDA DM2 STA CNT2 LDA DM3 STA CNT3 LDA DM160 STA CNT1 P4 STB MPLR SET BASIC MULTIPLIER LDA BLNG LOAD BIT LENGTH INFORMATION ADA M6 SSA,RSS CHECK FOR ILLEGAL BIT LENGTH JMP HLT3 YES LDA BLNG NO, LOAD BIT LENGTH INFORMATION CMA,RSS BLS CHECK BITS AND DOUBLE COUNTER INA,SZA JMP *-2 P7 CMB,INB CHANGE TO NEGATIVE NUMBER STB CNT FINAL WORD TIME MULTIPLIER STB WTM BRS STB .5CNT HALF WORD TIME MULTIPLIER STB .5WTM JMP *+3 HLT3 HLT 3 JMP START RECONFIGURE JMP WDTMM,I RETURN TO MAIN PROGRAM * * DMA TEST ROUTINE * DMAT NOP DMA OUTPUT LDA ADDR PREPARE OTA 6 CLC 2 DMA LDA CW2 OTA 2 TO STC 2 LDA CW3 OUTPUT A WORD OTA 2 CLCC4 CLC 0,C SET CARD IN RECEIVING MODE LIA6 LIA 0 CLEAR THE FLAG OF 12665 STC 6B,C ACTIVATE DMA OTA5 OTA 0 SET THE FLAG, CARD IS ACTIVATED NOP WAIT NOP FOR FLAG TO BE CLEARED SFS7 SFS 0 TEST FLAG JMP *+3 HLT45 HLT 45B ERROR! FLAG SHOULD BE CLEARED JSB LOOP5 GO TO DMA OUTPUT SERVICE LOOP LDB CNT1 BLS INB WAIT SZB ABOUT JMP *-2 2 MS CLC 6,C SFC6 SFC 0 TEST FLAG JMP *+3 HLT46 HLT 46B ERROR! FLAG IS NOT SET JSB LOOP5 GO TO SERVICE LOOP LIAC8 LIA 0,C READ STATUS SLA TEST R. ENA. F/F JMP *+3 HLT47 HLT 47B ERROR! R. ENA.F/F IS NOT SET JSB LOOP5 AND M1006 SZA TEST FOR ZERO JMP *+2 JMP *+3 HLT50 HLT 50B ERROR! JSB LOOP5 LIA7 LIA 0 READ DATA STA RWDA SAVE CMA,INA CONVERT TO NEGATIVE NUMBER ADA WDA ADD TO THE WORD TRANSMITTED BY DMA SZA CHECK JMP *+2 NO JMP *+3 OK HLT51 HLT 51B ERROR! WORD RECEIVED IS ERRONEOUS JSB LOOP5 GO TO DMA OUTPUT SERVICE LOOP * * END OF TAPE 29005-80001 * CONTINUATION OF PROGRAM ON TAPE 29005-80002 *