* THIS TEST CHECKS THE DMA OUTPUT CAPABILITY. * ALL POSSIBLE PATTERNS AND THEIR COMPLEMENTS * ARE TESTED. SPC 3 T.15 EQU * OC1 CLA INITIALIZE OUTPUT WORD TO ZERO LDB BT5 JSB CHKSW,I TTY? JMP TTO.1 YES JMP MRO.1 NO SPC 1 * * OUTPUT TO TTY I/O BOARD (DMA1) * TTO.1 JSB DOUT1 OUTPUT A WORD CMA AND A377 MASK OUT UPPER 8 BITS JSB DOUT1 OUTPUT COMPLEMENT CMA AND A377 JSB DOUT1 OUTPUT WORD AGAIN JSB PKFD NOP INA CPA BT8 FINISHED? JMP OC2 YES JMP TTO.1 NO, LOOP SPC 1 * * OUTPUT TO MCR (DMA1) * MRO.1 JSB DOUT1 OUTPUT A WORD CMA JSB DOUT1 OUTPUT COMPLEMENT CMA JSB DOUT1 OUTPUT WORD AGAIN JSB PKFD RAL INA,SZA FINISHED? JMP MRO.1 NO, LOOP JMP OC2 YES SPC 1 * * DATA OUT ROUTINE (DMA1) * DOUT1 NOP JSB WBL JSB SAVAD,I SAVE LOOP ADDRESS STA AOUT,I STA DAOUT LDA FFWA CCB JSB OUT1,I READY DMA1 LDB BT5 JSB CHKSW,I TTY? NOP JMP *+3 NO LDA CHA CHANGE CTL WRD TO STC-NOT, OTA 6 WORD, CLC-NOT STC 6,C START XFR CLA,INA JSB TMR,I SFS 6 CHECK DMA1 FLAG JSB FLG.1,I * E50. DMA1 FLG NOT SET AFTER XFR LDB BT5 JSB CHKSW,I TTY? NOP CH24 STC CH,C LDA DAOUT CH25 LIB CH INPUT WORD STB DAIN CPB DAOUT OUTPUT = INPUT? JMP E67+1 YES LDB AM67A NO. OUTPUT IN A, MSG ADDR IN B JSB DATA,I CONVERT OUTPUT TO ASCII LDA DAIN INPUT IN A LDB AM67B MSG ADDR IN B JSB DATA,I CONVERT INPUT TO ASCII E67 JSB ERROR,I * DMA1--WORD OUTPUT ERROR. GOOD= * XXXXXX, BAD=XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST JMP DOUT1,I RETN *+1 SPC 2 OC2 JSB CTPD JMP T.16 CLA TEST DMA2 LDB BT5 JSB CHKSW,I JMP TTO.2 JMP MRO.2 SPC 1 * * OUTPUT TO TTY I/O BOARD (DMA2) * TTO.2 JSB DOUT2 CMA AND A377 JSB DOUT2 CMA AND A377 JSB DOUT2 JSB PKFD NOP INA CPA BT8 JMP IC1 JMP TTO.2 SPC 1 * * OUTPUT TO MCR (DMA2) * MRO.2 JSB DOUT2 CMA JSB DOUT2 CMA JSB DOUT2 JSB PKFD RAL INA,SZA JMP MRO.2 JMP IC1 SPC 1 * * DATA OUT ROUTINE (DMA2) * DOUT2 NOP JSB WBL JSB SAVAD,I SAVE LOOP ADDRESS STA AOUT,I STA DAOUT LDA FFWA CCB JSB OUT2,I LDB BT5 JSB CHKSW,I RSS JMP *+3 LDA CHA OTA 7 STC 7,C CLA,INA JSB TMR,I SFS 7 JSB FLG.2,I * E53. DMA2 FLG NOT SET AFTER XFR LDB BT5 JSB CHKSW,I NOP CH26 STC CH,C LDA DAOUT CH27 LIB CH STB DAIN CPB DAOUT JMP E71+1 LDB AM71A JSB DATA,I LDA DAIN LDB AM71B JSB DATA,I E71 JSB ERROR,I * DMA2--WORD OUTPUT ERROR. GOOD= * XXXXXX, BAD=XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST JMP DOUT2,I SPC 2 AOUT DEF OUT NOP ENDW DEF OUT+1 TEMPS OCT 0 SPC 3 * * WBL WRITES BLOCK ADDRESS INTO BLOCK WORDS * WBL NOP STA SAVA LDA FFWA STA TEMPS WRT1 STA TEMPS,I INA ISZ TEMPS CPA ENDW RSS JMP WRT1 LDA SAVA JMP WBL,I HED T.16 - TEST DMA INPUT SPC 2 * THIS TEST CHECKS THE DMA INPUT CAPABILITY. * ALL POSSIBLE PATTERNS AND THEIR COMPLEMENTS * ARE TESTED. SPC 3 T.16 EQU * IC1 CLA INITIALIZE INPUT WORD TO ZERO LDB BT5 JSB CHKSW,I TTY? JMP TTI.1 YES JMP MRI.1 NO SPC 1 * * INPUT FROM TTY I/O BOARD (DMA1) * TTI.1 JSB DIN1 INPUT A WORD CMA AND A377 MASK PUT UPPER 8 BITS JSB DIN1 INPUT COMPLEMENT CMA AND A377 JSB DIN1 INPUT WORD AGAIN JSB PKFD NOP INA CPA BT8 FINISHED? JMP IC2 YES JMP TTI.1 NO, LOOP SPC 1 * * INPUT FROM MCR (DMA1) * MRI.1 JSB DIN1 INPUT A WORD CMA JSB DIN1 INPUT COMPLEMENT CMA JSB DIN1 INPUT WORD AGAIN JSB PKFD RAL INA,SZA FINISHED? JMP MRI.1 NO, LOOP JMP IC2 YES SPC 1 * * DATA IN ROUTINE (DMA1) * DIN1 NOP JSB WBL JSB SAVAD,I SAVE LOOP ADDRESS STA DAOUT CH28 OTA CH OUTPUT DATA TO BE INPUT LDB BT5 JSB CHKSW,I TTY? NOP YES CH29 STC CH NO CH30 CLC CH CMA LDB BT5 JSB CHKSW,I TTY? AND A377 YES, MASK OUT UPPER 8 BITS STA IN NO. SET UP INPUT AREA LDA FFWA CCB JSB IN1,I READY DMA1 STC 6,C XFR DATA TO INPUT AREA CLA,INA JSB TMR,I SFS 6 CHECK DMA1 FLAG JSB FLG.1,I * E50. DMA1 FLG NOT SET AFTER XFR LDA FFWA STA TEMPS LDA DAOUT DIN11 LDB TEMPS,I STB DAIN CPB DAOUT INPUT CORRECT? JMP E137+1 LDA DAOUT NO LDB AM73A OUTPUT IN A, MSG ADDR IN B JSB DATA,I CONVERT OUTPUT TO ASCII LDA DAIN INPUT IN A LDB AM73B MSG ADDR IN B JSB DATA,I CONVERT INPUT TO ASCII E137 JSB ERROR,I DMA1-WORD INPUT ERROR. GOOD = * XXXXXX, BAD=XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST ISZ TEMPS LDA TEMPS CPA ENDW RSS JMP DIN11 LDA DAOUT LDB DAIN JMP DIN1,I EXIT SPC 2 IC2 JSB CTPD JMP T.17 CLA TEST DMA2 LDB BT5 JSB CHKSW,I JMP TTI.2 JMP MRI.2 SPC 1 * * INPUT FROM TTY BOARD (DMA2) * TTI.2 JSB DIN2 CMA AND A377 JSB DIN2 CMA AND A377 JSB DIN2 JSB PKFD NOP INA CPA BT8 JMP PKO1 JMP TTI.2 SPC 1 * * INPUT FROM MCR (DMA2) * MRI.2 JSB DIN2 CMA JSB DIN2 CMA JSB DIN2 JSB PKFD RAL INA,SZA JMP MRI.2 JMP PKO1 SPC 1 * * DATA IN ROUTINE (DMA2) * DIN2 NOP JSB WBL JSB SAVAD,I SAVE LOOP ADDRESS STA DAOUT CH67 OTA CH LDB BT5 JSB CHKSW,I NOP CH68 STC CH CH69 CLC CH CMA LDB BT5 JSB CHKSW,I AND A377 STA IN LDA FFWA CCB JSB IN2,I STC 7,C CLA,INA JSB TMR,I SFS 7 JSB FLG.2,I * E53. DMA2 FLG NOT SET AFTER XFR LDA FFWA STA TEMPS LDA DAOUT DIN22 LDB TEMPS,I STB DAIN CPB DAOUT JMP E115+1 LDA DAOUT LDB A115A JSB DATA,I LDA DAIN LDB A115B JSB DATA,I E115 JSB ERROR,I * DMA2--WORD INPUT ERROR. GOOD= * XXXXXX, BAD=XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST ISZ TEMPS LDA TEMPS CPA ENDW RSS JMP DIN22 LDA DAOUT LDB DAIN JMP DIN2,I EXIT SPC 3 PWOU2 BSS 1 STORAGE FOR DMA1 UPPER BYTE PWOU3 BSS 1 STORAGE FOR DMA2 UPPER BYTE PWOL2 BSS 1 STORAGE FOR DMA1 LOWER BYTE PWOL3 BSS 1 STORAGE FOR DMA2 LOWER BYTE PT.17 DEF AT.17 TRD DEF PO.T2 NOP SPC 2 HED T.17 - TEST OUTPUT IN PACK MODE * THIS TEST CHECKS THE DATA OUTPUT UNPACKING * CAPABILITY OF THE DMA. SPC 3 T.17 EQU * SHRTI EQU * PKO1 JSB PKFD JMP PT.17,I CLC 0,C CLEAR ALL DEVICES, INT SYS OFF CLA CLEAR STORAGE AREAS STA PWOU2 STA PWOL2 LDA PWRDC STA PWRD CCB -1 IN B LDA APWRD ADDR OF PACKED WORD IN A JSB OUT1,I READY DMA1 LDB BT5 JSB CHKSW,I TTY? JMP PO.T1 YES LDA K0 NO, CTL WRD=STC, CLC IOR CHA IOR BT14 CHANGE CTL WRD TO BYTE OTA 6 STC 6,C TURN ON DMA1 NOP CH53 STC CH,C CH32 LIA CH INPUT BITS 8-15 OF OUTPUT WORD STA PWOU2 SAVE CH54 STC CH,C SPC 2 CH34 LIA CH INPUT BITS 0-7 OF OUTPUT WORD STA PWOL2 SAVE SFS 6 JSB FLG.1,I * E50. DMA1 FLG NOT SET AFTER XFR LDA PWRD ALF,ALF AND A377 STA DAOUT CPA PWOU2 IS UPPER BYTE (BITS 8-15) OK? JMP PKO.1 YES LDB AM75A GOOD DATA IN A, MSG ADDR IN B JSB DATA,I CONVERT TO ASCII LDA PWOU2 BAD DATA IN A STA DAIN LDB AM75B MSG ADDR IN B JSB DATA,I CONVERT TO ASCII E75 JSB ERROR,I * DMA1--UPPER BYTE OUTPUT ERROR. PKO.1 EQU * GOOD=XXXXXX, BAD=XXXXXX LDA PWRD AND A377 STA DAOUT CPA PWOL2 IS LOWER BYTE (BITS 0-7) OK? JMP E76+1 YES LDB AM76A GOOD DATA IN A, MSG ADDR IN B JSB DATA,I CONVERT TO ASCII LDA PWOL2 BAD DATA IN A STA DAIN LDB AM76B MSG ADDR IN B JSB DATA,I CONVERT TO ASCII E76 JSB ERROR,I * DMA1--LOWER BYTE OUTPUT ERROR. * GOOD=XXXXXX, BAD=XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST JMP PKO2 SPC 2 PO.T1 EQU * LDA CHA CTL WRD=STC-NOT, CLC-NOT, IOR BT14 BYTE OTA 6 STC 6,C TURN ON DMA1 NOP CH55 LIA CH STA PWOU2 CH33 STF CH GENERATE SRQ TO COMPLETE XFR NOP JMP CH34 SPC 2 PKO2 EQU * JSB SAVAD,I SAVE LOOP ADDRESS CLA TEST DMA2 STA PWOU3 STA PWOL3 CCB LDA APWRD JSB OUT2,I LDB BT5 JSB CHKSW,I JMP TRD,I LDA K0 IOR BT14 IOR CHA OTA 7 STC 7,C NOP CH56 STC CH,C CH35 LIA CH STA PWOU3 CH57 STC CH,C SPC 2 CH37 LIA CH STA PWOL3 SFS 7 JSB FLG.2,I * E53. DMA2 FLG NOT SET AFTER XFR LDA PWRD ALF,ALF AND A377 STA DAOUT CPA PWOU3 JMP PKO.2 LDB A101A JSB DATA,I LDA PWOU3 STA DAIN LDB A101B JSB DATA,I E101 JSB ERROR,I * DMA2--UPPER BYTE OUTPUT ERROR. PKO.2 EQU * GOOD=XXXXXX, BAD=XXXXXX LDA PWRD AND A377 STA DAOUT CPA PWOL3 JMP E102+1 LDB A102A JSB DATA,I LDA PWOL3 STA DAIN LDB A102B JSB DATA,I E102 JSB ERROR,I * DMA2--LOWER BYTE OUTPUT ERROR. * GOOD=XXXXXX, BAD=XXXXXX JSB H/L,I CHECK FOR LOOP ON TEST JMP T.20I,I SPC 2 PO.T2 EQU * LDA CHA IOR BT14 OTA 7 STC 7,C NOP CH58 LIA CH STA PWD3,I CH36 STF CH NOP JMP *+1,I DEF CH37 SPC 2 HED T.17 - TEST DMA OUTPUT (SHORT TEST) AT.17 EQU * CLC 0,C TEST DMA1 JSB CLR CLEAR I/O BUFFER CLA,INA JSB DD1,I SPC 3 JSB CLR TEST DMA2 CLA,INA JSB DD2,I JMP *+1,I DEF T.21 SPC 3 CLR NOP CLEAR I/O BUFFER CLA CH85 OTA CH LDB BT5 JSB CHKSW,I TTY ? JMP *+3 YES CH86 STC CH CH87 CLC CH JMP CLR,I RTN*+1 HED T.20 - TEST INPUT IN PACK MODE