* T.6 -- PRIORITY TEST SPC 3 T.6 EQU * LDA CLF0 RSS RESTART KLUDGE JMP STRT2 FOR LONG DIAGNOSTIC STA 6 CLF0 IN DMA1 TRAP CELL LDA JSB.1 INT.1 INTPT IN DMA2 TRAP CELL STA 7 * JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C LDA HLTA LDB HLTB STF 6 STF 7 STC 6 STC 7 STF 0 ENABLE INT SYS. DMA1 SHOULD NOP INTERRUPT & TURN OFF INT SYS RSS & RETURN HERE E35 JSB ERROR,I * DMA2 TOOK PRIORITY OVER DMA1 CLC 0,C JSB H/L,I CHECK FOR LOOP ON TEST * LDA HLT6 STA 6 LDA CLF0 CLF 0 IN DMA2 TRAP CELL STA 7 LDA JSB.1 STA CHA,I JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB STF 7 STC 7 CH1 STF CH CH2 STC CH STF 0 INT SYS ON. DMA2 SHOULD NOP INTERRUPT & TURN OFF INT SYS RSS & RETURN HERE E36 JSB ERROR,I * I/O SC TOOK PRIORITY OVER DMA2 CLC 0,C JSB H/L,I CHECK FOR LOOP ON TEST * LDA HLT7 STA 7 LDA CLF0 STA 6 JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB STF 6 STC 6 CH3 STF CH CH41 STC CH STF 0 INT SYS ON. DMA1 SHOULD NOP INTERRUPT & TURN OFF INT SYS RSS E37 JSB ERROR,I * I/O SC TOOK PRIORITY OVER DMA1 CLC 0,C JSB H/L,I CHECK FOR LOOP ON TEST SPC 3 * * TEST PHASE 5 SIGNAL * SPC 2 JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C CLEAR ALL DEVICES, INT SYS OFF LDA AIN ADDR OF INPUT AREA IN A CCB -1 IN B JSB IN1,I READY DMA1 LDA DINP INITIALIZE TTY, IF USED, TO DATA CH50 OTA CH IN, NO PRINT, NO PUNCH STF 0 ENABLE INT SYS CH59 STF CH CH51 STC CH STC 6,C START XFR NOP DMA SHOULD INTERRUPT AFTER XFR, RSS TURN OFF INT SYS, & RETURN HERE E105 JSB ERROR,I * PH5 DID NOT INHIBIT I/O INT JSB H/L,I CHECK FOR LOOP ON TEST SPC 2 * * TEST PRIORITY CHAIN TO I/O * JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C LDA CLF0 STA CHA,I SET I/O TRAP CELL CH81 STF CH CH82 STC CH STF 0 ENABLE INT SYS NOP I/O SHOULD INT & CLF 0 SFC 0 IF SO, SKIP E135 JSB ERROR,I * I/O DID NOT INTERRUPT CLC 0,C JSB H/L,I CHECK FOR LOOP ON TEST SPC 2 CLC 0,C LDA HLT6 RESTORE TRAP CELL HALTS STA 6 LDA HLTC STA CHA,I HED T.7 - TEST WORD COUNT REGISTERS * TESTS ABILITY TO SET AND READ * THE WORD COUNT REGISTERS SPC 3 T.7 EQU * * * LIA 0 TEST. ALL ONES PUT IN WORD COUNT REGISTERS. * LIA 0 (A) = 1'S FOR ALL COMPUTERS * JSB SAVAD,I SAVE LOOP ADDRESS CCA PUT ALL ONES IN STC 2 BOTH WORD COUNT OTA 2 REGISTERS NOP LDA BT13 JSB CTPD STA EOS LIA 0 SZA E120 HLT 20B,C * A-REG NOT ZERO AFTER LIA 0 JSB H/L,I CHECK FOR LOOP ON TEST SPC 2 LDA A3 CMA,INA SET STA COUNT COUNTER CLA START WITH WORD COUNT=0 JSB SAVAD,I SAVE LOOP ADDRESS WC1 STC 2 PREPARE TO ADDRESS DMA1 WCR OTA 2 OUTPUT WORD COUNT STA DAOUT LIB 2 READ BACK INTO B CPA B A=B? JMP E40+1 YES STB DAIN NO. CONVERT OUTPUT AND INPUT LDB AM40B TO ASCII AND PUT INTO ERROR JSB DATA,I MESSAGE E40 LDA DAIN LDB AM40A JSB DATA,I E40 JSB ERROR,I * DMA1 WRD-CNT IS XXXXXX, SHOULD * BE XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST NER1 INA CPA EOS ALL COUNTS TESTED ? RSS YES JMP WC1 NO CCA STC 3 OTA 3 JSB CTPD JMP CRS1 SPC 2 CLA JSB SAVAD,I SAVE LOOP ADDRESS WC2 STC 3 OTA 3 SAME STA DAOUT AS LIB 3 DMA1 CPA B TEST JMP E41+1 YES STB DAIN LDB AM41B JSB DATA,I LDA DAIN LDB AM41A JSB DATA,I E41 JSB ERROR,I * DMA2 WRD-CNT IS XXXXXX, SHOULD * BE XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST NER2 INA CPA EOS ALL COUNTS TESTED ? RSS JMP WC2 ISZ COUNT WORK WORD COUNT JMP WC1-2 REGISTERS FOR AWHILE * * CHECK CRS ON REGISTER CARDS * CRS1 JSB SAVAD,I SAVE LOOP ADDRESS STC 2 CLA OTA 2 SET WCR1 TO ZERO CLC 0 SHOULD CLEAR CTL FF CCA SHOULD NOT BE ABLE OTA 2 TO CHANGE WCR1 LIA 2 INPUT WCR1 SZA,RSS ZERO? JMP CRS2 YES, OK E131 JSB ERROR,I * CRS DID NOT CLEAR DMA1 * REG CARD CTL FF JSB H/L,I CHECK FOR LOOP ON TEST JSB CTPD JMP T.10 SPC 2 CRS2 JSB SAVAD,I SAME STC 3 AS CLA DMA1 OTA 3 CLC 0 CCA OTA 3 LIA 3 SZA,RSS JMP T.10 E132 JSB ERROR,I * CRS DID NOT CLEAR DMA2 * REG CARD CTL FF JSB H/L,I CHECK FOR LOOP ON TEST HED T.10 - TEST WORD COUNT ROLLOVER SPC 2 * THIS TEST CHECKS THE WORD COUNT ROLLOVER * BY SETTING THE WORD COUNT TO -1 AND * FORCING A XFR. DMA SHOULD INTERRUPT. SPC 3 T.10 EQU * WCRR1 JSB SAVAD,I SAVE LOOP ADDRESS LDA J10 TEST DMA1 STA 6 SET DMA1 TRAP CELL TO RTN1 CCB NO. OF WRDS (-1) TO BE XFRD IN B LDA AWRD ADDR OF WRD TO BE XFRD IN A JSB OUT1,I READY DMA1 LDA CHA LDB BT5 JSB CHKSW,I OTA 6 YES. CTL WRD=STC-NOT, CLC-NOT STF 0 ENABLE INT SYS STC 6,C TURN ON DMA NOP ILOC1 NOP SHOULD INTERRUPT HERE TO RTN1 E42 JSB ERROR,I * DMA1 DID NOT INTERRUPT AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST JSB CTPD JMP T.11 SPC 2 WCRR2 JSB SAVAD,I SAVE LOOP ADDRESS LDA J11 TEST DMA2 STA 7 SAME CCB AS LDA AWRD DMA1 JSB OUT2,I TEST LDA CHA LDB BT5 JSB CHKSW,I OTA 7 YES. CTL WRD=STC-NOT, CLC-NOT STF 0 STC 7,C NOP ILOC2 NOP SHOULD INTERRUPT HERE TO RTN2 E43 JSB ERROR,I * DMA2 DID NOT INTERRUPT AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST JMP T.11 SPC 2 RTN1 NOP DMA1 INTERRUPT SUBROUTINE CLC 0,C LIA 2 INPUT WORD COUNT REG SZA,RSS SHOULD BE ZERO JMP NER3 OK CLB STORE CORRECT WORD COUNT (0) STB DAOUT AT DAOUT STA DAIN STORE INCORRECT WRD-CNT AT DAIN LDB AM44A WRD-CNT IN A, MSG ADDR IN B JSB DATA,I CHANGE DATA TO ASCII E44 JSB ERROR,I * DMA1 WRD-CNT ROLLOVER IS XXXXXX, NER3 LDA RTN1 SHOULD BE ZERO STB RTN1 CHANGE CONTENTS OF RTN1 CPA AILC1 ADDR OF ILOC1 = ACTUAL INT LOC? JMP E42+1 YES, INTERRUPTED CORRECTLY STA DAIN LDB AM45A JSB DATA,I CONVERT BAD INT LOC TO ASCII LDA AILC1 CORRECT INT LOC IN A STA DAOUT LDB AM45B MSG ADDR IN B JSB DATA,I CONVERT CORRECT INT LOC TO ASCII E45 JSB ERROR,I * DMA1 INT LOC IS XXXXXX, SHOULD JMP E42+1 BE XXXXXX SPC 2 RTN2 NOP DMA2 INTERRUPT SUBROUTINE CLC 0,C LIA 3 SAME SZA,RSS AS JMP NER4 DMA1 CLB INTERRUPT STB DAOUT SUBROUTINE STA DAIN LDB AM46A JSB DATA,I E46 JSB ERROR,I * DMA2 WRD-CNT ROLLOVER IS XXXXXX, NER4 LDA RTN2 SHOULD BE ZERO STB RTN2 CPA AILC2 JMP E43+1 STA DAIN LDB AM47A JSB DATA,I LDA AILC2 STA DAOUT LDB AM47B JSB DATA,I E47 JSB ERROR,I * DMA2 INT LOC IS XXXXXX, SHOULD * BE XXXXXX JMP E43+1 HED T.11 - TEST MEMORY ADDRESS REGISTER * THIS TEST CHECKS THE MEMORY ADDRESS * REGISTER BY MAKING A DMA OUTPUT TRANSFER * FROM EVERY LOCATION IN MEMORY. SPC 3 T.11 EQU * LDA A3 CMA,INA SET STA COUNT COUNTER AR1 CLC 0,C CLEAR ALL DEVICES, INT SYS OFF LDA HLT6 STA 6 SET TRAP CELL HALTS LDA HLT7 STA 7 LDA A2 SET DMA1 STARTING ADDR TO 2 STA ADDR * JSB SAVAD,I SAVE LOOP ADDRESS AR.1 CLB CH4 OTB CH CLEAR MCR OUTPUT BUFFER NOP NOP NOP CH5 STC CH,C NO, CLR MCR INPUT BFR CCB.1 CCB WORD COUNT (-1) IN B LDA ADDR ADDR IN A JSB OUT1,I READY DMA LDB BT5 JSB CHKSW,I TTY? JMP MA.T1 YES LDA ADDR,I STA DAOUT STC.1 STC 6,C TURN ON DMA NOP SFS 6 CHECK DMA1 FLAG JSB FLG.1,I * E50. DMA1 FLG NOT SET AFTER XFR CH6 STC CH,C XFR DATA TO MCR INPUT BUFFER SPC 2 CH7 LIA CH CPA DAOUT OUTPUT = INPUT? JMP AR.2 YES STA DAIN NO, STORE INPUT LDA DAOUT LDB AM51A MSG ADDR IN B JSB DATA,I CONVERT OUTPUT DATA TO ASCII LDA DAIN INPUT DATA IN A LDB AM51B MSG ADDR IN B JSB DATA,I CONVERT INPUT DATA TO ASCII LDA ADDR ADDR IN A LDB AM51C MSG ADDR IN B JSB DATA,I CONVERT ADDR TO ASCII E51 JSB ERROR,I * DMA1 OUT=XXXXXX, IN=XXXXXX, LDB NTTY ADDR=XXXXXX SZB TTY AVAIL? JMP *+3 NO LDB BT11 YES JSB CHKSW,I SUPPRESS MESSAGES? RSS YES JMP E52+1 NO, SKIP NON-TTY HLT LDB BT14 JSB CHKSW,I ERROR HALTS SUPPRESSED? JMP E52+1 YES LDA ADDR NO, SO HLT & DISPLAY ADDR IN A E52 HLT 52B * DMA1--BAD ADDR DISPLAYED IN A JSB H/L,I CHECK FOR LOOP ON TEST AR.2 LDA ADDR HAVE ALL MEMORY LOCATIONS CPA MEMAX BEEN TESTED? JMP AR2 YES ISZ ADDR NO, INCREMENT ADDR & LOOP JMP AR.1 SPC 2 MA.T1 EQU * NOP NOP LDA ADDR,I OUTPUT IN A NOP NOP AND A377 MASK OUT BITS 8-15 STA DAOUT STC 6,C TURN ON DMA NOP SFS 6 CHECK DMA1 FLAG JSB FLG.1,I * E50. DMA1 FLG NOT SET AFTER XFR JMP CH6 SPC 2 AR2 JSB CTPD JMP T.12 LDA A2 SET DMA2 STARTING ADDR TO 2 STA ADDR * JSB SAVAD,I SAVE LOOP ADDRESS AR.3 CLB SAME AS DMA1 TEST CH8 OTB CH LDB BT5 JSB CHKSW,I NOP CH9 STC CH,C CCB.2 CCB LDA ADDR JSB OUT2,I LDB BT5 JSB CHKSW,I JMP MA.T2 LDA ADDR,I STA DAOUT STC.2 STC 7,C NOP SFS 7 JSB FLG.2,I * E53. DMA2 FLG NOT SET AFTER XFR CH10 STC CH,C SPC 2 CH11 LIA CH CPA DAOUT JMP AR.4 STA DAIN LDA DAOUT LDB AM54A JSB DATA,I LDA DAIN LDB AM54B JSB DATA,I LDA ADDR LDB AM54C JSB DATA,I E54 JSB ERROR,I * DMA2 OUT=XXXXXX, IN=XXXXXX, LDB NTTY ADDR=XXXXXX SZB JMP *+3 LDB BT11 JSB CHKSW,I RSS JMP E55+1 LDB BT14 JSB CHKSW,I JMP E55+1 LDA ADDR E55 HLT 55B * DMA2--BAD ADDR DISPLAYED IN A JSB H/L,I CHECK FOR LOOP ON TEST AR.4 LDA ADDR CPA MEMAX JMP *+3 ISZ ADDR JMP AR.3 ISZ COUNT WORK MEMORY ADDRESS JMP AR1 REGISTERS FOR A WHILE JMP T.12 SPC 2 MA.T2 EQU * LDA CHA OTA 7 LDA ADDR,I SSA JMP AR.4 AND A377 STA DAOUT STC 7,C NOP SFS 7 JSB FLG.2,I * E53. DMA2 FLG NOT SET AFTER XFR JMP CH10 HED T.12 - TEST THE STC DECISION FLIP-FLOP T.12 EQU * JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C CLEAR ALL DEVICES, INT SYS OFF CCB WORD COUNT (-1) IN B LDA ANULL JSB OUT1,I READY DMA1 LDA BT15 CHANGE CONTROL WORD TO IOR CHA STC SET, CLC NOT; OUTPUT OTA 6 TO DMA1 STC 6,C TURN ON DMA1 LDA CLF0 WHEN MCR INTERRUPTS, CLF0 IN MCR STA CHA,I TRAP CELL WILL TURN OFF INT SYS CLC 6 CLR DMA CTL TO AVOID DMA INT CH12 STF CH SET I/O FLAG STF 0 ENABLE INT. IF MCR CTL IS SET, NOP INT WILL TURN OFF INT SYS SFC 0 SKIP IF INT SYS OFF E56 JSB ERROR,I * DMA1--BIT 15 OF CTL WRD=1 BUT * I/O CTL NOT SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 0 CCB -1 IN B LDA ANULL JSB OUT1,I READY DMA1 LDA CHA CHANGE CTL WRD TO STC NOT SET, OTA 6 CLC NOT SET; OUTPUT TO DMA1 STC 6,C TURN ON DMA NOP CLC 6 CLR DMA CTL TO AVOID DMA INT CH13 STF CH SET I/O FLAG STF 0 ENABLE INT. IF MCR CTL IS CLEAR, NOP NO INT WILL OCCUR SFS 0 SKIP IF INT SYS ON E57 JSB ERROR,I * DMA1--BIT 15 OF CTL WRD=0 BUT * I/O CTL SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST JSB CTPD JMP T.13 SPC 2 JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C TEST DMA2 (SAME AS ABOVE) CCB LDA ANULL JSB OUT2,I LDA BT15 IOR CHA OTA 7 STC 7,C NOP CLC 7 CH14 STF CH STF 0 NOP SFC 0 E60 JSB ERROR,I * DMA2--BIT 15 OF CTL WRD=1 BUT * I/O CTL NOT SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 0 CCB LDA ANULL JSB OUT2,I LDA CHA OTA 7 STC 7,C NOP CLC 7 CH15 STF CH STF 0 NOP SFS 0 E61 JSB ERROR,I * DMA2--BIT 15 OF CTL WRD=0 BUT * I/O CTL SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST LDA HLTC STA CHA,I RESTORE TRAP CELL HALT HED T.13 - TEST THE CLC DECISION FLIP-FLOP T.13 EQU * JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C CLEAR ALL DEVICES, INT SYS OFF LDA CLF0 STA CHA,I CCB -1 IN B LDA AWRD ADDR OF WRD TO BE OUTPUT IN A JSB OUT1,I READY DMA1 LDA CHA CHANGE CONTROL WORD TO STC IOR BT13 NOT SET, CLC SET; OUTPUT OTA 6 TO DMA1 CH16 STC CH SET DEVICE CONTROL STC 6,C TURN ON DMA1 NOP CLC 6 CLR DMA CTL TO AVOID DMA INT CH17 STF CH SET I/O FLAG STF 0 ENABLE INT. MCR CTL SHOULD BE NOP CLR, SO SHOULD NOT INTERRUPT SFS 0 SKIP IF INT SYS ON E62 JSB ERROR,I * DMA1--BIT 13 OF CTL WRD=1 BUT * I/O CTL SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C CCB -1 IN B LDA ANULL JSB OUT1,I READY DMA1 LDA BT15 CHANGE CTL WORD TO STC IOR CHA SET, CLC NOT SET; OUTPUT OTA 6 TO DMA1 CH18 STC CH SET DEVICE CONTROL STC 6,C TURN ON DMA1 NOP CLC 6 CH19 STF CH SET I/O FLAG STF 0 ENABLE INT SYS NOP SFC 0 SKIP IF INT SYS OFF E63 JSB ERROR,I * DMA1--BIT 13 OF CTL WRD=0 BUT * I/O CTL NOT SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST JSB CTPD JMP T.14 SPC 2 JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C TEST DMA2 (SAME AS ABOVE) CCB LDA ANULL JSB OUT2,I LDA CHA IOR BT13 OTA 7 CH20 STC CH STC 7,C NOP CLC 7 CH21 STF CH STF 0 NOP SFS 0 E64 JSB ERROR,I * DMA2--BIT 13 OF CTL WRD=1 BUT * I/O CTL SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C CCB LDA ANULL JSB OUT2,I LDA BT15 IOR CHA OTA 7 CH22 STC CH STC 7,C NOP CLC 7 CH23 STF CH STF 0 NOP SFC 0 E65 JSB ERROR,I * DMA2--BIT 13 OF CTL WRD=0 BUT * I/O CTL NOT SET AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST * LDA HLTC STA CHA,I HED T.14 - TESTS 'CLF I/O' CTL FUNCTION & STF 6,7 T.14 EQU * CLC 0,C CLEAR ALL DEVICES, INT SYS OFF JSB SAVAD,I SAVE LOOP ADDRESS CCB -1 IN B LDA ANULL JSB OUT1,I READY DMA1 STC 6,C TURN ON DMA1 NOP CH76 SFC CH E136 JSB ERROR,I DMA1-I/O FLAG NOT CLR AFTER XFER JSB H/L,I CHECK FOR LOOP ON TEST JSB CTPD JMP CT.1 SPC 2 JSB SAVAD,I SAVE LOOP ADDRESS CCB TEST DMA2 LDA ANULL JSB OUT2,I STC 7,C NOP CH77 SFC CH E112 JSB ERROR,I * DMA2--I/O FLG NOT CLR AFTER XFR JSB H/L,I CHECK FOR LOOP ON TEST SPC 2 * * TESTS ABILITY TO TURN DMA OFF * BY SETTING DMA FLAG * CT.1 JSB SAVAD,I SAVE LOOP ADDRESS LDA ANULL ADDR OF OUTPUT WORD IN A LDB A2 CMB,INB -2 IN B (WORD COUNT) JSB OUT1,I READY DMA1 LDA CHA CHANGE CTL WRD TO STC-NOT, OTA 6 WORD, CLC-NOT STC 6,C START XFR NOP STF 6 TURN OFF DMA1 CH83 STF CH ATTEMPT TO COMPLETE XFR NOP LIA 2 INPUT WORD COUNT SZA,RSS SHOULD NOT BE ZERO E133 JSB ERROR,I * STF 6 DID NOT TURN OFF DMA1 JSB H/L,I CHECK FOR LOOP ON TEST JSB CTPD JMP T.15 SPC 2 JSB SAVAD,I SAME LDA ANULL AS LDB A2 DMA1 CMB,INB JSB OUT2,I LDA CHA OTA 7 STC 7,C NOP STF 7 CH84 STF CH NOP LIA 3 SZA,RSS E134 JSB ERROR,I * STF 7 DID NOT TURN OFF DMA2 JSB H/L,I CHECK FOR LOOP ON TEST HED T.15 - TEST DMA OUTPUT SPC 2