CPB A IS IT THE CH? JMP Z.CLF+1 YES - SKIP TEST LDA Z.STF SET UP AND ZIOM IOR B STF INSTRUCTION STA Z.STF PUT IT IN PLACE LDA Z.CLF SET UP AND ZIOM IOR B CLF INSTRUCTION STA Z.CLF PUT IT IN LINE ZBS41 CLF CH CLEAR CHANNEL FLAG Z.STF STF CH EXECUTE STF CH INSTRUCTION ZBS42 SFC CH TEST CHANNEL FLAG JMP ZB41 Z.CLF CLF CH CLEAR TEST FLAG CPB Z.77 IS TEST FINISHED? JMP ZBIO5 YES INB NO JMP ZB40 DO NEXT CHANNEL * ZBE11 ASC 14,E011 STF XX SET CARD FLAG// * ZB41 STB ZBTMP SAVE NUMBER LDA B CONVERT CH FOR MESSAGE JSB ZN2AO STA ZBE11+5 LDA ZBTMP RETRIEVE NUMBER E011 JSB ERMS,I E011 DEF ZBE11 * * * * * SKP * CHECK INTERRUPT & HOLD OFF * ZBIO5 JSB ZTCJI DEF ZBI5 CLA SET UP STA ZBF5 FLAGS STA ZBI5 FOR TEST STA ZBTMP ZBS51 STC CH TURN ON ZBS52 STF CH CARD STF INTP AND INTERRUPTS STC 1 * STF 1 * CLC 1 * CLF 1 * NO INTERRUPT JMP *+1,I * SHOULD OCCURR DEF *+1 * HERE JSB *+1,I * DEF *+1 * ZBF5 NOP * ISZ ZBTMP INT. SHOULD BE HERE ISZ ZBTMP CLF INTP TURN I/O SYSTEM OFF LDA ZBI5 DID IT INTERRUPT? SZA JMP *+4 E014 JSB ERMS,I E014 NO INT DEF ZBE14 JMP ZBIO6 ABORT REST OF SECTION LDA ZBTMP CHECK FOR CORRECT INTERRUPT CPA Z.2 ? JMP *+3 E026 JSB ERMS,I E026 INT EXECUTION ERROR DEF ZBE26 ZBS53 CLF CH TURN OFF CH FLAG JMP ZBIO6 GO TO NEXT SECTION * ZBD5 DEF ZBF5-1 ZBD5A DEF ZBF5+1 * ZBE12 ASC 16,E012 INT DURING HOLD OFF INSTR/ ZBE13 ASC 12,E013 SECOND INT OCURRED/ ZBE14 ASC 06,E014 NO INT/ ZBE15 ASC 12,E015 INT RTN ADDR ERROR/ ZBE26 ASC 13,E026 INT EXECUTION ERROR/ * * * * SKP ZBI5 NOP CLF INTP TURN I/O SYSTEM OFF LDA ZBD5 CHECK TO SEE IF ALL CPA ZBF5 INSTRUCTION COMPLETED JMP *+3 YES E012 JSB ERMS,I E012 INT DURING HOLD OFF DEF ZBE12 LDA ZBD5A CHECK RETURN ADDRESS LDB CPTO IF 210X SSB ADD ONE INA CPA ZBI5 JMP ZBI5A E015 JSB ERMS,I E015 INT RTN ADDR ERROR DEF ZBE15 JMP ZBIO6 ZBI5A JSB ZTCJI SET SECOND INT TRAP DEF ZBT5 STF INTP TURN I/O SYSTEM ON JMP ZBI5,I CONTINUE TEST * * ZBT5 NOP CLF INTP TURN I/O SYSTEM OFF E013 JSB ERMS,I E013 SECOND INT OCURRED DEF ZBE13 * * * * * SKP * CLC CH AND CLC 0 * ZBIO6 JSB ZTCJI SET JSB INSTRUCTION DEF ZBI61 ZBS61 STC CH SET CH CONTROL ZBS62 STF CH SET CH FLAG STF INTP TURN ON INTERRUPTS ZBS63 CLC CH CLEAR CH CONTROL NOP GIVE IT A CHANCE NOP CLF INTP TURN INTS OFF ZB60 JSB ZTCJI SET JSB INSTRUCTION DEF ZBI62 ZBS64 CLF CH CLEAR CH FLAG ZBS65 STC CH SET CH CONTROL ZBS66 STF CH SET CH FLAG STF INTP TURN ON INTS CLC INTP CLEAR I/O SYSTEM NOP GIVE IT A CHANCE NOP CLF INTP TURN OFF INTS JMP ZBIO7 * * ZBI61 NOP CLF INTP TURN OFF INTS E016 JSB ERMS,I E016 CLC CH ERROR DEF ZBE16 JMP ZB60 * ZBI62 NOP CLF INTP TURN OFF INTS E017 JSB ERMS,I E017 CLC 0 ERROR DEF ZBE17 JMP ZBIO7 * ZBE16 ASC 9,E016 CLC CH ERROR/ ZBE17 ASC 9,E017 CLC 0 ERROR/ * * * * * SKP * EXTERNAL & INTERNAL PRESET TEST * ZBIO7 LDB ZS812 CHECK TO SUPPRESS JSB SWRT,I ? JMP H025 YES - SKIP PRESET TEST H024 JSB MSGC,I TELL OPERATOR DEF ZBM24 PRESS PRESET * ZBS71 CLF CH CLEAR CH FLAG STF INTP TURN ON INTS JSB ZTCJI SET TRAP CELL JSB INSTRUCTION DEF ZBI70 HLT 24B WAIT FOR OPERATOR CLA,INA SET UP FLAGS FOR TESTS SFS INTP CHECK INTP FLAG CLA NOT SET SO CLEAR FLAG RAL MOVE TO NEXT FLAG CLF INTP TURN OFF ONTPS ZBS72 SFS CH CHECK CHANNEL FLAG INA NOT SET SO FLAG IT RAL MOVE TO NEXT FLAG LIB 0 CHECK I/O BUSS SZB SHOULD BE ZERO INA NOT SO FLAG IT RAL MOVE TO NEXT FLAG STF INTP CHECK CONTROL ON CARD NOP GIVE IT A CHANCE NOP CLF INTP TURN OFF INTPS * * * * * * * * * * * * * * * * * * * * * * * SKP ZB70 SLA,RSS CHECK FOR ERRORS JMP *+3 E022 JSB ERMS,I E022 DID NOT CLEAR CONTROL DEF ZBE22 RAR SLA,RSS JMP *+3 E023 JSB ERMS,I E023 I/O LINES NOT CLEAR DEF ZBE23 RAR SLA,RSS JMP *+3 E020 JSB ERMS,I E020 FLAG NOT SET DEF ZBE20 RAR SLA,RSS JMP *+3 E021 JSB ERMS,I E021 DID NOT DIABLE INTS DEF ZBE21 H025 JSB MSGC,I TELL OPERATOR DEF ZBM25 BASIC I/O IS COMPLETE JMP ZBIO,I RETURN TO CALLER * ZBI70 NOP CONTROL FAILED CLF INTP TURN OFF INTPS INA JMP ZB70 * ZBE20 ASC 17,E020 PRESET(EXT) DID NOT SET FLAG/ ZBE21 ASC 19,E021 PRESET(INT) DID NOT DISABLE INTS/ ZBE22 ASC 20,E022 PRESET(EXT) DID NOT CLEAR CONTROL/ ZBE23 ASC 21,E023 PRESET(EXT) DID NOT CLEAR I-O LINES/ ZBM24 ASC 17,H024 PRESS PRESET (EXT&INT),RUN/ ZBM25 ASC 08,H025 BI-O COMP/ SKP ZBIOD DEF *+1 DEF ZBS21 DEF ZBS22 DEF ZBS23 DEF ZBS24 DEF ZBS25 DEF ZBS26 DEF ZBS27 DEF ZBS31 DEF ZBS32 DEF ZBS33 DEF ZBS41 DEF ZBS42 DEF ZBS51 DEF ZBS52 DEF ZBS53 DEF ZBS61 DEF ZBS62 DEF ZBS63 DEF ZBS64 DEF ZBS65 DEF ZBS66 DEF ZBS71 DEF ZBS72 DEC -1 * ZCEND EQU * * * * * * * * * * * * * * * * * * * * * * * * * * HED BUFFERED ASYNC COMMUNICATION INTERFACE DIAGNOSTIC * * * * ORG 126B DSN OCT 103017 DIAGNOSTIC SERIAL NO. ORG 140B IOIP DEF IOID POINTER TO I-O INSTRUCTIONS TSTP DEF TSTD POINTER TO TEST DEF TABLE HDMP DEF HDMS POINTER TO HEADER MESSAGE STDA OCT 007777 STANDARD TESTS STDB OCT 000000 STANDARD TESTS ORG 150B IOCLR EQU 0 SARI EQU 12B NULL EQU 0 WRD0 EQU 00000B WRD1 EQU 10000B WRD2 EQU 20000B WRD3 EQU 30000B WRD4 EQU 40000B WRD5 EQU 50000B WRD6 EQU 60000B SCFE EQU 1 CFE EQU 2 CEE EQU 4 CCE EQU 10B CBE EQU 20B ENCHM EQU 40B SCFR EQU 1 CFR EQU 2 CER EQU 4 CCR EQU 10B CBR EQU 20B DIAGC EQU 40B PASNS EQU 4 PAR EQU 10B ECHO EQU 20B STB EQU 40B DMA EQU 20B SCA EQU 40B CD EQU 100B CA EQU 200B XMIT EQU 400B CLPE EQU 1 CLBRK EQU 2 CBEF EQU 4 CBF EQU 10B CBH EQU 20B CSPEC EQU 40B SPCHD EQU 400B SCF EQU 1 CF EQU 2 CE EQU 4 CC EQU 10B CB EQU 20B PARR EQU 40B BRK EQU 100B BEF EQU 200B BFF EQU 400B BFHF EQU 1000B TEST EQU 4000B RSPAR EQU 10000B SPCHR EQU 40000B DEVI EQU 40000B SCM EQU 40000B VALDA EQU 40000B B0 EQU 1 B1 EQU 2 B2 EQU 4 B3 EQU 10B B4 EQU 20B B5 EQU 40B B6 EQU 100B B7 EQU 200B SDMAL EQU 2 LOWER SELECT CODE DMA SDMAH EQU 6 UPPER SELECT CODE DMA IRTN DEF *-* BUFFA BSS 1 BUFFB BSS 1 BXMIT DEF XBUF POINTER TO TRANSMIT BUFFER BRCV DEF RBUF POINTER TO RECIEVE BUFFER SKP TRJSB DEF ZTCJI POINTER D1 EQU * SW0 OCT 1 D2 EQU * SW1 OCT 2 .7 OCT 7 SW2 EQU * D4 DEC 4 MD1 DEC -1 MD8 DEC -8 MD38 DEC -38 MD9 DEC -9 MD15 DEC -15 MD16 DEC -16 MD64 DEC -64 MD128 DEC -128 BCNTR BSS 1 MSK3 OCT 3 SKP GUPLO DEF *-* RETURN ADDRESS CLE,ERB LDA B,I GET CHARACTER SEZ,RSS ALF,ALF AND LOHWD ELB JMP GUPLO,I RETURN SPC 3 PUPLO DEF *-* RETURN ADDRESS CLE,ERB AND LOHWD STA PCH LDA B,I SEZ,RSS ALF,ALF AND UPHWD IOR PCH SEZ,RSS ALF,ALF STA B,I ELB JMP PUPLO,I RETURN PCH BSS 1 UPHWD OCT 177400 MASK FOR UPPER HALF WORD LOHWD OCT 000377 MASD FOR LOWER HALF WORD SKP * SWITCH REGISTER BIT 0 HAS * THE MEANING LOOP ON SUB-TEST AND * SWITCH REGISTER BIT 1 MEANS HALT * AT THE END OF THE CURRENT SUB-TEST. * THIS HALT IS 102070 (OCTAL). * THE SUB-TEST LOOP * WILL CAUSE LOOPING ON A SMALL * PROGRAM SEGMENT. SPC 2 SUBT DEF *-* RETURN ADDRESS LDA USSC GET CONFIG INFO SSA,RSS IS SUB-TEST CAPABILITY * ENABLED? JMP SUBC1 CONTINUE - NO LDB SW1 MASK FOR SWITCH 1 JSB SWRT,I CHECK SWITCH 1 - SUB-TEST HALT RSS JMP SUBT1 CONINUE LDA TSTN GET TEST NO. LDB SUBT. GET SUB-TEST NO. HLT 70B HALT SUBT1 LDB SW0 MASK FOR SWITCH 0 JSB SWRT,I CHECK SWITCH 0 - SUB-TEST LOOP JMP SUBT,I RETURN SUBC1 ISZ SUBT JMP SUBT,I RETURN SPC 1 SUBTH DEF *-* RETURN ADDRESS JSB SUBT CHECK SUB-TEST HALT NOP BYPASS LOOP JSB SUBUP UPDATE SUB-TEST NO. JMP SUBTH,I RETURN SPC 1 SUBTT DEF *-* RETURN ADDRESS JSB SUBT CHECK SUB-TEST HALT,LOOP JMP SUBLL LOOP ON THIS SUB-TEST JSB SUBUP UPDATE SUB-TEST NO. JMP SUBTT,I RETURN SPC 1 STSUB DEF *-* RETURN ADDRESS LDA STSUB SAVE LOOP ADDRESS INA STA SUBLP LDA STSUB,I GET SUB-TEST NO. STA SUBT. SAVE STA SUBLN SAVE FOR USE WHEN LOOPING ISZ STSUB UPDATE RETURN JMP STSUB,I RETURN SPC 1 SHUTA DEF *-* RETURN ADDRESS JSB SUBT CHECK SUB-TEST HALT, LOOP JMP SUBLL LOOP JSB SUBUP UPDATE SUB-TEST NO. LDA SHUTA GET LOOP ADDRESS STA SUBLP SAVE LDA SUBT. GET SUB-TST NO. STA SUBLN SAVE FOR FUTURE LOOPING JMP SHUTA,I RETURN SPC 1 SUBLL LDA SUBLN GET SUB-TEST NO. STA SUBT. SAVE JMP SUBLP,I GO LOOP SPC 1 SUBUP DEF *-* RETURN ADDRESS LDA SUBT. GET SUB-TEST NO. INA AND .77 MASK CPA .70 CHECK FOR OCT X70 JMP SUBT3 CONTINUE ISZ SUBT. OK UPDATE SUBT. JMP SUBUP,I RETURN SUBT3 LDA SUBT. GET SUB-TEST NO. AND .300 MASK X00 ADA .100 UPDATE SUB-TEST NO. STA SUBT. SAVE JMP SUBUP,I RETURN .300 OCT 300 .70 OCT 70 .77 OCT 77 SUBLP DEF *-* LOOP ADDRESS SUBLN BSS 1 LOOP SUB-TEST NO. SUBT. BSS 1 SUB-TEST NUMBER .100 OCT 100 SKP ERNO DEF *-* RETURN ADDRESS LDB ERNO,I GET BUFFER POINTER BLS CONVERT TO BYTE ADDRESS INB LDA SUBT. GET SUB-TEEST NO. AND E NO. ALF,ALF RAL,RAL AND LOHWD MASK ADA ASC0 CONVERT TO ASCII NO JSB PUPLO PLACE IN MESSAGE INB LDA SUBT. RAR,RAR RAR AND .7 ADA ASC0 CONVERT TO ASCII JSB PUPLO PLACE IN MESSAGE INB LDA SUBT. AND .7 MASK ADA ASC0 CONVERT TO ASCII NO JSB PUPLO PLACE IN MESSAGE ISZ ERNO UPDATE RETURN JMP ERNO,I RETURN ASC0 OCT 60 ASCII ZERO SKP CMNDD DEF *-* RETURN ADDRESS LDA CMNDD,I GET OPTIONS IN COMMAND FNIO1 OTA SARI GIVE COMMAND ISZ CMNDD UPDATE RETURN ADDRESS LDA D4 WAIT 4 MS JSB TMRR,I JMP CMNDD,I RETURN SPC 2 RSTUS DEF *-* RETURN ADDRESS FNIO2 CLC SARI SELECT STATUS STIO1 LIA SARI READ STATUS JMP RSTUS,I RETURN SPC 2 RDDTA DEF *-* RETURN ADDRESS FNIO6 STC SARI SET CONTROL = DATA IOIN6 LIA SARI INPUT DATA JMP RDDTA,I RETURN SPC 2 MRST DEF *-* RETURN ADDRESS LDA MRSTC GET MASTER RESET COMMAND FNIO0 OTA SARI GIVE COMMAND LDA D2 JSB TMRR,I WAIT 2 MS JMP MRST,I RETURN MRSTC ABS 100000B+WRD5+CLPE+CLBRK+CBF+CBEF+CBH+CSPEC SPC 2 CLF DEF *-* RETURN ADDRESS CNIO1 CLF SARI CLEAR INTERFACE FLAG JMP CLF,I RETURN SPC 2 SFS DEF *-* RETURN ADDRESS CNIO2 SFS SARI SKIP ON FLAG SET JMP SFS,I RETURN - FLAG CLEAR ISZ SFS UPDATE RETURN ADDRESS JMP SFS,I RETURN SPC 2 STC DEF *-* RETURN ADDRESS CNIO3 STC SARI SET INTERFACE CONTROL FF JMP STC,I RETURN SPC 2 CLC DEF *-* RETURN ADDRESS CNIO4 CLC SARI CLEAR INTERFACE CONTROL FF JMP CLC,I RETURN SPC 2 CLK16 DEF *-* RETURN ADDRESS LDA MD16 STA CLKNT CLKC1 LDA CLKON RISING EDGE OF 16 X BAUD RATE CLOCK CLK01 OTA SARI OUTPUT LDA CLKOF FALLING EDGE OF 16 X BAUD RATE CLOCK CLK00 OTA SARI OUTPUT ISZ CLKNT JMP CLKC1 JMP CLK16,I RETURN SPC 1 CLKON ABS WRD2+DIAGC CLKOF ABS WRD2+NULL CLKNT BSS 1 SPC 2 RARI DEF *-* RETURN LDA BRCV INITIALIZE BUFFER POINTER STA BUFFA LDA MD128 INITIALIZE COUNTER STA BCNTR JSB CMND SELECT RECEIVE MODE ABS WRD4 RAC01 JSB RDDTA READ DATA STA BUFFA,I PLACE IN BUFFER ISZ BUFFA UPDATE BUFFER POINTER ISZ BCNTR UPADTE COUNTER JMP RAC01 CONTINUE - MORE CHARACTERS JMP RARI,I RETURN SPC 2 XARI DEF *-* RETURN ADDRESS JSB CMND SELECT TRANSMIT MODE ABS WRD4+XMIT LDA MD128 INITIALIZE COUNTER STA XACNT LDB BXMIT INITIALIZE BUFFER POINTER STB BUFFA XAC01 LDA BUFFA,I GET DATA AND LOHWD MASK STA XAPO1 SAVE JSB CMND OUTPUT CHARACTER XAPO1 BSS 1 CHARACTER ISZ BUFFA UPDATE BUFFER POINTER ISZ XACNT UPDATE COUNTER JMP XAC01 CONTINUE - MORE CHARACTERS JMP XARI,I RETURN SPC 1 XACNT BSS 1 SPC 2 SDIN DEF *-* RETURN ADDRESS LDA SDIN,I GET PARAMETERS STA SDTYP SAVE LDA MD128 INITIALIZE COUNTER STA BCNTR LDA BRCV INITIALIZE BUFFER POINTER STA BUFFA SDC03 LDA SDTYP LDB MD9 AND MSK3 BITS / CHAR CMA,INA ADB A LDA SDTYP AND SDP PARITY BIT SZA,RSS INB LDA SDTYP AND SDST NO OF STOP BITS SZA,RSS INB LDA SDTYP GET TYPE AND SDSTX CPA SDST INB SPECIAL FOR 5 BIT 2 STOPS STB SDCNT SAVE NO BITS / CHAR STB SDDTC CLA STA BUFFA,I PLACE IN BUFFER SDC01 JSB CLK16 SUPPLY CLOCKS TO INTERFACE JSB RSTUS READ STATUS AND SDBA ISOLATE SIGNAL BA LDB BUFFA,I GET PARTIAL DATA RBR ADD THIS BIT TO DATA SZA INB STB BUFFA,I PLACE DATA IN BUFFER ISZ SDCNT UPDATE BIT COUNTER JMP SDC01 LDA SDTYP GET TYPE AND SDSTX CPA SDST JMP SDC06 CONTINUE - 5 BIT AND 2 STOPS SDC05 LDA SDDTC INA SDC02 RBL PREPARE CHARACTER INA,SZA JMP SDC02 STB BUFFA,I PLACE ASSEMBLED CHARACTER IN BUFFER ISZ BUFFA UPDATE BUFFER POINTER ISZ BCNTR UPDATE COUNTER JMP SDC03 CONTINUE - MORE CHARACTERS JSB CLK16 SUPPLY 16 CLOCKS TO INTFC JMP SDIN,I RETURN SDC06 LDB MD8 STB SDCNT SDC04 JSB CMND ABS WRD2+DIAGC JSB CMND ABS WRD2+NULL ISZ SDCNT JMP SDC04 JSB RSTUS GET BA AND SDBA LDB BUFFA,I RBR SZA INB