ASMB,A,B,L,C HED 2100-21MX COMPUTER DMA DIAGNOSTIC ORG 100B SUP DSN 101220 23 FEBRUARY 1977 REV 1705 ************************************************************ * * A CONSOLE MAY BE USED BUT IS NOT REQUIRED * * THE DIAGNOSTIC CONFIGURATOR IS REQUIRED * * THE DIAGNOSTIC SERIAL NUMBER (DSN) IS 101120 * * OPERATING INSTRUCTIONS: * * 1. LOAD AND CONFIGURE THE DIAGNOSTIC CONFIGURATOR. * * 2. LOAD THE DMA DIAGNOSTIC. * * 3. SET THE P REGISTER TO 100. SET THE SELECT CODE OF THE I/O CARD * USED WITH THE DIAGNOSTIC IN THE SWITCH REGISTER. PRESS PRESET * (INT. & EXT. IF PRESENT) AND RUN. * * * NOTE * THE TEST INTERFACE USED WITH THIS DIAGNOSTIC * MUST BE A 12554A OR 12597A OR 12566B WITH AN ATTACHED * 1251-0332 CONNECTOR OR 12930-60001 WITH AN ATTACHED * 12930-60006 TEST CONNECTOR. * * 4. SUCCESSFUL CONFIGURATION IS INDICATED BY A HALT 102074. * * 5. ENTER PROGRAM OPTIONS IN THE SWITCH REGISTER. * (SEE SWITCH REG OPTIONS ON THE NEXT PAGE) * * 6. PRESS RUN. * * 12554 JUMPER CONFIGURATION- * * W4-W6 B * W7 A * W8-W12 IN * W13 A(IF APPLICABLE) * W14 A(IF APPLICABLE) * * OR * W4-W5 A * W6-W7 B * W8-W12 IN * W13-W14 A (IF APPLICABLE) * * 12597A JUMPER CONFIGURATION- * * W1,W2 A -OR- W1,W2 B * W3,W4 IN W8,W4 IN * * NOTE: W3 & W8 MUST NOT BE INSTALLED AT THE SAME TIME. SKP * 12566 12849 JUMPER CONFIGURATION- * * W1 A(B) * W2-W4 B(A) * W5-W8 IN * * * NOTE: MUST HAVE PIN 22,23 (OR Z,AA) JUMPERED TOGETHER ON T.C. * * 12930 PROGRAMMABLE SWITCHES * * 85S1-1 97S1-2 106S1-1 * S2-5 S2-5 S2-5 * S3-10(0) S3-10(0) S3-9 * * 87S1-1 102S1-2 * S2-4 S2-7 * S3-8 S3-10(0) * * NOTE: THE PROGRAMMABLE SWITCHES ARE SET USING A SCREWDRRIVER * TO POSITION THE CONTACT MECHANISM. SEE FIGURE A-3 * IN MOD FOR SWITCH LOCATION AND SWITCH POSITION. * * THE SWITCH POSITIONS SHOWN ARE USED FOR THE UI CARD * AND THE TEST CONNECTOR WHEN RUNNING * THE STANDARD TEST RUN.. * *************** SWITCH REGISTER OPTIONS **************************** * * * BIT MEANING * * 0-7 RESERVED * 8 SUPPRESS PRESET TEST * 9 USER SELECTION * 10 SUPPRESS NON-ERROR MESSAGES * 11 SUPPRESS ERROR MESSAGES * 12 LOOP ON DIAGNOSTIC. CLEAR TO HALT 102077 AT END * OF PASS * 13 LOOP ON CURRENT TEST SECTION * 14 SUPPRESS ERROR HALTS * 15 HALT 102076 AT END OF CURRENT TEST SECTION * * *************** COMPUTER HALTS ************************************* * * HALT MEANING * * 1020XX ERROR AND * 1030XX OPERATOR * 1070XX HALTS. * 1060XX UNEXPECTED TRAP CELL INTERRUPT * 102077 DIAGNOSTIC COMPLETE * * * SKP ORG 100B A EQU 0 A REGISTER REFERENCE B EQU 1 B REGISTER REFERENCE SR EQU 1 SWITCH REGISTER REFERENCE CH EQU 10B I-O CHANNEL REFERENCE * ORG 100B * JMP CFIG,I GO TO TEST EXECUTION. BSS 1 FAST INPUT (PHOTO READER) SLOP BSS 1 SLOW OUTPUT (LIST) BSS 1 FAST OUTPUT (DUMP OR PUNCH) BSS 1 SLOW INPUT (KEYBOARD) FWAM DEF FWAA FIRST WORD OF AVBL. MEMORY LWAM BSS 1 LAST WORD OF AVBL. MEMORY BSS 1 NOT USED (MAG TAPE) BSS 1 1 MILL SEC TIME OUT COUNT BSS 4 SELECT CODES FOR I/O BSS 1 COMPUTER TYPE/OPTIONS USRSC BSS 1 USER CARD TYPE AND SELECT CODE BSS 1 MEMORY SIZE AND TYPE BSS 1 INTERNAL SWITCH REGISTER BSS 1 1 MILL SEC TIMER BSS 1 CONFIGURATOR SWITCH CK PTR BSS 1 INTEGER TO ASCII CONVERSION O2AS BSS 1 OCTAL TO ASCII CONVERSION AS2N BSS 1 ASCII CONVERSION DSN OCT 101220 DIAGNOSTIC SERIAL NUMBER FMTR BSS 1 FORMATTER SPC 1 CFIG DEF ENTRY STDA OCT 77777 TSTN NOP TSTP DEF *+1 DEF TST00 DEF TST01 DEF TST02 DEF TST03 DEF TST04 DEF TST05 DEF TST06 DEF TST07 DEF TST08 DEF TST09 DEF TST10 DEF TST11 DEF TST12 DEF TST13 DEF TST14 DEF TST15 DEC -1 HED DIAGNOSTIC CONSTANTS AND VARIABLES FIRST DEF *+1 DEF STFX DEF CLCCX DEF STCX DEF STCCX DEF OTAX DEF LIAX DEF LIAX1 DEF LIAX2 DEF SFSX DEF IOX1 DEF CH2 M1 DEC -1 * * CONSTANTS & STORAGE LOCATIONS * NULL BSS 2 SVRES BSS 2 B2 OCT 2 B6 OCT 6 B11 OCT 11 B12 OCT 12 B37 OCT 37 B77 OCT 77 B100 OCT 100 B105 OCT 105 B177 OCT 177 B377 OCT 377 B400 OCT 400 HLT0 OCT 102000 THLTX OCT 106077 NB77 OCT 177700 N76 OCT 177776 CNTLW OCT 120000 CNT12 OCT 100002 ASC00 OCT 30060 M2 DEC -2 M10 DEC -10 M10B OCT -10 CLF0 JSB *+1 NOP CLF 0 JMP *-2,I CNTR NOP SAVEA NOP DAOUT NOP DAIN NOP BT812 OCT 10400 BIT9 OCT 1000 BIT12 OCT 10000 BIT13 OCT 20000 BIT14 OCT 40000 BIT15 OCT 100000 PATCK OCT 252 PATT1 OCT 125252 PATT2 OCT 52525 SAVWC NOP INTON NOP SAVAX NOP SAVA NOP SAVB NOP EOTCT NOP SVINA NOP SAVIA NOP TSTNN NOP TESTI DEC -1 JLINK JMP *+1,I PADDR NOP JSBLK JSB *-1,I ANULL DEF NULL ADDR1 DEF E012-3 ADDR2 DEF E015-3 WC1RP DEF M33A+3 WC1R2 DEF M33B+3 OUTP1 DEF M63A+7 OUTP2 DEF M63B+7 OUTP3 DEF M63C+7 CKPAD DEF PADDR * USSC BSS 1 USER SELECT CODE FOR DUAL CH BUF BSS 1 BUF1 DEF FWAA OUTPUT BUFFER BUF2 BSS 1 INPUT BUFFER BUFX BSS 1 BUFZ BSS 1 WCNT BSS 1 WORD COUNT CNT BSS 1 COUNTER CNTX BSS 1 K OCT 135 CONSTANT XYZ BSS 1 CHA EQU 12B I-O CHANNEL CHB EQU 13B B7700 OCT 7700 B7777 OCT 7777 MW107 DEF M107B+10 MX107 DEF M107A+10 MY107 DEF M107A+3 MZ107 DEF M107B+3 MX114 DEF EE114+15 CH1I DEF CH1 CH3I DEF CH3 WCR NOP ASC6 ASC 01,6 ASC7 ASC 01,7 HED SUBROUTINES PATX NOP GENERATE PATTERN LDA BUF STA BUF2 LDA K GET FIRST VALUE PATTERN ADA EOTCT ADD PASS COUNT L3 STA BUF2,I STORE IN BUF ISZ BUF2 INCR BUF NOP POINTER ISZ CNT LAST PATTERN ? RSS NO, CONTINUE JMP LBFZ YES, RETURN CMA COMPLEMENT PATTERN STA BUF2,I STORE PATTERN CMA RESTORE PATTERN ADA K ADD NEW VALUE TO OLD PATTERN ISZ BUF2 INCR BUF NOP POINTER ISZ CNT LAST PATTERN ? JMP L3 NO, CONTINUE LBFZ LDA BUF GET ADDR OF BUF CMA,INA SUBTRACT INA TWO FROM BUF INA TO GET CMA,INA BUFFER-Z'S STA BUFZ ADDR LDB PATT1 GET PATTERN STB A,I STORE IN BUFF-Z CMB COMPLEMENT PATTERN INA NEXT LOCATION IN BUFF-Z STB A,I STORE PATTERN JMP PATX,I YES, RETURN * REV NOP REVERSE I-O SELECT CODES LDA USSC GET USERS SELECT CODES AND B77 MASK OFF BITS 0-5 ALF AND RAL,RAL STORE STA B IN BITS 6-9 LDA USSC GET BITS 6-9 ALF,ALF AND RAL,RAL STORE AND B77 IN IOR B BITS 0-5 STA USSC RESTORE NEW SC LDA CH1I,I RECONFIGURE AND NB77 STC INSTRUCTION STA SAVA * LDA USSC * ALF,ALF * RAL,RAL * AND B77 * IOR SAVA * STA CH1I,I * JMP REV,I RETURN SKP ERR NOP REPORT ERROR MESSAGE STA SAVA SAVE A-REG STB SAVB SAVE B-REG CLE PACK IN UPPER BYTE LDB MY107 BUFFER ADDRESS JSB O2AS,I OCTAL TO ASCII CONV CLE PACK IN UPPER BYTE LDA SAVB ACTUAL DATA LDB MZ107 BUFFER ADDRESS JSB O2AS,I OCTAL TO ASCII CONV CLE PACK IN UPPER BYTE LDA BUF2 FAILING ADDRESS LDB MX107 BUFFER ADDRESS JSB O2AS,I OCTAL TO ASCII CONV CLE PACK IN UPPER BYTE LDA BUFX EXP BUF ADDR LDB MW107 JSB O2AS,I OCTAL TO ASCII CONV LDA SAVA RESTORE A-REG LDB SAVB AND B-REG E107 JSB ERMSG PRINT ERROR MESSAGE DEF EE107 LDA SAVA RESTORE A-REG LDB SAVB AND B-REG JMP ERR,I RETURN SKP DMAO NOP DMA OUT LDA USSC GET I-O CH NOP DEBUG NOP DEBUG AND B77 MASK OFF IOR BIT15 ADD CONTROL WORD NOP DEBUG OTA 6 OUTPUT CW1 CLC 2 PREPARE MEM.ADR.REG. LDA BUF ADDR OF BUFFER NOP DEBUG OTA 2 OUTPUT MEM.ADR.REG. STC 2 PREPARE WC LDA WCNT WORD COUNT NOP DEBUG OTA 2 OUTPUT WC NOP DEBUG JMP DMAO,I RETURN * DMAI NOP DMA IN LDA USSC GET I-O CH ALF,ALF POISTION BITS RAL,RAL 6-9 IN 0-5 AND B77 MASK OFF IOR BIT15 ADD CONTROL WORD NOP DEBUG OTA 7 OUTPUT CW1 CLC 3 PREPARE MEM.ADR.REG. LDA BUF1 BUFFER ADDR NOP DEBUG IOR BIT15 ADD CW OTA 3 OUTPUT MEM.ADR.REG. STC 3 PREPARE FOR WC LDA WCNT WORD COUNT NOP DEBUG OTA 3 OUTPUT WC NOP DEBUG JMP DMAI,I SKP ERR1 NOP STB WCR SAVE WCR VALUE LDA WCNT GET STARTING WC VALUE CPA B IS WCR = WC VALUE ? JMP *+2 YES JMP *+4 NO E110 JSB ERMSG REPORT ERR DEF EE110 JMP ERR1,I RETURN E111 JSB ERMSG DEF EE111 JMP ERR1,I RETURN * ERR2 NOP STB WCR SAVE WCR VALUE SZB IS WCR = TO ZERO ? JMP *+4 NO E113 JSB ERMSG REPORT ERR DEF EE113 JMP ERR2,I RETURN LDA WCNT GET STARTING WC VALUE CPA B IS WCR = TO WC ? JMP *+2 YES JMP *+4 NO E112 JSB ERMSG REPORT ERR DEF EE112 JMP ERR2,I RETURN LDB MX114 SET LDA WCR UP CLE MESSAGE JSB O2AS,I WITH LDA WCNT ACTUAL LDB WCR WCR VALUE E114 JSB ERMSG REPORT ERR DEF EE114 JMP ERR2,I RETURN * SMSG NOP SET STA EX110,I UP STA EX111,I MESSAGE STA EX112,I WITH STA EX113,I DMA-6 STA EX114,I OR DMA-7 JMP SMSG,I * EX110 DEF EE110+7 ERR MESSAGE ADDRESS EX111 DEF EE111+7 EX112 DEF EE112+7 EX113 DEF EE113+7 EX114 DEF EE114+7 HED DIAGNOSTIC SUBROUTINES * SWRT INVESTIGATES THE STATE OF THE S-REG. IF ANY BIT(S) * AS SPECIFIED IN THE B-REG ARE SET SWRT RETURNS P+1 * ELSE P+2. * SWRT NOP STA SAVAX SAVE A-REG. JSB DEBON GO DEBOUNCE SW.REG. AND B MASK OUT TEST BIT(S). SZA,RSS ANY SWITCHES UP? ISZ SWRT NO! UPDATE RETURN TO P+2. LDA SAVAX YES! GET ORIGINAL A-REG. JMP SWRT,I RETURN. SPC 3 * SWITCH REGISTER DEBOUNCE ROUTINE * TO PREVENT OVERLAY OF A HALT BY A DEPRESSED DISPLAY REG. BIT. * DEBON NOP LIA SR GET SWITCH REG. STA SAVEA SAVE SW.REG. SETTING. CLA,CCE READY INDICATORS. WAITS OTA SR TRY TO CLEAR SW.REG. LIA SR GET SW.REG. BACK. SZA,RSS IS OPERATOR PRESSING A SWITCH? JMP WAITO NO! GO DO NEXT SW. REG. TEST. CLA,CLE YES! SET DELAY MARKER. JMP WAITS WAIT UNTIL OPERATOR LETS GO. WATM1 CLE SET DELAY MARKER. WAITO CCA SET TEST PATTERN. OTA SR ATTEMPT TO SET ALL SR BITS. LIA SR GET SR CONTENTS. ISZ A IS OPERATOR CLEARING A SWITCH? JMP WATM1 YES! WAIT UNTIL HE LETS GO. SEZ WAS A SW.REG. BIT PRESSED? JMP RESSW NO! GO RESTORE SW.REG. INA YES! DELAY SZA ABOUT JMP *-2 400 MS. JMP WAITS TRY TEST AGAIN. RESSW LDA SAVEA RESTORE ORIGINAL SW.REG. OTA SR RESTORE DISPLAY. JMP DEBON,I RETURN. SPC 2 * THIS ROUTINE SETS THE DMA XFER ERROR MESSAGE TO * READ AS AN OUTPUT FAILURE. SETOT NOP JSB FIXMS PUT ASC 1, O AN DEF EE063+5 -OUT- JSB FIXMS IN ASC 1,UT THE DEF EE063+6 MESSAGE STRING. JMP SETOT,I RETURN. SKP * STUFFS A JUMP PADDR,I IN TRAP CELL 6 * AND THE DESTINATION ADDRESS IN PADDR * STUF6 NOP LDA JLINK GET A JMP PADDR,I STA 6 STORE IT IN TRAP CELL. LDA STUF6,I GET DESTINATION ADDRESS. STA PADDR SAVE IT. ISZ STUF6 UPDATE RETURN. JMP STUF6,I RETURN. SPC 2 * STUFFS A JUMP PADDR,I IN TRAP CELL 7 * AND THE DESTINATION ADDRESS IN PADDR * STUF7 NOP LDA JLINK GET A JMP PADDR,I STA 7 STORE IT IN THE TRAP CELL. LDA STUF7,I GET DESTINATION ADDRESS. STA PADDR SAVE IT. ISZ STUF7 UPDATE RETURN. JMP STUF7,I RETURN. SPC 3 * STUFFS A JUMP PADDR,I IN THE I-O TRAP CELL * AND THE DESTINATION ADDRESS IN PADDR * STUFI NOP LDA JLINK GET A JMP PADDR,I. STA USRSC,I PUT IT IN I-O TRAP CELL. LDA STUFI,I GET DESTINATION ADDRESS. STA PADDR SAVE IT. ISZ STUFI UPDATE RETURN. JMP STUFI,I RETURN. SPC 2 * STORES AN ASCII STRING IN A MESSAGE STRING. * CALLING FORMAT- * JSB FIXMS * ASC 1,XX * DEF MESG STRING POINTER * FIXMS NOP LDA FIXMS,I GET AN ASCII WORD. ISZ FIXMS UPDATE RETURN TO P+2. STA SAVEA SAVE ASCII DATA. LDA FIXMS GET JSB+2 ADDR. IOR BIT15 MAKE IT AN INDIRECT ADDR. STA FIXMS RESTORE NEW ADDR. LDA SAVEA RESTORE ASCII DATA. STA FIXMS,I STORE ASCII IN MESSAGE STRING. ISZ FIXMS UPDATE RETURN. LDA FIXMS GET JSB LINK ADDR. ELA,CLE,ERA CLEAR INDIRECT BIT. JMP A,I RETURN. SKP * SETS UP THE GOOD AND BAD DATA IN THE MESSAGE * STRING AFTER A WCR FAILURE. * PDATA NOP STB DAIN SAVE ACTUAL DATA. LDB WC1RP GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. LDA DAIN GET ACTUAL DATA. LDB WC1R2 GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. JMP PDATA,I RETURN. SPC 2 * REPORTS A DMA1 WCR FAILURE. * FIX33 NOP JSB FIXMS UPDATE ASC 1,R1 ERROR DEF EE033+4 MESSAGE. DLD SVRES GET GOOD-BAD WCR DATA JSB ERMSG REPORT WCR1 GOOD=XXXXXX DEF EE033 BAD=XXXXXX * A=EXPECTED WCR1 CONTENTS * B=ACTUAL WCR1 CONTENTS JMP FIX33,I RETURN. SPC 2 * REPORTS A DMA2 WCR FAILURE. * FIX34 NOP JSB FIXMS UPDATE ASC 1,R2 ERROR DEF EE033+4 MESSAGE TO WCR2. DLD SVRES GET GOOD-BAD WCR DATA JSB ERMSG REPORT WCR2 GOOD=XXXXXX DEF EE033 BAD=XXXXXX * A=EXPECTED WCR2 CONTENTS * B=ACTUAL WCR2 CONTENTS JMP FIX34,I RETURN. SPC 2 * THIS RETURN SETS THE DMA XFER ERROR MESSAGE * TO READ AS AN INPUT FAILURE. * SETIN NOP JSB FIXMS PUT ASC 1, I AN DEF EE063+5 -IN- JSB FIXMS INTO ASC 1,N THE DEF EE063+6 MESSAGE STRING. JMP SETIN,I RETURN. SKP * I-O SUBROUTINES * STF NOP SET I-O FLAG. STFX STF CH JMP STF,I SPC 2 CLCC NOP CLCCX CLC CH,C CLEAR I-O CONTROL FF. JMP CLCC,I SPC 2 SPC 2 STC NOP STCX STC CH SET I-O CONTROL FF. JMP STC,I SPC 2 STCC NOP STCCX STC CH,C SET I-O CONTROL,CLEAR FLAG. JMP STCC,I SPC 2 OTA NOP OTAX OTA CH OUTPUT TO I-O DATA BUFFER. JMP OTA,I SPC 2 LIA NOP LIAX LIA CH INPUT I-O DATA BUFFER. JMP LIA,I SPC 2 SFS NOP SFSX SFS CH IS I-O FLAG SET? JMP SFS,I NO! RETURN P+1. ISZ SFS YES! RETURN P+2. JMP SFS,I SPC 2 FIXDT NOP STA SAVAX SAVE A-REG. LDA MARKB GET BOARD TYPE. CPA PATT1 16 BIT BOARD? JMP EXITF YES! EXIT. LDA B377 NO! GET BYTE MASK. AND B MASK OFF HI BYTE. STA B PUT NEW VALUE AWAY. EXITF LDA SAVAX RESTORE A-REG. JMP FIXDT,I RETURN. MARKB NOP SKP * SET UP DMA1 FOR OUTPUT. MEM ADDR IN A, COMPLEMENT WRD-CNT IN B * OUT1 NOP CLC 2 PREPARE TO RECV MEM ADDR OTA 2 OUTPUT MEM ADDR CMA TRY TO CHANGE DMA1 CLC 3 BY OTA 3 CHANGING DMA2. STC 2 PREPARE TO RECV WRD-CNT OTB 2 OUTPUT WRD CNT LDA CNTLW CONTROL WORD= STC,CLC. IOR USRSC INCLUDE I/O SELECT CODE OTA 6 OUTPUT DMA1 CNTL WORD. XOR CNTLW ALTER DMA2 CONTROL AND ADA B11 AND CHANGE SERVICE OTA 7 SELECT CODE. JMP OUT1,I RETURN. SPC 1 * SET UP DMA2 FOR OUTPUT. SAME AS FOR DMA1 (OUT1 ). * OUT2 NOP CLC 3 READY FOR MEM ADDR. OTA 3 OUTPUT TO MAR. CMA TRY TO CHANGE DMA2 CLC 2 BY OTA 2 CHANGING DMA1. STC 3 READY FOR WORD COUNT. OTB 3 OUTPUT TO WCR. LDA CNTLW GET CONTROL WORD= STC,CLC. IOR USRSC MERGE I-O SC. OTA 7 OUTPUT TO DMA2. XOR CNTLW CHANGE DMA1 CONTROL ADA B11 AND CHANGE SERVICE SELECT CODE OTA 6 ON DMA1. JMP OUT2,I RETURN. SPC 1 TRAPC NOP LDA B2 START AT ADDR 2. LDB THLTX GET A HLT 106077. THLTL STB A,I PUT HALT IN A TRAP CELL. INA UPDATE ADDR OF TRAP CELLS. CPA B100 LAST TRAP CELL? JMP TRAPC,I YES! EXIT. JMP THLTL NO! DO NEXT TRAP CELL. SKP * THIS SUBROUTINE STORES ALL DATA REPORTED * DURING A DMA OUTPUT OR INPUT XFER FAILURE INTO * THE ERROR MESSAGE STRING THEN PRINTS THE MESSAGE. * PXDAT NOP CLE LDA PADDR GET FAILING ADDRESS. LDB OUTP1 GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. CLE LDA EXPDA GET EXPECTED DATA. LDB OUTP2 GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. CLE LDA DAIN GET ACTUAL DATA. LDB OUTP3 GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. LDA PADDR GET XFER ADDRESS. LDB DAIN GET ACTUAL DATA IN. JSB ERMSG PRINT ERROR MESSAGE. DEF EE063 ERROR MESSAGE POINTER. * A=TRANSFER ADDRESS * B=ACTUAL DATA TRANSFERRED JMP PXDAT,I RETURN. EXPDA NOP SPC 3 * THIS SUBROUTINE STORES ALL DATA REPORTED * DURING A DMA OUTPUT OR INPUT XFER FAILURE INTO * THE ERROR MESSAGE STRING THEN PRINTS THE MESSAGE. * PXDT2 NOP LDA PADDR GET FAILING ADDRESS. LDB OUTP1 GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. LDA DAIN GET EXPECTED DATA. LDB OUTP2 GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. LDA PADDR,I GET ACTUAL DATA. LDB OUTP3 GET MESSAGE POINTER. JSB O2AS,I CONVERT OCTAL TO ASCII. LDA PADDR GET XFER ADDRESS. LDB DAIN GET EXPECTED DATA IN. JSB ERMSG PRINT ERROR MESSAGE. DEF EE063 ERROR MESSAGE POINTER. * A=TRANSFER ADDRESS * B=EXPECTED DATA TRANSFERRED JMP PXDT2,I RETURN. SKP TSTC1 NOP LDA CLF0 SET SO WHEN IT INTERRUPTS THE INTS. STA USRSC,I ARE TURNED OFF JSB CLCC INSURE I/O IS OFF LDA BIT15 CHANGE CONTROL WORD TO IOR USRSC STC DURING XFER. OTA 6 OUTPUT TO DMA1. XOR BIT15 TRY TO CHANGE DMA1 OTA 7 BY CHANGING DMA2. STC 6,C TURN ON DMA1 JSB STF SET I/O FLAG TO START TRANSFER CLC 6 CLR DMA CTL TO AVOID DMA INT CLA START A WAIT TIME INA,SZA,RSS JMP *+3 JSB SFS IS FLAG SET YET JMP *-3 NO WAIT FOR IT STF 0 ENABLE INT. IF I-O CTL IS SET, NOP INT WILL TURN OFF INT SYS JMP TSTC1,I SPC 1 TSTC2 NOP LDA CLF0 SET SO THAT INTPS ARE TURNED OFF STA USRSC,I WHEN INTERRUPT OCCURS JSB CLCC TURN INTF OFF LDA BIT15 CHANGE CONTROL WORD TO STC IOR USRSC DURING XFER. OTA 7 OUTPUT TO DMA2. XOR BIT15 TRY TO CHANGE DMA2 CONTROL OTA 6 BY CHANGING DMA1. STC 7,C TURN ON DMA2. JSB STF SET FLAG TO START TRANSFER CLC 7 DISABLE DMA2 INTERRUPTS. CLA SET FOR TIME OUT INA,SZA,RSS JMP *+3 JSB SFS IS FLAG SET YET? JMP *-3 NO WAIT STF 0 TURN ON INT SYSTEM. NOP INT WILL TURN OFF INT SYSTEM. JMP TSTC2,I SPC 1