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
* 
      HED  CONFIGURE THE READER INSTRUCTIONS
CONFG NOP 
      CLC INTP,C    TURN I/O SYSTEM OFF 
      LIA SW        GET SELECT CODES
      ALF,ALF       POSITION
      RAL,RAL         FOR READER SELECT CODE
      AND Z.77           AND CONFIGURE
      LDB A 
      CMB,INB 
      ADB Z.7 
      SSB 
      JMP *+3 
      HLT 73B 
      JMP SETUP     CRASH $$$***$$$  TRY AGAIN
      LDB XCONF 
      JSB ZISC
      JMP CONFG,I   EXIT BACK TO CALLE
* 
XCONF DEF IODR
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
      HED BASIC I/O ON READER 
* 
* 
*     TEST 01 
* 
*     THE MESSAGE "H055 B-IO ON READER" IS
*     PRINTED ON THE CONSOLE
* 
* 
*     NEXT, TCP IS CALLED, AND RUNS BASIC 
*     I/O AGAIN, BUT THIS TIME, USING THE 
*     SELECT CODE OF THE READER INTERFACE 
*     BOARD.
* 
* 
*     OTHER THAN THE -H055 B-IO ON READER 
*     MESSAGE, INFORMATION MESSAGES AND 
*     ERROR HALTS AND MESSAGES ARE THE SAME 
*     AS THOSE USED TO DESCRIBE ANY ERROR 
*     DETECTED IN TEST 0. 
* 
* 
* 
* 
* 
      SPC 5 
TST01 EQU * 
      SPC 1 
      NOP 
      JSB RSCHK     CHECK FOR RDR CONFIGURATION 
      JSB MSGC,I    REPORT TO CONSOLE 
      DEF T1MSG        B-IO ON READER 
      LDA RDCHN     GET READER SELECT CODE
      JSB ZBIO
      JMP TST01,I   BACK TO EXEC
* 
* 
* 
* 
* 
      HED PUNCH ALL CHARACTER COMBINITIONS
* 
* 
*     TEST 02 
* 
*     THE IDENTIFICATION MESSAGE "H051 ALL
*     CHARACTER COMBINATIONS - PUNCH ONLY"
*     IS PRINTED ON THE CONSOLE.
* 
*     WHEN RUN IS PRESSED, A 60 CHARACTER 
*     ALL ZEROS LEADER IS PUNCHED.  NEXT, 
*     AN ALL ONES CHARACTER IS PUNCHED, 
*     REVERSED E.G. BIT0 BECOMES BIT7, BIT1 
*     BECOMES BIT6 ETC, AND PUNCHED AGAIN 
*     THEN THE ORIGINAL CHARACTER IS
*     DECREMENTED AND OUTPUT TO THE PUNCH 
*     AGAIN.  THIS CONTINUES UNTIL AN ALL 
*     ZEROS CHARACTER IS OUTPUT.  THEN
*     THE CHARACTER IS INCREMENTED AND
*     REVERSED UNTIL THE ORIGINAL ALL ONES
*     CHARACTER IS AGAIN PUNCHED.  FINALLY, 
*     A TRAILING ALL ZEROS PATTERN IS OUTPUT, 
*     AND THE ROUTINE TERMINATES. 
* 
*     VARIABLE RECORD LENGTH OUTPUT CAN BE
*     SELECTED BY SETTING SWITCH REGISTER 
*     BIT3 TO A ONE 
* 
* 
* 
* 
* 
      SKP 
TST02 EQU * 
      SPC 1 
      NOP 
      JSB PSCHK     CHECK FOR PUNCH CONFIG. 
      JSB MSGH,I   GIVE THE OPERATOR
      DEF T3MSG         THE INSTRUCTIONS. 
      JSB PUSET 
      JSB LEADR     PUNCH A LEADER
      CCA 
T.RY3 AND M.377     LOWER EIGHT BITS ONLY 
      STA SPADH     STORE IN HOLDING LOCATION 
      JSB OUTPU          AND PUNCH IT 
      JSB FLOPP     FLIP-FLOP THE CHARACTER 
      JSB OUTPU          AND PUNCH IT 
      LDA SPADH     GET THE CHARACTER 
      ADA NEG.1     SUBTRACT A ONE
      SZA           FULLY DECREMENTED?
      JMP T.RY3     NO, RUN THRU AGAIN
      STA SPADH     YES, STORE CHARACTER AND START
TRY3. JSB OUTPU        INCREMENTING  - PUNCH
      JSB FLOPP                      - FLOP 
      JSB OUTPU                      - PUNCH
      LDA SPADH     GET THE UN-FLOPPED CHARACTER
      CPA M.377     INCREMENTED TO 377? 
      JMP .DONE     YES, GET READY TO EXIT
      INA           NO, INCREMENT THE CHARACTER 
      STA SPADH     PUT BACK IN HOLDING LOCATION
      JMP TRY3.          AND DO IT AGAIN
      SPC 1 
.DONE NOP 
      JSB LEADR     PUNCH A 60 FEED HOLE LEADER 
      JMP TST02,I 
      SPC 1 
* 
      SPC 1 
OUTPU NOP           OUTPUT TO PUNCH ROUTINE 
      STA OUTP1     SAVE THE A AND B
      STB OUTP2          REGISTER CONTENTS
      LDB BIT03     SWR CHECK 
      JSB SWRT,I        JMP IF SET
      JSB PUSSR     DO START-STOP ROUTINE 
      LDB OUTP1     LDB WITH (AREG) 
      JSB PUDVR     AND PUNCH THE CHARPCTER 
      LDA OUTP1     RESTORE THE A AND B 
      LDB OUTP2          REGISTER CONTENTS
      JMP OUTPU,I 
* 
OUTP1 OCT 3 
OUTP2 OCT 0 
BIT03 OCT 10
* 
* 
* 
* 
      SKP 
REST8 NOP           RESET THE 8 TIME THRU COUNTER 
      LDA ND008     RESET THE 
      STA SPADJ          TIMES 8 COUNTER
      JMP REST8,I             AND EXIT
      SPC 1 
* 
      SPC 1 
FLOPP NOP           FLIP-FLOP AREG BITS 0-7 
      JSB REST8     INITIALIZE X-8 COUNTER
      LDA SPADH 
      ERA           FLIP FLOP THE LOWER 
      ELB                EIGHT AREG BITS
      ISZ SPADJ     THEN
      JMP *-3           EXIT
      LDA B         PUT IN AREG 
      AND M.377          FOR AND INSTRUCTION
      JMP FLOPP,I 
* 
SPADH BSS 1 
SPADJ BSS 1 
* 
* 
* 
* 
* 
      HED READ ALL CHARACTER COMBINATIONS 
* 
* 
*     TEST 03 
* 
*     TEST 03 STARTS WITH THE IDENTIFICATION
*     AND INSTRUCTION MESSAGES: 
*     H052 ALL CHARACTER COMBINATIONS - VERIFY
*     TEAR TAPE AT PUNCH, PLACE IN
*     READER, PRESS RUN 
* 
*     USING AN INTERRUPT  TYPE DRIVER FOR 
*     READ OPERATION, THE TEST 02 GENERATED 
*     TAPE IS READ AND PROPER PUNCHING
*     OPERATION IS VERIFIED.
* 
*     NO DATA BUFFER IS EMPLOYED BY TEST02
*     OR TEST03, ALL THE WORK IN CHANGING 
*     THE DATA PATTERN IS DONE BY THE SUB-
*     ROUTINE NAMED FLOPP WHICH USES THE
*     A,B,AND EXTEND REGISTERS. 
* 
*     IF AN ERROR IS FOUND, THE OPERATOR MAY
*     CHOOSE TO ABORT THE ROUTINE. THIS CAN BE
*     DONE BY SETTING BIT1 TO A 1.
* 
* 
* 
      SKP 
TST03 EQU * 
      SPC 1 
      NOP 
      JSB BPRCK     RDR AND PUNCH PRESENT?
      JSB MSGH,I
      DEF T4MSS 
      LDA RDJSB 
      STA RDRSC,I 
      JSB SYNC      RETURN W 1.BYTE STORED @ FIBYT & A-REG
      CPA M.377     COMPARE EXPECTED W ACTUAL BYTE
      JMP *+4       COMPARE OK. 
      LDB M.377     LOAD EXPECTED BYTE
      STB SPADH       & STORE IN BUFFER 
      JSB T4ERR     REPORT ERROR
      SPC 1 
      LDA M.377 
HERE4 STA SPADH     INITIALIZE THE HOLDING BUFFER 
      JSB INTRD     READ ROUTINE
      CPA SPADH     VALID CHARACTER READ? 
      JMP *+2       YES, JUMP OVER ERROR JSB
      JSB T4ERR     NO, REPORT TO TCP 
      JSB FLOPP     FLIP-FLOP THE WORD
      STA SPADX        AND STORE IT 
      JSB INTRD     READ ROUTINE
      CPA SPADX     VALID READ? 
      JMP *+2     YES, OVER ERROR 
      JSB T4ERR     NO, REPORT ERROR
      LDA SPADH     GET UNFLOPPED CHARACTER 
      ADA NEG.1     SUBTRACT A ONE
      SZA,RSS       DECREMENTED TO ZERO?
      JMP RVRSE     YES, REVERSE THE PATTERN NOW
      AND M.377     NO, STRIP OFF UNNECESSARY BITS
      JMP HERE4          AND DO AGAIN 
      SPC 1 
RVRSE STA SPADH     INITIALIZE REVERSE ROUTINE
      JSB INTRD     READ ROUTINE
      CPA SPADH       RIGHT ONE?
      JMP *+2              RIGHT ON 
      JSB T4ERR     NO, REPORT ERROR
      JSB FLOPP     FLIP-FLOP THE WORD
      STA SPADX     SAVE THE FLOPEE 
      JSB INTRD     READ ROUTINE
      CPA SPADX     CHARACTER READ=FLOPEE?
      JMP *+2        YES, JUMP OVER ERROR 
      JSB T4ERR      NO, ERROR
      LDA SPADH     GET THE UNFLOPPED CHARACTER 
      INA           BUMP CHARACTER
      CPA M.377      BACK TO STARTING PATTERN?
      JMP *+2 
      JMP RVRSE     NO, BACK FOR MORE 
      CLF 0 
      JMP TST03,I 
      SKP 
T4ERR NOP           ERROR REPORT FOR THIS TEST
      STA TEMP4     SAVE (AREG) 
      LDB BAD.      CALLING 
      JSB MKBUF        SEQUENCE 
      LDA SPADH           AND SETUP TO MAKE 
      LDB GOOD.             AN ASCII
      JSB MKBUF                 BUFFER FOR REPORT 
      LDB SPADH     RESTORE A AND B REGISTER
      LDA TEMP4               CONTENTS
      CLF 0         INTRPT SYS OFF
      JSB ERMS,I    REPORT TO TCP 
      DEF ABBGM     A=BAD B=GOOD MESSAGE POINTER
      LDB .BIT1     GIVE UP 
      JSB SWRT,I          AFTER ERROR?
      JMP *+2       YES, DO A P+2 
      JMP T4ERR,I   NO, TRY AGAIN 
      CLF 0         TURN OFF THE INTERRUPT SYSTEM 
      JMP TST03,I        AND EXIT TEST 3
* 
BAD.  DEF ARB10 
GOOD. DEF BRB10 
      SPC 1 
* 
      SPC 1 
INTRD NOP           INTERRUPT METHOD READ ROUTINE 
      STF 0         INTERRUPT SYSTEM ON 
RDVR1 STC RDR,C     TELL READER TO GO 
      LDA RDRTC     AND START A 
      JSB TMRR,I    TIME OUT ROUTINE
      CLF 0 
      JSB ERMS,I     TIMED OUT, REPORT
      DEF IRDTO     INT. RDR DRIVER TIME OUT
      JMP INTRD,I 
      SPC 1 
* 
      SPC 1 
RDDVR NOP           INTERRUPTED TO HERE 
RDVR2 LIA RDR 
      JMP INTRD,I   EXIT
* 
RDRTC OCT 1000
RDRSC EQU * 
      NOP 
RDJSB JSB RDLNK,I 
* 
* 
* 
* 
* 
      HED READ TAPE LOOP W/ DELAYS
* 
* 
*     TEST 04 
* 
*     TEST 04 USES A CONTINUOUS LOOP FOR
*     AN INPUT. THE  INSTRUCTION MESSAGE
*     "H054 PLACE LOOP IN READER - ....." 
*     IS OUTPUT, AND THEN THE ROUTINE WAITS 
*     FOR THE OPERATOR TO PRESS RUN 
* 
* 
*     WHEN THE OPERATOR STARTS THE TEST,
*     DELAYS BETWEEN READS CAN BE STARTED 
*     BY SETTING BIT4 TO A 1. 
* 
*     IN THE EVENT OF AN ERROR, THE TAPE
*     LOOP CAN BE SYNCHRONIZED TO THE 
*     DATA BUFFER POINTER BY SETTING SWR
*     BIT2 TO A 1.
* 
*     THIS WILL CAUSE THE MESSAGE "H043 
*     RESYNC" TO BE PRINTED ON THE CONSOLE
*     AND THE RESYNC OPERATION WILL OCCUR.
*     THEN SWITCH REGISTER BIT2 SHOULD BE 
*     RESET.
* 
*     TO EXIT TEST 04, SWITCH REGISIER
*     BIT0 MUST BE SET BACK TO 0. 
* 
* 
      SKP 
      ORG 4000B 
TST04 EQU * 
      SPC 1 
      NOP 
      JSB RSCHK     CHECK FOR RDR CONFG.
      JSB MSGH,I    OUTPUT MESSAGE W O HALT 
      DEF INMS1       "PLACE LOOP IN READ, PRESS RUN" 
      LDB BIT.0     B=000001
      JSB SWRT,I
      JMP *+2       BIT0 NOW IS = 1 
      JMP *-3       STILL=0, WAIT SOME MORE 
      JSB RESYN     SET UP FOR SYNC 
      SPC 1 
RONLY NOP           INITIALIZE POINTERS & COUNTERS: 
      LDA NEG.5     SET BLOCK READ COUNTER TO -5
      STA SPADC 
      LDA TMCST     SET UP DELAY TIME 
      STA SPADB 
      LDA .BUFR     INITIALIZE DATA POINTER TO
      STA SPADA     IN1. LOCATION IN BUFFER 
      JSB SYNC      SYNCH.TAPE TO 1. BYTE 
      SPC 1 
      NOP           READS AND VERIFIES DATA 
      LDB .SWR4     CHECK S-REG BIT 4 FOR 
      JSB SWRT,I      DESIRED DELAY 
      JSB TIMER 
      LDA FIBYT     COMPARE FIBYT READ OF 2. BLOCK
      CPA SPADA,I     AGAINST 1. LOC. IN BUFFER 
      JMP *+2 
      JSB ERROR 
      ISZ SPADA     INCREMENT DATA BUFFER ADDRESS 
      LDA NEG.5 
      STA SPADC 
      LDA TMCST 
      STA SPADB 
      LDA .BUFE 
      STA SPADA 
RHERE NOP 
      LDB .SWR4     DELAY 
      JSB SWRT,I         DESIRED? 
      JSB TIMER     * TIMERS ARE INITIATED BETWEEN
      JSB READ      * READS.  IF NOT DESIRED, 
      CPA SPADA,I   * NO TIME DELAYS BETWEEN READS
      JMP *+2       * * 
      JSB ERROR 
      ISZ SPADA     * * 
      LDB .END      * * 
      CPB SPADA     * * 
      JSB SMWHR     EXIT WHEN 1. LEADER AFTER BLOCK IS READ 
      JMP RHERE     RETURN WHEN READING INSIDE ANY BLOCKS 
      JMP RHERE-2 
      NOP 
      NOP 
      SKP 
TIMER NOP           IF CALLED, CAUSES A DELAY 
      LDA SPADB,I    GET TIMING CONSTANT
      JSB DELAY      AND CAUSE A DELAY
      JMP TIMER,I    THEN EXIT
      SPC 1 
DELAY NOP 
      STA CLOCK     * THIS
      ISZ CLOCK     *  IS 
      JMP *-1       *   THE 
      JMP DELAY,I   *     CLOCK 
      SPC 1 
SMWHR NOP           CHECK XTHRU AND TIME TO EXIT
      ISZ SPADC 
      JMP BSMF
      LDB BIT.0     CHECK S-REG AFTER EVERY 5 BLOCKS FOR
      JSB SWRT,I      EXIT FORM TEST 04 
      JMP RONLY 
      JMP TST04,I   YES, FINISH 
      SPC 1 
BSMF  ISZ SPADB     NEXT TIMING CONSTANT
      JSB SYNC      TAKE UP THE LEADER
      ISZ SMWHR     SET UP RETURN ADDRESS 
      JMP SMWHR,I   AND RETURN TO CALLER
      SPC 1 
* 
      SPC 1 
ERROR NOP 
      LDB .BAD      POINTER TO BAD BITS 0&1 
      JSB MKBUF     GO MAKE AN ASCII BUFFER 
      LDA SPADA,I 
      LDB .GOOD     POINTER TO GOOD BITS
      JSB MKBUF     MAKE THE GOOD MESSAGE BUFFER
RDRLA LIA RDR       GET THE BAD CHARACTER AGAIN 
      LDB SPADA,I   GET THE GOOD CHARACTER
      JSB ERMS,I    OUTPUT THE MESSAGE
      DEF ABBGM     POINTER FOR TCP 
      LDB .SWR2     RESYNC? 
      JSB SWRT,I
      JMP RSYNC 
      JMP ERROR,I   NO, EXIT
      SPC 1 
* 
      SPC 1 
RSYNC NOP 
      JSB MSGC,I
      DEF RSMSG 
      JSB READ      GET A CHARACTER 
      SZA           ZERO? 
      JMP *-2 
      JSB READ      YES, LOOK FOR NEXT ZERO 
      SZA           ZERO? 
      JMP *-2 
      JMP RONLY 
* 
      SKP 
.BAD  DEF ARB10 
.GOOD DEF BRB10 
NEG.5 DEC -5
SPADC BSS 1 
.BUFR DEF BUFER 
.BUFE DEF BUFER+1 
SPADA BSS 1 
SPADB BSS 1 
TMCST DEF DL001 
BIT.4 OCT 20
.END  DEF BUFER+55
TMEND DEF DL005 
CLOCK BSS 1 
DL001 DEC -100
      DEC -1500 
      DEC -500
      DEC -1000 
DL005 DEC -2000 
.SWR2 OCT 4 
.SWR4 OCT 20
BUFER OCT 377,201,125,252,333,155,066,033 
      OCT 204,037,340,377,127,201,102,145 
      OCT 132,347,030,377,132,245,030,102 
      OCT 044,030,201,245,102,044,030,231 
      OCT 044,102,201,377,252,125,250,377 
      OCT 000,347,122,255,211,152,235,052 
      OCT 367,010,167,030,245,044,333,000 
* 
* 
* 
* 
* 
* 
* 
* 
      HED READ TAPE LOOP - VARIABLE RECORD LENGTHS
* 
* 
*     TEST 05 
* 
*     TEST 05 IS SIMILIAR TO TEST 04.  THE
*     SAME TAPE LOOP IS USED FOR READ/VERIFY
*     AND THE ROUTINES SHARE MANY COMMON
*     SUBROUTINES.
* 
*     THE MAIN DIFFERENCE IS THAT VARIABLE
*     RECORD LENGTHS ARE USED FOR THIS TEST 
*     ERROR HANDLING ROUTINES AND THE 
*     RESYNC ROUTINE ARE IDENTICAL. 
* 
* 
* 
* 
* 
      SKP 
TST05 EQU * 
      SPC 1 
      NOP 
      JSB RSCHK     CHECK FOR RDR CONFG.
      JSB MSGH,I
      DEF INMS1     TAPE LOOP IN RDR
      LDB BIT.0     GET A 
      JSB SWRT,I         BIT0=1 YET 
      JMP *+2       YES, GO ON
      JMP *-3       NO, WAIT SOME MORE
      JSB RESYN     RESYNC TAPE TO FEEDHOLES
      JSB SYNC      SYNC TAPE TO FIRST BYTE 
      LDA .BUFR     INITIALIZE THE DATA 
      STA SPADA       BUFFER POINTER
      LDA TMCST     SET UP DELAY TIME 
      STA SPADB 
      SPC 1 
EMSM2 LDA NEG16     INITIATE COUNTER FOR TOTAL
      STA BLK         BLOCK LENGTH
      LDA LPTR.     INITIATE LENGTH COUNTER OF
      STA PTSTR       SEGMENT INSIDE BLOCK
      SPC 1 
NBLOK LDA FIBYT     BRING BACK READ BYTE
      LDB PTSTR,I   SET UP POINTER TO STRING LENGTH 
      STB EMSMW 
      JSB READR     COMPARE AGAINST BUFFER
      LDB .SWR4     CHECK S-REG TO TEST IF
      JSB SWRT,I      DELAY IS DESIRED
      JSB TIMER     YES, DELAY
      JSB READ      RETURN WITH BYTE IN A-REG 
      ISZ EMSMW     INCREMENT VARIABLE REC. LENGTH COUNT
      JMP *-6 
      STA FIBYT     STORE READ BYTE AWAY
      ISZ PTSTR     INCREMENT LENTH POINTER 
      NOP 
      LDA BIT06     SET UP FOR 100
      JSB TMRR,I      MILLISECOND DELAY 
      NOP 
      ISZ BLK       INCREM. BLOCK LENGTH COUNTER
      JMP NBLOK     DO AGAIN
      JMP EMSM2 
      SPC 1 
* 
      SPC 1 
READR NOP 
      CPA SPADA,I       AND COMPARE 
      JMP *+2       GOOD
      JSB ERROR     ERROR 
      ISZ SPADA     BUMP BUFFER POINTER 
      LDA .END      CHECK FOR 
      CPA SPADA          END OF BUFFER
      JMP RESTR     END, RESET
      JMP READR,I   NOT END, EXIT 
      SPC 1 
RESTR LDA .BUFR     RESET 
      STA SPADA         BUFFER POINTER
      JSB SYNC      TAKE UP 
      LDB BIT.0     DONE
      JSB SWRT,I         YES? 
      JMP NBLOK       NO, REPEAT
      JMP TST05,I   YES, EXIT TEST
      SPC 1 
* 
      SPC 1 
NEG16 DEC -16 
BLK   OCT 0 
EMSMW OCT 0 
LPTR. DEF N.PTR 
PTSTR DEF N.PTR 
N.PTR DEC -5
      DEC -22 
      DEC -13 
      DEC -35 
      DEC -17 
      DEC -26 
      DEC -4
      DEC -32 
      DEC -10 
      DEC -16 
      DEC -23 
      DEC -15 
      DEC -24 
      DEC -13 
      DEC -19 
N.LST DEC -7
* 
* 
* 
* 
* 
* 
* 
* 
      HED READ-PUNCH
* 
* 
*     TEST 06 
* 
*     INSTRUCTION MESSAGE "H056 TURN PUNCH
*     ON, PRESS RUN.   TO BEGIN READ, SET 
*     BIT0 TO A 1,   TO TERMINATE, SET BIT0 
*     TO 0"   IS PRINTED ON THE CONSOLE, AND
*     THE ROUTINE HALTS THE COMPUTER. 
* 
*     WHEN RUN IS PRESSED, THE SWITCH REGISTER
*     IS CHECKED TO INSURE BIT0 IS A 0.  THIS IS
*     DONE TO PREVENT THE READ OPERATION FROM 
*     STARTING BEFORE THE OPERATOR CAN PLACE
*     THE PUNCHED TAPE IN THE READER
* 
*     WHEN THE OPERATOR CHANGES SWITCH
*     REGISTER BIT 0 TO A 1,   THE
*     PUNCH THEN BEGINS AN ALTERNATE SIO AND
*     INTERRUPT PUNCH OPERATION.  THE READER
*     OPERATION IS SIO. 
* 
*     THIS OPERATION WILL CONTINUE UNTIL BIT0 
*     IS RESET.  THEN THE PUNCH OPERATION 
*     CONTINUES UNTIL THE ENTIRE BUFFER IS
*     OUTPUT,  THE MESSAGE "H057 TO COMPLETE, 
*     TEAR TAPE - PRESS RUN" IS OUTPUT ON THE 
*     CONSOLE, AND THE COMPUTER HALTS.  THE 
*     OPERATOR MAY THEN COMPLETE THIS ROUTINE 
*     BY FOLLOWING THE ABOVE INSTRUCTIONS.
* 
* 
* 
* 
* 
* 
* 
      SKP 
TST06 EQU * 
      SPC 1 
      NOP 
      SPC 1 
      JSB BPRCK     MAKE SURE OF PROPER CONF. 
      JSB MSGH,I    GIVE THE OPERATING
      DEF POMSG           INSTRUCTIONS... 
      LDA PUJSB     INITIALIZE THE
      STA T5PSC,I    PUNCH TRAP CELL
      CLA           NOP THE 
      STA T5RSC,I    READER TRAP CELL 
      NOP           DEBUG 
      LDB BIT.0     BIT 0 MUST
      JSB SWRT,I          BE A ZERO OR ELSE 
      JSB T5IEH     TELL OPERATOR TO CLEAR BIT0 
      SPC 1 
S0JMP JSB RESET 
      JSB LEADR 
      JSB PNCH1     OUTPUT ONE BUFFER 
      LDB BIT.0     BEGIN READ? 
      JSB SWRT,I    IS SO, DO 
      JMP *+2                ARROW
      JMP S0JMP     IF NOT, TRY AGAIN 
      SPC 1 
ARROW JSB LEADR 
      LDB SPAD1,I     SET UP FOR INTERRUPT
      ISZ SPAD1 
PUMTB OTB PUNCH 
RTSTR STF 0              AND GO INTO INTERRUPT
INTPU STC PUNCH,C             MODE OF PUNCHING
      NOP 
      JSB SYNC      TAKE UP THE LEADER
      JSB READ1        AND BEGIN READ OPERATION 
T5RDR CLC RDR 
      LDA D1000     FINISH ROUTINE
      JSB TMRR,I     OR ELSE
      NOP 
      CLF 0         TURN OFF INTERRUPT SYSTEM 
      JSB ERMS,I      AND REPORT THAT THE PUNCH 
      DEF P.TOM       ROUTINE DID NOT FINISH. 
      NOP           DEBUG 
      JMP TST06,I   EXIT
* 
* 
      SKP 
                                                                                                                                                                                                                                    