* HED 12773 DIAGNOSTIC PROGRAM -- ROUTINES AND SERVICE LOOPS * 12773 DIAGNOSTIC PROGRAM * SOURCE TAPE 29024-80002 DATE CODE 1636 * CONTINUATION OF TAPE 29024-80001 * * 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 LDA WTM WAIT ALS TWO COMPLETE JSB TMR WORD TIMES 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 TRAN SMITTED 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 * * DMA INPUT * CLCC5 CLC 0,C SET CARD I N 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 2 WORDS OTA 2 STC 6,C ACTIVATE DMA LDA A550 OTA6 OTA 0 OUTPUT THE WORD LDA WTM JSB TMR OTA7 OTA 0 OUTPUT THE SAME WORD AGAIN LDA WTM WAIT ONE JSB TMR WORD TIME CL C 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 T O 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 TRAP 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 LDB CNT3 WAIT INB FOR SZB FLAG JMP *-2 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 SYS TEM LDA WTM WAIT ONE JSB TMR WORD TIME 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 LDA WTM WAIT ONE JSB TMR WORD TIME 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 LDA WTM WAIT ONE JSB TMR WORD TIME 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. SS A 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 GENE RATE CRS TO SYNC OTA11 OTA 0 OUTPUT A WORD LDA WTM WAIT ONE JSB TMR WORD TIME LAC15 LIA 0,C CLEAR STATUS WORD CLA OTA12 OTA 0 OUTPUT THE COMPLEMENTARY WORD LDA WTM WAIT ONE JSB TMR WORD TIME 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 OU TPUT 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 LI A16 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 WTM WAIT ALS ADA WTM THREE COMPLETE JSB TMR WORD TIMES CLC 6 TURN OFF DMA JMP LOOP5+4 LOOP BACK ENDL 5 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 LD A CW12 A WORD OTA 2 STC 6,C ACTIVATE DMA CLA OTA15 OTA 0 OUTPUT A WORD LDA WTM WAIT ONE JSB TMR WORD TIME CLC 6 TURN OFF DMA JMP LOOP6+4 LOOP BACK EN DL6 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 INCL U 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 CA RD 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. LI BC6 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 JM P PARIT,I RETURN TO MAIN PROGRAM SKP * * TIMING SUBTOUTINE - REQUIRES NO. OF BITS TO BE OUTPUT IN A-REG * INSTRUCTIONS INB,SZB * JMP *-1 * ARE REPLACED BY: * OCT 100060 * NOP * FOR 21MX/E COMPUTERS * * THE VALUE OF TMC IS DETERMINED BY THE COMPUTER TYPE AND * IS SET AT CONFIGURATION TIME * TMR NOP CMA,INA LDB TMC INB,SZB (100060 FOR XE) JMP *-1 (NOP FOR XE) INA,SZA JMP *-4 JMP TMR,I * * INBSZ INB,SZB FOR RESTORING TIMING ROUTINE JMPM1 JMP TMR+3 FOR 2100/14/15/16/MX * * HED 12773 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 WOR D 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 DAT A WORD OTA17 OTA 0 RETRANSMIT THE RECEIVED WORD OTA 1 JMP SFS12 HED 12773 DIAGNOSTIC PROGRAM -- CONSTANTS ORG 300B A550 OCT 550 A2570 OCT 0 ADATA DEF DATA ADDR OCT 0 ADMA OCT 0 BLNG OCT 0 CNT2 NOP CNT3 NOP BM2 OCT -2 BM3 OCT -3 BM4 OCT -4 BM5 OCT -5 BIT12 OCT 10000 BIT13 OCT 20000 D19 DEC 20 +1 BIT LEEWAY D14 DEC 15 +1 BIT LEEWAY B7 OCT 7 B700 OCT 700 B300 OCT 300 B100 OCT 100 B200 OCT 200 B400 OCT 400 B500 OCT 500 DM105 DEC -105 DM129 DEC -129 DM85 DEC -85 DM653 DEC -653 TMC NOP MICXE OCT 100060 B6 OCT 6 B77 OCT 77 B70 OCT 70 CNT4 OCT -21 CNT5 OCT 0 CNT6 OCT -1 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 ERR JMP ERRX,I HI HLT 10B HIS STA 10B IDATA DEF DATA M6 7 OCT -67 M3777 OCT 3777 M1006 OCT 100006 M1007 OCT 100007 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 OC T 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