SKP RDYXF NOP CLA CLEAR STA NULL TEST STA NULL+1 ADDRESSES LDA ANULL GET ADDR POINTER. STA PADDR SAVE IT LDB M2 SET LOOP STB CNTR TEST COUNTER. IOR BIT15 MAR CONTROL WORD TO INPUT. JMP RDYXF,I RETURN. SPC 1 RDYD1 NOP CCB WORD COUNT=-1 LDA ANULL XFER ADDR POINTER. JSB OUT1 INITIALIZE DMA1 OUT. JMP RDYD1,I SPC 2 RDYD2 NOP CCB WORD COUNT=-1 LDA ANULL XFER ADDR POINTER. JSB OUT2 INITIALIZE DMA2 OUT. JMP RDYD2,I SKP TCLC1 NOP JSB CLCC TURN OFF INTERFACE OTA 6 OUTPUT TO DMA1. XOR BIT13 TRY TO CHANGE DMA1 CONTROL OTA 7 BY CHANGING DMA2. STC 6,C TURN ON DMA1. JSB STC SET I-O CONTROL FF. CLC 6 CLR DMA CTL TO AVOID DMA INT. CLA SET TO TIME OUT INA,SZA,RSS JMP *+3 SFS 6 WAIT FOR DMA JMP *-3 JSB STF SET I-O FLAG FF. STF 0 NO I-O INT SHOULD OCCUR NOP SINCE DMA1 SHOULD CLC. JMP TCLC1,I SPC 2 TCLC2 NOP JSB CLCC TURN OFF INTERFACE OTA 7 OUTPUT TO DMA2. XOR BIT13 TRY TO CHANGE DMA2 CONTROL OTA 6 BY CHANGING DMA1. STC 7,C TURN ON DMA2. JSB STC SET I-O CTL FF. CLC 7 DISABLE DMA2 INTERRUPT. CLA SET TIME OUT INA,SZA,RSS JMP *+3 SFS 7 WAIT FOR DMA2. JMP *-3 JSB STF SET I-O FLAG FF. STF 0 NO I-O INT SHOULD OCCUR NOP SINCE DMA2 SHOULD CLC. JMP TCLC2,I SKP * MESSAGE OUTPUT WITHOUT HALT * MSGCO NOP JSB MSGRT OUTPUT MESSAGE OCT 2000 S-REG 10 CHECK JMP MSGCO,I RETURN TO CALLER * * ERROR MESSAGE WITH HALT * ERMSG NOP JSB MSGRT OUTPUT MESSAGE B4000 OCT 4000 S-REG 11 CHECK CLA LDB BIT14 CHECK SWR BIT 14 TO JSB SWRT SUPPRESS HALTS. STA ERHLT PUT HALT IN LINE LDA SAVA RESTORE THE LDB SAVB A & B REGISTERS. ERHLT NOP ERROR HALT. CLB,INB SWR BIT 0 JSB SWRT CHECK SWR BIT 0 JMP *+3 SWR BIT 0 IS SET LDB SAVB RESTORE B-REG JMP ERMSG,I SWR BIT 0 NOT SET RETURN TO CALLER LIA SR READ SWR AND N76 MASK OFF BIT 0 OTA SR CLEAR SWR BIT 0 JMP TRETN EXIT CURRENT TEST * * OUTPUT MESSAGE * MSGRT NOP STA SAVA SAVE A AND STB SAVB B REGISTERS. CCA READY INT SYSTEM MARKER. SFS 0 INT SYSTEM ON? CLA NO! CLEAR MARKER. STA INTON SET INT SYSTEM MARKER. CLF 0 SHUT OFF INT SYSTEM. LDB MSGRT,I GET SWITCH REGISTER BIT LDA MSGRT GET RETURN ADDRESS. ADA M2 DECREMENT AND STA MSGRT RESTORE RETURN ADDRESS. JSB SWRT CHECK TO SUPPRESS MESSAGES JMP CNVTH YES? DON'T PRINT MESSAGE. LDA MSGRT,I NO? GET ERROR LDA A,I MESSAGE LDA A,I POINTER. ALF,CLE,ALF CHECK IF AND B177 THIS IS AN CPA B105 ERROR MESSAGE. IS IT? JMP GETTN YES! CHECK TO OUTPUT TEST #. GETPT LDA MSGRT,I NO! RETRIEVE FORMAT LDB A,I ADDRESS CLA,CLE AND JSB FMTR,I PRINT MESSAGE. CNVTH LDB ERMSG,I CONVERT HALT CODE CCA,CCE TO JSB AS2N,I OCTAL. STA SAVEA SAVE ERROR CODE. AND B77 MASK TO SC. IOR HLT0 MERGE IN HALT 102000. LDB SAVEA GET ERROR CODE AGAIN. BLF,BLF POSITION UPPER ERROR CODE #. SSB 1060XX OR 1070XX HALT? IOR B4000 YES! MERGE IN BIT11. RBL POSITION LOWER DIGIT. SSB 1030XX OR 1070XX HALT? IOR BIT9 YES! MERGE BIT 9. STA ERHLT SAVE HALT. ISZ MSGRT,I ADJUST ISZ MSGRT RETURN ADDRESS ISZ MSGRT POINTERS. ISZ MSGRT LDA INTON GET INT SYSTEM MARKER. SZA WAS INT SYSTEM ON? STF 0 YES! TURN IT BACK ON. LDA SAVA RESTORE A AND LDB SAVB B REGS JMP MSGRT,I RETURN GETTN LDA TSTN GET TEST NUMBER CPA TESTI IS IT THE SAME ONE? JMP GETPT YES! SKIP OUTPUT STA TESTI NO! THEN UPDATE IT CLB CONVERT THE AND B37 TEST NUMBER. ADA M10 IS TEST NUMBER SEZ GREATER THAN 10? LDB B400 YES! SET UP AN ASCII 1. SEZ,RSS TEST NUMBER>10?IS > 10 ADA B12 NO! CONVERT TO POSITIVE. IOR B MERGE IN UPPER IOR ASC00 DIGIT THEN STA TSTNX PUT IT IN STRING CLA DO A CRLF JSB SLOP,I TO CONSOLE. CLA,CLE INDICATE START OF FORMAT LDB TSTFN GET TEST # MESG. POINTER. JSB FMTR,I PRINT TEST # MESSAGE. JMP GETPT RETURN SKP TSTFN DEF *+1 ASC 3,TEST TSTNX ASC 2,XX// PSCMS ASC 6,PASS XXXXXX/ SPC 3 RDYIO NOP LDA PATT1 GET FIRST DATA PATTERN. JSB OTA OUTPUT TO TEST INTERFACE. CMA COMPLEMENT PATTERN. JSB STCC GATE DATA TO INPUT BUFR. JSB OTA OUTPUT 2ND DATA PATTERN. JMP RDYIO,I RETURN. HED DIAGNOSTIC CONTROL ENTRY CLC 0,C TURN I/O SYSTEM OFF GETSR LIA SR GET SR CONTENTS. AND B77 MASK TO SC. CLE READY TO CHECK ADA M10B SELECT CODE. SEZ SC>7? JMP *+3 YES! GO AHEAD NORMALLY. HLT 73B NO! REPORT ERROR. JMP GETSR GO TRY AGAIN. LIA SR GET SR CONTENTS AND B77 BACK AGAIN. STA USRSC SAVE USER SC. LDB FIRST UPDATE GETIO LDA B,I ALL CPA M1 I-O JMP CLRPC INSTRUCTIONS STA SAVA TO LDA A,I THE AND NB77 USER IOR USRSC SELECT STA SAVA,I CODE. INB JMP GETIO CLRPC LIA SR GET SR CONTENTS AND B7777 MASK OFF SC'S STA USSC STORE BOTH SC'S AND B7700 MASK OFF SC-2 SZA,RSS 1 OR 2 SC'S ? JMP CLRP 1, DO STANDARD TEST RUN ALF,ALF POSITION SC IN RAL,RAL BITS 0-5 CLE READY TO CHECK ADA M10B SELECT CODE SEZ SC>7? JMP *+3 YES! GO AHEAD HLT 73B NO! REPORT ERROR JMP GETSR GO TRY AGAIN LDA USSC TEST AND B77 BOTH STA B SC LDA USSC FOR ALF,ALF THE RAL,RAL SAME AND B77 VALUE STA SAVA SAVE SC IN BITS 6-9 CPA B BOTH THE SAME ? JMP *+2 YES! SAME VALUE JMP *+3 OK-DIFFERENT HLT 71B REPORT ERROR JMP GETSR GO TRY AGAIN LDA CH3I,I CONFIGURE CLC INSTRUCTION AND NB77 MASK OFF SC IOR SAVA MERGE IN NEW SC STA CH3I,I STORE INSTRUCTION JSB REV CONFIGURE STC INSTRUCTION CLA CLEAR SR OTA SR FOR OPERATOR CCA SET UP FLAG STA XYZ TO DO TST15 JMP HLT74 HLT FOR SR OPTIONS CLRP CLA DO STANDARD TEST RUN STA XYZ CLEAR TST15 FLAG LDA PATT1 GET A TEST PATTERN. JSB OTA OUTPUT IT TO THE TEST JSB STCC INTERFACE AND TURN IT ON. JSB LIA GET PATTERN BACK. CPA PATT1 IS THIS A 16-BIT BOARD? RSS YES! GO TO HALT 74. CPA PATCK 8 BIT BOARD? JMP *+3 YES! GO HLT 74. HLT 72B NO! TELL OPERATOR I-O FAILED.. JMP GETSR GO TRY ANOTHER SELECT CODE? STA MARKB SAVE BOARD TYPE. HLT74 HLT 74B CONFIGURATION COMPLETE. SKP MAIND CLC 0,C CLEAR I-O. JSB TRAPC INITIALIZE TRAP CELLS. JSB MSGCO PRINT THE DEF INTRO INTRODUCTORY MESSAGE. CLA CLEAR PASS STA EOTCT COUNT. NEWSR LDA XYZ TEST SZA,RSS FOR TST15 JMP NEWS NO TST15 - DO STANDARD TEST RUN LDA BIT15 GET BIT 15 CLB FOR TST15 STA SAVIA SAVE TEST STA SVINA NUMBER JMP STLP1 SET UP TST15 NEWS LDA STDA GET THE STANDARD TEST SET. LDB BIT9 USER TEST JSB SWRT SELECTION? RSS YES! GO GET USER INPUT. JMP STLP GO SAVE TEST SET. OPIN LDA SVINA RETRIEVE PREVIOUS CLB TEST SET. HLT 75B WAIT FOR USER INPUT AND STDA STLP CLB GET STANDARD TEST SET. STA SAVIA SAVE USER STA SVINA INPUT TEST SET. LDB BIT9 CHECK IF SW9 IS DOWN JSB SWRT IS IT? JMP OPIN NO! GO HALT AGAIN. STLP1 CCA YES! SET THE TEST STA TSTN NUMBER TO -1. STA TESTI CLEAR PRESENT TEST. CLA CLEAR STA TSTNN TEST RUN FLAG STLPL LDA SAVIA RESTORE A REG. RAR ROTATE TEST BITS. STA SAVIA SAVE TEST BIT ISZ TSTN MOVE TEST NUMBER UP ONE NOP NEXTL LDA TSTN GET TEST NUMBER. ADA TSTP GET THE TEST SECTION LDA A,I STARTING ADDRESS. CPA M1 IS THIS THE END OF TESTS? JMP EOTL YES! GO TO THE END OF TEST. LDB SAVIA NO! GET TEST INDICATOR. SSB,RSS SHOULD THIS TEST BE RUN? JMP STLPL NO! GO TRY NEXT TEST. STA TSTNN YES! SAVE STARTING ADDRESS. JSB CLCC INSURE INTERFACE IS OFF STF 6 AND DMA STF 7 CLC 0,C TURN OF SYSTEM JSB TRAPC SET TRAP CELLS TO A HALT JSB RDYD1 READY DMA1. JSB RDYD1 READY DMA2. JMP TSTNN,I GO DO TEST TRETN CLC 0,C CLEAR I-O. LDA TSTN GET THE TEST NUMBER. LDB BIT15 CHECK FOR HALT AT END OF TEST JSB SWRT HALT REQUESTED? HLT 76B YES! WAIT FOR OPERATOR. LDA XYZ IS THIS TEST TST15 ? SZA JMP *+4 YES LDB BIT9 CHECK FOR USER SELECTION. JSB SWRT IS USER SELECTION REQUESTED? JMP OPIN YES! GO HALT. LDB BIT13 CHECK FOR LOOP ON TEST SECTION. JSB SWRT LOOP REQUESTED? JMP NEXTL YES! GO DO TEST AGAIN. JMP STLPL NO! DO NEXT TEST. SKP EOTL LDA TSTNN WERE ANY TESTS SZA,RSS RUN? JMP NEWSR NO! GET STANDARD TEST SET. LDA EOTCT UPDATE INA PASS STA EOTCT COUNT. CCE READY FOR CONVERSION. LDB PRNTP GET PASS COUNT ADB B2 ADDRESS. JSB O2AS,I CONVERT IT TO ASCII. JSB MSGCO CALL PRINT ROUTINE PRNTP DEF PSCMS MESSAGE POINTER. LDB BIT12 CHECK FOR LOOP ON DIAG. JSB SWRT LOOP ON DIAGNOSTIC REQUESTED? JMP *+3 YES! BYPASS HLT 77B. LDA EOTCT NO! GET PASS COUNT. HLT 77B AND HALT. CLB LDA SVINA CHECK SSA,RSS FOR JMP STLP STANDARD STA SAVIA RUN STA SVINA OR JMP STLP1 TEST 15 SPC 4 ORG 2000B JMP MAIND GO TO TEST CONTROL. HED TST00 DMA FLAG TEST * TST00 -- TEST ABILITY TO SET AND CLEAR THE DMA FLAGS * TST00 CLF 6 CLEAR DMA1 FLAG SFS 6 JMP E000+2 E000 JSB ERMSG DMA1--CLF DID NOT CLR FLG OR SFS DEF EE000 CAUSED SKIP WITH FLG CLR SFC 6 RSS JMP E001+2 E001 JSB ERMSG DMA1--SFC CAUSED NO DEF EE001 SKIP WITH FLG CLR STF 6 SET DMA1 FLAG SFC 6 JMP E002+2 E002 JSB ERMSG DMA1--STF DID NOT SET FLG OR SFC DEF EE002 CAUSED SKIP WITH FLG SET SFS 6 RSS JMP E003+2 E003 JSB ERMSG DMA1--SFS CAUSED NO DEF EE003 SKIP WITH FLG SET CLF 7 CLEAR DMA-2 FLAG SFS 7 JMP E004+2 E004 JSB ERMSG DMA2--CLF DID NOT CLR FLG OR SFS DEF EE004 CAUSED SKIP WITH FLG CLR SFC 7 RSS JMP E005+2 E005 JSB ERMSG DMA2--SFC CAUSED NO DEF EE005 SKIP WITH FLG CLR STF 7 SET DMA2 FLAG SFC 7 JMP E006+2 E006 JSB ERMSG DMA2--STF DID NOT SET FLG OR SFC DEF EE006 CAUSED SKIP WITH FLG SET SFS 7 RSS JMP TRETN E007 JSB ERMSG DMA2--SFS CAUSED NO DEF EE007 SKIP WITH FLG SET JMP TRETN HED TST01 DMA INTERRUPT TEST * TST01 -- INSURE DMA DOESN'T INTERRUPT WITH THE INTERRUPT SYSTEM OFF * TST01 JSB STUF6 PUT RETURN JMP IN THE DEF E010 DMA1 TRAP CELL STC 6 SET DMA1 TO INTERRUPT AS STF 6 IF INT SYS WERE ON. NOP ALLOW TIME FOR INTERRUPT CLC 6,C TURN DMA1 OFF JMP E010+2 DMA1 SHOULD NOT INTERRUPT. JSB FIXMS UPDATE ASC 1,10 ERROR DEF EE010+1 MESSAGE. E010 JSB ERMSG ILLEGAL DMA1 INT DEF EE010 WITH INT SYSTEM OFF. JSB STUF7 PUT A RETURN JMP IN DEF E011 THE DMA2 TRAP CELL. STC 7 SET DMA2 TO INTERRUPT AS STF 7 IF INT SYS WERE ON. NOP ALLOW TIME FOR INTERRUPT CLC 7,C TURN DMA2 OFF JMP E011+2 DMA2 SHOULDN'T INTERRUPT. JSB FIXMS UPDATE ASC 1,11 ERROR DEF EE011+1 MESSAGE. E011 JSB ERMSG ILLEGAL DMA2 INTERRUPT DEF EE011 WITH INT SYSTEM OFF. SKP * -- TEST INTERRUPT CAPABILITY OF DMA * JSB STUF6 SET UP RETURN JMP DEF RTR02 IN DMA1 TRAP CELL. LDA JSBLK UPDATE TRAP CELL TO STA 6 A JSB. STC 6 DMA1 INTERRUPT STF 6 REQUEST. STF 0 ENABLE INT SYSTEM. STC 1 NO INTERRUPTS HERE. NOP DMA1 SHOULD INTERRUPT HERE. JSB FIXMS NO? UPDATE ASC 1,12 ERROR DEF EE012+1 MESSAGE. E012 JSB ERMSG DMA1 DID NOT INTERRUPT DEF EE012 * RET02 JSB STUF7 SET UP RETURN JMP DEF RTX02 IN DMA2 TRAP CELL. LDA JSBLK UPDATE TRAP CELL STA 7 TO A JSB. STC 7 DMA2 INTERRUPT STF 7 REQUEST. STF 0 ENABLE INT SYSTEM. STC 1 NO INTERRUPTS HERE. NOP DMA2 SHOULD INTERRUPT HERE. JSB FIXMS NO? UPDATE ASC 1,15 ERROR DEF EE015+1 MESSAGE. E015 JSB ERMSG DMA2 DID NOT INTERRUPT DEF EE015 JMP TRETN EXIT TEST SECTION. SKP * DMA INTERRUPT ROUTINES * RTR02 NOP DMA1 INTERRUPT SUBROUTINE CLF 0 DISABLE INT SYSTEM. JSB STUF6 SET UP DMA1 TRAP CELL DEF E013 IN CASE IAK DIDN'T WORK. STF 0 TEST INTERRUPT ACKNOWLEDGE. NOP DMA1 SHOULDN'T INTERRUPT. CLC 6,C TURN DMA1 OFF REX02 LDA RTR02 DID INTERRUPT OCCUR AT THE CPA ADDR1 CORRECT MEM LOCATION? JMP RET02 YES! GO CHECK DMA2. JSB FIXMS NO! UPDATE ASC 1,14 ERROR DEF EE010+1 MESSAGE. LDA RTR02 FORM ACTUAL INTERRUPT ADA M1 LOCATION. LDB ADDR1 FORM EXPECTED ADB M1 INTERRUPT LOCATION. E014 JSB ERMSG DMA1 RETURN ADDR IS INCORRECT DEF EE010 * A=ACTUAL INTERRUPT LOCATION B=EXPECTED JMP RET02 GO DO NEXT TEST. RTX02 NOP DMA2 INTERRUPT SUBROUTINE CLF 0 DISABLE INT SYSTEM. JSB STUF7 SET UP DMA2 TRAP CELL DEF E016 IN CASE IAK DIDN'T WORK. STF 0 TEST INTERRUPT ACKNOWLEDGE. NOP DMA2 SHOULDN'T INTERRUPT. CLC 6,C TURN DMA2 OFF RTE02 LDA RTX02 DID INTERRUPT OCCUR AT THE CPA ADDR2 CORRECT MEM LOCATION? JMP TRETN YES! EXIT TEST SECTION. JSB FIXMS NO! UPDATE ASC 1,17 ERROR DEF EE011+1 MESSAGE. LDA RTX02 FORM ACTUAL ADA M1 INTERRUPT LOCATION. LDB ADDR2 FORM EXPECTED ADB M1 INTERRUPT LOCATION. E017 JSB ERMSG DMA2 RETURN ADDR IS INCORRECT DEF EE011 * A=ACTUAL INTERRUPT LOCATION B=EXPECTED JMP TRETN EXIT TEST SECTION. E013 JSB FIXMS UPDATE ASC 1,13 ERROR DEF EE010+1 MESSAGE. JSB ERMSG DMA1 IAK DID NOT DEF EE010 DISABLE DMA1 INTERRUPTS. JMP REX02 RETURN TO NEXT TEST. E016 JSB FIXMS UPDATE ASC 1,16 ERROR DEF EE011+1 MESSAGE. JSB ERMSG DMA2 IAK DID NOT DEF EE011 DISABLE DMA2 INTERRUPTS. JMP RTE02 RETURN TO NEXT TEST. HED TST02 CONTROL RESET TEST * TST02 -- TEST CONTROL RESET TO DMA * TST02 JSB STUF6 SET UP DMA1 TRAP DEF E020 CELL IN CASE OF ERROR. STC 6 ENABLE DMA1 STF 6 INTERRUPT. CLC 0 SHOULD CLEAR DMA1 CONTROL. STF 0 ENABLE INT SYSTEM. NOP ALLOW TIME FOR INTERRUPT JMP CRSD1 NO INTERRUPT HERE. E020 JSB FIXMS UPDATE ASC 1,20 ERROR DEF EE020+1 RETURN. JSB ERMSG CLC 0 DID NOT CLEAR DEF EE020 DMA1 CONTROL. CRSD1 JSB STUF6 SET UP DMA1 TRAP CELL IN DEF E022 CASE OF AN ERROR. STC 6 ENABLE DMA1 INTERRUPT. CLC 6 CLEAR DMA1 CONTROL. NOP ALLOW TIME FOR INTERRUPT JMP E022+2 NO INTERRUPT HERE. E022 JSB ERMSG CLC 6 DID NOT CLEAR DEF EE022 DMA2 CONTROL. CLC 6,C TURN DMA1 OFF JSB STUF7 SET UP DMA2 TRAP CELL IN DEF E021 CASE OF ERROR. STC 7 ENABLE A DMA2 STF 7 INTERRUPT. CLC 0 SHOULD CLEAR DMA2 CONTROL. STF 0 ENABLE INT SYSTEM. NOP ALLOW TIME FOR INTERRUPT JMP CRSD2 NO INTERRUPT HERE. E021 JSB FIXMS UPDATE ASC 1,21 ERROR DEF EE021+1 MESSAGE. JSB ERMSG CLC 0 DID NOT CLEAR DEF EE021 DMA2 CONTROL. CRSD2 JSB STUF7 SET UP DMA2 TRAP CELL IN DEF E023 CASE OF AN ERROR. STC 7 ENABLE DMA2 INTERRUPT. CLC 7 CLEAR DMA2 CONTROL. NOP ALLOW TIME FOR INTERRUPT JMP E023+2 NO INTERRUPT HERE. E023 JSB ERMSG CLC 7 DID NOT CLEAR DEF EE023 DMA2 CONTROL. CLC 7,C TURN OFF DMA2 CLF 0 TURN OFF INTERRUPTS JMP TRETN EXIT TEST SECTION. HED TST03 PRESET TEST * TST03 -- PRESET TEST * TST03 LDB BT812 SUPPRESS JSB SWRT PRESET TEST? JMP TRETN YES! EXIT TEST SECTION. CLF 6 CLEAR DMA1 AND DMA2 CLF 7 FLAGS FOR PRESET TEST. JSB MSGCO PRINT PRESET DEF PRSET MESSAGE. JSB DEBON DEBOUNCE SW.REG. OCT 107024 PRESS PRESET THEN PRESS RUN. SFC 6 PRESET SET DMA1 FLAG? JMP E024+2 YES! CHECK DMA2. E024 JSB ERMSG NO! REPORT ERROR. DEF EE024 PRESET DIDN'T SET DMA1 FLAG. SFC 7 PRESET SET DMA2 FLAG? JMP TRETN YES! EXIT TEST SECTION. E025 JSB ERMSG NO! REPORT ERROR. DEF EE025 PRESET DIDN'T SET DMA2 FLAG. JMP TRETN EXIT TEST SECTION. HED TST04 PRIORITY TEST * TST04 -- PRIORITY TEST * TST04 LDA CLF0 PUT A CLF0 IN STA 6 THE DMA1 TRAP CELL. JSB STUF7 SET UP AN ERROR RETURN DEF E026 JMP IN THE DMA2 TRAP CELL. STF 6 ENABLE INTERRUPTS STF 7 FOR STC 6 DMA1 AND STC 7 DMA2. STF 0 INT SYSTEM ON. NOP ALLOW TIME FOR INTERRUPT JMP NXPT1 DMA1 SHOULD INT HERE. E026 JSB FIXMS NO? UPDATE ASC 1,26 ERROR DEF EE026+1 MESSAGE. JSB ERMSG DMA2 TOOK PRIORITY OVER DMA1 DEF EE026 NXPT1 LDA CLF0 PUT A CLF0 IN THE STA 7 DMA2 TRAP CELL. JSB STUFI SET UP AN ERROR RETURN DEF E027 JMP IN THE I-O TRAP CELL. JSB STF ENABLE AN I-O JSB STC INTERRUPT. CLF 6 ENABLE DMA2 INT. STF 0 INT SYSTEM ON. NOP ALLOW TIME FOR INTERRUPT JMP NXPT2 DMA2 SHOULD INT HERE. E027 JSB FIXMS NO? UPDATE ASC 1,27 ERROR DEF EE026+1 MESSAGE. JSB ERMSG I/O SC TOOK PRIORITY OVER DMA2 DEF EE026 SKP NXPT2 JSB TRAPC INITIALIZE TRAP CELLS. CLF 7 ENABLE I-O PRIORITY. LDA CLF0 PUT A CLF0 IN THE STA 6 DMA1 TRAP CELL. JSB STUFI SET UP AN ERROR RETURN DEF E030 IN THE I-O TRAP CELL. STF 6 ENABLE A DMA1 INTERRUPT. STF 0 INT SYSTEM ON. JMP NXPT3 DMA1 SHOULD INT HERE. E030 JSB FIXMS NO? UPDATE ASC 1,30 ERROR DEF EE026+1 MESSAGE. JSB ERMSG I/O SC TOOK PRIORITY OVER DMA1 DEF EE026 NXPT3 JSB STUFI SET UP AN ERROR RETURN DEF E031 IN THE I-O TRAP CELL. JSB RDYD1 READY DMA1. CLC 7,C SHUT OFF CHANNEL TWO. STF 0 ENABLE INT SYSTEM. STC 6,C START TRANSFER. JMP NXPT4 DMA CYCLE SHOULD HOLD OFF I-O. E031 JSB FIXMS NO? UPDATE ASC 1,31 ERROR DEF EE026+1 MESSAGE. JSB ERMSG DMA DID NOT INHIBIT I/O INT DEF EE026 NXPT4 JMP TRETN EXIT TEST SECTION. HED TST05 - TEST WORD COUNT REGISTERS * TST05 -- TESTS ABILITY TO SET AND READ * THE WORD COUNT REGISTERS * TST05 CLA START WITH WORD COUNT=0 WC1 STC 2 READY WCR1. STC 3 READY WCR2. OTA 2 OUTPUT PATTERN TO WCR1 OTA 3 AND WCR2. STA DAOUT SAVE PATTERN. LIB 2 GET WCR1 CONTENTS. CPA B WCR1 AS EXPECTED? JMP E033+2 YES! DO NEXT PATTERN. DST SVRES NO! SAVE RESULTS. JSB PDATA READY ERROR MESSAGE. JSB FIXMS UPDATE ASC 1,33 ERROR DEF EE033+1 MESSAGE. E033 JSB FIX33 REPORT BAD WCR1. * A=EXPECTED WCR1 CONTENTS * B=ACTUAL WCR1 CONTENTS LDA DAOUT RESTORE PATTERN. LIB 3 GET WCR2 CONTENTS. CPA B IS WCR2 AS EXPECTED? JMP E034+2 YES! DO NEXT PATTERN. DST SVRES NO! SAVE RESULTS. JSB PDATA READY ERROR MESSAGE. JSB FIXMS UPDATE ASC 1,34 ERROR DEF EE033+1 MESSAGE. E034 JSB FIX34 REPORT BAD WCR2. * A=EXPECTED WCR2 CONTENTS * B=ACTUAL WCR2 CONTENTS LDA DAOUT RESTORE PATTERN. INA,SZA UPDATE PATTERN. FINISHED? JMP WC1 NO! DO NEXT PATTERN. SKP * * -- CHECK CRS CLEARS CONTROL FF TO WCR * STC 2 READY WCR1. STC 3 READY WCR2. OTA 2 SET WCR1 TO ZERO OTA 3 SET WCR2 TO ZERO. CLC 0 SHOULD CLEAR CTL FF'S TO WCRS. CCA SHOULD NOT BE ABLE OTA 2 TO CHANGE WCR1 OTA 3 OR WCR2. LIA 2 INPUT WCR1 CONTENTS. SZA,RSS IS WCR1 CHANGED? JMP E035+2 NO! TEST WCR2. JSB FIXMS YES! UPDATE ASC 1,35 ERROR DEF EE020+1 MESSAGE. E035 JSB ERMSG CRS DID NOT CLEAR WCR1 DEF EE020 CONTROL FF. LIA 3 GET WCR2 CONTENTS. SZA,RSS WAS WCR2 CHANGED? JMP TRETN NO! EXIT TEST SECTION. JSB FIXMS YES! UPDATE ASC 1,36 ERROR DEF EE021+1 MESSAGE. E036 JSB ERMSG CRS DID NOT CLEAR WCR2 DEF EE021 CONTROL FF. JMP TRETN EXIT TEST SECTION. HED TST06 - TEST WORD COUNT ROLLOVER * TST06 -- THIS TEST CHECKS THE WORD COUNT ROLLOVER * BY SETTING THE WORD COUNT TO -1 AND * FORCING A TRANSFER. * TST06 JSB STUFI SET UP ERROR RETURN DEF E037 IN CASE I-O INTERRUPTS. JSB STUF6 SETUP RETURN JMP IN DEF RTN1 THE DMA1 TRAP CELL. LIA 3 GET WCR2. STA SAVWC SAVE IT. JSB RDYD1 READY DMA1. STF 0 ENABLE INT SYSTEM. STC 6,C TURN ON DMA1. JSB STCC DMA1 SHOULD INTERRUPT HERE. NOP ALLOW TIME FOR INTERRUPT E037 JSB FIXMS NO? UPDATE ASC 1,37 ERROR DEF EE012+1 MESSAGE. JSB ERMSG DMA1 DID NOT INTERRUPT AFTER XFR DEF EE012 RET07 JSB TRAPC INITIALIZE TRAP CELLS. CLC 6,C TURN OFF DMA1 JSB STUFI SET UP ERROR RETURN DEF E040 IN CASE I-O INTERRUPTS. JSB STUF7 SETUP RETURN JMP IN DEF RTN2 THE DMA2 TRAP CELL. LIA 2 SAVE INITIAL STA SAVWC WCR1. JSB RDYD2 READY DMA2. STF 0 TURN ON INTERRUPT SYSTEM. STC 7,C TURN ON DMA2. JSB STCC DMA2 SHOULD INTERRUPT HERE. NOP ALLOW TIME FOR INTERRUPT E040 JSB FIXMS NO? UPDATE ASC 1,40 ERROR DEF EE015+1 MESSAGE. JSB ERMSG DMA2 DID NOT INTERRUPT AFTER XFR DEF EE015 CLC 7,C TURN OFF DMA2 JMP TRETN EXIT TEST SECTION SKP RTN1 CLF 0 TURN OFF INTERRUPTS LIA 3 GET WCR2. CPA SAVWC WAS IT ALTERED BY DMA1? JMP *+3 NO! CONTINUE. E105 JSB ERMSG YES! REPORT ERROR. DEF EE105 DMA1 ALTERED WCR2. LIA 2 GET WCR1 CONTENTS. SZA,RSS IS IT ZERO? JMP RET07 YES! RETURN TO NEXT TEST. E041 JSB ERMSG WCR1 WAS NOT ZERO DEF EE041 AFTER ROLLOVER. * A=ACTUAL WCR1 CONTENTS JMP RET07 DO NEXT TEST. SPC 2 RTN2 CLF 0 TURN OFF INTERRUPT LIA 2 GET WCR1. CPA SAVWC WAS WCR1 ALTERED BY DMA2? JMP *+3 NO! CONTINUE. E106 JSB ERMSG YES! REPORT ERROR. DEF EE106 DMA2 ALTERED WCR1. LIA 3 GET WCR2 CONTENTS. SZA,RSS IS IT ZERO? JMP *+3 YES! EXIT TEST SECTION. E042 JSB ERMSG WCR2 WAS NOT ZERO DEF EE042 AFTER ROLLOVER. * A=ACTUAL WCR2 CONTENTS CLC 7,C TURN OFF DMA2 JMP TRETN EXIT TEST SECTION.