SKP * CARD FLAG CHECK * ZBIO2 EQU * ZBS21 STF CH ZBS22 CLF CH ZBS23 SFC CH RSS JMP *+3 E005 JSB ERMS,I E005 CLF CH-SFC CH ERROR DEF ZBE05 ZBS24 SFS CH JMP *+3 E006 JSB ERMS,I E006 CLF CH-SFS CH ERROR DEF ZBE06 ZBS25 STF CH ZBS26 SFC CH JMP *+3 E007 JSB ERMS,I E007 STF CH-SFC CH ERROR DEF ZBE07 ZBS27 SFS CH RSS JMP ZBIO3 E010 JSB ERMS,I E010 STF CH-SFS CH ERROR DEF ZBE10 JMP ZBIO3 * ZBE05 ASC 13,E005 CLF CH-SFC CH ERROR/ ZBE06 ASC 13,E006 CLF CH-SFS CH ERROR/ ZBE07 ASC 13,E007 STF CH-SFC CH ERROR/ ZBE10 ASC 13,E010 STF CH-SFS CH ERROR/ * * * * * ññ * * * * * * * *ñ * * *ñ * * * * * SKP * INTERRUPT CONTROL * *ñ ZBIO3 JSB ZTCJI SET JSB INSTRUCTION DEF ZB3E ZBS31 STF CH SET THE FLAG ZBS32 STC CH SET THE CONTROL STF INTP TURN I/O SYSTEM ON THEN CLF INTP TURN I/O SYSTEM OFF NOP GIVE IT A CHANCE TI INTERRUPT NOP ZBS33 CLF CH RESET CH FLAG JMP ZBIO4 * ZBE04 ASC 16,E004 CLF 0 DID NOT INHIBIT INT/ * ZB3E NOP CLF INTP TURN OFF INTS E004 JSB ERMS,I E004 DEF ZBE04 * * * * ññ * * * * * * * * * * * * * * * * * * * * SKP * SELECT CODE SCREEN TEST * ZBIO4 LDB Z.10 START WITH LOWEST ADDRESS ZB40 LDA USSC GET SELECT CODE AND Z.77 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 BASE PAGE LINKS AND CONSTENTS ORG 126B OCT 104000 DSN ORG 140B IOIP DEF IOID POINTER TO I/O INSTRUCTIONS TSTP DEF TSTD POINTER TO TESTS HDMP DEF HDMD POINTER TO HEADER MESSAGE STDA OCT 3777 STDB OCT 0 * ORG 150B HDMD EQU * ASC 11,START KDT DIAGNOSTIC/ * IOID EQU * DEF T.SC1 DEF TOSC1 DEF TOSC2 DEF TOSC3 DEF TOSC4 DEF TISC1 DEF TISC2 DEF TISC3 DEF TISC4 DEF TISC5 DEF TISC6 DEF OSCS1 DEF OSCEX DEC -1 * TSTD EQU * DEF TST00 DEF TST01 DEF TST02 DEF TST03 DEF TST04 DEF TST05 DEF TST06 DEF TST07 DEF TST10 DEF TST11 DEF TST12 DEC -1 SKP B77 OCT 77 KDT EQU 10B SW2 OCT 4 CRLF OCT 6412 .5 OCT 5 .M4 OCT -4 .2 OCT 2 .40 OCT 40 .177 OCT 177 .377 OCT 377 D500 DEC 500 D2000 DEC 2000 .M1 DEC -1 .M10 OCT -10 DM17 DEC -17 DM25 DEC -25 DM28 DEC -28 DM35 DEC -35 CUDN OCT 13 CURT OCT 30 CULT OCT 31 CUUP OCT 32 CUCR NOP CUDR NOP CNTR NOP TMP NOP S128 OCT 10400 HED COMMON SUBROUTINES * OUTPUT TO KDT * *ñ A2KDT NOP STA SAVE KEEP THE CHARACTER SSA,RSS IS IT A COMMAND? JMP *+4 NO-OUTPUT A REG T.SC1 OTA KDT YES-DO IT OTEX LDA SAVE RETRIEVE CHARACTER JMP A2KDT,I AND RETURN ALF,ALF UPPER CHR. FIRST AND .177 MASK OFF UNWANTED BITS SZA IS IT A CHARACTER JSB A1KDT YES - TRANSFER IT LDA SAVE DO OTHER HALF AND .177 MASK OFF UNWANTED BITS SZA IS IT A CHARACTER JSB A1KDT YES - TRANSFER IT JMP OTEX YES RETURN TO CALLER * SAVE NOP * *ñ * *ñ A1KDT NOP TOSC1 OTA KDT GIVE IT TO TERMINAL TOSC2 STC KDT,C * CLA * TOSC3 SFC KDT *WAIT FOR JMP *+5 * INA,SZA * TRANSFERED JMP *-3 * E034 JSB ERMS,I REPORT TIME OUT DEF FTOM POINTER TO MESSAGE TOSC4 CLC KDT,C TURN CARD OFF JMP A1KDT,I * * FTOM ASC 10,E034 FLAG TIME OUT/ * *ñ * PUT JSB IN TRAP CELL * TCJI NOP LDA USSC GET SELECT CODE AND B77 LDB JSBI GET JSB INSTRUCTION STB A,I PUT IT IN TRAP CELL LDA TCJI,I GET RETURN LOCATION STA 3B SAVE IT FOR JSB INSTRUCTION ISZ TCJI ADJUST RETURN JMP TCJI,I RETURN * JSBI JSB 3B,I * SKP * OUTPUT DATA PATTERN TABLE * * IF CHR. IS POS. OUTPUT BOTH CHARACTERS * IF CHR. IS NEG. USE UPPER AS CHARACTER REP. COUNT * ññ OPDPT NOP STB TMP SAVE POINTER AS ADDRESS CCB SET FOR 2 CHARACTERS LDA TMP,I GET CHRS. FROM TABLE CPA .M1 IS IT THE TERMINATOR JMP OPDPT,I YES-RETURN TO CALLER SSA,RSS NO-IS IT A MULTY CHR. OUTPUT JMP *+6 NO-SKIP SETUP IOR .377 * ALF,ALF * STA B * SET UP COUNT LDA TMP,I * AND .177 * JSB A2KDT INB,SZB OUTPUT AGAIN? JMP *-2 YES ISZ TMP NO-MOVE TO NEXT CHR. JMP OPDPT+2 DO IT * * KDT2A NOP TISC1 OTA KDT TISC2 STC KDT,C TISC3 SFC KDT JMP TISC4 LDB SW2 CHECK FOR ABORT JSB SWRT,I RSS JMP TISC3 LDA .5 WAIT FOR JSB TMRR,I SWITCH BOUNCE LDB SW2 JSB SWRT,I JMP *-2 JMP TISC5-1 TISC4 LIA KDT AND .177 MASK OFF PARITY BIT ISZ KDT2A ADJUST RETURN FOR DATA LDB OCMD RESTORE OUTPUT COMMAND TISC5 OTB KDT TISC6 CLC KDT,C TURN OFF CARD JMP KDT2A,I * * ICMD OCT 140000 INPUT ONLY COMMAND SKP * PREPAIR TERMINAL WITH HOME UP AND EOF * *ñ PREP NOP LDA OCMD OUTPUT COMMAND JSB A2KDT LDB HUEOF DO HOME-UP & EOF JSB OPDPT JMP PREP,I * OCMD OCT 120000 PRINT ONLY COMMAND * HUEOF DEF *+1 OCT 35 HOME-UP OCT 176037 4*EEOF OCT 177777 TERMINATOR * * WAIT 2 SECONDS THEN * CHECK SW. REG. BIT 1 FOR PAUSE * PAUSE NOP LDA D2000 PAUSE FOR 2 SECONDS JSB TMRR,I LDB SW1 SWITCH 1 UP? JSB SWRT,I