* * 12665 DIAGNOSTIC PROGRAM * SOURCE TAPE 29005-80002 DATE CODE 1636 * CONTINUATION OF TAPE 29005-80001 * DMA INPUT * CLCC5 CLC 0,C SET CARD IN RECEIVING MODE LIA8 LIA 0 READ DATA LIAC9 LIA 0,C READ STATUS LDA ADDR PREPARE OTA 6 CLC 2 DMA LDA CW5 OTA 2 TO STC 2 LDA CW6 INPUT A WORD OTA 2 STC 6,C ACTIVATE DMA LDA A550 OTA6 OTA 0 OUTPUT THE WORD LDB CNT1 INB WAIT SZB ABOUT JMP *-2 1 MS OTA7 OTA 0 OUTPUT THE SAME WORD AGAIN LDB CNT1 INB WAIT SZB ABOUT JMP *-2 1 MS CLC 6,C TURN OFF DMA LDA RA550 FETCH THE RECEIVED DATA AND M1007 SZA CHECK FOR ZERO JMP *+2 JMP *+3 HLT52 HLT 52B ERROR! JSB LOOP6 GO TO DMA INPUTTING SERVICE LOOP LDA RA550 CHECK CMA,INA THE VALUE ADA A550 OF SZA THE JMP *+2 RECEIVED JMP *+3 WORD HLT53 HLT 53B ERROR! RECEIVED A WRONG WORD JSB LOOP6 GO TO DMA INPUT SERVICE LOOP JMP DMAT,I RETURN TO MAIN PROGRAM * * TRANSMIT MODE SCOPE SERVICE LOOP FOR FLAG AND * INTERRUPT LOGIC * LOOP1 NOP LIA 1 FETCH A WORD FROM SW. REG. SSA WANT TO SKIP? JMP ENDL1 YES! CLC 0,C TURN OFF INTERRUPT SYSTEM CLCC6 CLC 0,C SET CARD TO RECEIVING MODE LIA9 LIA 0 CLEAR DATA WORD LAC10 LIA 0,C CLEAR STATUS WORD CLA STA ADDR,I NOP IN TRAD CELL CLC 0 GENERATE CRS FOR SYNC STCC2 STC 0,C TOGGLE IRQ CONTROL F/F, CLCC7 CLC 0,C NO CHANGE TO FLAG MODE F/F STC2 STC 0 SET CARD TO TRANSMIT MODE SFC7 SFC 0 NOP ISZ WTM WAIT FOR JMP *-1 FLAG TO BE SET LDB CNT STB WTM RESTORE WORD TIME COUNTS STF 0 TURN ON INTERRUPT SYSTEM NOP IAK SHOULD BE GENERATED, * FLAG BUFFER F/F CLEARED CLC4 CLC 0 SET CARD TO TRANSMIT MODE SFS8 SFS 0 NOP LDB CNT3 INB WAIT SZB FOR FLAG JMP *-2 FLAG BUFFER F/F SHOULD BE SET OTA8 OTA 0 SHOULD CLEAR FLAG AND FLAG BUFFER F/F CLF 0 TURN OFF INTERRUPT SYSTEM ISZ WTM WAIT FOR JMP *-1 ONE WORD TIME LDB CNT STB WTM RESTORE WORD TIME COUNT STCC3 STC 0,C SET CARD TO RECEIVE MODE LAC11 LIA 0,C LIA10 LIA 0 CLEAR DATA WORD JMP LOOP1+10 ENDL1 JMP LOOP1,I RETURN TO MAIN PROGRAM * * RECEIVE MODE SCOPE SERVICE LOOP * LOOP2 NOP LIA 1 FETCH A WORD FROM SW. REG. SSA WANT TO SKIP? JMP ENDL2 YES CLC 0,C TURN OFF INTERRUPT SYSTEM CLCC8 CLC 0,C SET CARD TO RECEIVE MODE LIA11 LIA 0 LAC12 LIA 0,C CLEAR STATUS WORD CLC 0 GENERATE CRS FOR SCOPE SYNC CLCC9 CLC 0,C SET CARD TO RECEIVE MODE ,FLAG STCC4 STC 0,C SET TO RECEIVE MODE ,INTERRUPT CLA OTA9 OTA 0 OUTPUT A WORD ISZ WTM JMP *-1 WAIT LDB CNT STB WTM RESTORE COUNTS LIBC2 LIB 0,C READ STATUS WORD INTO B LIB1 LIB 0 READ DATA WORD INTO B INA OTA10 OTA 0 OUTPUT A WORD AGAIN ISZ WTM WAIT JMP *-1 LDB CNT STB WTM RESTORE COUNTS LAC13 LIA 0,C READ STATUS WORD LIA12 LIA 0 CLEAR DATA WORD JMP LOOP2+8 ENDL2 JMP LOOP2,I RETURN TO MAIN PROGRAM * * MISSED WORD SCOPE SERVICE LOOP * LOOP3 NOP LIA 1 FETCH A WORD FROM SW. REG. SSA WANT TO SKIP SCOPE LOOP? JMP ENDL3 YES CLC 0,C TURN-OFF INTERRUPT SYSTEM CCC10 CLC 0,C SET CARD TO RECEIVE MODE LIA13 LIA 0 READ DATA WORD LAC14 LIA 0,C READ STATUS WORD CLC 0 GENERATE CRS TO SYNC OTA11 OTA 0 OUTPUT A WORD ISZ WTM WAIT JMP *-1 LDB CNT STB WTM RESTORE COUNTS LAC15 LIA 0,C CLEAR STATUS WORD CLA OTA12 OTA 0 OUTPUT THE COMPLEMENTARY WORD ISZ WTM WAIT JMP *-1 LDB CNT STB WTM RESTORE COUNTS LAC16 LIA 0,C READ STATUS WORD LIA14 LIA 0 READ DATA WORD JMP LOOP3+8 ENDL3 JMP LOOP3,I RETURN TO MAIN PROGRAM * * PARITY ERROR SCOPE SERVICE LOOP * LOOP4 NOP LIA 1 FETCH A WORD FROM SW. REG. SSA WANT TO SKIP THE SERVICE LOOP? JMP ENDL4 YES! CLC 0,C TURN OFF INTERRUPT SYSTEM LIA15 LIA 0 CLEAR DATA WORD LAC17 LIA 0,C CLC 0 GENERATE CRS FOR SYNC CLA CLEAR A OTA13 OTA 0 OUTPUT A WORD SFS9 SFS 0 TEST FLAG JMP *-1 WAIT FOR FLAG TO BE CLEAR LIB2 LIB 0 READ DATA LIBC3 LIB 0,C READ STATUS INA INCREMENT A OTA14 OTA 0 OUTPUT A AGAIN SFS10 SFS 0 TEST FLAG JMP *-1 WAIT FOR FLAG TO BE CLEARED LIB3 LIB 0 CLEAR DATA WORD LIBC4 LIB 0,C READ STATUS WORD JMP LOOP4+7 ENDL4 JMP LOOP4,I RETURN TO MAIN PROGRAM * * DMA OUTPUT SCOPE SERVICE LOOP * LOOP5 NOP LIA 1 FETCH A WORD FROM SW. REG. SSA WANT TO SKIP SERVICE LOOP? JMP ENDL5 YES! CLC 0,C TURN OFF INTERRUPT SYSTEM CCC11 CLC 0,C SET CARD TO RECEIVE MODE LIA16 LIA 0 LAC18 LIA 0,C CLEAR STATUS WORD LDA CCW1 PREPARE OTA 6 CLC 2 DMA LDA CW8 OTA 2 TO OUTPUT STC 2 LDA CW9 TWO WORDS OTA 2 STC 6,C ACTIVATE DMA CLC5 CLC 0 SET CARD TO TRANSMIT MODE LDA CNT WAIT ALS ADA CNT FOR STA WTM ISZ WTM THREE JMP *-1 LDA CNT WORD TIMES STA WTM CLC 6 TURN OFF DMA JMP LOOP5+4 LOOP BACK ENDL5 JMP LOOP5,I * * DMA INPUT SCOPE SERVICE LOOP * LOOP6 NOP LIA 1 FETCH A WORD FROM SW. REG. SSA WANT TO SKIP SERVICE LOOP? JMP ENDL6 YES! CLC 0,C TURN OFF INTERRUPT SYSTEM CCC12 CLC 0,C SET CARD IN RECEIVE MODE LIA17 LIA 0 CLEAR DATA WORD LAC19 LIA 0,C CLEAR STATUS WORD LDA ADDR PREPARE OTA 6 CLC 2 DMA TO LDA CW11 OTA 2 INPUT STC 2 LDA CW12 A WORD OTA 2 STC 6,C ACTIVATE DMA CLA OTA15 OTA 0 OUTPUT A WORD ISZ WTM WAIT ONE JMP *-1 WORD TIME LDB CNT STB WTM RESTORE WORD TIME COUNTS. CLC 6 TURN OFF DMA JMP LOOP6+4 LOOP BACK ENDL6 JMP LOOP6,I RETURN TO MAIN PROGRAM * * ADDRESS INCLISION ROUTINE FOR CONFIGURING ALL * INSTRUCTIONS AND DMA CONTROL WORDS REQUIRING * THE CARD ADDRESS. * ADIN NOP CLC 0,C * PUT CARD ADDRESS INTO SFS INSTRUCTION JSB INCLU SFS 0 STA SFS1 STA SFS2 STA SFS3 STA SFS4 STA SFS5 STA SFS6 STA SFS7 STA SFS8 STA SFS9 STA SFS10 STA SFSI1,I STA SFSI2,I STA SFS13 * PUT CARD ADDRESS INTO SFC INSTRUCTION JSB INCLU SFC 0 STA SFC1 STA SFC2 STA SFC3 STA SFC4 STA SFC5 STA SFC6 STA SFC7 * PUT CARD ADDRESS INTO CLC INSTRUCTION JSB INCLU CLC 0 STA CLC1 STA CLC2 STA CLC3 STA CLC4 STA CLC5 * PUT CARD ADDRESS INTO CLC CLEAR FLAG INSTRUCTION JSB INCLU CLC 0,C STA CLCC1 STA CLCC2 STA CLCC3 STA CLCC4 STA CLCC5 STA CLCC6 STA CLCC7 STA CLCC8 STA CLCC9 STA CCC10 STA CCC11 STA CCC12 STA CCCI1,I STA CCCI2,I STA CCC15 * PUT CARD ADDRESS INTO STC INSTRUCTION JSB INCLU STC 0 STA STC1 STA STC2 * PUT CARD ADDRESS INTO STC CLEAR FLAG INSTRUCTION JSB INCLU STC 0,C STA STCC1 STA STCC2 STA STCC3 STA STCC4 * PUT CARD ADDRESS INTO OTA INSTRUCTION JSB INCLU OTA 0 STA OTA1 STA OTA2 STA OTA3 STA OTA4 STA OTA5 STA OTA6 STA OTA7 STA OTA8 STA OTA9 STA OTA10 STA OTA11 STA OTA12 STA OTA13 STA OTA14 STA OTA15 STA OTAI1,I STA OTAI2,I STA OTA18 * PUT CARD ADDRESS INTO LIA INSTRUCTION JSB INCLU LIA 0 STA LIA1 STA LIA2 STA LIA3 STA LIA4 STA LIA5 STA LIA6 STA LIA7 STA LIA8 STA LIA9 STA LIA10 STA LIA11 STA LIA12 STA LIA13 STA LIA14 STA LIA15 STA LIA16 STA LIA17 STA LIAI1,I STA LIAI2,I STA LIAI3,I STA LIA21 * PUT CARD ADDRESS INTO LIA CLEAR FLAG INSTRUCTION JSB INCLU LIA 0,C STA LIAC1 STA LIAC2 STA LIAC3 STA LIAC4 STA LIAC5 STA LIAC6 STA LIAC7 STA LIAC8 STA LIAC9 STA LAC10 STA LAC11 STA LAC12 STA LAC13 STA LAC14 STA LAC15 STA LAC16 STA LAC17 STA LAC18 STA LAC19 STA LACI1,I STA LACI2,I STA LAC22 * PUT CARD ADDRESS INTO LIB INSTRUCTION JSB INCLU LIB 0 STA LIB1 STA LIB2 STA LIB3 STA LIBI1,I STA LIB5 * PUT CARD ADDRESS INTO LIB , CLF INSTRUCTION JSB INCLU LIB 0,C STA LIBC1 STA LIBC2 STA LIBC3 STA LIBC4 STA LBCI1,I STA LIBC6 * PUT CARD ADDRESS INTO OCTAL NUMBER 20000 JSB INCLU OCT 20000 STA CCW1 CONFIGURED FOR LOOP5 JMP ADIN,I RETURN TO MAIN PROGRAM * * INCLUSION ROUTINE * INCLU NOP LDA INCLU,I IOR ADDR ISZ INCLU JMP INCLU,I * * PARITY TEST ROUTING * PARIT NOP CLC 0,C TURN OFF INTERRUPT SYSTEM CCC15 CLC 0,C SET CARD IN RECEIVE MODE LIA21 LIA 0 CLEAR DATA LAC22 LIA 0,C CLEAR STATUS CLA OTA18 OTA 0 OUTPUT 0 SFS13 SFS 0 WAIT FOR THE JMP *-1 WORD TRANS. TO COMPLETE LIB5 LIB 0 READ DATA INTO B REG. LIBC6 LIB 0,C READ STATUS INTO B REGISTER SSB TEST PARITY BIT TO BE SET JMP *+3 HLT54 HLT 54B ERROR! PARITY BIT IS NOT SET JSB LOOP4 GO TO SERVICE LOOP HLT 76B PARITY LOGIC WORKED FINE JMP PARIT,I RETURN TO MAIN PROGRAM HED 12665 DIAGNOSTIC PROGRAM -- COMPUTER TO COMPUTER TEST * THE FOLLOWING SUBROUTINE IS DESIGNED TO CHECK THE * CARD TIED TO ANOTHER COMPUTER THROUGH A CABLE. IT * REQUIRES DIAGNOSTIC PROGRAM TO BE LOADED AND THE BASIC * TESTS BE EXECUTED ONCE IN EACH COMPUTER. THEN LOAD * ADDRESS 4000B INTO THE ORIGINATING COMPUTER AND * ADDRESS 5000B INTO THE RESPONDING COMPUTER * * COMMANDING ROUTINE * ORG 4000B STARTING ADDRESS OF ORIGINATING COMPUTER COMMD NOP CLC 0,C CCC13 CLC 0,C SET CARD IN RECEIVE MODE LIA18 LIA 0 CLEAR DATA WORD LAC20 LIA 0,C CLEAR STATUS WORD CLA INA OTA16 OTA 0 OUTPUT THE WORD IN A REG. OTA 1 STA TEMP0 SAVE THE WORD SFS11 SFS 0 WAIT FOR THE COMMUNICATION WORD JMP *-1 TO BE RECEIVED LIB4 LIB 0 READ DATA WORD STB TEMP1 SAVE THE RECEIVED WORD CPB TEMP0 CHECK THE RECEIVED WORD JMP *+2 OK! HLT70 HLT 70B ERROR! RECEIVED A WRONG WORD LIBC5 LIB 0,C READ STATUS WORD LDB CNT6 SET SKIPPING COUNTS INB INA,SZA CHECK FOR A REG. TO BE ZERO JMP *+2 NO! A IS NOT ZERO JMP EOL YES! A IS ZERO SZB CHECK B REG. FOR ZERO JMP *-5 NO! DO NOT SEND THE NEXT WORD YET JMP OTA16 SEND THE NEXT WORD EOL NOP HLT 77B JMP COMMD+1 * * RESPONDING ROUTING * ORG 5000B STARTING ADDRESS OF THE RESPONDING COMPUTER RESPN NOP CLC 0,C CCC14 CLC 0,C SET CARD TO RECEIVE MODE LIA19 LIA 0 CLEAR DATA WORD LAC21 LIA 0,C CLEAR STATUS WORD SFS12 SFS 0 WAIT FOR COMMUNICATION WORD JMP *-1 TO BE RECEIVED LIA20 LIA 0 READ DATA WORD OTA17 OTA 0 RETRANSMIT THE RECEIVED WORD OTA 1 JMP SFS12 HED 12665 DIAGNOSTIC PROGRAM -- CONSTANTS ORG 300B A2 OCT 2 A3 OCT 3 A4 OCT 4 A5 OCT 5 A7 OCT 7 A9 OCT 11 A550 OCT 550 A2570 OCT 0 ADATA DEF DATA ADDR OCT 0 ADMA OCT 0 BLNG OCT 0 CNT OCT 0 .5CNT OCT 0 CNT1 NOP CNT2 NOP CNT3 NOP CNT4 OCT -21 CNT5 OCT 0 CNT6 OCT -1 DM2 DEC -2 DM3 DEC -3 DM4 DEC -4 DM5 DEC -5 DM160 DEC -160 DM300 DEC -300 CTYPE OCT 0 CCW1 OCT 0 CW2 OCT 112 CW3 OCT -1 CW5 OCT 100113 CW6 OCT -2 CW8 OCT 114 CW9 OCT -2 CW11 OCT 100116 CW12 OCT -2 DATA OCT 0,1,3,7,17,37,77,177,377,777,1777,3777 OCT 7777,17777,37777,77777,177777 DIAGW OCT 0 ERR JMP ERRX,I HI HLT 10B HIS STA 10B IDATA DEF DATA M1 OCT 1 M3 OCT 3 M6 DEC -6 M7 OCT 7 M67 OCT -67 M70 OCT 70 M77 OCT 77 M3777 OCT 3777 M1006 OCT 100006 M1007 OCT 100007 MPLR OCT 0 OK JMP OKX,I RWDA OCT 0 TEMP0 OCT 0 TEMP1 OCT 0 WTM OCT 0 .5WTM OCT 0 ORG 112B WDA OCT 155555 ORG 113B RA550 OCT 0 ORG 115B WDB OCT 0 WDC OCT 0 ORG 117B RAWD OCT 0 ORG 111B OK INTERRUPT LINKAGE OKX DEF OKXX ORG 120B ERROR INTERRUPT LINKAGE ERRX DEF HLT0 SFSI1 DEF SFS11 SFSI2 DEF SFS12 CCCI1 DEF CCC13 CCCI2 DEF CCC14 OTAI1 DEF OTA16 OTAI2 DEF OTA17 LIAI1 DEF LIA18 LIAI2 DEF LIA19 LIAI3 DEF LIA20 LACI1 DEF LAC20 LACI2 DEF LAC21 LIBI1 DEF LIB4 LBCI1 DEF LIBC5 END $END