ASMB,A,B,L,C
      HED PAPER TAPE READER PUNCH DIAGNOSTIC
      ORG 0      DSN=146200   JUNE 2, 1977   REV.1725 
      SUP 
*     GENERAL OPERATING PROCEDURE 
* 
*         A. LOAD DIAGNOSTIC CONFIGURATOR AND SET IT UP.
*         B. LOAD DIAGNOSTIC MAIN PROGRAM 
*         C. LOAD ADDRESS 100B. 
*         D. LOAD SWITCH REG. WITH SELECT CODE AND OPTIONS
*         E. PRESS RUN AND WAIT FOR HALT 107074.
*         F. LOAD SWITCH REGISTER 
*                   IF SET =: 
*                   15 = HALT AT END OF EACH TEST 
*                   14 = SUPRESS ERROR HALTS
*                   13 = LOOP ON LAST TEST
*                   12 = LOOP ON DIAGNOSTIC 
*                        (SUPPRESS ALL OPERATOR INTERVENTION) 
*                   11 = SUPRESS ERROR MESSAGES 
*                   10 = SUPRESS NON-ERROR MESSAGES 
*                    9 = GO TO USER CONTROL SECTION 
*                        AT END OF PRESENT TEST 
*                    8= SUPPRESS OPERATOR INTERVENTION TESTS
*                    7
*                      = DIAGNOSTIC OPTIONS 
*                    0
*         NOTE: STANDARD RUN SHOULD BE WITH SW. REG. = 0
*               USER CONTROL WILL ASK FOR A 32 BIT WORD.
*               EACH BIT WILL = 1 TEST
* 
*         G. PRESS RUN. 
*         H. RESTART - LOAD ADDRESS 2000B 
*         I. RECONFIGURE IF TESTING I/O INTERFACE - LOAD ADDRESS 100B 
* 
*         GENERAL COMPUTER HALTS
* 
*         1020XX    E OR H  000 TO 067
*         1060XX    E OR H  100 TO 167
*         1030XX    E OR H  200 TO 267
*         1070XX    E OR H  300 TO 367
* 
*         CONTROL PROGRAM HALT MESSAGES 
* 
*         102077    END OF DIAG (A = PASS COUNT)
*         102076    END OF TEST (A = TEST #)
*         102075    USER SELECTION REQUEST
*         102074    SELECT CODE INPUT COMPLETE
*         102073    USER SELECT CODE ERROR
*         102072    RESERVED
*         102071    RESERVED
*         102070    RESERVED
* 
*         106077    TRAP CELL HALT
* 
* 
* 
      HED PROGRAM ORGANIZATION CHART
*         ******************************************* 
*         *         CONFIGURATOR            100B    * 
*         *            LINKAGE TABLE                * 
*         ******************************************* 
*         *         EXECUTIVE               130B    * 
*         *         LINKAGE                         * 
*         ******************************************* 
*         *         CONSTANTS               150B    * 
*         *            AND                          * 
*         *         STORAGE                         * 
*         ******************************************* 
*         *                                2000B    * 
*         *         EXECUTIVE CONTROL               * 
*         *                                         * 
*         ******************************************* 
*         *         IF USED                         * 
*         *         BASIC I/O TESTS (TEST 00)       * 
*         *                                ZCEND    * 
*         ******************************************* 
*         *         TABLE OF TEST POINTERS          * 
*         *         TABLE OF I/O INSTR POINTERS     * 
*         ******************************************* 
*         *                                         * 
*         *                                         * 
*         *                                         * 
*         *                                         * 
*         *                                         * 
*         *         MAIN DIAGNOSTICS (1-31)         * 
*         *                                         * 
*         *                                         * 
*         *                                         * 
*         *                                         * 
*         *                                         * 
*         ******************************************* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
      HED CONFIGURATOR LINKAGE TABLE
A     EQU 0         A REGISTER REFERENCE
B     EQU 1         B REGISTER REFERENCE
SW    EQU 1         SWITCH REGISTER REFERENCE 
INTP  EQU 0         INTERRUPT CHANNEL REFERENCE 
* 
* 
      ORG 100B
* 
      JMP SETUP     CHECK FOR PROPER CONFIGURATION
FAIN  BSS 1         FAST INPUT (PHOTO READER) 
SLOP  BSS 1         SLOW OUTPUT (LIST)
FAOP  BSS 1         FAST OUTPUT (DUMP OR PUNCH) 
SLIN  BSS 1         SLOW INPUT (KEYBOARD) 
FWAM  DEF FWAA      FIRST WORD OF AVBL. MEMORY
LWAM  BSS 1         LAST WORD OF AVBL. MEMORY 
      BSS 1         NOT USED (MAG TAPE) 
OTMC  BSS 1         1 MILL SEC TIME OUT COUNT 
      BSS 4         SELECT CODES FOR I/O
CPTO  BSS 1         COMPUTER TYPE/OPTIONS 
USSC  BSS 1         USER CARD TYPE AND SELECT CODE
MEMO  BSS 1         MEMORY SIZE AND TYPE
ISWR  BSS 1         INTERNAL SWITCH REGISTER
TMRR  BSS 1         1 MILL SEC TIMER
SWRC  BSS 1         CONFIGURATOR SWITCH CK PTR
I2AS  BSS 1         INTEGER TO ASCII CONVERSION 
O2AS  BSS 1         OCTAL TO ASCII CONVERSION 
AS2N  BSS 1         ASCII CONVERSION
DSNL  OCT 146200    DIAGNOSTIC SERIAL NUMBER
FMTR  BSS 1         FORMATTER 
* 
* 
*         CONTROL LINKAGE AND DATA REFERENCES 
* 
CFIG  DEF ZCONF     CONFIGURATION SECTION 
MSGC  DEF ZMSGC     MESSAGE WITH NO HALT
MSGH  DEF ZMSGH     MESSAGE WITH HALT 
ERMS  DEF ZERMS     ERROR MESSAGE 
SWRT  DEF ZSWRT     SWITCH REGISTER CHECK ROUTINE 
TSTN  OCT 0         CURRENT TEST NUMBER 
EXRT  DEF ZEXRT     RETURN TO CONTROL PROGRAM 
      NOP           RESERVED
* 
      HED POINTERS AND TABLES 
* 
* 
*     BASE PAGE POINTERS AND TABLES 
* 
* 
IOIP  DEF IODP      POINTER TO I/O INST TABLE 
TSTP  DEF TSTD      POINTER TO TEST # TABLE 
STDA  OCT 177       POINTER TO STANDARD TESTS 
STDB  OCT 0         DEFAULT TEST
HDMP  DEF HDMS      POINTER TO HEADER MESSAGE 
* 
* 
* 
HDMS  EQU * 
      OCT 6412
      ASC 19,PAPER TAPE READER AND PUNCH DIAGNOSTIC 
      ASC 6, DSN XXXXXX/
* 
* 
* 
*         PUNCH INSTRUCTION POINTER TABLE 
      SPC 1 
IODP  DEF PUOTB 
      DEF PUSTC 
      DEF PUSFS 
      DEF TTYCW 
      DEF PULIB 
      DEF PUCLC 
      DEF T5PSC 
      DEF INTPU 
      DEF PUMTB 
      DEF T5PI1 
      DEF T5PI2 
      DEF PIOA1 
      DEF PIOA2 
      DEF PIOA3 
      DEF PIOA4 
      DEF PIOA5 
      DEF PIOA6 
      DEF PIOA7 
      DEF PIOA8 
      DEC -1
      SPC 1 
*         TEST SEQUENCE POINTER TABLE 
      SPC 1 
TSTD  DEF TST.0 
      DEF TST01 
      DEF TST02 
      DEF TST03 
      DEF TST04 
      DEF TST05 
      DEF TST06 
      DEF TST07 
      DEF TST10 
      DEF TST11 
      DEF TST12 
      DEF TST13 
      DEF TST14 
      DEC -1
      SPC 4 
      SPC 1 
*         READER INSTRUCTION POINTER TABLE
      SPC 1 
IODR  DEF RDSTC 
      DEF RDSFS 
      DEF RDLIA 
      DEF RDRLA 
      DEF T5RSC 
      DEF T5RDR 
      DEF RDRSC 
      DEF RDVR1 
      DEF RDVR2 
      DEF RIOA1 
      DEF RIOA2 
      DEF RIOA3 
      DEF RSRSC 
      DEC -1
* 
* 
* 
* 
* 
      SPC 1 
*         LINKS 
      SPC 1 
CONF  DEF CONFG 
SO.SO DEF PINTR 
RDLNK DEF RDDVR 
BIT05 OCT 40
PULNK OCT 0 
RRLNK OCT 0 
X.CFG DEF IODR
XZISC DEF ZISC
XSTEX DEF ZSTEX 
.TST0 DEF TST00 
* 
* 
* 
      HED COMMON SUBROUTINES
* 
SYNC  NOP 
      LDA ND100     INITIALIZE
      STA SNCTR         XTHRU 100 
HRSYN JSB READ      RETURN W. 1. BYTE READ
      SZA,RSS       LEADER GONE?
      JMP *+3       NO - DO ANXTHRU 
      STA FIBYT     STORE FIRST BYTE AWAY 
      JMP SYNC,I    YES, EXIT 
      ISZ SNCTR     TOO MANY TIMES? 
      JMP HRSYN     NO, TRY AGAIN 
      JSB ERMS,I    YES, DIE
      DEF SYTOM         TELL OPPERATOR SYNC XTHRU 
      JMP SYNC+1    DO AGAIN
* 
ND100 DEC -1000 
SNCTR OCT 0 
FIBYT OCT 0 
      SPC 1 
* 
      SPC 1 
LEADR NOP           OUTPUT ALL ZEROS LEADER 
      LDB ND060     INITIALIZE
      STB SPAD2          60 COUNTER 
      CLB           OUTPUT A 60 
      JSB PUDVR          ZERO LEADER
      ISZ SPAD2 
      JMP *-2 
      CMB           OUTPUT AN ALL 
      JSB PUDVR          ONES SYNC CHARACTER
      JMP LEADR,I   EXIT
* 
ND060 DEC -60 
SPAD2 OCT 0 
D22   DEC 22
* 
* 
* 
* 
* 
      SKP 
* 
      SPC 1 
PUDVR NOP           PUNCH ROUTINE (SIO) 
      STB SPAD3     SAVE (BREG) 
      LDA USSC      CHECK IF TAPE LOOP MUST BE
      RAL             PUNCHED ON A TTY. 
      SSA 
      JMP TTYCW-3   YES, OMIT PUNCH STATUS CHECK
PULIB LIB PUNCH     CHECK PUNCH 
      SZB                STATUS 
      JSB LTSRP 
      LDB PUTMC     INITIALIZE
      STB SPAD4          XTHRU COUNTER
      LDB PUTMC+1 
TTYCW OTB PUNCH     PUT TTY INTO OUTPUT MODE
      LDB SPAD3     REGAIN
PUOTB OTB PUNCH          DATA & OUTPUT
PUSTC STC PUNCH,C   HIT THE PUNCH 
PUSFS SFS PUNCH     READY TO
      JMP *+3            RESUME?
PUCLC CLC PUNCH     DISALLOW PUINT
      JMP PUDVR,I   YES, EXIT 
      ISZ SPAD4     NO, BUMP XTHRU COUNTER
      JMP PUSFS          AND REITERATE
      CLF 0          INTSYS OFF FOR TCP 
      JSB ERMS,I    BUMPED OUT, SOMETHING IS
      DEF PUTMO     WRONG, REPORT TO TCP
      JMP PUDVR,I 
* 
PUNCH EQU 00B 
SPAD3 OCT 0 
SPAD4 OCT 0 
PUTMC OCT 100000
      OCT 110000
* 
* 
* 
* 
* 
      SKP 
* 
LTSRP NOP           LOW TAPE STATUS REPORT
      JSB ERMS,I
      DEF LTMSG 
      JMP LTSRP,I 
      SPC 1 
* 
      SPC 1 
READ  NOP           READ ROUTINE  (SIO) 
      LDA PUTMC     INITIALIZE THE TIMES
      STA SPADL     THRU THE SFS ROUTINE
RDSTC STC RDR,C     HIT THE READER
RDSFS SFS RDR       READY TO READ?
      JMP CNTR1     RUN THRU THE DROP OUT COUNTER 
RDLIA LIA RDR      GOTCHA 
      JMP READ,I    EXIT WITH A = READ CHARACTER
CNTR1 ISZ SPADL    INCREMENT TIMES THRU COUNTER 
      JMP RDSFS     NO DROP THRU YET
      CLF 0 
      JSB ERMS,I    DROP THRU HAS OCCURRED, REPORT
      DEF RDTOM     TO TCP VIA ERMS 
      JMP READ,I     BACK TO ROUTINE
* 
RDR EQU 00B 
SPADL OCT 0 
      SPC 1 
* 
      SPC 1 
RESYN NOP           RE-SYNC IF NECESSARY
      JSB SYNC      MAKE SURE RESYNC IS NECESSARY 
      JSB READ      ENTIRE 1. BLOCK IS PASSED 
      SZA             UNTIL LEADER IS REACHED 
      JMP *-2           AGAIN. NO STILL IN BLOCK
      JSB READ      YES, CHECK FOR 2. FEEDHOLE
      SZA 
      JMP *-2 
      JMP RESYN,I 
* 
* 
* 
* 
* 
      SKP 
* 
PUSSR NOP           PUNCH START-STOP ROUTINE
      ISZ DOYET     DO IT YET?
      JMP PUSSR,I   NO, EXIT
      JSB STPIT     DO A STOPIT 
      LDB NXTMR,I   NEXT
      STB DOYET       TIMES - CONSTANT
      ISZ NXTMR 
      ISZ XTHRU     XTHRU?
      JMP PUSSR,I   NO, EXIT
      JSB PUSET     YES, RESET EVERYTHING 
      JMP PUSSR,I     AND EXIT
      SPC 1 
* 
      SPC 1 
PUSET NOP 
      LDB NXTMC     INITIALIZE
      STB DOYET          DOYET
      LDB NDN.8     RESET 
      STB XTHRU       XTHRU CTR 
      LDB NXTM1     RESET 
      STB NXTMR       TIMER 
      JMP PUSET,I 
* 
NDN.8 DEC -8
NXTM1 DEF NXTMC 
      SPC 1 
* 
      SPC 1 
STPIT NOP 
      STA STPAD     SAVE (AREG) 
      LDA OCTCC     GET TC
      JSB TMRR,I      EXECUTES 100 MS DELAY 
      LDA STPAD     RESTART (AREG)
      JMP STPIT,I     AND EXIT
* 
STPAD OCT 0 
OCTCC DEC 100 
DOYET OCT 0 
NXTMC DEC -5
      DEC -22 
      DEC -13 
      DEC -35 
      DEC -17 
      DEC -26 
      DEC -4
      DEC -32 
NXTMR DEF NXTMC 
XTHRU OCT 0 
* 
* 
* 
* 
* 
      SKP 
RSCHK NOP           INSURE READER PRESENCE
      LDA RDCHN     GET READER SELECT CODE
      SZA           ZERO? 
      JMP RSCHK,I   NO, OK TO EXECUTE TEST
      LDA RSCHK     YES, GET RETURN ADDRESS 
      ADA XNEG2 
      LDA A,I            AND EXIT FROM THE TEST 
      JMP A,I            THAT CALLED THIS ROUTINE.
RDCHN OCT 0 
      SPC 1 
* 
      SPC 1 
PSCHK NOP           INSURE PUNCH PRESENCE 
      LDA PUCHN     GET PUNCH SELECT CODE 
      SZA           IS THE PUNCH PRESENT? 
      JMP PSCHK,I   YES, GO AND EXECUTE TEST
      LDA PSCHK     NO, 
RETFL ADA XNEG2 
      LDA A,I             ADDRESS, AND
      JMP A,I                EXIT 
* 
PUCHN OCT 0 
XNEG2 DEC -2
      SPC 1 
* 
      SPC 1 
BPRCK NOP           BOTH PUNCH AND READER  CHECK
      LDA RDCHN     GET READER SELECT CODE
      SZA,RSS       PRESENT?
      JMP *+4       NO, GO SET UP RETURN ADDRESS
      LDA PUCHN     YES, NOW CHECK FOR PUNCH
      SZA           PRESENT?
      JMP BPRCK,I   YES, BOTH PRESENT, EXECUTE TEST 
      LDA BPRCK     NO, GET RETURN
      JMP RETFL         ADDRESS AND EXIT
* 
* 
* 
* 
* 
      SKP 
SETUP NOP 
      CLC INTP,C    OFF THE INTERRUPT SYSTEM
      LIA SW        GET SWITCH REGISTER CONTENTS
      STA USSC      SAVE (SWR) FOR TCP
      ALF,ALF       POSITION THE READER SELECT CODE 
      RAL,RAL       FOR ISOLATION.
      AND XM.77     MASK OFF ALL BUT READER S.C.
      STA RDCHN 
      SZA           IS SWR VALUE GREATER THAN ZERO? 
      JSB CONF,I     YES, GO TO CONFIGURATION ROUTINE 
      LIA SW        NO, NOW CHECK THE PUNCH 
      AND XM.77     ELIMINATE ALL SAVE THE PUNCH SC 
      STA PUCHN 
      SZA           IS PUNCH SC PRESENT IN THE SWR? 
      JMP CFIG,I    YES, DO CONFIGURATION ROUTINE 
      LIA SW        NO, INSURE READER 
      ALF,ALF       IS PRESENT TO PREVENT 
      RAL,RAL       THE DIAGNOSTIC BEING CONFIGURED 
      AND XM.77     NO READER OR NO PUNCH 
      SZA,RSS       IS THERE A READER?
      JMP CONF,I    NO, CRASH AND TRY AGAIN 
      CLA           CLEAR S-REG 
      OTA SW
      HLT 74B       YES, GO AHEAD AFTER THE HALT
      JMP XSTEX,I   AND DO THE DIAGNOSTIC 
* 
XM.77 OCT 77
* 
* 
* 
      SPC 5 
TST.0 EQU * 
      SPC 1 
      NOP 
      JSB PSCHK     WANT TO RUN TEST? 
      JSB MSGC,I    YES, TELL THE OPERATOR
      DEF PIOMS 
      JSB .TST0,I   DO TST00 (BIO ON PUNCH) 
      JMP TST.0,I   EXIT
* 
* 
* 
* 
* 
      SKP 
MKBUF NOP           MAKE ERROR MESSAGE BUFFER 
      STA SPADD     SAVE THE
      STB SPADE          A AND B REGISTERS
      LDA NEG.4     INITIALIZE FOUR TIMES THRU
      STA SPADG          THIS ROUTINE COUNTER 
MKBF1 LDA SPADD     FOR NEXT TIME THRU ROUTINE
      AND MASK1     LEAVE ONLY BIT 0
      STA B         SAVE BIT 0 IN THE B REGISTER
      LDA SPADD     GET THE WORD AGAIN
      RAR           POSITION NEXT BIT IN BIT 0
      STA SPADF     STORE IN TEMPORARY SCRATCH PAD
      RAR           POSITION FOR NEXT TIME THRU 
      STA SPADD      AND STORE BACK IN SCRATCH PAD
      LDA SPADF     GET WORD BACK FROM TEMP SPAD
      AND MASK1     MASK OFF BITS 15 THRU 1 
      ALF,ALF       (AREG0-7)-(AREG8-15)
      IOR B         PUT THE TWO BITS TOGETHER 
      IOR NUMSK     ADD THE ASCII NUMBER MASK 
      STA SPADE,I   STORE IN THE OUTPUT BUFFER
      LDA SPADE     DECREMENT THE 
      CMA,INA            POINTER TO THE 
      CMA                     OUTPUT BUFFER 
      STA SPADE                    ADDRESS
      ISZ SPADG     COUNT 4 TIMES THRU ROUTINE
      JMP MKBF1     NOT FOURTH TIME, DO AGAIN 
      JMP MKBUF,I   EXIT, THE BUFFER IS COMPLETE
* 
SPADD BSS 1         SCRATCH 
SPADE BSS 1              PAD REGISTERS
SPADF BSS 1                   D THRU G FOR
SPADG BSS 1                        THIS ROUTINE 
MASK1 OCT 1         BIT STRIPPER
NEG.4 DEC -4        8 BIT COUNTER CONSTANT
NUMSK OCT 30060     ASCII IOR MASK
* 
ABBGM ASC 2,E040
      ASC 3, BAD= 
ARB76 OCT 30060     AREGISTER BITS 7&6
ARB54 OCT 30060     AR        B    5&4
ARB32 OCT 30060     AR        B    3&2
ARB10 OCT 30060     AR        B    1&0
      OCT 20040      SPACE-SPACE
      ASC 3,GOOD= 
BRB76 OCT 30060     BREGISTER BITS 7&6
BRB54 OCT 30060                    5&4
BRB32 OCT 30060                    3&2
BRB10 OCT 30060                    1&0
      OCT 27400     ASCII/
M.377 OCT 377 
NEG.1 DEC -1
ND008 DEC -8
.BIT1 OCT 2 
SPADX OCT 0 
TEMP4 OCT 0 
      HED MESSAGES
* 
      SPC 1 
PUTMO ASC 10,E031 PUNCH TIME OUT/ 
      SPC 1 
P.TOM ASC 17,E032 PUNCH ROUTINE NOT COMPLETED 
      SPC 1 
LTMSG ASC 11,E033 LOW TAPE SUPPLY/
      SPC 3 
* 
      SPC 1 
RDTOM ASC 11,E041 READER TIME OUT/
      SPC 1 
OVRUN ASC 13,E042 MISSING SYNC CHARTR/
      SPC 1 
RSMSG ASC 6,H043 RESYNC/
      SPC 1 
IRDTO ASC 18,E044 READER INTRPT DRIVER TIME OUT/
      SPC 3 
SYTOM ASC 16,E045 SYNC CHARTR NOT FOUND AFTER 
      ASC 11, 1000 (OCTAL) CHARTRS/ 
      SPC 1 
* 
      SPC 1 
PIOMS ASC 10,H050 BI-O ON PUNCH/
      SPC 1 
T3MSG ASC 15,H051 ALL CHARTR COMBINATIONS,
      ASC 5,PUNCH ONLY
      OCT 6412
      ASC 14,   TURN PUNCH ON, PRESS RUN/ 
      SPC 1 
T4MSS ASC 15,H052 ALL CHARTR COMBINATIONS,
      ASC 3,VERIFY
      OCT 6412
      ASC 14,   TEAR TAPE AT PUNCH, PLACE 
      ASC 11, IN READER, PRESS RUN/ 
      SPC 1 
INMS1 ASC 18,H054 PLACE LOOP IN READER-PRESS RUN
      OCT 6412
      ASC 16,   TO START READ, SET BIT0 TO 1
      OCT 6412
      ASC 16,   TO EXIT TEST, SET BIT0 TO 0/
      SPC 1 
T1MSG ASC 10,H055 BI-O ON READER/ 
      SPC 1 
      SKP 
POMSG ASC 22,H056 TURN PUNCH ON, PRESS RUN. PUNCH ROUTINE 
      OCT 6412
      ASC 21,   WILL START. LOAD THE TAPE BEING PUNCHED 
      OCT 6412
      ASC 10,   INTO THE READER.
      OCT 6412
      ASC 16,   TO START READ, SET BIT0 TO 1
      OCT 6412
      ASC 13,   TO EXIT, SET BIT0 TO 0/ 
      SPC 1 
T5M1H ASC 14,H057 TO COMPLETE, TEAR TAPE, 
      ASC 6, PRESS RUN/ 
      SPC 1 
T7MSG ASC 18,H060 TO MAKE LOOP, PUNCH ON AND RUN/ 
      SPC 1 
INITM ASC 9,H061 RESET BIT 0/ 
* 
T10MS ASC 21,H062 OUTPUT BIT0-7 TO PUNCH. TO START SET
      OCT 6412
      ASC 21,    BIT13, PRESS RUN. TO EXIT CLEAR BIT13/ 
* 
RSTM1 ASC 15,H063 READER SPEED TEST. PLACE
      ASC 7,LOOP IN READER
      OCT 6412
      ASC 14,   BIT 5=0 FOR 2748-58, BIT
      ASC 13,5=1 FOR 2737. PRESS RUN./
* 
RMXEM ASC 11,E064 2737 SPEED SLOW/
* 
HPREM ASC 12,E065 2748-58 SPEED SLOW/ 
* 
RSEND ASC 11,H066 TEST 11 COMPLETE/ 
* 
PSTM1 ASC 11,H100 PUNCH SPEED TEST. 
      OCT 6412
      ASC 15,   BIT 6=0 FOR 2895 OR BIT 6=1 
      ASC 10, FOR 2753-PRESS RUN/ 
* 
TLYEM ASC 11,E101 2753 SPEED SLOW/
* 
FCTEM ASC 11,E102 2895 SPEED SLOW/
* 
PSEND ASC 11,H103 TEST 12 COMPLETE/ 
* 
* 
* 
MSEND EQU * 
      HED EXECUTIVE CONTROL 
      ORG 2000B 
ZSTEX CLC INTP,C    TURN I/O SYSTEM OFF, CLEAR FLAG 
      LDA DSNL      ADD DSN TO DIAGN HEADER MESSAGE,
      CCE             LOAD DSN, (LOWER BYTE)
      LDB HDMP          DETERMEN STORAGE LOCATION 
      ADB D22             OF CONVERTED DSN &
      JSB O2AS,I            GO TO OCTAL-ASCII CONVER. 
      JSB MSGC,I    OUTPUT HEADER MESSAGE 
      DEF HDMS
      CLA           CLEAR PASS
      STA ZEOLC       COUNT 
ZEXCZ 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        READ S-REG AND CLEAR
      AND ZSWM9       BIT 9 
      OTA SW
      LDA ZSINA     RETRIEVE PREVIOUS RUN 
      LDB ZSINB 
      HLT 75B       WAIT FOR USER INPUT 
ZEXC  STA ZUINA     SAVE
      STB ZUINB       USER
      STA ZSINA         INPUT 
      STB ZSINB           PROGRAM 
      CCA           SET TEST NUMBER 
      STA TSTN        TO -1 
      STA ZCFTT         AND STORE 
      CLA 
      STA ZTSTA     CLEAR TEST RUN FLAG 
* 
      SKP 
                  