* 
*      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
                                                                                                                                                                                                    