NON20 OCT -20 
NEG31 DEC -31 
NEG37 OCT -37 
NON40 OCT -40 
NO140 OCT -140
NO177 OCT -200
NO9   OCT 176777
      HED MESSAGE SECTION 
E050  ASC 5,E050 DJP/ 
E051  ASC 5,E051 DJS/ 
E052  ASC 5,E052 SJP/ 
E053  ASC 5,E053 SJS/ 
E054  ASC 5,E054 UJP/ 
E055  ASC 5,E055 UJS/ 
E056  ASC 5,E056 JRS/ 
E057  ASC 5,E057 JRS/ 
E060  ASC 5,E060 SSM/ 
E061  ASC 5,E061 DJS/ 
E062  ASC 5,E062 SJS/ 
E063  ASC 5,E063 UJS/ 
E064  ASC 5,E064 RSA/ 
E065  ASC 5,E065 RSB/ 
E066  ASC 5,E066 LFA/ 
E067  ASC 5,E067 LFB/ 
E316  ASC 8,E316 VR MAP 12/ 
E301  ASC 8,E301 VR MAP 15/ 
E302  ASC 8,E302 VR MAP 00/ 
E303  ASC 8,E303 VR MAP 11/ 
E325  ASC 7,E325 M-E BUS/ 
      HED EXECUTIVE CONTROL 
      ORG 2000B 
      SPC 2 
ZSTEX CLC INTP,C    TURN I/O SYSTEM OFF 
      JSB MSGC,I    DO CRLF 
      DEF ZRTLF 
      CLE           CONVERT DSN AND ATTACH TO 
      LDA DSNL        HEADER MESSAGE
      LDB HDMP1 
      JSB O2AS,I
      LDA HDMP      GET INTRODUCTORY MESSAGE
      STA *+2 
      JSB MSGC,I    OUT PUT IT
      NOP 
      CLA           CLEAR PASS
      STA ZEOLC       COUNT 
      LDB ZSW9      CHECK FOR USER SELECTION REQ
      JSB SWRT,I
      JMP ZUSR      IT'S USERS CHOICE 
ZNUSR LDA STDA      GET STANDARD TEST RUN 
      LDB STDB      * 
      JMP ZEXC
* 
ZUSR  LIA SW        CLEAR S-REG BIT 9 
      AND NO9 
      OTA SW
      LDA ZSINA     RETRIEVE PREVIOUS RUN 
      LDB ZSINB 
      HLT 75B       WAIT FOR USER INPUT 
      NOP 
      NOP 
      NOP 
ZEXC  STA ZUINA     SAVE
      STB ZUINB       USER
      STA ZSINA         INPUT 
      STB ZSINB           PROGRAM 
      LDB ZSW9      CHECK IF SW9 IS DOWN
      JSB SWRT,I
      JMP ZUSR      NO GO AND WAIT
      CCA           SET TEST NUMBER 
      STA TSTN      =-1 
      CLA 
      STA ZTSTA     CLEAR TEST RUN FLAG 
* 
* 
* 
* 
* 
* 
* 
* 
      SKP 
ZEXCL LDA ZUINA     RESTORE A REG.
      LDB ZUINB     RESTORE B REG.
      ERA,RAL       ROTATE
      ERB             FIRST 
      ERA               TEST BIT
      STA ZUINA     SAVE POSITIONS
      STB ZUINB 
      ISZ TSTN      MOVE TEST UP ONE
      NOP 
ZXCL1 LDA TSTN
      ADA TSTP      GET IT'S
      LDA A,I         ADDRESS 
      CPA Z.M1      IS IT END OF LIST 
      JMP ZEOL      YES 
      LDB ZUINB 
      SSB,RSS       SHOULD IT BE RUN? 
      JMP ZEXCL     NO
      STA ZTSTA     YES - SAVE TEST ADDRESS 
      JSB ZITCH     INITIALIZE TRAP CELL HALTS
      JSB ZTSTA,I   GO DO TEST
ZEXRT LDA TSTN      DISPLAY TEST NUMBER IF HALTED 
      LDB ZSW15     CHECK FOR HALT AT END OF TEST 
      JSB SWRT,I
      HLT 76B       YES WAIT FOR OPERATOR 
      LDB ZSW9      CHECK FOR ABORT 
      JSB SWRT,I
      JMP ZUSR      YES 
      LDB ZSW13     CHECK FOR LOOP ON ROUTINE 
      JSB SWRT,I
      JMP ZXCL1     YES - LOOP
      JMP ZEXCL     CONTINUE
* 
ZEOL  LDA ZTSTA     CHECK IF ANY TESTS WERE RUN 
      SZA,RSS       ? 
      JMP ZNUSR     NO  SO PICK UP STANDARD RUN 
      LDA ZEOLC     UP DATE PASS COUNT
      INA 
      STA ZEOLC 
      CCE 
      LDB ZPSCA     GET PASS COUNT
      ADB Z.2         ADDRESS 
      JSB O2AS,I    CONVERT IT
      JSB MSGC,I    CALL PRINT ROUTINE
ZPSCA DEF ZPSC
      LDB ZSW12     CHECK FOR LOOP ON DIAG. 
      JSB SWRT,I
      JMP *+3       YES 
      LDA ZEOLC 
      HLT 77B       NO WAIT AND DISPLAY PASS COUNT
      LDA ZSINA     RESTORE ORIGINAL
      LDB ZSINB       PROGRAM 
      JMP ZEXC      DO IT ALL AGAIN 
* 
      SKP 
*               MESSAGE OUTPUT WITHOUT HALT 
* 
ZMSGC NOP           ENTRY 
      JSB ZMSG      OUTPUT MESSAGE
      OCT 2000      SWITCH 10 CHECK 
      JMP ZMSGC,I   RETURN TO CALLER
* 
*               MESSAGE OUTPUT WITH HALT
* 
ZMSGH NOP           ENTRY 
      JSB ZMSG      OUTPUT MESSAGE
      OCT 2000      SWITCH 10 CHECK 
      LDA ZHLT      GET HALT CODE 
      STA *+2       PUT IT IN PLACE 
      LDA ZSAVA     RESTORE A REGISTER
      NOP           HALT FOR DISPLAY
      JMP ZMSGH,I   RETURN TO CALLER
* 
*               ERROR MESSAGE WITH HALT 
* 
ZERMS NOP           ENTRY 
      JSB ZMSG      OUTPUT MESSAGE
      OCT 4000      SWITCH 11 CHECK 
      CLA 
      LDB ZSW14     CHECK SWR BIT 14 TO SUPPRESS
      JSB SWRT,I    HALT
      STA *+3       PUT  HALT IN PLACE
      LDA ZSAVA     RESTORE A & B 
      LDB ZSAVB 
ZHLT  NOP           WAIT FOR OPERATOR 
      JMP ZERMS,I   RETURN TO CALLER
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
      SKP 
*               OUTPUT MESSAGE
* 
ZMSG  NOP 
      STA ZSAVA     SAVE A AND B REGISTERS
      STB ZSAVB 
      LDB ZMSG,I    GET SWITCH REGISTER BIT 
      LDA ZMSG
      ADA Z.M2      DECREMENT RETURN ADDRESS
      STA ZMSG
      JSB SWRT,I    CHECK TO SUPPRESS MESSAGE 
      JMP ZMSG0     YES 
      LDA ZMSG,I    CHECK IF ERROR
      LDA A,I 
      LDA A,I       IF SO 
      ALF,ALF 
      AND Z.177 
      CPA ZA.E
      JSB ZCFTN     CHECK TO OUTPUT TEST NUMBER 
      LDA ZMSG,I    NO RETRIEVE FORMAT
      LDB A,I         ADDRESS 
      CLA,CLE 
      JSB FMTR,I
ZMSG0 LDA ZMSG,I    CONVERT HALT CODE 
      LDB A,I         FROM ASCII STRING 
      CCA,CCE 
      JSB AS2N,I
      STA ZN2AO     SAVE RESULT 
      AND Z.300     DECODE
      LDB ZH2         HALT CODE 
      CPA Z.100 
      LDB ZH6 6
      CPA Z.200 
      LDB ZH3 
      CPA Z.300 
      LDB ZH7 
      LDA ZN2AO     GET HALT NUMBER 
      AND Z.77
      IOR B 
      STA ZHLT      SAVE IT 
      ISZ ZMSG,I    ADJUST RETURN POINTERS
      ISZ ZMSG
      ISZ ZMSG
      ISZ ZMSG
      LDA ZSAVA     RESTORE A AND B REGISTERS 
      LDB ZSAVB 
      JMP ZMSG,I
* 
* 
* 
* 
* 
* 
      SKP 
ZCFTN NOP 
      LDA TSTN      GET TEST NUMBER 
      CPA ZCFTT     IS IT THE SAME ONE? 
      JMP ZCFTN,I   YES SKIP OUTPUT 
      STA ZCFTT     NO - THEN UPDATE IT 
      JSB ZN2AO     CONVERT IT
      STA ZTSTN     PUT IT IN STRING
      CLA           DO A CRLF 
      JSB SLOP,I
      CLA,CLE       INDICATE START OF FORMAT
      LDB ZTSTF 
      JSB FMTR,I
      JMP ZCFTN,I   RETURN
* 
* 
* 
* 
ZSAVA NOP 
ZSAVB NOP 
ZEOLC NOP 
ZTSTA NOP 
ZSINA NOP 
ZSINB NOP 
ZUINA NOP 
ZUINB NOP 
ZBTMP NOP 
Z.2   OCT 2 
Z.7   OCT 7 
Z.10  OCT 10
Z.60  OCT 60
Z.77  OCT 77
Z.177 OCT 177 
Z.M1  DEC -1
Z.M2  DEC -2
ZIOM  OCT 177700
ZSW15 OCT 100000
ZSW14 OCT 40000 
ZSW13 OCT 20000 
ZSW12 OCT 10000 
ZS812 OCT 010400
ZSW9  OCT 1000
Z.100 OCT 100 
Z.200 OCT 200 
Z.300 OCT 300 
ZH2   OCT 102000
ZH6   OCT 106000
ZH3   OCT 103000
ZH7   OCT 107000
ZCFTT DEC -1
ZTSTF DEF *+1 
      ASC 3,TEST
ZTSTN ASC 2,XX//
ZRTLF ASC 1,//
ZPSC  ASC 6,PASS XXXXXX/
ZA.E  OCT 105 
      HED GENERAL ROUTINES
* 
* 
ZN2AO NOP 
      STA ZIOAD     SAVE NUMBER 
      AND Z.7       CONVERT FIRST 
      IOR Z.60        NUMBER
      STA B         SAVE IT 
      LDA ZIOAD     GET 
      RAR,RAR         SECOND
      RAR               NUMBER
      AND Z.7       CONVERT 
      IOR Z.60        IT
      ALF,ALF       MOVE TO UPPER HALF
      IOR B         ADD LOWER 
      JMP ZN2AO,I   AND RETURN
* 
* 
* 
*               SWITCH REGISTER CHECK 
* 
ZSWRT NOP 
      STA ZN2AO     SAVE A REGISTER 
      LIA SW        GET SWITCH REG. 
      AND B         MASK OUT BIT
      SZA,RSS       IS IT UP? 
      ISZ ZSWRT     NO
      LDA ZN2AO     RESTORE A REGISTER
      LIB SW        LET B = SWITCH REGISTER 
      JMP ZSWRT,I   RETURN TO CALLER
* 
* 
* 
*               INITIALIZE TRAP CELL HALTS
* 
ZITCH NOP 
      LDA ZTSH      GET STARTING TRAP CELL HALT 
      LDB Z.2       GET FIRST TRAP CELL LOCATION
ZTSHL STA B,I       PUT IT IN PLACE 
      CPB Z.77      AM I FINISHED 
      JMP ZITCH,I   YES 
      INB             NEXT ADDRESS
      JMP ZTSHL 
* 
ZTSH  OCT 106077
* 
* 
* 
      SKP 
*               PUT JSB INSTRUCTION IN TRAP CELL
* 
ZTCJI NOP 
      LDB ZJSBI     GET INSTRUCTION 
      STB ZIOSC,I   PUT IT IN TRAP CELL 
      LDA ZTCJI,I   GET LOCATION
      STA 3B        SAVE IT FOR JSB INSTRUCTION 
      ISZ ZTCJI     ADJUST RETURN 
      JMP ZTCJI,I   RETURN TO CALLER
* 
ZJSBI JSB 3B,I      JSB INSTRUCTION 
* 
* 
*               INITIALIZE SELECT CODE I/O INSTRUCTIONS 
* 
ZISC  NOP 
      STA ZIOSC     SAVE SELECT CODE
      STB ZIOAD     SAVE TABLE ADDRESS
ZIOL  LDB ZIOAD,I   GET ADDRESS OF LOCATION 
      CPB Z.M1      IS IT THE TERMINATOR
      JMP ZISC,I    YES RETURN TO CALLER
      LDA B,I       NO - GET CONTENTS 
      AND ZIOM      MASK OFF OLD SELECT CODE
      IOR ZIOSC     ADD IN NEW SELECT CODE
      STA B,I       RESTORE  IT 
      ISZ ZIOAD     MOVE TO NEXT ADDRESS
      JMP ZIOL      DO IT 
* 
ZIOSC NOP 
ZIOAD NOP 
* 
* 
* 
* 
      SKP 
*               CONFIGURATION SECTION 
* 
ZCONF CLC INTP,C    TURN I/O SYSTEM OFF 
      LIA SW        GET SELECT CODE AND OPTIONS 
      STA USSC      SAVE THEM 
      AND Z.77      ELIMINATE OPTIONS 
      LDB A 
      CMB,INB       CHECK THAT SC > 7 
      ADB Z.7 
      SSB           ? 
      JMP *+3       OK GO ON
      HLT 73B       NO
      JMP ZCONF     TRY AGAIN 
      LDB IOIP      INITIALIZE TEST I/O 
      JSB ZISC        INSTRUCTIONS
      CLA           CLEAR S-REG 
      OTA SW
      HLT 74B       ALLOW OPERATOR TO CHANGE SWITCH 
      JMP ZSTEX     GO TO EXEC CONTROL SECTION
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
      HED BASIC I/O TESTS 
CH    EQU 10B 
* *
TST24 EQU * 
      NOP 
      LDA USSC      GET CELL LOCATION 
      AND Z.77
      JSB ZBIO      DO BASIC I/O
      JMP TST24,I 
* *
ZBIO  NOP 
      CLC INTP,C    TURN OFF ALL I/O
      LDB ZBIOD     INITIALIZE BASIC I/O
      JSB ZISC        INSTRUCTIONS
* 
*               INTERRUPT FLAG CHECK
* 
ZBIO1 STF INTP
      CLF INTP
      SFC INTP
      RSS 
      JMP *+3 
E000  JSB ERMS,I    E000 CLF 0-SFC 0 ERROR
      DEF ZBE00 
      SFS INTP
      JMP *+3 
E001  JSB ERMS,I    E001 CLF 0-SFS 0 ERROR
      DEF ZBE01 
      STF INTP
      SFC INTP
      JMP *+4 
      CLF INTP      TURN OFF INTS 
E002  JSB ERMS,I    E002 STF 0-SFC 0 ERROR
      DEF ZBE02 
      SFS INTP
      JMP *+3 
      CLF INTP      TURN OFF INTERRUPTS 
      JMP ZBIO2 
      CLF INTP      TURN OFF INTS 
E003  JSB ERMS,I    E003 STF 0-SFS 0 ERROR
      DEF ZBE03 
      JMP ZBIO2 
* 
ZBE00 ASC 12,E000 CLF 0-SFC 0 ERROR/
ZBE01 ASC 12,E001 CLF 0-SFS 0 ERROR/
ZBE02 ASC 12,E002 STF 0-SFC 0 ERROR/
ZBE03 ASC 12,E003 STF 0-SFS 0 ERROR/
* 
* 
      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
                                                                                