      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
                                                                                                                                                                                                                                                  