File: DHPCA.LS of Disk: Disks/Build-2007/MyProgs-22-04-07
(Source file text) 


/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1

             /HIGH SPEED READER/PUNCH TESTS
             /DHPCA VER A MARCH 1977
             /1.0    ABSTRACT
             /       THE PC8-E HIGH-SPEED READER AND PUNCH TESTS ARE A TEST PACKAGE
             /       USED TO TEST THE TYPE PC02 AND PC03 HIGH-SPEED READER-PUNCH WHEN
             /       ATTACHED TO A PDP8/E SYSTEM. THE TESTS PERFORM BASIC INPUT AND
             /       OUTPUT CONTROL LOGIC TESTS, READER AND PUNCH TESTS, READER AND
             /       PUNCH SPEED PRINTOUTS, AND PROVIDE MAINTENANCE LOOPS USEFUL IN
             /       ADJUSTING THE READER AND PUNCH
             /
             /       THE AVAILABLE TEST PROGRAMS ARE:
             /
             /       PRG0    - BASIC READER AND READER CONTROL LOGIC TESTS
             /       PRG1    - BASIC PUNCH AND PUNCH CONTROL LOGIC TEST
             /       PRG2    - READER TEST. SPECIAL BINARY COUNT PATTERN
             /       PRG3    - PUNCH TEST. SPECIAL BINARY COUNT PATTERN
             /       PRG4    - PUNCH VERIFY. SPECIAL BINARY COUNT PATTERN
             /       PRG5    - PUNCH TEST. RANDOM CHARACTERS
             /       PRG6    - PUNCH VERIFY. RANDOM CHARACTERS
             /       PRG7    - COMBINED READER-PUNCH TEST. SPECIAL BINARY
             /                 COUNT PATTERN
             /       PRG10   - READ AMPLIFIER ADJUSTMENT LOOP. 1'S AND 0'S TAPE
             /       PRG11   - PUNCH ANY CHARACTER IN SR LOOP
             /       PRG12   - 1'S AND 0'S PUNCH LOOP
             /       PRG13   - READER SPEED PRINT LOOP
             /       PRG14   - PUNCH SPEED PRINT LOOP
             /       PRG15   - READ X CHARACTERS. STALL Y MS LOOP
             /
             /2.0    REQUIREMENTS
             /2.1    EQUIPMENT
             /
             /       PDP8/E WITH ASR33/35 TELETYPE, PR8-E READER, OR PR8-E PUNCH, OR
             /       PC8-E READER/PUNCH. THE FOLLOWING TAPED ARE REQUIRED IN CON-
             /       JUNCTION WITH THIS TEST:
             /
             /       MAINDEC-08-D2G1-PT
             /       MAINDEC-08-D2G2-PT
             /       MAINDEC-08-D2G4-PT
             /
             /2.2    STORAGE
             /
             /       LOCATIONS 0000 THROUGH 4377 ARE USED.
             /
             /2.3    PRELIMINARY PROGRAMS
             /
             /       ALL BASIC CPU AND TELETYPE MAINDEC MUST HAVE BEEN RUN SUCCESS-
             /       FULLY.
             /
             /3.0    LOADING PROCEDURE
             /
             /       THE BINARY LOADER IS USED TO LOAD THE PROGRAM
             /
             /4.0    USE PROCEDURES
             /
             /       THE FOLLOWING PAGES EXPLAIN IN DETAIL THE STEPS NECESSARY TO

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-1

             /       RUN EACH PROGRAM
             /
             /4.1    PRG0 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. LOAD READER WITH ALL 0'S TEST TAPE. PREFERABLY THE TAPE
             /          SHOULD BE SPLICED INTO A LOOP.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0000. PRESS START.
             /       E. PROGRAM HALTS AT LOC 0242 TO PERMIT SETTING OF SR OPTIONS
             /          SET DESIRED OPTIONS AND PRESS CONTINUE.
             /
             /                       PRG0 SR OPTIONS
             /       SR0     HALT AT ROUTINE END. ROUTINE NUMBER IN AC
             /       SR1     SELECT ROUTINE WHOSE NUMBER IS SET IN SR8-SR11.
             /       SR2     LOOP PROGRAM.
             /       SR3     0=HALT ON ERROR. 1=DO NOT HALT ON ERROR.
             /       SR4     SKIP TEST AFTER ERROR.
             /       SR5     ENTER SCOPE LOOP AFTER ERROR
             /       SR8
             /       THROUGH ROUTINE NUMBER TO BE SELECTED
             /       SR11
             /
             /       F. THE PROGRAM RUNS AND HALTS AT PROGRAM END HALT, AT LOC 0305
             /          UNLESS PREVENTED FROM ENDING BY ERRORS, OR SR OPTIONS.
             /
             /4.2    PRG1 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. MAKE PUNCH READY, INSURING THAT THERE ARE SEVERAL INCHES OF
             /          BLANK LEADER.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0001. PRESS START.
             /       E. PROGRAM HALTS AT LOC 0242 TO PERMIT SETTING OF SR OPTIONS
             /          SET DESIRED OPTIONS AND PRESS CONTINUE.
             /
             /                       PRG1 SR OPTIONS
             /       SR0     HALT AT ROUTINE END. ROUTINE NUMBER IN AC
             /       SR1     SELECT ROUTINE WHOSE NUMBER IS SET IN SR8-SR11.
             /       SR2     LOOP PROGRAM.
             /       SR3     0=HALT ON ERROR. 1=DO NOT HALT ON ERROR.
             /       SR4     SKIP TEST AFTER ERROR.
             /       SR5     ENTER SCOPE LOOP AFTER ERROR
             /       SR8
             /       THROUGH ROUTINE NUMBER TO BE SELECTED
             /       SR11
             /
             /       F. THE PROGRAM RUNS AND HALTS AT PROGRAM END HALT, AT LOC 0305
             /          UNLESS PREVENTED FROM ENDING BY ERRORS, OR SR OPTIONS.
             /
             /                       NOTE
             /
             /       THE RESULTING PUNCHED TAPE MUST BE INSPECTED VISUALLY.
             /       EXCEPT FOR TWO 500 CHARACTER BLOCKS CONTAINING PUNCHES
             /       IN ALTERNATE CHANNELS, THE REMAINDER OF THE TAPE SHOULD

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-2

             /       BE BLANK.
             /
             /4.3    PRG2 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. LOAD READER WITH SPECIAL BINARY COUNT PATTERN TEST LOOP.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0002. PRESS START.
             /       E. PROGRAM RUNS CONTINUOUSLY UNLESS ERRORS OCCUR.
             /
             /                       PRG2 SR OPTIONS
             /
             /       SR3     =0-HALT ON ERROR. SR3=1-NO HALT ON ERROR.
             /       SR6     =0-STALL (RANDOM), SR6=1-RUN FULL SPEED
             /       SR7     LOCK IN CURRENT STALL (SR6 MUST BE 0)
             /
             /4.4    PRG3 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. MAKE PUNCH READY.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0003. PRESS START.
             /       E. THE PROGRAM PUNCHES SPECIAL BINARY COUNT PATTERN CONTIN-
             /          UOUSLY UNTIL STOPPED BY USER.
             /
             /                       PRG3 SR OPTIONS
             /
             /       SR6     =0-STALL (RANDOM), SR6=1-RUN FULL SPEED
             /       SR7     LOCK IN CURRENT STALL (SR6 MUST BE 0)
             /
             /4.5    PRG4 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. LOAD READER WITH TAPE PUNCHED BY PRG3, BLANK LEADER SHOULD
             /          BE UNDER READ STATION. WITH "UP" MARKER TO THE LEFT.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0004. PRESS START.
             /       E. PROGRAM RUNS CONTINUOUSLY UNLESS ERRORS OCCUR, OR UNTIL
             /          THE READER RUNS OUT OF TAPE.
             /
             /                       PRG4 SR OPTIONS
             /
             /       SR3     =0-HALT ON ERROR. SR3=1-NO HALT ON ERROR.
             /
             /                       NOTE
             /
             /       DISREGARD ERRORS TAHT OCCUR WHEN THE END OF SPECIAL
             /       BINARY COUNT PATTERN IS REACHED.
             /
             /4.6    PRG5 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. MAKE PUNCH READY.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0005. PRESS START.

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-3

             /       E. THE PROGRAM PUNCHES RANDOM CHARACTERS CONTINUOUSLY
             /          UNTIL STOPPED BY USER.
             /
             /                       PRG5 SR OPTIONS
             /
             /       SR6     =0-STALL (RANDOM), SR6=1-RUN FULL SPEED
             /       SR7     LOCK IN CURRENT STALL (SR6 MUST BE 0)
             /
             /4.7    PRG6 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. LOAD READER WITH TAPE PUNCHED BY PRG5, BLANK LEADER SHOULD
             /          BE UNDER READ STATION. WITH "UP" MARKER TO THE LEFT.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0006. PRESS START.
             /       E. PROGRAM RUNS CONTINUOUSLY UNLESS ERRORS OCCUR, OR UNTIL
             /          THE READER RUNS OUT OF TAPE.
             /
             /                       PRG4 SR OPTIONS
             /
             /       SR3     =0-HALT ON ERROR. SR3=1-NO HALT ON ERROR.
             /
             /                       NOTE
             /
             /       DISREGARD ERRORS TAHT OCCUR WHEN THE END OF SPECIAL
             /       BINARY COUNT PATTERN IS REACHED.
             /
             /4.8    PRG7 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. MAKE PUNCH READY, PUNCH ABOUT 20 INCHES (MAXIMUM) OF BLANK
             /          LEADER, AND LOAD READER WITH THE BLANK LEADER. THE PUNCH
             /          TO READER SLACK SHOULD NOT BE EXCESSIVE.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0007. PRESS START.
             /       E. THE PROGRAM PUNCHES AND READ CHECKS SPECIAL BINARY COUNT
             /          PATTERN CONTINUOUSLY UNTIL ERROR OCCURS, OR SUPPLY OF TAPE
             /          IS EXHAUSTED.
             /
             /                       PRG7 SR OPTIONS
             /
             /       SR3     =0-HALT ON ERROR. SR3=1-NO HALT ON ERROR.
             /       SR6     =0-STALL (RANDOM), SR6=1-RUN FULL SPEED
             /       SR7     LOCK IN CURRENT STALL (SR6 MUST BE 0)
             /
             /4.9    PRG10 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. LOAD READER WITH 1'S AND 0'S TEST TAPE LOOP.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0010. PRESS START.
             /       E. PROGRAM RUNS CONTINUOUSLY UNTIL STOPPED BY USER. WITH
             /          THE PROGRAM RUNNING, THE USER CAN ADJUST THE READ
             /          AMPLIFIERS.
             /

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-4

             /4.10   PRG11 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. MAKE PUNCH READY.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0011. PRESS START.
             /       E. THE PROGRAM PUNCHES CONTINUOUSLY THE CODE SET IN SWITCHES
             /          4 TO 11. THE SWITCHES MAY BE CHANGED AT ANY TIME.
             /
             /4.11   PRG12 USE PROCEDURE
             /
             /       A. INSURE THAT THE TELETYPE IS ONLINE.
             /       B. MAKE PUNCH READY.
             /       C. LOAD ADDRSS 0200.
             /       D. SET SR TO 0012. PRESS START.
             /       E. THE PROGRAM PUNCHES 1'S AND 0'S TAPE CONTINUOUSLY.
             /
             /                       PRG12 SR OPTIONS
             /
             /       SR6     =0-STALL (RANDOM), SR6=1-RUN FULL SPEED
             /       SR7     LOCK IN CURRENT STALL (SR6 MUST BE 0)
             /
             /4.12   PRG13 USE PROCEDURE
             /
             /       PRG13 IS USED TO TIME THE HIGH SPEED READER WITH THE AID OF A
             /       WATCH WITH SWEEP SECOND HAND. THE READER CAN BE TIMED IN 2
             /       WAYS:
             /
             /       A. 30 SECOND TIMING. USED FOR APPROXIMATE SPEED SETTINGS.
             /       B. 300 SECOND TIMING (5 MINUTES) FOR ACCURATE AND FINAL
             /          VERIFICATION OF READER SPEED
             /
             /       TO TIME THE READER PROCEED AS FOLLOWS:
             /
             /       A. INSURE TELETYPE IS ON-LINE
             /       B. LOAD ANY TAPE IN READER
             /       C. LOAD ADDRESS 0200
             /       D. SET SR TO 0013
             /       E. FOR 30 SECOND TIMING, LEAVE SR1=0, FOR 300 SECOND TIMING
             /          SET SR1 TO A 1
             /       F. PRESS START, READER WILL RUN CONTINUOUSLY
             /       G. WHEN THE 30 OR 300 SECOND TIME IS UP, TURN ON SR0, AND THEN
             /          TURN IT OFF. THE PROGRAM WILL TYPE OUT THE READER
             /          SPEED IN CHARACTERS PER SECOND (CPS)
             /       H. PROGRAM HALTS AT LOC 4230 AFTER PRINTOUT
             /       I. TO RETIME THE READER, PRESS CONTINUE AFTER MAKING SURE THAT
             /          SR0 IS OFF, AND THAT SR1 IS SET TO THE CORRECT TIME BASE
             /
             /                       NOTE
             /
             /          ACCURATE READER SPEED MEASUREMENT DEPENDS ON THE USER'S
             /          ATTENTION TO THE STARTING AND STOPPING TIMES
             /
             /4.13   PRG14 USE PROCEDURE
             /

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-5

             /       PRG14 IS USED TO TIME THE HIGH SPEED PUNCH WITH THE AID OF A
             /       WATCH WITH SWEEP SECOND HANDD. THE PUNCH IS TIMES OVER A PERIOD
             /       OF 60 SECONDS. TO TIME THE PUNCH, PROCEED AS FOLLOWS:
             /
             /       A. INSURE TELETYPE IS ONLINE
             /       B. MAKE PUNCH READY
             /       C. LOAD ADDRSS 0200
             /       D. SET SR TO 0014
             /       E. PRESS START. PUNCH RUNS CONTINUOUSLY.
             /       F. AFTER 60 SECONDS TURN ON SR0, AND THEN TURN IT OFF.
             /          THE PROGRAM WILL TYPE OUT THE PUNCH SPEED IN CHARACTERS
             /          PER SECOND (CPS).
             /       G. PROGRAM HALTS AT LOC 4255 AFTER PRINTOUT.
             /       H. TO REIME THE PUNCH, PRESS CONTINUE AFTER MAKING SURE THAT
             /          SR0 IS OFF
             /
             /                       NOTE
             /
             /          ACCURATE READER SPEED MEASUREMENT DEPENDS ON THE USER'S
             /          ATTENTION TO THE STARTING AND STOPPING TIMES
             /
             /4.14   PRG15 USE PROCEDURE
             /
             /       A. LOAD ANY TAPE IN READER
             /       B. LOAD ADDRESS 0200
             /       C. SET SR TO 0015. PRESS START
             /       D. PROGRAM HALTS AT LOC 4332
             /       E. SET SR SWITCHES 0 THROUGH 4 TO NUMBER OF CHARACTERS TO
             /          READ (1 TO 37 OCTAL)
             /       F. SET SR SWITCHES 5 THROUGH 11 TO NUMBER OF MILLISECONDS TO
             /          STALL AFTER READING CHARACTERS (1 TO 177 OCTAL)
             /       G. PRESS CONTINUE
             /       H. PROGRAM RUNS CONTINUOUSLY, READING THE SPECIFIED NUMBER OF
             /          CHARACTERS, AND STALLING FOR THE SPECIFIED NUMBER OF
             /          MILLISECONDS
             /
             /                       NOTE
             /
             /          THE NUMBER OF CHARACTERS READ AND/OR THE STALL COUNT CAN
             /          BE CHANGED AT ANY TIME. THIS PROGRAM DOES NOT CHECK FOR
             /          CORRECT DATA, IT IS INTENDED PRIMARILY AS AN AID IN
             /          ADJUSTING READER TIMINGS.
             /
             /5.     OPERATING PROCEDURES
             /
             /5.1    PROGRAM AND/OR OPERATOR ACTION
             /
             /5.1.1  NORMAL HALTS
             /
             /       LOC 0242        SR OPTIONS HALT. THIS HALT OCCURS DURING EXECU-
             /                       TION OF PRG0 AND PRG1 TO PERMIT SETTING OF DE-
             /                       SIRED OPTIONS. PRESS CONTINUE TO PROCEED.
             /       LOC 0305        PROGRAM END HALT. OCCURS AT END OF PRG0 AND
             /                       PRG1. IF "LOOP PROGRAM" OPTION IS NOT SET
             /                       SET DESIRED OPTIONS, AND PRESS CONTINUE. IF NO

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-6

             /                       OPTIONS ARE SET, THIS HALT REOCCURS.
             /       LOC 0340        ROUTINE END HALT. OCCURS DURING EXECUTION OF
             /                       PRG0 AND PRG1 IF SR0 IS 1.
             /       LOC 4230        THIS HALT OCCURS IN PRG13 AFTER PROGRAM TYPES
             /                       THE READER SPEED IN CHARACTERS PER SECOND. TO
             /                       RETIME THE READER, PRESS CONTINUE AFTER MAKING
             /                       SURE THAT SR0 IS OFF, AND THAT SR1 IS SET TO
             /                       THE CORRECT TIME BASE.
             /       LOC 4255        THIS HALT OCCURS IN PRG14 AFTER PROGRAM TYPE
             /                       THE PUNCH SPEED IN CHARACTERS PER SECOND. TO
             /                       RETIME THE PUNCH, PRESS CONTINUE AFTER MAKING
             /                       SURE THAT SR0 IS OFF.
             /       LOC 4332        PRG15 SR SET HALT. OCCURS TO PERMIT SETTING OF
             /                       DESIRED CHARACTER AND STALL COUNT. SET SR0-4 TO
             /                       NUMBER OF CHARACTERS TO BE READ. SET SR5-11 TO
             /                       NUMBER OF MILLISECONDS TO STALL AFTER READING
             /                       CHARACTERS, PRESS CONTINUE
             /
             /6.0    ERRORS
             /
             /6.1    ERROR PRINTOUTS ARE IDENTIFIED BY AN ASTERISK (*) PRECEDING THE
             /       PRINTOUT. MOST ERROR PRINTOUTS TAKE THE FORM:
             /
             /               *P00XX R00XXY ZZZZZ
             /       WHERE
             /               P00XX=PROGRAM NUMBER
             /               R00XX=ROUTINE NUMBER IN PROGRAM
             /                   Y=A LETTER. INDICATES WHICH ERROR OCCURRED WITHIN A
             /                     ROUTINE. IF NO LETTER IS PRINTED, ONLY ONE ERROR
             /                     IS POSSIBLE IN THE ROUTINE.
             /               ZZZZZ=ADDITIONAL INFORMATION PRINTOUT
             /
             /       FOLLOWING AN ERROR PRINTOUT THE PROGRAM HALTS IF SR3 (HALT-ON-
             /       ERROR OPTION) IS OFF, AND THE OPTION APPLIES TO THE PROGRAM.
             /
             /               *P0000 R0001
             /
             /       WITH READ FLAG = 1, RSF (IOT011) COMMAND FAILED TO SKIP.
             /
             /               *P0000 R0002
             /
             /       RRB(IOT012) FAILED TO CLEAR FLAG, OR RSF(IOT011) SKIPPED
             /       WITH FLAG=0.
             /
             /               *P0000 R0003
             /
             /       SKIP NOT GENERATED WITH INTERRUPT OFF, OR 6010 (RPE)
             /       MALFUNCTION.
             /
             /               *P0000 R0004
             /
             /       PCE (6020) MALFUNCTION. INTERRUPT ENABLE NOT CLEARED
             /
             /               *P0000 R0005
             /

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-7

             /       RRB (IOT012) COMMAND FAILED TO CLEAR FLAG
             /
             /               *P0000 R0006
             /
             /       RFC (IOT014) FAILED TO CLEAR FLAG
             /
             /               *P0000 R0007
             /
             /       RRB (IOT012) COMMAND RESULTED IN NON-ZERO CHARACTER SET INTO AC.
             /       SHOULD BE ALL 0'S. AN ALL 0'S TEST TAPE SHOULD BE IN THE READER
             /
             /               *P0000 R0010A
             /
             /       UNEXPECTED INTERRUPT AFTER CLEARING REDER PUNCH, TTY PUNCH,
             /       AND TTY READER. TURN OFF INTERRUPTING DEVICE
             /
             /               *P0000 R0010B
             /
             /       WITH READER FLAG SET, READER FAILED TO INTERRUPT.
             /
             /               *P0000 R0011A
             /
             /       "STOP DELAY" NOT FIRING OR SET FOIR TOO SHORT A DURATION, REFER
             /       TO SECTION 9 FOR TEST DESCRIPTION
             /
             /               *P0000 R0011B
             /
             /       "STOP DELAY" TIME OUT IS TOO LONG. REFER TO SECTION 9 FOR TEST
             /       DESCRIPTION
             /
             /               *P0001 R0000
             /
             /       PSF (IOT021) COMMAND SKIPPED WITH FLAG = 0, OR, LESS LIKELY
             /       PCF(IOT022) FAILED TO CLEAR FLAG.
             /
             /               *P0001 R0001
             /
             /       PSF(IOT021) FAILED TO SKIP WITH FLAG = 1, OR FLAG IS NOT SET.
             /
             /               *P0001 R0002
             /
             /       PCF(IOT022) FAILED TO CLEAR FLAG
             /
             /               *P0001 R0003
             /
             /       DID NOT SKIP WITH INTERRUPT DISABLED
             /
             /               *P0001 R0004
             /
             /       COULD NOT CLEAR INTERRUPT ENABLE FOR PUNCH
             /
             /               *P0001 R0010A
             /
             /       UNEXPECTED INTERRUPT AFTER CLEARING PUNCH, READER, TTY PUNCH
             /       AND TTY READER. TURN OFF INTERRUPTING DEVICE.

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-8

             /
             /               *P0001 R0010B
             /
             /       WITH PUNCH FLAG SET, PUNCH FAILED TO INTERRUPT
             /
             /               *P0002 R0000    S/B     XXXX    WAS     YYYY
             /               *P0004 R0000    S/B     XXXX    WAS     YYYY
             /               *P0006 R0000    S/B     XXXX    WAS     YYYY
             /               *P0007 R0000    S/B     XXXX    WAS     YYYY
             /               *P0010 R0000    S/B     XXXX    WAS     YYYY
             /
             /       ONE OF THE ABOVE PRINTOUTS OCCURS DURING ITS RESPECTIVE PROGRAM
             /       WHEN THE DATA READ FROM PAPER TAPE AND THE EXPECTED DATA DID NOT
             /       MATCH. "S/B" (SHOUD/BE) XXXX REPRESENTS THE EXPECTED CHARACTER.
             /       "WAS" REPRESENTS THE CHARACTER READ.
             /
             /               INCORRECT RTN SELECTED
             /
             /       THIS PRINTOUT OCCURS DURING EXECUTION OF PRG0 AND PRG1 IF A
             /       NONEXISTENT ROUTINE IS SELECTED. THE PROGRAM HALTS, SET CORRECT
             /       ROUTINE NUMBER IN SR AND PRESS CONTINUE
             /
             /               UNEXPECTED INTERRUPT
             /
             /       THIS PRINTOUT OCCURS DURING PRG7 EXECUTION. PRGRAM HALTS.
             /       TURN OFF INTERRUPTING DEVICE. PRESS CONTINUE
             /
             /6.2    ERROR HALTS
             /
             /       LOC 0201        INCORRECT PRGRAM NUMBER SELECTED. SET SR
             /                       TO CORRECT NUMBER AND PRESS CONTINUE.
             /
             /       LOC 0266        INCORRECT ROUTINE NUMBER SELECTED. PRECEDED
             /                       PRINTOUT. SET CORRECT ROUTINE NUMBER IN SR
             /                       AND PRESS CONTINUE.
             /
             /       LOC 0732        UNEXPECTED INTERRUPT. PRECEDED BY PRINTOUT.
             /                       OCCURS DURING PRG7 EXECUTION. TURN OFF INTER-
             /                       RUPTING DEVICE. PRESS CONTINUE.
             /
             /       LOC 1347        SYNC ERROR. OCCURS DURING PRG2 AND PRG7, IF
             /                       PROGRAM IS UNABLE TO SYNC. PRESS CONTINUE TO
             /                       RETRY.
             /
             /       LOC 1075        COMMON ERROR HALT. OCCURS AFTER ERROR PRINTOUT
             /                       IF SR3=0 AND OPTION APPLIES TO PROGRAM BEING
             /                       RUN. PRESS CONTINUE
             /
             /       LOC 3631        PRG7. PUNCH COUNT HAS EXCEEDED 100. READER
             /                       IS PROBABLY NOT RUNNING. RESTART PROGRAM.
             /
             /7.0    RESTRICTIONS
             /
             /7.1    STARTING RESTRICTIONS
             /

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-9

             /       THIS PROGRAM MUST BE STARTED AT LOC 0200.
             /
             /8.0    MISCELLANEOUS
             /
             /8.1    EXECUTION TIME
             /
             /       PRG0    1 MINUTE 50 SECONDS
             /       PRG1    45 SECONDS
             /       PRG2 THROUGH PRG15 ARE CONTINUOUS RUNNING PROGRAMS
             /
             /8.2    TEST TAPES
             /
             /       MAINDEC-00D2G4-PT SPECIAL BINARY COUNT PATTERN TEST TAPE IS
             /       PROVIDED WITH THIS PROGRAM. FOR EASE OF USE, THE TAPE SHOULD BE
             /       SPLICED INTO A LOOP INSURING THAT THE PATTERN IS MATCHED AT THE
             /       SPLICE POINT. THE END OF A PATTERN IS INDICATED BY THE
             /       CHARACTERS: RUBOUT, ALL 0'S CHARACTER, ALL 0'S CHARACTER, AND
             /       THEN ANOTHER RUBOUT.
             /
             /       IT IS DESIRABLE TO SPLICE INTO LOOPS, MAINDEC-00-D2G1-PT AND
             /       MAINDEC-00-D2G2-PT TO FACILITATE TESTING.
             /
             /9.0    PROGRAM DESCRIPTION
             /
             /       THIS PROGRAM CONSISTS OF 14 INDIVIDUAL PROGRAMS NUMBERED FROM
             /       00 TO 15 (OCTAL). PROGRAMS ARE SELECTED BY MEANS OF THE SWITCH
             /       REGISTER (SR).
             /
             /9.1    PRG0 - BASIC READER AND READER CONTROL LOGIC TEST
             /
             /       THIS PROGRAM CONTAINS TEN ROUTINES NUMBERED FOR 0 TO 11 (OCTAL)
             /
             /       RTN0    CHECKS THAT FLAG IS SET 250 MS AFTER ISSUING RFC COMMAND
             /               (IOT014). FAILURE TO SKIP ON FLAG COULD BE CAUSED BY
             /               FLAG NOT SET, OR RSF FAILURE TO SKIP. TEST IS DONE
             /               200 TIMES.
             /
             /       RTN1    CHECKS THAT RSF COMMAND (IOT011) SKIPS WITH FLAG=1.
             /               TEST IS DONE 4095 TIMES.
             /
             /       RTN2    CHECK THAT RSF COMMAND (IOT011) DOES NOT SKIP WITH FLAG
             /               = 0. DONE 4095 TIMES.
             /
             /       RTN3    CHECKS FOR SKIP WITH INTERRUPT OFF. DONE 2047 TIMES.
             /
             /       RTN4    CHECKS THAT INTERRUPT ENABLE CAN BE CLEARED FOR READER.
             /               (DONE 4095 TIMES)
             /
             /       RTN5    CHECKS THAT RRB COMMAND (IOT012) CLEARS THE FLAG. DONE
             /               500 TIMES.
             /
             /       RTN6    CHECKS THAT RFC COMMAND (IOT014) CLEARS THE FLAG. DONE
             /               500 TIMES.
             /
             /       RTN7    CHECKS THE ABILITY TO READ ALL 0'S CHARACTER. DONE 500

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-10

             /               TIMES.
             /
             /       RTN10   CHECKS FOR UNEXPECTED INTERRUPTS, AND THEN CHECKS THAT
             /               READER IS ABLE TO INTERRUPT.
             /
             /       RTN11   THIS ROUTINE CHECKS THAT THE "STOP DELAY" IS NOT LESS
             /               THAN 10 MS. OR MORE THAN 250 MS. THE TEST SEQUENCE IS:
             /
             /               A. RFC (FETCH CHARACTER)
             /               B. WAIT FOR FLAG 1 (SHOULD SET IMMEDIATELY)
             /               C. DELAY 19 MS. (STOP DELAY SHOULD FIRE 6 MS AFTER STEP
             /                  A)
             /               D. RFC (FETCH CHARACTER, CLEAR FLAG)
             /               E. DELAY 19 MS.
             /               F. SKIP ON FLAG. IF SKIP OCCURS, THE "STOP DELAY"
             /                  DID NOT FIRE, OR IS TOO SHORT.
             /               G. DELAY ADDITIONAL 212 MILLISECONDS
             /               H. SKIP ON FLAG. IF NO SKIP OCCURS, THE "STOP DELAY"
             /                  IS TOO LONG. TEST IS DONE 200 TIMES.
             /
             /9.2    PRG1 - BASIC PUNCH AND PUNCH CONTROL LOGIC TEST
             /
             /       THIS PROGRAM CONTAINS NINE ROUTINES NUMBERED FROM 0 TO 10
             /       (OCTAL).
             /
             /       RTN0    CHECKS THAT PSF COMMAND (IOT021) DOES NOT SKIP
             /               WITH FLAG = 0.
             /
             /       RTN1    CHECKS THAT PSF COMMAND (IOT021) SKIPS WITH FLAG = 1.
             /               DONE 4095 TIMES.
             /
             /       RTN2    CHECKS THAT PCF COMMAND (IOT022) IS ABLE TO CLEAR THE
             /               FLAG. DONE 500 TIMES.
             /
             /       RTN3    CHECKS FOR SKIP WITH INTERRUPT OFF. DONE 2047 TIMES.
             /
             /       RTN4    CHECKS THAT INTERRUPT ENABLE CAN BE CLEARED FOR PUNCH.
             /               DONE 4095 TIMES.
             /
             /       RTN5    TEST DONE 500 TIMES. VISUAL CHECK OF TAPE REQUIRED.
             /               CHECKS THAT PCF COMMAND (IOT022) IS ABLE TO CLEAR THE
             /               PUNCH BUFFER. THE TEST SEQUENCE IS:
             /
             /               A. ALL 1'S TO PUNCH BUFFER AND PUNCH (PLS).
             /               B. IMMEDIATELY CLEAR THE PUNCH BUFFER BY ISSUING
             /                  PCF COMMAND. NO HOLES SHOULD BE PUNCHED EXCEPT
             /                  FOR FEED HOLE.
             /
             /       RTN6    TEST IS DONE 500 TIMES, VISUAL CHECK OF TAPE REQUIRED.
             /               ROUTINE LOADS PUNCH BUFFER WITH 125 (8) AND PUNCHES.
             /               ALTERNATE HOLES SHOULD BE PUNCHED.
             /
             /       RTN7    TEST IS DONE 500 TIMES, VISUAL CHECK OF TAPE REQUIRED.
             /               ROUTINE LOADS PUNCH BUFFER WITH 252 (8) AND PUNCHES.
             /               ALTERNATE HOLES SHOULD BE PUNCHED.

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-11

             /
             /       RTN10   CHECKS FOR UNEXPECTED INTERRUPTS, AND THEN CHECKS THAT
             /               PUNCH IS ABLE TO INTERRUPT.
             /
             /9.3    PRG2 - READER TEST
             /
             /       THE READER IS TESTED USING A SPECIAL BINARY COUNT PATTERN TEST
             /       TAPE. THE PROGRAM IS CONTINUOUS RUNNING. ERRORS ARE INDICATED
             /       BY PRINTOUTS. NORMAL TEST MODE IS WITH RANDOM STALLS AFTER
             /       EVERY CHARACTER GROUP READ. SR6=1 GIVES FULL SPEED TESTING.
             /       SR7 = 1 LOCKS PROGRAM ON CURRENT STALL. (SR6 MUST BE 0).
             /       PROGRAM RESYNCS AFTER 5 ERRORS. THE LENGTH OF A CHARACTER GROUP
             /       IS RANDOM, BUT DOES NOT EXCEE 15 CHARACTERS.
             /
             /9.4    PRG3 - PUNCH TEST, SPECIAL BINARY COUNT PATTERN
             /
             /       THIS CONTINUOUS RUNNING PROGEAM PUNCHES SPECIAL BINARY COUNT
             /       PATTERN. NORMAL TEST MODE IS WITH RANDOM STALLS AFTER EVERY
             /       CHARACTER PUNCHED. SR6=1 GIVES FULL SPEED PUNCHING.
             /       SR7 = 1 LOCKS PROGRAM ON CURRENT STALL. (SR6 MUST BE 0).
             /
             /9.5    PRG4 - PUNCH VERIFY, BINARY COUNT PATTERN
             /
             /       THIS PROGRAM READS AND CHECKS THE TAPE PUNCHED DURING EXECUTION
             /       OF PRG3. ERRORS ARE INDICATED BY ERROR PRINTOUTS.
             /
             /9.6    PRG5 - PUNCH TEST, RANDOM CHARACTERS
             /
             /       THIS CONTINUOUS RUNNING PROGRAM PUNCHES RANDOM CHARACTERS.
             /       NORMAL TEST MODE IS WITH RANDOM STALLS AFTER EVERY
             /       CHARACTER PUNCHED. SR6=1 GIVES FULL SPEED PUNCHING.
             /       SR7 = 1 LOCKS PROGRAM ON CURRENT STALL. (SR6 MUST BE 0).
             /
             /9.7    PRG6 - PUNCH VERIFY, RANDOM CHARACTERS
             /
             /       THIS PROGRAM READS AND CHECKS THE TAPE PUNCHED DURING EXECUTION
             /       OF PRG5. ERRORS ARE INDICATED BY ERROR PRINTOUTS.
             /
             /9.8    PRG7 - COMBINED READER - PUNCH TEST
             /
             /       THIS CONTINUOUS RUNNING PROGRAM PUNCHES AND READ  -  CHECKS
             /       SPECIAL BINARY COUNT PATTERN. THE READER AND PUNCH WORK IN THE
             /       INTERRUPT MODE. NORMAL TEST MODE IS WITH RANDOM STALLS AFTER
             /       EVERY CHARACTER PUNCHED. SR6=1 GIVES FULL SPEED PUNCHING AND
             /       READING. SR7 = 1 LOCKS PROGRAM ON CURRENT STALL. (SR6 MUST
             /       BE 0). THE READER RESYNCS ITSELF AUTOMATICALLY AFTER 5 ERRORS.
             /
             /9.9    PRG10 - READ AMPLIFIER ADJUSTMENT LOOP
             /
             /       THIS CONTINUOUS RUNNING PROGRAM USES A 1'S AND 0'S TEST TAPE
             /       LOOP, AND PROVIDES A MEANS OF DETERMINING THE UPPER AND LOWER
             /       LIMITS OF CORRECT OPERATION OF THE READ AMPLIFIER OF THE PAPER
             /       TAPE READER.  AFTER OBTAINING THE LIMITS THE POT CAN BE SET TO
             /       THE MIDDLE POSITION. READ ERRORS ARE INDICATED BY ERROR PRINT-
             /       OUTS. DROPPING OF THE READER FLAG BY OVERDRIVING OF THE FEED-

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-12

             /       HOLE AMPLIFIER IS INDICATED BY 3 BELLS FROM THE TELETYPE. THE
             /       READER IS THEN RESTARTED.
             /
             /9.10   PRG11 - PUNCH ANY CHARACTER IN SR LOOP
             /
             /       THIS PROGRAM LOOP CONTINUOUSLY PUNCHES THE CODE SET IN SR4
             /       THROUGH SR11. SWITCHES MAY BE CHANGED WHILE RUNNING.
             /
             /9.11   PRG12 - ONES AND ZEROS PUNCH LOOP
             /
             /       THIS PROGRAM PUNCHES 1'S AND 0'S CONTINUOUSLY. NORMAL MODE IS
             /       WITH RANDOM STALLS AFTER EVERY CHARACTER PUNCHED. SR6=1 GIVES
             /       FULL SPEED PUNCHING. SR7 = 1 LOCKS PROGRAM ON CURRENT STALL.
             /       (SR6 MUST BE 0).
             /
             /9.12   PRG13 - READ SPEED PRINT LOOP
             /
             /       THIS PROGRAM TYPES THE READER SPEED MEASURED OVER A 30 OR 300
             /       SECOND PERIOD.  THE USER CONTROLS THE MEASURING TIME WITH THE
             /       AID OF A WATCH WITH SWEEP SECOND HAND.
             /
             /9.13   PRG14 - PUNCH SPEED LOOP
             /
             /       THIS PROGRAM TYPES THE PUNCH SPEED MEASURED OVER A 60 SECOND
             /       PERIOD. THE USER CONTROLS THE MEASURING TIME WITH THE AID OF A
             /       WATCH WITH SWEEP SECOND HAND.
             /
             /9.14   PRG15 - READ X, STALL Y MS LOOP
             /
             /       THIS PROGRAM LOOP IS INTENDED AS AN AID IN ADJUSTING THE PAPER
             /       TAPE READER. THE USER SETS IN SR0 THROUGH SR4 THE NUMBER OF
             /       CHARACTERS TO BE READ (RANGE: 1 TO 37 OCTAL) AND IN SR5 THROUGH
             /       SR11 THE NUMBER OF MS TO STALL AFTER READING THE CHARACTERS
             /       (RANGE: 1 TO 177 OCTAL). THIS LOOP IS USEFUL IN ADJUSTING
             /       CLOCK TIMING, STROBE, ETC.
             /
             /10.0   LISTING
             /
             /PC8-E HIGH SPEED READER AND PUNCH TESTS.
             /MAINDEC-08-DHPCA-A-D
             /DATE:  MARCH 1977
             /COPYRIGHT 1977 DIGITAL EQUIPMENT CORP. MAYNARD, MASS. 01754
             /AUTHORS:  BOB KOLLER/MAIT TAFFEL/MARK SANDLER/STEVE JENSEN
             /WILLEM VAN DER MARK RETYPED PROGRAM IN 2009

             /PRG0-BASIC READER AND READER CONTROL LOGIC TEST.  ALL 0'S TAPE
             /PRG1-BASIC PUNCH AND PUNCH CONTROL LOGIC TEST
             /PRG2-READER TEST, BINARY COUNT PATTERN
             /PRG3-PUNCH TEST, BINARY COUNT PATTERN
             /PRG4-PUNCH VERIFY, BINARY COUNT PATTERN
             /PRG5-PUNCH TEST, RANDOM CHARACTERS
             /PRG6-PUNCH VERIFY, RANDOM CHARACTERS
             /PRG7-COMBINED READER-PUNCH TEST, BINARY PATTERN
             /PRG10-READ AMPLIFIER ADJUSTMENT LOOP, ONES AND ZEROES TAPE
             /PRG11-PUNCH ANY CHARACTER OR SR LOOP

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-13

             /PRG12-ONES AND ZEROES PUNCH LOOP
             /PRG13-READER SPEED PRINT LOOP
             /PRG14-PUNCH SPEED PRINT LOOP
             /PRG15-READ X,STALL Y MSEC LOOP

       6000  SKON=6000
       6003  SRQ=6003
       6007  CAF=6007
       6010  RPE=6010
       6020  PCE=6020
       6014  RCF=6014
       6024  PPC=6024

       0000  *0
00000  0000          0000
00001  5001          JMP 1
00002  0002          2
00003  0003          3
       0005  *5
00005  5402          JMP I 2
00006  0000          0
       0020  *20
00020  0000  KSTART, 0
00021  0000  DELAYM, 0
00022  0000  COUNT,  0000
00023  0000  AC,     0
00024  0000  LINK,   0
00025  0270  CHAIN,  CHAINN
00026  0333  SHLT,   SHALT
00027  0447  RANDNO, RANGEN
00030  0000  PRGNUM, 0
00031  2000  PRGTAB, PRG0
00032  3000          PRG1
00033  3462          PRG2
00034  3506          PRG3
00035  3517          PRG4
00036  3537          PRG5
00037  3553          PRG6
00040  3600          PRG7
00041  4000          PRG10
00042  4102          PRG11
00043  4110          PRG12
00044  4200          PRG13
00045  4233          PRG14
00046  4332          PRG15

00047  0616  XTYPST, TYPSTG
00050  0600  UCRLF,  CRLF
00051  1050  UERROR, ERROR
00052  1000  UASCCN, ASCCN
00053  1255  ULPRGN, LPRGN
00054  1273  ULRRGN, LRRGN
00055  1200  UTREAD, TREAD
00056  1207  UTPCH,  TPCH
00057  1214  UPLDR,  PLDR

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-14

00060  1230  UMARK,  MARK
00061  1143  UTCHK,  TCHK
00062  1145  UTSB,   TSB
00063  0324  CRCNT,  CHRCNT
00064  1311  SYNC,   SYNK
00065  1324  SYNCA,  SYNKA
00066  1400  INPATT, INITPT
00067  1412  GETPT,  GETPTT
00070  1435  GETPTR, GTPTRP
00071  0521  CHECK,  CHCK
00072  0513  DLYCNT, DLCNT
00073  0426  UPUNCH, PUNCH
00074  0536  UMOVE,  MOVE
00075  0400  USTCTR, STCTR
00076  0443  URDSR,  RDSR
00077  1111  USTCTA, STCTA
00100  1117  USTCTB, STCTB
00101  1042  USTDLM, STDLYM
00102  0411  UDLYMS, DLYMS
00103  0733  UIOUT,  IOUT
00104  0000  DLYMSK, 0
00105  0000  SRMSK,  0
00106  7354  MIL1,   7354            /CONSTANT FOR MILLISECONDS
00107  0000  CPIC,   0
00110  0000  CHR1,   0
00111  0000  CHR2,   0
00112  0000  CHR3,   0
00113  0000  TEMP,   0
00114  0000  TEMP1,  0
00115  0000  CURTST, 0
00116  0000  RTNNO,  0
00117  0000  NXTST,  0
00120  0000  MSCTR,  0               /STORED NUMBER OF MILLISECONDS TO BE COUNTED
00121  0000  MILCTR, 0               /MILLISECOND TALLY
00122  0000  CTRA,   0
00123  0000  CTRB,   0
00124  0000  CTRC,   0
00125  0000  CTRD,   0
00126  0000  PFLAG,  0
00127  0000  RBUSY,  0
00130  0000  RCHKW,  0               /??
00131  0000  TCHKW,  0
00132  0000  PCHCNT, 0
00133  0000  ACTIND, 0
00134  0000  DELTIM, 0
00135  0000  MILLI,  0
00136  0000  CTR,    0

       4000  SR0MSK=4000
       2000  SR1MSK=2000
       1000  SR2MSK=1000
       0400  SR3MSK=0400
       0200  SR4MSK=0200
       0100  SR5MSK=0100
       0040  SR6MSK=0040

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-15

       0020  SR7MSK=0020
       0017  TSTMSK=0017
       0377  PTMSK=0377

       4475  SETLOC=JMS I USTCTR
       4476  READSR=JMS I URDSR
       4477  SETA=JMS I USTCTA
       4500  SETB=JMS I USTCTB
       4502  DELAY=JMS I UDLYMS
       5503  OUT=JMP I UIOUT
       0140  A=0140
       0240  B=0240
       0000  NONE=0000
       4040  NOSUF=4040
       4501  SETDLM=JMS I USTDLM
       4502  DELAY=JMS I UDLYMS
       5503  OUT=JMP I UIOUT
       0000  OPEN=0000

                     /SET INT ENABLE FOR READER AND PUNCH
                     /SKIP IF RDR FLAG = 1
                     /READ READER BUFFER AND CLEAR FLAG
                     /RRB,RCC
                     /CLEAR INTERRUPT EANBLE FOR READER AND PUNCH
                     /SKIP IF PUNCH FLAG = 1
                     /CLEAR FLAG AND BUFFER
                     /LOAD BUFFER AND PUNCH CHARACTER
                     /PCF,PPC


             /SKIP IF INTERRUPT ON AND TURN INTERRUPT OFF
             /TURN INTERRUPT ON
             /TURN INTERRUPT OFF
             /SKIP ON INTERRUPT REQUEST
             /GET FLAGS
             /RESTORE FLAGS
             /SKIP ON GREATER THAN FLAGS
             /CLEAR ALL FLAGS

       0200  *200

00200  7410  STRT,   SKP
00201  7602          HLT CLA         /INCORRECT PRGNUM
00202  7604          LAS             /READ SR
00203  0177          AND [17         /MASK ALL BUT LAST 4 BITS
00204  1176          TAD [-15
00205  7540          SMA SZA         /VALID PROGRAM?
00206  5201          JMP STRT+1      /NO, GO TO ERROR HALT
00207  7604          LAS             /YES, REREAD SR
00210  0177          AND [17
00211  3030          DCA PRGNUM
00212  1030          TAD PRGNUM      /DEVELOP PROGRAM ADDRESS
00213  1175          TAD [PRGTAB
00214  3113          DCA TEMP
00215  1513          TAD I TEMP

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-16

00216  3240          DCA PRGADR      /STORE DEVELOPED ADDRESS
00217  4474  INIT,   JMS I UMOVE     /INITIALIZE INTERRUPT
00220  0005          5               /AREAD
00221  0001          1
00222  7776          -2
00223  3113          DCA TEMP        /0 TO TEMP
00224  4474          JMS I UMOVE     /CLEAR WORK AREA
00225  0113          TEMP
00226  0114          TEMP1
00227  7760          -20
00230  4475          SETLOC
00231  1075          ERRORA
00232  7402          7402
00233  1174          TAD [177
00234  3104          DCA DLYMSK
00235  1173          TAD [7640
00236  3572          DCA I [STALL+3
00237  5640          JMP I .+1       /JMP TO SELECTED
00240  0000  PRGADR, 0               /PROGRAM

00241  7602  SRSET,  HLT CLA

00242  7200  GETRDY, CLA
00243  1020          TAD KSTART      /SET ADDRESS OF 1ST ROUTINE
00244  3117          DCA NXTST       /STORE AT NXTST
00245  4307          JMS FORWD
00246  4476          READSR          /READ SR
00247  7006          RTL
00250  7420          SNL             /ROUTINE SELECT? SR1
00251  5515          JMP I CURTST    /NO, START WITH 1ST RTN
00252  4476          READSR          /YES
00253  0177          AND [TSTMSK
00254  7041          CIA
00255  1116          TAD RTNNO
00256  7650          SNA CLA         /IS IT THIS RTN?
00257  5515          JMP I CURTST    /YES, GO DO IT
00260  1117          TAD NXTST       /NO
00261  7001          IAC             /IS THIS LAST RTN?
00262  7640          SZA CLA         /NO
00263  5245          JMP GETRDY+3
00264  4447          JMS I XTYPST
00265  1560          WRTN
00266  7602  INCRTN, HLT CLA         /YES, INCORRECT ROUTINE NO
00267  5242          JMP GETRDY

00270  4426  CHAINN, JMS I SHLT
00271  4476          READSR          /READ SR
00272  7006          RTL
00273  7630          SZL CLA         /ROUTINE SELECT? SR1
00274  5242          JMP GETRDY      /YES
00275  1117          TAD NXTST
00276  7001          IAC
00277  7640          SZA CLA         /LAST ROUTINE?
00300  5245          JMP GETRDY+3    /NO
00301  4476          READSR

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-17

00302  7006          RTL
00303  7710          SPA CLA         /LOOP PROGRAM? SR2
00304  5242          JMP GETRDY      /YES
00305  7402  PRGEND, HLT             /END OF PROGRAM HALT
00306  5270          JMP CHAINN
00307  0000  FORWD,  0
00310  7300          CLA CLL
00311  1517          TAD I NXTST     /GET NEXT RTN NO
00312  3116          DCA RTNNO       /STORE AT RTNNO
00313  2117          ISZ NXTST
00314  1117          TAD NXTST       /SET CURRENT
00315  3113          DCA TEMP        /RTN NUMBER
00316  2117          ISZ NXTST
00317  1117          TAD NXTST       /SET CURRENT
00320  3115          DCA CURTST      /RTN ADDR.
00321  1513          TAD I TEMP      /SET NEXT
00322  3117          DCA NXTST       /RTN ADDR.
00323  5707          JMP I FORWD
00324  0000  CHRCNT, 0
00325  4427          JMS I RANDNO    /SET RANDOM NUMBER
00326  0177          AND [17         /REMOVE EXCESS BITS
00327  7450          SNA             /0?
00330  5325          JMP CHRCNT+1    /YES, REPEAT
00331  7041          CIA             /COMPLEMENT
00332  5724          JMP I CHRCNT    /EXIT.
00333  0000  SHALT,  0
00334  4476          READSR          /READ SR
00335  7700          SMA CLA         /HALT? (SR0)
00336  5733          JMP I SHALT
00337  1116          TAD RTNNO
00340  7402          HLT             /UNCONDITIONAL HALT
00341  5733          JMP I SHALT     /EXIT.S/-10L
       0400          PAGE
00400  0000  STCTR,  0
00401  7200          CLA
00402  1600          TAD I STCTR     /GET CTR ADDR
00403  3113          DCA TEMP        /AND SAVE AT TEMP
00404  2200          ISZ STCTR
00405  1600          TAD I STCTR     /GET COUNT AND
00406  3513          DCA I TEMP      /STORE PER C(TEMP)
00407  2200          ISZ STCTR
00410  5600          JMP I STCTR     /EXIT
00411  0000  DLYMS,  0
00412  7300          CLA CLL
00413  1021          TAD DELAYM      /GET MS COUNT
00414  3120          DCA MSCTR       /STORE IN MSCTR
00415  5616          JMP I .+1
00416  0417          .+1
00417  1106          TAD MIL1        /GET 1 MS CONSTANT
00420  3121          DCA MILCTR      /STORE IN MILCTR
00421  2121          ISZ MILCTR      /DELAYED 1 MSEC?
00422  5221          JMP .-1
00423  2120          ISZ MSCTR       /DONE DELAYING?
00424  5217          JMP .-5
00425  5611          JMP I DLYMS     /EXIT

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-18

             /PUNCH/PRINT ONE CHARACTER SUBROUTINE (CHAR IN AC)
00426  0000  PUNCH,  0
00427  2126          ISZ PFLAG       /SET PFLAG
00430  6046          TLS             /PUNCH PRINT
00431  7200          CLA
00432  1126          TAD PFLAG
00433  7640          SZA CLA         /FLAG RESET?
00434  7410          SKP
00435  5240          JMP .+3         /YES
00436  6041          TSF             /DONE PRINTING?
00437  5232          JMP .-5         /NO
00440  6042          TCF             /YES, RESET PRINTER FLAG
00441  3126          DCA PFLAG       /RESET FLAG
00442  5626          JMP I PUNCH
00443  0000  RDSR,   0
00444  7604          LAS
00445  0105          AND SRMSK
00446  5643          JMP I RDSR
             /
             /RANDOM NUMBER GENERATOR SUBROUTINE
00447  0000  RANGEN, 0
00450  7200          CLA
00451  1311          TAD RANTND
00452  1276          TAD RANDEX
00453  7640          SZA CLA
00454  5264          JMP RANTAD
00455  1300          TAD RANTBL
00456  3276          DCA RANDEX
00457  1277          TAD RANCON
00460  7104          CLL RAL
00461  7430          SZL
00462  7001          IAC
00463  3277          DCA RANCON
00464  1277  RANTAD, TAD RANCON
00465  1676          TAD I RANDEX
00466  3676          DCA I RANDEX
00467  1312          TAD RANSAV
00470  7010          RAR
00471  1676          TAD I RANDEX
00472  2276          ISZ RANDEX
00473  3312          DCA RANSAV
00474  1312          TAD RANSAV
00475  5647          JMP I RANGEN
00476  0511  RANDEX, RANTND
00477  6543  RANCON, 6543
00500  0501  RANTBL, .+1
00501  6543          6543
00502  3210          3210
00503  0765          0765
00504  5432          5432
00505  2107          2107
00506  7654          7654
00507  4321          4321
00510  1076          1076
00511  7267  RANTND, -.

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-19

00512  0000  RANSAV, 0
             /
             /SUBROUTINE TO GENERATE RANDOM DELAY COUNT
             /
00513  0000  DLCNT,  0
00514  4427          JMS I RANDNO    /GO GENERATE RANDOM NUMBER
00515  0174          AND [177        /MASK OUT UNDESIRED BITS
00516  7041          CIA             /2'S COMPLEMENT IT
00517  3021          DCA DELAYM
00520  5713          JMP I DLCNT     /EXIT
             /
             /SUBROUTINE TO COMPARE C(AC) TO CONTENTS STORED AT CALL+1
             /
00521  0000  CHCK,   0
00522  3335          DCA WCHK        /STORE AC AT WCHK
00523  1721          TAD I CHCK      /GET COMPARE DATE
00524  7041          CIA             /2'S COMPLEMENT IT
00525  1335          TAD WCHK        /ADD C(WCHK)
00526  2321          ISZ CHCK        /SET UP FOR UNEQUAL
00527  7640          SZA CLA         /EQUAL (AC=0)
00530  5333          JMP .+3         /NO
00531  2321          ISZ CHCK        /YES, SET UP FOR EQUAL
00532  5721          JMP I CHCK      /EQUAL EXIT
00533  1335          TAD WCHK        /RESTORE AC
00534  5721          JMP I CHCK      /UNEQUAL EXIT
00535  0000  WCHK,   0
             /
             /SUBROUTINE TO MOVE VARIABLE LENGTH DATA FIELDS
             /
00536  0000  MOVE,   0
00537  7200          CLA
00540  1736          TAD I MOVE      /GET "FROM ADDR" AND
00541  3361          DCA FADDR       /STORE AT FADDR
00542  2336          ISZ MOVE
00543  1736          TAD I MOVE      /GET "TO ADDR" AND
00544  3362          DCA TADDR       /STORE AT TADDR
00545  2336          ISZ MOVE
00546  1736          TAD I MOVE      /GET "MOVE COUNT" AND
00547  3363          DCA MCTR        /STORE AT MCTR
00550  2336          ISZ MOVE        /SET UP FOR EXIT
00551  7200  MOVEA,  CLA
00552  1761          TAD I FADDR     /GET "FROM" WORD
00553  3762          DCA I TADDR     /STORE AT "TO" LOCATION
00554  2361          ISZ FADDR       /+1 TO "FROM" ADDR
00555  2362          ISZ TADDR       /+1 TO "TO" LOCATION
00556  2363          ISZ MCTR        /ALL WORDS MOVED?
00557  5351          JMP MOVEA       /NO, GO MOVE AGAIN
00560  5736          JMP I MOVE      /YES, EXIT
00561  0000  FADDR,  0
00562  0000  TADDR,  0
00563  0000  MCTR,   0

       0600  PAGE
00600  0000  CRLF,   0
00601  7200          CLA             /CRLF SUBROUTINE

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-20

00602  1600          TAD I CRLF      /GET NUMBER OF CRLF'S
00603  3215          DCA CRCTR       /AND SAVE
00604  2200          ISZ CRLF
00605  4447          JMS I XTYPST    /GO CRLF
00606  0612          .+4
00607  2215          ISZ CRCTR       /ALL DONE?
00610  5205          JMP .-3         /NO
00611  5600          JMP I CRLF      /YES, EXIT
00612  0015          0015            /CR
00613  0012          0012            /LF
00614  0001          0001            /END CODE
00615  0000  CRCTR,  0
00616  0000  TYPSTG, 0
00617  7200          CLA
00620  1616          TAD I TYPSTG    /GET AND STORE
00621  3300          DCA TEMQ        /INITIAL ADDRESS
00622  3302          DCA FLAG        /CLEAR FLAG
00623  2216          ISZ TYPSTG
00624  1700  TSC1,   TAD I TEMQ      /SET DATA
00625  7012          RTR             /ROTATE RIGHT 6
00626  7012          RTR
00627  7012          RTR
00630  4235          JMS TSC2        /GO TYPE CHARACTER
00631  1700          TAD I TEMQ      /GET DATA
00632  4235          JMS TSC2        /GO TYPE CHARACTER
00633  2300          ISZ TEMQ        /INCR STRING ADDR
00634  5224          JMP TSC1        /GO BACK FOR MORE
00635  0000  TSC2,   0
00636  0171          AND [77         /MASK OFF 6 BITS
00637  3301          DCA TEMR        /SAVE CHARACTER
00640  1302          TAD FLAG
00641  7640          SZA CLA         /TEST FLAG
00642  5252          JMP TYPSP       /SET
00643  1301          TAD TEMR        /NOT SET
00644  7450          SNA             /ZERO?
00645  5250          JMP .+3         /YES, SET FLAG
00646  4271  TYPAT,  JMS PRINT       /NO, PRINT IT
00647  5635          JMP I TSC2      /RETURN
00650  2302          ISZ FLAG        /SET FLAG
00651  5635          JMP I TSC2      /EXIT
00652  3302  TYPSP,  DCA FLAG        /CLEAR FLAG
00653  1301          TAD TEMR
00654  7041          CIA
00655  7450          SNA             /ZERO?
00656  5246          JMP TYPAT       /YES, TYPE "@"
00657  7001          IAC
00660  7650          SNA CLA         /IS IT 01?
00661  5616          JMP I TYPSTG    /YES, EXIT
00662  1170          TAD [SMA        /SMA TO SWITCH
00663  3273          DCA SWITCH
00664  1301          TAD TEMR        /GET CHARACTER
00665  4271          JMS PRINT       /PRINT IT
00666  1167          TAD [SPA        /SPA TO SWITCH
00667  3273          DCA SWITCH
00670  5635          JMP I TSC2

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-21

00671  0000  PRINT,  0
00672  1166          TAD [-40
00673  7510  SWITCH, SPA
00674  1165          TAD [100
00675  1164          TAD [240
00676  4473          JMS I UPUNCH
00677  5671          JMP I PRINT
00700  0000  TEMQ,   0
00701  0000  TEMR,   0
00702  0000  FLAG,   0
             /
00703  3023  INTSVC, DCA AC          /SAVE AC
00704  7010          RAR
00705  3024          DCA LINK        /SAVE LINK
00706  6011          RSF             /READER?
00707  5312          JMP .+3         /NO
00710  5711          JMP I .+1
00711  0000  RVCTR,  0
00712  6021          PSF             /PUNCH?
00713  5317          JMP .+4         /NO
00714  4563          JMS I [STALL    /STALL IF DESIRED
00715  5716          JMP I .+1
00716  0000  PVCTR,  0
00717  6031          KSF             /TTY READER/KYBD?
00720  5323          JMP .+3
00721  6032          KCC             /YES
00722  5503          OUT             /TO MAINLINE
00723  6041          TSF             /TTY PRINTER/PUNCH?
00724  5330          JMP .+4         /NO
00725  6042          TCF             /YES
00726  3126          DCA PFLAG
00727  5503          OUT             /TO MAINLINE
00730  4447  UNEXIT, JMS I XTYPST    /PRINT ERROR MESSAGE
00731  1501          UNINT
00732  7602          HLT CLA         /HALT, UNEXPECTED INTERRUPT
00733  7300  IOUT,   CLA CLL
00734  1024          TAD LINK
00735  7004          RAL             /RESTORE LINK
00736  1023          TAD AC          /RESTORE AC
00737  6001          ION
00740  5400          JMP I 0         /EXIT INTERRUPT
             /
00741  6022  PCHCLR, PCF
00742  5503          OUT
00743  6012  RDRCLR, RRB
00744  5503          OUT
       1000  PAGE
01000  0000  ASCCN,  0               /SUBROUTINE TO CONVERT
01001  7200          CLA             /A WORD TO PRINTABLE ASCII
01002  1600          TAD I ASCCN
01003  3237          DCA WASC
01004  2200          ISZ ASCCN
01005  1600          TAD I ASCCN
01006  3240          DCA SASC
01007  2200          ISZ ASCCN

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-22

01010  1162          TAD [7700
01011  0637          AND I WASC
01012  7112          RTR CLL
01013  7012          RTR
01014  7012          RTR
01015  4224          JMS CNV
01016  2240          ISZ SASC
01017  1162          TAD [7700
01020  7040          CMA
01021  0637          AND I WASC
01022  4224          JMS CNV
01023  5600          JMP I ASCCN
01024  0000  CNV,    0
01025  3241          DCA ASCT
01026  1241          TAD ASCT
01027  7006          RTL
01030  7004          RAL
01031  0161          AND [707
01032  1241          TAD ASCT
01033  0161          AND [707
01034  1160          TAD [6060
01035  3640          DCA I SASC
01036  5624          JMP I CNV
01037  0000  WASC,   0
01040  0000  SASC,   0
01041  0000  ASCT,   0
             /
01042  0000  STDLYM, 0               /SET DELAYM SUB
01043  7200          CLA
01044  1642          TAD I STDLYM    /SET DELAYM TO
01045  3021          DCA DELAYM      /NUMBER SPECIFIED
01046  2242          ISZ STDLYM      /AT CALL +1
01047  5642          JMP I STDLYM    /EXIT
01050  0000  ERROR,  0
01051  4452          JMS I UASCCN    /CONVERT PROGRAM
01052  0030          PRGNUM          /NUMBER TO PRINTABLE
01053  1471          PNUMB           /OCTAL
01054  4452          JMS I UASCCN    /CONVERT ROUTINE
01055  0116          RTNNO           /NUMBER TO PRINTABLE
01056  1474          ENUMB           /OCTAL
01057  1650          TAD I ERROR     /GET ERROR SUFFIX AND
01060  3710          DCA I SFADR     /STORE AT SUFX
01061  4447          JMS I XTYPST    /PRINT ERROR NUMBER
01062  1466          ERNUMB
01063  2250          ISZ ERROR
01064  1650          TAD I ERROR     /GET ADDRESS OF ADDITIONAL
01065  7450          SNA             /PRINTOUT. ZERO?
01066  5272          JMP .+4         /YES
01067  3271          DCA .+2
01070  4447          JMS I XTYPST    /NO, PRINT IT
01071  0000          0
01072  4476          READSR
01073  0157          AND [SR3MSK
01074  7650          SNA CLA         /HALT ON ERROR? (SR3)
01075  7402  ERRORA, HLT             /YES

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-23

01076  4476          READSR
01077  0156          AND [SR4MSK
01100  7640          SZA CLA         /SKIP TEST? (SR4)
01101  5425          JMP I CHAIN     /YES
01102  4476          READSR
01103  0165          AND [SR5MSK
01104  7640          SZA CLA         /ENTER SCOPE LOOP? (SR5)
01105  2250          ISZ ERROR       /YES
01106  2250          ISZ ERROR
01107  5650          JMP I ERROR
01110  1476  SFADR,  SUFX
01111  0000  STCTA,  0               /SET CTRA TO
01112  7200          CLA             /NUMBER SPECIFIED
01113  1711          TAD I STCTA     /AT CALL+1
01114  3122          DCA CTRA
01115  2311          ISZ STCTA
01116  5711          JMP I STCTA     /EXIT
01117  0000  STCTB,  0               /SET CTRB TO
01120  7200          CLA             /NUMBER SPECIFIED
01121  1717          TAD I STCTB     /AT CALL+1
01122  3123          DCA CTRB
01123  2317          ISZ STCTB
01124  5717          JMP I STCTB     /EXIT
01125  0000  STALL,  0               /RANDOM STALL SUBROUTINE
01126  4476          READSR
01127  0155          AND [SR6MSK
01130  7640          SZA CLA         /STALL? (SR6)
01131  5725          JMP I STALL     /NO, EXIT
01132  4476          READSR
01133  0154          AND [SR7MSK
01134  7640          SZA CLA         /LOCK ON STALL? (SR7)
01135  7410          SKP             /YES
01136  4472          JMS I DLYCNT    /NO, RANDOM STALL
01137  1021          TAD DELAYM
01140  7440          SZA
01141  4502          DELAY           /STALL
01142  5725          JMP I STALL     /EXIT
01143  0000  TCHK,   0
01144  4471          JMS I CHECK     /CHECK THAT C(AC) AND C(TSB) ARE
01145  0000  TSB,    0
01146  5351          JMP .+3         /ERROR, NOT EQUAL
01147  2343          ISZ TCHK        /EQUAL
01150  5743          JMP I TCHK      /OK
01151  3131          DCA TCHKW       /STORE BAD CHARACTER
01152  4452          JMS I UASCCN
01153  1145          TSB
01154  1604          SB
01155  4452          JMS I UASCCN
01156  0131          TCHKW
01157  1611          WAS
01160  4451          JMS I UERROR
01161  4040          NOSUF
01162  1601          SBWAS
01163  5743          JMP I TCHK      /RETURN
01164  5743          JMP I TCHK      /RETURN

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-24

       1200  PAGE
01200  0000  TREAD,  0
01201  6014          RFC
01202  6011          RSF
01203  5202          JMP .-1
01204  7200          CLA
01205  6012          RRB
01206  5600          JMP I TREAD
01207  0000  TPCH,   0
01210  6026          PLS
01211  6021          PSF
01212  5211          JMP .-1
01213  5607          JMP I TPCH
01214  0000  PLDR,   0
01215  4475          SETLOC          /-100 TO PLDRW
01216  1227          PLDRW
01217  7634          -144
01220  7200          CLA
01221  6026          PLS
01222  6021          PSF
01223  5222          JMP .-1
01224  2227          ISZ PLDRW       /DONE?
01225  5220          JMP .-5         /NO
01226  5614          JMP I PLDR      /YES, EXIT
01227  0000  PLDRW,  0
             /
01230  0000  MARK,   0
01231  4214          JMS PLDR
01232  4500          SETB
01233  7767          -11
01234  4475          SETLOC          /MARKER ADDRESS
01235  1246          MARKAD          /TO MARKAD
01236  1521          MARKER
01237  7200          CLA
01240  1646          TAD I MARKAD    /GET MARK
01241  4207          JMS TPCH        /PUNCH IT
01242  2246          ISZ MARKAD      /UPDATE
01243  2123          ISZ CTRB        /DONE?
01244  5237          JMP .-5         /NO
01245  5630          JMP I MARK      /YES, EXIT
01246  0000  MARKAD, 0
01247  1233  SEED1,  1233
01250  7622          7622
01251  0000  RANP1,  0
01252  0000  RANP2,  0
01253  0000  RANR1,  0
01254  0000  RANR2,  0
01255  0000  LPRGN,  0
01256  7300          CLL CLA
01257  1251          TAD RANP1
01260  7006          RTL
01261  1252          TAD RANP2
01262  3251          DCA RANP1
01263  1251          TAD RANP1
01264  7006          RTL

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-25

01265  1252          TAD RANP2
01266  7006          RTL
01267  3252          DCA RANP2
01270  1251          TAD RANP1
01271  0153          AND [PTMSK
01272  5655          JMP I LPRGN
01273  0000  LRRGN,  0
01274  7300          CLL CLA
01275  1253          TAD RANR1
01276  7006          RTL
01277  1254          TAD RANR2
01300  3253          DCA RANR1
01301  1253          TAD RANR1
01302  7006          RTL
01303  1254          TAD RANR2
01304  7006          RTL
01305  3254          DCA RANR2
01306  1253          TAD RANR1
01307  0153          AND [PTMSK
01310  5673          JMP I LRRGN
01311  0000  SYNK,   0
01312  4466          JMS I INPATT
01313  4455          JMS I UTREAD    /READ CHARACTER
01314  3110          DCA CHR1        /STORE AT CHR1
01315  4455          JMS I UTREAD    /READ CHARACTER
01316  3111          DCA CHR2        /STORE AT CHR2
01317  4455          JMS I UTREAD    /READ CHAR
01320  3112          DCA CHR3        /STORE
01321  4465          JMS I SYNCA     /GO SYNC
01322  5312          JMP SYNK+1      /NO SYNC, TRY AGAIN
01323  5711          JMP I SYNK      /SYNCED, EXIT
01324  0000  SYNKA,  0
01325  4475          SETLOC          /-512 TO CTSK
01326  1363          CTSK
01327  7000          -1000
01330  4475          SETLOC          /SET CTSK1
01331  1364          CTSK1           /TO -10
01332  7766          -12
01333  4467          JMS I GETPT     /GET BIN CHARACTER
01334  7040          CMA
01335  0110          AND CHR1        /SAME AS CHR1?
01336  7440          SZA
01337  5333          JMP .-4         /NO
01340  4467          JMS I GETPT     /YES, GET ANOTHER BIN CHAR
01341  7040          CMA
01342  0111          AND CHR2
01343  7450          SNA             /SAME AS CHR2?
01344  5351          JMP SYNKC       /YES
01345  2363          ISZ CTSK        /NO, 512 TIMES?
01346  5330          JMP SYNKA+4     /NO
01347  7602  SYNKB,  HLT CLA         /YES, SYNC ERROR
01350  5724          JMP I SYNKA     /TRY AGAIN
01351  4467  SYNKC,  JMS I GETPT     /GET LINE CHARACTER
01352  7040          CMA
01353  0112          AND CHR3        /SAME AS CHR3?

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-26

01354  7440          SZA
01355  5360          JMP .+3         /NO
01356  2324          ISZ SYNKA       /YES
01357  5724          JMP I SYNKA     /EXIT
01360  2364          ISZ CTSK1       /DONE 10 TIMES?
01361  5330          JMP SYNKA+4     /NO
01362  5347          JMP SYNKB       /YES, SYNC ERROR
01363  0000  CTSK,   0
01364  0000  CTSK1,  0
       1400  PAGE
01400  0000  INITPT, 0               /INITIALIZE BINARY
01401  7201          CLA IAC         /PATTERN ROUTINES
01402  3260          DCA PT0
01403  4474          JMS I UMOVE
01404  1460          PT0
01405  1461          PT1
01406  7775          -3
01407  3264          DCA RIND
01410  3265          DCA PIND
01411  5600          JMP I INITPT
01412  0000  GETPTT, 0               /BINARY COUNT PATTERN
01413  7200          CLA             /ROUTINE SPECIAL
01414  1260          TAD PT0
01415  3261          DCA PT1
01416  1264          TAD RIND
01417  7040          CMA
01420  3264          DCA RIND
01421  1264          TAD RIND
01422  7650          SNA CLA
01423  5227          JMP .+4
01424  1261          TAD PT1
01425  7040          CMA
01426  5231          JMP .+3
01427  1261          TAD PT1
01430  7041          CIA
01431  0153          AND [PTMSK
01432  3260          DCA PT0
01433  1261          TAD PT1
01434  5612          JMP I GETPTT
01435  0000  GTPTRP, 0               /BINARY COUNT PATTERN
01436  7200          CLA             /ROUTINE
01437  1262          TAD PT2
01440  3263          DCA PT3
01441  1265          TAD PIND
01442  7040          CMA
01443  3265          DCA PIND
01444  1265          TAD PIND
01445  7650          SNA CLA
01446  5252          JMP .+4
01447  1263          TAD PT3
01450  7040          CMA
01451  5254          JMP .+3
01452  1263          TAD PT3
01453  7041          CIA
01454  0153          AND [PTMSK

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-27

01455  3262          DCA PT2
01456  1263          TAD PT3
01457  5635          JMP I GTPTRP
01460  0000  PT0,    0
01461  0000  PT1,    0
01462  0000  PT2,    0
01463  0000  PT3,    0
01464  0000  RIND,   0
01465  0000  PIND,   0
01466  0015  ERNUMB, 0015            /CR
01467  0012          0012            /LF
01470  5220          5220            /*,P
01471  4040  PNUMB,  4040
01472  4040          4040
01473  4022          4022            /SP,R
01474  4040  ENUMB,  4040
01475  4040          4040
01476  4040  SUFX,   4040
01477  4040          4040            /SP,SP
01500  0001          0001            /END CODE
01501  0015  UNINT,  0015            /CR
01502  0012          0012            /LF
01503  0007          0007            /BELL
01504  4025          4025            /SP,U
01505  1605          1605            /N,E
01506  3020          3020            /X,P
01507  0503          0503            /E,C
01510  2405          2405            /T,E
01511  0440          0440            /D,SP
01512  1116          1116            /I,N
01513  2405          2405            /T,E
01514  2222          2222            /R,R
01515  2520          2520            /U,P
01516  2456          2456            /T,.
01517  0015          0015            /CR
01520  0001          0001            /END CODE
01521  0037  MARKER, 0037
01522  0040          0040
01523  0040          0040
01524  0037          0037
01525  0000          0000
01526  0077          0077
01527  0011          0011
01530  0011          0011
01531  0006          0006
01532  0015  RSPD,   0015            /CR
01533  0012          0012            /LF
01534  4022          4022            /SP,R
01535  0422          0422            /D,R
01536  4023          4023            /SP,S
01537  2005          2005            /P,E
01540  0504          0504            /E,D
01541  4000          4000            /SP
01542  0100          0100            /END CODE
01543  0015  PSPD,   0015            /CR

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-28

01544  0012          0012            /LF
01545  4020          4020            /SP,P
01546  0310          0310            /C,H
01547  4023          4023            /SP,S
01550  2005          2005            /P,E
01551  0504          0504            /E,D
01552  4000          4000            /SP
01553  0100          0100            /END CODE
01554  4003  CPS,    4003            /SP,C
01555  2023          2023            /P,S
01556  0015          0015            /CR
01557  0001          0001            /END CODE
01560  0015  WRTN,   0015            /CR
01561  0012          0012            /LF
01562  4000          4000            /SP
01563  0711          0711            /BELL,I
01564  1603          1603            /N,C
01565  1722          1722            /O,R
01566  2205          2205            /R,E
01567  0324          0324            /C,T
01570  4022          4022            /SP,R
01571  2416          2416            /T,N
01572  4023          4023            /SP,S
01573  0514          0514            /E,L
01574  0503          0503            /E,C
01575  2405          2405            /T,E
01576  0456          0456            /D,.
01577  0015          0015            /CR
01600  0001          0001            /END CODE
01601  4023  SBWAS,  4023            /SP,S
01602  5702          5702            /"/",B
01603  4040          4040            /SP,SP
01604  4040  SB,     4040            /SP,SP
01605  4040          4040            /SP,SP
01606  4040          4040            /SP,SP
01607  2701          2701            /W,A
01610  2340          2340            /S,SP
01611  4040  WAS,    4040            /SP,SP
01612  4040          4040            /SP,SP
01613  0015          0015            /CR
01614  0001          0001            /END CODE
01615  0015  TDOMSG, 0015            /CR
01616  0012          0012            /LF
01617  7005          7005            /8,E
01620  4040          4040            /SP,SP
01621  2331          2331            /SY
01622  2324          2324            /ST
01623  0515          0515            /EM
01624  5640          5640            /.,SP
01625  2305          2305            /SE
01626  2440          2440            /T,SP
01627  2411          2411            /TI
01630  1505          1505            /ME
01631  4004          4004            /SP,D
01632  0514          0514            /EL

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-29

01633  0131          0131            /AY
01634  4003          4003            /SP,C
01635  1716          1716            /ON
01636  2324          2324            /ST
01637  0116          0116            /AN
01640  2440          2440            /T,SP
01641  1116          1116            /IN
01642  4023          4023            /SP,S
01643  2256          2256            /R,.
01644  0015          0015            /CR
01645  0012          0012            /LF
01646  2205          2205            /RE
01647  0605          0605            /FE
01650  2240          2240            /R,SP
01651  2417          2417            /TO
01652  4020          4020            /SP,P
01653  0107          0107            /AG
01654  0523          0523            /ES
01655  4062          4062            /SP,2
01656  4001          4001            /SP,A
01657  1604          1604            /ND
01660  4063          4063            /SP,3
01661  4017          4017            /SP,O
01662  0640          0640            /F,SP
01663  2022          2022            /PR
01664  0740          0740            /G,SP
01665  1411          1411            /LI
01666  2324          2324            /ST
01667  1116          1116            /IN
01670  0756          0756            /G.
01671  0001          0001            /END
       2000  PAGE
             /PRGRAM 0, BASIC READER AND READER LOGIC CONTROL TEST
             /
02000  4475  PRG0,   SETLOC          /SET KSTART TO
02001  0020          KSTART          /INITIAL ROUTINE
02002  2010          P0T0            /ADDRESS
02003  4475          SETLOC          /SET SR MSAK
02004  0105          SRMSK
02005  7717          7717
02006  5607          JMP I .+1       /SET STARTED
02007  0241          SRSET
02010  0000  P0T0,   0
02011  2036          P0T1
             /CHECKS THAT FLAG=1 250MS AFTER RFC (IOT014), INDICATING THAT
             /READER IS ADVANCING
02012  4477          SETA            /-200 TO CTRA
02013  7470          -310
02014  4501          SETDLM          /-250 TO DELAY
02015  7406          -372
02016  6014  P0T0A,  RFC             /CLEAR FLAG, FETCH CHAR (IOT014)
02017  4502          DELAY           /DELAY 75MS
02020  6011          RSF             /SKIP IF FLAG=1 (IOT011)
02021  5225          JMP P0E0
02022  2122          ISZ CTRA        /DONE?

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-30

02023  5216          JMP P0T0A       /NO, REPEAT
02024  5425          JMP I CHAIN     /YES, CHAIN
02025  4451  P0E0,   JMS I UERROR    /GO TO ERROR SUBROUTINE
02026  4040          NOSUF           /NO PRINTOUT SUFFIX
02027  0000          NONE            /NO PRINTOUT
02030  5222          JMP P0T0A+4     /CONTINUE TEST
02031  4501  P0T0S,  SETDLM          /SCOPE LOOP
02032  7764          -14
02033  6014          RFC             /FETCH CHAR (IOT014)
02034  4502          DELAY           /DELAY 12 MS
02035  5233          JMP .-2
02036  0001  P0T1,   1
02037  2064          P0T2
             /WITH FLAG=1, SKIP ON FLAG 4095 TIMES TO CHECK FOR RELIABLE SKIPPING
02040  4477          SETA            /-4095 TO CTRA
02041  0001          -7777
02042  6014          RFC             /FETCH CHAR (IOT014)
02043  6011          RSF             /SKIP ON FLAG (IOT011)
02044  5243          JMP .-1         /REPEAT
02045  6011  P0T1A,  RSF             /SKIP ON FLAG (IOT011)
02046  5252          JMP P0E1        /ERROR
02047  2122          ISZ CTRA        /DONE 4095 TIMES?
02050  5245          JMP P0T1A       /NO, REPEAT TEST
02051  5425          JMP I CHAIN     /YES, CHAIN
02052  4451  P0E1,   JMS I UERROR    /GO TO ERROR SUBROUTINE
02053  4040          NOSUF           /NO PRINTOUT SUFFIX
02054  0000          NONE            /NO PRINTOUT
02055  5247          JMP P0T1A+2     /CONTINUE TEST
02056  6014  P0T1S,  RFC             /START SCOPE LOOP. FETCH CHAR (IOT014)
02057  6011          RSF             /SKIP ON FLAG (IOT011)
02060  5257          JMP .-1         /REPEAT
02061  6011          RSF             /SKIP ON FLAG (IOT011)
02062  5261          JMP .-1         /REPEAT
02063  5261          JMP .-2         /REPEAT
02064  0002  P0T2,   2
02065  2105          P0T3
             /CHECKS THAT IOT011 DOES NOT SKIP WITH FLAG=0
02066  4477          SETA            /-4095 TO CTRA
02067  0001          -7777
02070  6012          RRB             /CLEAR FLAG
02071  6011  P0T2A,  RSF             /SKIP ON FLAG=1 (IOT011)
02072  5302          JMP P0T2OK      /OK
02073  4451  P0E2,   JMS I UERROR    /ERROR, GO TO ERROR SUB
02074  4040          NOSUF           /NO PRINTOUT SUFFIX
02075  0000          NONE            /NO PRINTOUT
02076  5302          JMP P0T2OK      /CONTINUE TEST
02077  6011  P0T2S,  RSF             /START SCOPE LOOP, SKIP ON FLAG
02100  5277          JMP .-1         /REPEAT
02101  5277          JMP .-2         /REPEAT
02102  2122  P0T2OK, ISZ CTRA        /DONE 4095 TIMES?
02103  5271          JMP P0T2A       /NO, REPEAT
02104  5425          JMP I CHAIN     /YES, CHAIN
             /
             /ROUTINE TO CHECK FOR SKIP WITH INTERRUPT DISABLED
02105  0003  P0T3,   3

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-31

02106  2200          P0T4
02107  1377          TAD (4000
02110  3022          DCA COUNT
02111  1376          TAD (7773
02112  3136          DCA CTR
02113  6002          IOF
02114  7200          CLA
02115  3135          DCA MILLI
02116  2135          ISZ MILLI
02117  5316          JMP .-1
02120  2136          ISZ CTR
02121  5316          JMP .-3
02122  1375          TAD (2260       /4.56 MS CONSTANT
02123  3134          DCA DELTIM
02124  6007          CAF
02125  6014          RCF             /READ
02126  4351          JMS TIM
02127  6011  P0T3A,  RSF             /SKIP IF READER FLAG SET
02130  5337          JMP P0E3        /FLAG DID NOT SET
02131  6010          RPE             /ENABLE INTERRUPT
02132  6003          SRQ             /SHOULD SKIP HERE IF INT REQ
02133  5337          JMP P0E3        /REPORT ERROR
02134  2022          ISZ COUNT
02135  5311          JMP P0T3+4
02136  5425          JMP I CHAIN
02137  4451  P0E3,   JMS I UERROR
02140  4040          NOSUF
02141  0000          NONE
02142  5311          JMP P0T3+4
02143  6002  P0T3S,  IOF
02144  6011          RSF
02145  5344          JMP .-1
02146  6011          RSF
02147  5346          JMP .-1
02150  5346          JMP .-2
02151  0000  TIM,    0
02152  2134          ISZ DELTIM
02153  5352          JMP .-1
02154  5751          JMP I TIM
02175  2260
02176  7773
02177  4000
       2200  PAGE
             /
             /ROUTINE TO CHECK THAT INTERRUPT ENABLE CAN BE CLEARED FOR READER
02200  0004  P0T4,   4
02201  2400          P0T5
02202  6002          IOF
02203  1234          TAD R7770
02204  3235          DCA RCNT2       /INIT # OF ITERATIONS
02205  6007  RLOOP,  CAF
02206  6010          RPE             /ENABLE INTERRUPT
02207  6020          PCE             /DISABLE INTERRUPT
02210  6001          ION
02211  6014          RCF             /READ

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-32

02212  6000          SKON
02213  5224          JMP P0E4        /INTERRUPT NOT ON
02214  6003          SRQ             /SKIP IF INT REQ GENERATED
02215  7410          SKP             /NO INT REQ
02216  5224          JMP P0E4        /INT REQ GENERATED
02217  2022          ISZ COUNT       /RELIABILITY SETUP
02220  5205  P0T4A,  JMP RLOOP       /CONTINUE
02221  2235          ISZ RCNT2
02222  5205          JMP RLOOP
02223  5425          JMP I CHAIN
02224  4451  P0E4,   JMS I UERROR
02225  4040          NOSUF
02226  0000          NONE
02227  5425          JMP I CHAIN
02230  6010  P0T4S,  RPE
02231  4502          DELAY
02232  6020          PCE
02233  5230          JMP .-3
02234  7770  R7770,  7770
02235  7770  RCNT2,  7770
       2400  PAGE
02400  0005  P0T5,   5
02401  2430          P0T6
             /CHECKS IOT012 (RRB) FOR ABILITY TO CLEAR FLAG
02402  4477          SETA            /-500 TO CTRA
02403  7014          -764
02404  6014  P0T5A,  RFC             /FETCH CHAR (IOT014)
02405  6011          RSF             /WAIT FOR FLAG=1
02406  5205          JMP .-1
02407  6012          RRB             /CLEAR FLAG (IOT012)
02410  6011          RSF             /SKIP ON FLAG=1
02411  5225          JMP P0T5B       /OK
02412  4451  P0E5,   JMS I UERROR    /ERROR, GO TO ERROR SUB
02413  4040          NOSUF
02414  0000          NONE
02415  5225          JMP P0T5B       /CONTINUE TEST
02416  6014  P0T5S,  RFC             /START SCOPE LOOP, FETCH CHAR
02417  6011          RSF             /WAIT FOR FLAG=1
02420  5217          JMP .-1
02421  6012          RRB             /CLEAR FLAG (IOT012)
02422  6011          RSF             /SKIP IF FLAG=1
02423  5216          JMP .-5         /NO, IOT012 CLEARED IT, READ AGAIN
02424  5221          JMP .-3         /IOT012 FAILED, REPEAT
02425  2122  P0T5B,  ISZ CTRA        /DONE?
02426  5204          JMP P0T5A       /NO, REPEAT
02427  5425          JMP I CHAIN     /YES, CHAIN

02430  0006  P0T6,   6
02431  2600          P0T7
             /CHECKS THAT IOT014 CLEARS FLAG
02432  4477          SETA            /-500 TO CTRA
02433  7014          -764
02434  6014          RFC             /FETCH CLEAR (IOT014)
02435  6011  P0T6A,  RSF             /WAIT FOR FLAG=1
02436  5235          JMP .-1

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-33

02437  6014          RFC             /CLEAR FLAG WITH IOT014
02440  6011          RSF             /SKIP ON FLAG=1
02441  5253          JMP P0T6B       /OK, FLAG IS OFF
02442  4451  P0E6,   JMS I UERROR    /ERROR, FLAG=1, GO TO ERROR SUB
02443  4040          NOSUF
02444  0000          NONE
02445  5253          JMP P0T6B
02446  4502  P0T6S,  DELAY           /START SCOPE LOOP, DELAY 20 MS
02447  6014          RFC             /FETCH CHAR (IOT014)
02450  6011          RSF             /WAIT FOR FLAG=1
02451  5250          JMP .-1
02452  5247          JMP .-3         /GO CLEAR FLAG AND FETCH CHAR
02453  2122  P0T6B,  ISZ CTRA        /DONE?
02454  5235          JMP P0T6A       /NO, REPEAT
02455  5425          JMP I CHAIN     /YES, CHAIN
       2600  PAGE

02600  0007  P0T7,   7
02601  2637          P0T10
             /CHECKS ABILITY TO READ ALL 0'S CHARACTERS
02602  4477          SETA            /-500 TO CTRA
02603  7014          -764
02604  6014  P0T7A,  RFC             /FETCH CHAR (IOT014)
02605  6011          RSF             /WAIT FOR FLAG=1
02606  5205          JMP .-1
02607  7200          CLA
02610  6012          RRB             /READ BUFFER
02611  3236          DCA P0T7WB      /SAVE
02612  1236          TAD P0T7WB
02613  7640          SZA CLA         /RESULT 0?
02614  5220          JMP P0E7        /ERROR, DID NOT READ 0'2 CHAR
02615  2122  P0T7B,  ISZ CTRA        /DONE?
02616  5204          JMP P0T7A       /NO, REPEAT
02617  5425          JMP I CHAIN     /YES, CHAIN
02620  4452  P0E7,   JMS I UASCCN
02621  2635          P0T7WA
02622  1604          SB
02623  4452          JMS I UASCCN
02624  2636          P0T7WB
02625  1611          WAS
02626  4451          JMS I UERROR
02627  4040          NOSUF
02630  1601          SBWAS
02631  5215          JMP P0T7B
02632  7200  P0T7S,  CLA
02633  6012          RRB
02634  5232          JMP .-2
02635  0000  P0T7WA, 0000
02636  0000  P0T7WB, 0000

02637  0010  P0T10,  10
02640  2717          P0T11
             /CHECKS ABILITY OF READER FLAG TO CAUSE AN INTERRUPT
02641  4475          SETLOC          /SET INTERRUPT TO RETURN TO
02642  0002          2               /P0E10A

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-34

02643  2654          P0E10A
02644  6032  P0T10A, KCC             /CLEAR TTY READER FLAG
02645  6042          TCF             /CLEAR TTY PRINTER FLAG
02646  6022          PCF             /CLEAR PUNCH FLAG
02647  6012          RRB             /CLEAR READER FLAG
02650  6001          ION             /ENABLE INTERRUPT
02651  7000          NOP             /NO OP
02652  6002          IOF             /TURN OFF INTERRUPT
02653  5261          JMP P0T10B
02654  4451  P0E10A, JMS I UERROR    /GO TO ERROR SUB
02655  0140          A               /SUFFIX A
02656  0000          NONE            /NO PRINTOUT
02657  5244          JMP P0T10A      /REPEAT TEST
02660  5244          JMP P0T10A      /REPEAT TEST
02661  4477  P0T10B, SETA            /-4095 TO CTRA
02662  0001          -7777
02663  4475          SETLOC          /SET INTERRUPT RETURN TO
02664  0002          2               /P0T10E
02665  2713          P0T10E
02666  6010          RPE             /SET INTERRUPT ENABLE
02667  6014          RFC             /FETCH CHAR (IOT014)
02670  6011          RSF             /WAIT FOR FLAG=1
02671  5270          JMP .-1
02672  6001  P0T10C, ION             /ENABLE INTERRUPT
02673  7000          NOP
02674  6002          IOF             /TURN OFF INTERRUPT
02675  4451          JMS I UERROR    /GO TO ERROR SUB
02676  0240          B               /SUFFIX B
02677  0000          NONE
02700  5313          JMP P0T10E      /CONTINUE TEST
02701  4475  P0T10S, SETLOC          /SET INTERRUPT RETURN TO
02702  0002          2               /P0T10D
02703  2712          P0T10D
02704  6014          RFC             /FETCH CLEAR
02705  6011          RSF             /WAIT FOR FLAG=1
02706  5305          JMP .-1
02707  6001          ION             /ENABLE INTERRUPT
02710  7000          NOP
02711  5307          JMP .-2
02712  5307  P0T10D, JMP .-3
02713  2122  P0T10E, ISZ CTRA        /DONE?
02714  5272          JMP P0T10C      /NO, REPEAT
02715  6020          PCE             /CLEAR INTERRUPT ENABLE
02716  5425          JMP I CHAIN     /YES, CHAIN
             /STOP DELAY TEST
02717  0011  P0T11,  11
02720  7777          7777            /LAST TEST
02721  4477          SETA            /-200 TO CTRA
02722  7470          -310
02723  4373  P0T11A, JMS DLY250      /INITIAL DELAY
02724  4501          SETDLM          /-19 TO DELAYM
02725  7755          -23
02726  6014          RFC             /FETCH CHAR
02727  6011          RSF             /WAIT FOR FLAG
02730  5327          JMP .-1

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-35

02731  4502          DELAY           /DELAY 19 MS TO CAUSE
02732  6014          RFC             /"STOP DELAY" TO FIRE, FETCH CHAR
02733  4502          DELAY           /DELAY 19 MORE MS
02734  6011          RSF             /CHECK FLAG
02735  5343          JMP P0T11B      /FLAG NOT UP, OK
02736  4451          JMS I UERROR    /ERROR, FLAG SHOULD NOT BE UP
02737  0140          A               /38 MS AFTER "STOP DELAY"
02740  0000          NONE            /FIRES
02741  5323          JMP P0T11A      /CONTINUE TEST
02742  5355          JMP P0T11S      /GO TO SCOPE LOOP
02743  4366  P0T11B, JMS DLY212      /DELAY ADDITIONAL 212 MS
02744  6011          RSF             /FLAG UP?
02745  5351          JMP .+4         /NO, ERROR
02746  2122  P0T11C, ISZ CTRA        /DONE 500 TIMES?
02747  5323          JMP P0T11A      /NO, REPEAT
02750  5425          JMP I CHAIN     /YES, CHAIN
02751  4451          JMS I UERROR    /ERROR, FLAG NOT UP 250 MS
02752  0240          B               /AFTER "STOP DELAY" FIRED
02753  0000          NONE
02754  5346          JMP P0T11C
02755  4501  P0T11S, SETDLM          /SET DELAYM FOR 15 MS
02756  7761          -17
02757  6014          RFC             /FETCH CHAR
02760  5357          JMP .-1         /FLAG 1?
02761  4502          DELAY           /YES DELAY 15 MS
02762  6014          RFC             /FETCH CHAR
02763  6011          RSF             /WAIT FOR FLAG
02764  5363          JMP .-1
02765  5361          JMP .-4         /REPEAT
02766  0000  DLY212, 0
02767  4501          SETDLM          /-212 TO DELAYM
02770  7454          -324
02771  4502          DELAY
02772  5766          JMP I DLY212
02773  0000  DLY250, 0
02774  4501          SETDLM          /DELAY 250 MS
02775  7406          -372
02776  4502          DELAY
02777  5773          JMP I DLY250

       3000  PAGE
             /PROGRAM 1, BASIC PUNCH AND CONTROL LOGIC TEST
             /
03000  4475  PRG1,   SETLOC          /SET KSTART TO
03001  0020          KSTART          /INITIAL ROUTINE
03002  3010          P1T0            /ADDRESS
03003  4475          SETLOC
03004  0105          SRMSK
03005  7717          7717
03006  5607          JMP I .+1       /GET STARTED
03007  0241          SRSET
03010  0000  P1T0,   0
03011  3032          P1T1
             /CHECKS THAT PSF (IOT021) DOES NOT SKIP WITH FLAG=0
03012  4477          SETA            /-4095 TO CTRA

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-36

03013  0001          -7777
03014  6022  P1T0A,  PCF             /CLEAR FLAG
03015  6021          PSF             /SKIP IF FLAG=1
03016  5227          JMP P1T0B       /NO SKIP, OK
03017  4451  P1E0,   JMS I UERROR    /SKIP ERROR, GO TO ERROR SUB
03020  4040          NOSUF           /NO SUFFIX
03021  0000          NONE            /NO PRINTOUT
03022  5227          JMP P1T0B       /CONTINUE TEST
03023  6022  P1T0S,  PCF             /CLEAR FLAG
03024  6021          PSF             /SKIP IF FLAG=1
03025  5224          JMP .-1
03026  5224          JMP .-2
03027  2122  P1T0B,  ISZ CTRA        /DONE?
03030  5214          JMP P1T0A       /NO, REPEAT
03031  5425          JMP I CHAIN     /YES, CHAIN
03032  0001  P1T1,   1
03033  3063          P1T2
             /CHECKS THAT PSF (IOT021) SKIPS WITH FLAG=1
03034  4477          SETA            /-4095 TO CTRA
03035  0001          -7777
03036  4501          SETDLM          /-4095 TO DELAYM
03037  0001          -7777
03040  7300          CLA CLL
03041  6022          PCF             /CLEAR PUNCH FLAG, LOAD BUFFER
03042  6024          PPC             /LOAD BUFFER AND PUNCH
03043  4502          DELAY
03044  6021  P1T1A,  PSF             /SKIP IF FLAG=1, SHOULD BE 1
03045  5251          JMP P1E1        /NO SKIP, ERROR
03046  2122  P1T1B,  ISZ CTRA        /DONE?
03047  5244          JMP P1T1A       /NO, REPEAT
03050  5425          JMP I CHAIN     /YES, CHAIN
03051  4451  P1E1,   JMS I UERROR    /GO TO ERROR SUB
03052  4040          NOSUF
03053  0000          NONE
03054  5246          JMP P1T1B       /CONTINUE TEST
03055  7200  P1T1S,  CLA
03056  6022          PCF             /CLEAR FLAG AND BUFFER
03057  6024          PPC             /LOAD AND PUNCH
03060  6021          PSF             /SKIP IF FLAG
03061  5260          JMP .-1
03062  5260          JMP .-2
03063  0002  P1T2,   2
03064  3115          P1T3
             /CHECKS THAT PCF (IOT022) IS ABLE TO CLEAR FLAG
03065  4477          SETA            /-500 TO CTRA
03066  7014          -764
03067  7200  P1T2A,  CLA
03070  6026          PLS             /CLEAR, LOAD AND PUNCH
03071  6021          PSF             /WAIT FOR FLAG
03072  5271          JMP .-1
03073  6022          PCF             /CLEAR FLAG (IOT022)
03074  6021          PSF             /SKIP IF FLAG=1
03075  5312          JMP P1T2B       /NO SKIP OK
03076  4451  P1E2,   JMS I UERROR    /SKIP ERROR, GO TO ERROR SUB
03077  4040          NOSUF

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-37

03100  0000          NONE
03101  5312          JMP P1T2B       /CONTINUE TEST
03102  7200  P1T2S,  CLA
03103  6026          PLS             /CLEAR LOAD AND PUNCH
03104  6021          PSF             /WAIT FOR FLAG
03105  5304          JMP .-1
03106  6022          PCF             /CLEAR FLAG
03107  6021          PSF             /SKIP IF FLAG
03110  5302          JMP .-6         /CLEARED
03111  5306          JMP .-3         /NOT CLEARED
03112  2122  P1T2B,  ISZ CTRA        /DONE?
03113  5267          JMP P1T2A       /NO, REPEAT
03114  5425          JMP I CHAIN     /YES, CHAIN
             /ROUTINE TO CHECK FOR SKIP WITH INTERRUPT DISABLED
03115  0003  P1T3,   3
03116  3200          P1T4
03117  1377          TAD (4000
03120  3022          DCA COUNT
03121  1376          TAD (7773
03122  3136          DCA CTR
03123  6002          IOF
03124  7200          CLA
03125  3135          DCA MILLI
03126  2135          ISZ MILLI
03127  5326          JMP .-1
03130  2136          ISZ CTR
03131  5326          JMP .-3
03132  1375          TAD (0001
03133  3134          DCA DELTIM
03134  6007          CAF
03135  6024          PPC             /PUNCH
03136  4361          JMS TIM1
03137  6021  P1T3A,  PSF             /SKIP IF PUNCH FLAG
03140  5347          JMP P1E3
03141  6010          RPE             /R/P INTERRUPT ON
03142  6003          SRQ             /SHOULD SKIP HERE FOR INT REQ
03143  5347          JMP P1E3        /REPORT ERROR
03144  2022          ISZ COUNT
03145  5321          JMP P1T3+4
03146  5425          JMP I CHAIN
03147  4451  P1E3,   JMS I UERROR
03150  4040          NOSUF
03151  0000          NONE
03152  5321          JMP P1T3+4
03153  6002  P1T3S,  IOF
03154  6021          PSF
03155  5354          JMP .-1
03156  6011          RSF
03157  5356          JMP .-1
03160  5356          JMP .-2
03161  0000  TIM1,   0               /44 MS TIME OUT
03162  2134          ISZ DELTIM
03163  5362          JMP .-1
03164  1374          TAD (0500
03165  3134          DCA DELTIM

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-38

03166  2134          ISZ DELTIM
03167  5366          JMP .-1
03170  2134          ISZ DELTIM
03171  5370          JMP .-1
03172  5761          JMP I TIM1
03174  0500
03175  0001
03176  7773
03177  4000
       3200  PAGE
             /ROUTINE TO CHECK THAT INTERRUPT ENABLE CAN BE CLEARED FOR PUNCH
03200  0004  P1T4,   4
03201  3234          P1T5
03202  6002          IOF
03203  1302          TAD P7770
03204  3301          DCA PCNT2       /INT COUNTER
03205  6007  PLOOP,  CAF
03206  6010          RPE             /ENABLE INTERRUPT
03207  6020          PCE             /CLEAR INTERRUPT
03210  6001          ION
03211  6024          PPC             /PUNCH
03212  6000          SKON
03213  5224          JMP P1E4        /ERROR , NO ION
03214  6003          SRQ             /SKIP IF INT REQ GENERATED
03215  7410          SKP             /NO INT REQ
03216  5224          JMP P1E4        /ERROR, INT REQ GENERATED
03217  2022          ISZ COUNT       /RELIABILITY SETUP
03220  5205  P1T4A,  JMP PLOOP
03221  2301          ISZ PCNT2
03222  5205          JMP PLOOP
03223  5425          JMP I CHAIN
03224  4451  P1E4,   JMS I UERROR
03225  4040          NOSUF
03226  0000          NONE
03227  5425          JMP I CHAIN
03230  6010  P1T4S,  RPE
03231  4502          DELAY
03232  6020          PCE
03233  5230          JMP .-3
03234  0005  P1T5,   5
03235  3251          P1T6
             /USED TO CHECK ABILITY OF IOT022 TO CLEAR BUFFER. VISUAL CHECK
03236  4477          SETA            /-500 TO CTRA
03237  7014          -764
03240  7240  P1T5A,  CLA CMA         /7777 TO AC
03241  6026          PLS             /CLEAR, LOAD AND PUNCH
03242  7200          CLA
03243  6026          PLS             /CLEAR BUFFER CONTENTS PRIOR TO PUNCHING
03244  6021          PSF
03245  5244          JMP .-1
03246  2122          ISZ CTRA        /DONE?
03247  5240          JMP P1T5A       /NO, REPEAT
03250  5425          JMP I CHAIN     /YES, CHAIN
03251  0006  P1T6,   6
03252  3265          P1T7

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-39

             /CHECKS ABILITY OF IOT024 TO SET BUFFER TO 125 AND PUNCH IT
03253  4477          SETA            /-500 TO CTRA
03254  7014          -764
03255  7200  P1T6A,  CLA
03256  1152          TAD [125
03257  6026          PLS             /CLEAR, LOAD AND PUNCH
03260  6021          PSF             /WAIT FOR FLAG
03261  5260          JMP .-1
03262  2122          ISZ CTRA        /DONE?
03263  5255          JMP P1T6A       /NO, REPEAT
03264  5425          JMP I CHAIN     /YES, CHAIN
03265  0007  P1T7,   7
03266  3400          P1T10
             /CHECKS ABILITY OF IOT024 TO SET BUFFER TO 252 AND PUNCH IT
03267  4477          SETA            /-500 TO CTRA
03270  7014          -764
03271  7200  P1T7A,  CLA
03272  1151          TAD [252
03273  6026          PLS             /CLEAR, LOAD AND PUNCH
03274  6021          PSF             /WAIT FOR FLAG
03275  5274          JMP .-1
03276  2122          ISZ CTRA        /DONE?
03277  5271          JMP P1T7A       /NO, REPEAT
03300  5425          JMP I CHAIN     /YES, CHAIN
03301  7770  PCNT2,  7770
03302  7770  P7770,  7770
       3400  PAGE
03400  0010  P1T10,  10
03401  7777          7777            /END OF TESTS
             /CHECKS ABILITY OF PUNCH FLAG TO CAUSE AN INTERRUPT
03402  4475          SETLOC          /SET INTERRUPT RETURN
03403  0002          2               /TO P1E10A
03404  3415          P1E10A
03405  6032  P1T10A, KCC             /CLEAR TTY READER
03406  6042          TCF             /CLEAR TTY PUNCH
03407  6012          RRB             /CLEAR READER
03410  6022          PCF             /CLEAR PUNCH
03411  6001          ION             /ENABLE INTERRUPT
03412  7000          NOP
03413  6002          IOF             /TURN OFF INTERRUPT
03414  5222          JMP P1T10B
03415  4451  P1E10A, JMS I UERROR
03416  0140          A
03417  0000          NONE
03420  5205          JMP P1T10A
03421  5205          JMP P1T10A
03422  4477  P1T10B, SETA            /-4095 TO CTRA
03423  0001          -7777
03424  4475          SETLOC          /SET INTERRUPT RETURN
03425  0002          2               /TO P1T10E
03426  3456          P1T10E
03427  7200          CLA
03430  6010          RPE             /SET INTERRUPT ENABLE
03431  6026          PLS             /CLEAR, LOAD AND PUNCH
03432  6021          PSF             /WAIT FOR FLAG

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-40

03433  5232          JMP .-1
03434  6001  P1T10C, ION
03435  7000          NOP
03436  6002          IOF
03437  4451  P1E10B, JMS I UERROR
03440  0240          B
03441  0000          NONE
03442  5256          JMP P1T10E
03443  4475  P1T10S, SETLOC          /SET INTERRUPT RETURN
03444  0002          2               /TO P1T10D
03445  3455          P1T10D
03446  7200          CLA
03447  6026          PLS             /CLEAR, LOAD AND PUNCH
03450  6021          PSF             /WAIT FOR FLAG
03451  5250          JMP .-1
03452  6001          ION             /ENABLE INTERRUPT
03453  7000          NOP
03454  5252          JMP .-2
03455  5252  P1T10D, JMP .-3
03456  2122  P1T10E, ISZ CTRA        /DONE?
03457  5234          JMP P1T10C      /NO, REPEAT
03460  6020          PCE             /CLEAR INTERRUPT ENABLE
03461  5425          JMP I CHAIN     /YES, CHAIN
             /PROGRAM 2, READER TEST, SPECIAL BINARY COUNT PATTERN
03462  4475  PRG2,   SETLOC          /SET SR
03463  0105          SRMSK           /MASK TO
03464  0460          0460            /0460
03465  4464  P2A,    JMS I SYNC      /SYNC READER
03466  4477          SETA
03467  7773          -5
03470  4463  P2B,    JMS I CRCNT     /GET RANDOM CHAR
03471  3123          DCA CTRB        /COUNT IN CTRB
03472  4467  P2C,    JMS I GETPT     /GET BINARY CHAR
03473  3462          DCA I UTSB      /STORE IT
03474  4455          JMS I UTREAD    /GO READ CHAR
03475  4461          JMS I UTCHK     /GO CHECK IT
03476  5303          JMP P2E         /ERROR
03477  2123  P2D,    ISZ CTRB        /GROUP DONE?
03500  5272          JMP P2C         /NO
03501  4563          JMS I [STALL    /YES, STALL
03502  5270          JMP P2B         /REPEAT
03503  2122  P2E,    ISZ CTRA        /5 ERRORS?
03504  5277          JMP P2D         /NO, CONTINUE
03505  5265          JMP P2A         /RESYNC
             /
             /PROGRAM 3, PUNCH TEST, SPECIAL BINARY COUNT PATTERN
03506  4460  PRG3,   JMS I UMARK     /MARK TAPE
03507  4457          JMS I UPLDR     /PUNCH LEADER
03510  4466          JMS I INPATT    /INITIALIZE BINARY PATTERN
03511  1150          TAD [60
03512  3105          DCA SRMSK
03513  4467  P3A,    JMS I GETPT     /GET BINARY CHAR
03514  4456          JMS I UTPCH     /PUNCH IT
03515  4563          JMS I [STALL
03516  5313          JMP P3A

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-41

             /PROGRAM 4, PUNCH VERIFY, SPECIAL BINARY COUNT PATTERN
03517  4466  PRG4,   JMS I INPATT    /INITIALIZE BINARY PATTERN
03520  4475          SETLOC          /400 TO
03521  0105          SRMSK           /TO SR MASK
03522  0400          0400
03523  4467          JMS I GETPT     /GET BINARY CHAR
03524  3462          DCA I UTSB      /STORE IT
03525  4455          JMS I UTREAD    /READ CHARACTER
03526  7440          SZA             /ZERO?
03527  5334          JMP P4B         /NO
03530  5325          JMP .-3         /YES, REPEAT READ
03531  4467  P4A,    JMS I GETPT     /GET BINARY CHAR
03532  3462          DCA I UTSB      /STORE IT
03533  4455          JMS I UTREAD    /READ CHAR
03534  4461  P4B,    JMS I UTCHK     /GO CHECK IT
03535  7000          NOP
03536  5331          JMP P4A         /REPEAT
             /PROGRAM 5, PUNCH TEST, RANDOM CHARACTER PATTERN
03537  4460  PRG5,   JMS I UMARK     /MARK TAPE
03540  4457          JMS I UPLDR     /PUNCH LEADER
03541  4474          JMS I UMOVE     /INITIALIZE RANDOM
03542  1247          SEED1           /CHARACTER ROUTINE
03543  1251          RANP1
03544  7774          -4
03545  1150          TAD [60
03546  3105          DCA SRMSK
03547  4453  P5A,    JMS I ULPRGN    /GET RANDOM CHAR
03550  4456          JMS I UTPCH     /PUNCH IT
03551  4563          JMS I [STALL
03552  5347          JMP P5A         /REPEAT
             /PROGRAM 6, PUNCH VERIFY, RANDOM CHARACTER PATTERN
03553  4474  PRG6,   JMS I UMOVE     /INITIALIZE RANDOM
03554  1247          SEED1           /CHARACTER ROUTINE
03555  1251          RANP1
03556  7774          -4
03557  4475          SETLOC          /400 TO
03560  0105          SRMSK           /SR MASK
03561  0400          0400
03562  4454          JMS I ULRRGN    /GET RANDOM CHAR
03563  3462          DCA I UTSB      /STORE IT
03564  4455          JMS I UTREAD    /READ CHAR
03565  7440          SZA             /ZERO?
03566  5373          JMP P6B         /NO
03567  5364          JMP .-3
03570  4454  P6A,    JMS I ULRRGN    /GET RANDOM CHAR
03571  3462          DCA I UTSB      /STORE IT
03572  4455          JMS I UTREAD    /READ CHAR
03573  4461  P6B,    JMS I UTCHK     /GO CHECK IT
03574  7000          NOP             /ERROR
03575  5370          JMP P6A
       3600  PAGE
             /PROGRAM 7, COMBINES READER-PUNCH TEST, SPECIAL BINARY COUNT PATTERN
03600  4475  PRG7,   SETLOC          /SET SR MASK TO 0460
03601  0105          SRMSK
03602  0460          0460

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-42

03603  4475          SETLOC
03604  0104          DLYMSK
03605  0077          77
03606  4466          JMS I INPATT    /INITIALIZE BINARY PATTERN
03607  2133          ISZ ACTIND      /SET ACTIVE INDICATOR
03610  4475          SETLOC          /SET INTERRUPT
03611  0002          2               /SERVIE ADDRESS
03612  0703          INTSVC
03613  4475          SETLOC          /SET PUNCH SERVICE ADDRESS
03614  0716          PVCTR
03615  3624          PBIN
03616  4475          SETLOC          /SET READER SERVICE ADDRESS
03617  0711          RVCTR
03620  3671          WNZERO
03621  4246          JMS CPCH        /PUNCH CHAR
03622  6001          ION             /ENABLE INTERRUPT
03623  5223          JMP .           /IDLE
03624  2132  PBIN,   ISZ PCHCNT      /INCREMENT PUNCH COUNT
03625  1132          TAD PCHCNT      /COMPARE PUNCH COUNT
03626  1147          TAD [-144       /TO 100
03627  7710          SPA CLA         /GREATER THAN 100?
03630  5233          JMP .+3         /NO, OK
03631  7402          HLT             /YES, ERROR HALT
03632  5231          JMP .-1
03633  4246          JMS CPCH        /PUNCH BIN CHAR
03634  1127          TAD RBUSY
03635  7640          SZA CLA         /READER BUSY?
03636  5503          OUT             /YES, EXIT
03637  1132          TAD PCHCNT      /GET PUNCH COUNT
03640  1146          TAD [-12        /SUBTRACT SLACK COUNT
03641  7710          SPA CLA         /POSITIVE?
03642  5503          OUT             /NO, EXIT
03643  6014          RFC             /YES, START READER
03644  2127          ISZ RBUSY       /SET READER BUSY
03645  5503          OUT             /EXIT
03646  0000  CPCH,   0
03647  4470          JMS I GETPTR    /GET BIN CHAR
03650  6026          PLS             /ENABLE PUNCH
03651  7200          CLA             /CLEAR AC
03652  5646          JMP I CPCH      /EXIT
03653  0000  CREAD,  0
03654  7200          CLA
03655  6012          RRB             /READ CHAR
03656  3131          DCA TCHKW       /STORE IT
03657  1132          TAD PCHCNT      /GET PUNCH COUNT
03660  1145          TAD [-1         /MINUS 1
03661  3132          DCA PCHCNT      /STORE IT
03662  1132          TAD PCHCNT
03663  7640          SZA CLA         /0?
03664  5267          JMP .+3         /NO
03665  3127          DCA RBUSY       /YES, CLEAR READER BUSY
03666  5653          JMP I CREAD     /EXIT
03667  6014          RFC             /FETCH NEXT CHAR
03670  5653          JMP I CREAD     /EXIT
03671  4253  WNZERO, JMS CREAD       /READ CHAR

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-43

03672  1131          TAD TCHKW
03673  7650          SNA CLA         /IS IT 0?
03674  5503          OUT             /YES
03675  4475          SETLOC          /SET INTERRUPT SERVICE
03676  0711          RVCTR           /TO RBIN
03677  3703          RBIN
03700  4477          SETA            /-5 TO CTRA
03701  7773          -5
03702  7410          SKP
03703  4253  RBIN,   JMS CREAD       /READ CHAR
03704  4467          JMS I GETPT     /GET BINARY CHAR
03705  3462          DCA I UTSB
03706  1131          TAD TCHKW       /GET CHAR READ
03707  4461          JMS I UTCHK     /GO CHECK IT
03710  7410          SKP             /ERROR
03711  5503          OUT             /NO
03712  2122          ISZ CTRA        /5 ERRORS?
03713  5503          OUT             /NO, TO MAINLINE
03714  4475  RBINA,  SETLOC          /YES, SET READER SERVICE
03715  0711          RVCTR           /TO RESYNC TAPE
03716  3720          .+2
03717  5503          OUT
03720  4253          JMS CREAD       /READ CHAR
03721  1131          TAD TCHKW
03722  3110          DCA CHR1        /STORE
03723  4475          SETLOC          /SET READER SERVICE
03724  0711          RVCTR
03725  3727          .+2
03726  5503          OUT
03727  4253          JMS CREAD       /READ CHAR
03730  1131          TAD TCHKW
03731  3111          DCA CHR2
03732  4475          SETLOC          /SET READER SERVICE
03733  0711          RVCTR
03734  3736          .+2
03735  5503          OUT
03736  4253          JMS CREAD       /READ CHAR
03737  1131          TAD TCHKW
03740  3112          DCA CHR3
03741  4465          JMS I SYNCA     /GO SYNC
03742  5314          JMP RBINA       /SYNC ERROR, TRY AGAIN
03743  4477          SETA            /YES, -5 TO CTRA
03744  7773          -5
03745  4475          SETLOC          /RESTORE READER SERVICE TO
03746  0711          RVCTR           /TO RBIN
03747  3703          RBIN
03750  5503          OUT
       4000  PAGE
             /PROGRAM 10, READ AMPLIFIER ADJUSTMENT LOOP
04000  4475  PRG10,  SETLOC          /SET INTERRUPT SERVICE
04001  0002          2               /TO INTSVC
04002  0703          INTSVC
04003  4475          SETLOC          /SET PUNCH SERVICE ADDRESS
04004  0716          PVCTR           /TO PCHCLR
04005  0741          PCHCLR

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-44

04006  4475          SETLOC          /SET READER SERVICE ADDRESS
04007  0711          RVCTR           /TO AMPRDA
04010  4070          AMPRDA
04011  4475          SETLOC
04012  1075          ERRORA
04013  7000          7000
04014  1144          TAD [NOP
04015  3572          DCA I [STALL+3
04016  3105          DCA SRMSK       /0 TO SR MASK
04017  4253  RAMPA,  JMS AMPRD       /GO READ CHAR
04020  7440          SZA             /ZERO?
04021  7410          SKP             /NO
04022  4253  RAMPB,  JMS AMPRD       /GO READ CHAR
04023  7041          CIA
04024  1153          TAD [PTMSK
04025  7640          SZA CLA         /ALL 1'S?
04026  5233          JMP RAMPC       /NO, ERROR
04027  4253          JMS AMPRD       /YES, GO READ
04030  7640          SZA CLA         /ZERO?
04031  5242          JMP RAMPD       /NO, ERROR
04032  5222          JMP RAMPB       /YES, REPEAT
04033  4452  RAMPC,  JMS I UASCCN    /CONVERT EXPECTED CHAR
04034  4052          RAMPF           /TO PRINTABLE ASCII
04035  1604          SB
04036  4452          JMS I UASCCN    /CONVERT BAD CHAR TO
04037  4074          RAMPWA          /TO PRINTABLE ASCII
04040  1611          WAS
04041  5246          JMP RAMPE
04042  4452  RAMPD,  JMS I UASCCN    /CONVERT EXPECTED CHAR
04043  4075          RAMPWB          /TO PRINTABLE ASCII
04044  1604          SB
04045  5236          JMP RAMPD-4
04046  4451  RAMPE,  JMS I UERROR    /GO PRINT ERROR
04047  4040          NOSUF
04050  1601          SBWAS
04051  5217          JMP RAMPA       /TRY AGAIN
04052  0377  RAMPF,  377
04053  0000  AMPRD,  0
04054  4501          SETDLM          /-75 TO DELAYM
04055  7665          -113
04056  6014          RFC             /FETCH CHAR
04057  6001          ION             /ENABLE INTERRUPT
04060  4502          DELAY           /DELAY 75 MS
04061  6002          IOF
04062  6011          RSF             /FLAG 1?
04063  7410          SKP             /NO, FLAG DROPPED
04064  5270          JMP AMPRDA      /YES
04065  4447          JMS I XTYPST    /RING BELL 3 TIMES
04066  4076          BELL3
04067  5217          JMP RAMPA       /TRY AGAIN
04070  6012  AMPRDA, RRB
04071  3274          DCA RAMPWA
04072  1274          TAD RAMPWA
04073  5653          JMP I AMPRD
04074  0000  RAMPWA, 0

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-45

04075  0000  RAMPWB, 0
04076  0007  BELL3,  0007            /BELL
04077  0007          0007            /BELL
04100  0007          0007            /BELL
04101  0001          0001            /END CODE
             /
             /PROGRAM 11, PUNCH ANY CHAR IN SR CONTIUOUSLY
04102  7604  PRG11,  LAS             /READ SR
04103  0153          AND [PTMSK
04104  6026          PLS             /PUNCH CHAR
04105  6021          PSF             /FLAG 1?
04106  5305          JMP .-1
04107  5301          JMP .-6         /YES, REPEAT
             /
             /PROGRAM 12, PUNCH 1'S AND 0'S LOOP
04110  4475  PRG12,  SETLOC
04111  0105          SRMSK
04112  0075          0075
04113  7240  PRG12A, CLA CMA
04114  0153          AND [PTMSK
04115  4456          JMS I UTPCH     /PUNCH ALL 1'S
04116  4563          JMS I [STALL
04117  7200          CLA
04120  4456          JMS I UTPCH     /PUNCH ALL 0'S
04121  4563          JMS I [STALL
04122  5313          JMP PRG12A      /REPEAT
       4200  PAGE
             /PROGRAM 13, READER SPEED PRINT LOOP
04200  7200  PRG13,  CLA
04201  3123          DCA CTRB        /CLEAR CTRB
04202  7604          LAS             /READ SR
04203  7104          CLL RAL
04204  7710          SPA CLA         /LONG OR SHORT?
04205  1143          TAD [-416       /LONG
04206  1142          TAD [-36        /SHORT
04207  3232          DCA TKN         /STORE AT TKN
04210  5220          JMP TSTRL
04211  6014  TSTRD,  RFC             /START READER
04212  6011          RSF             /WAIT FOR
04213  5212          JMP .-1         /FLAG
04214  2122          ISZ CTRA        /INCREMENT CTRA
04215  5222          JMP TSTRC
04216  2123          ISZ CTRB        /INCREMENT CTRB
04217  7000          NOP
04220  1232  TSTRL,  TAD TKN         /LOAD CTRA
04221  3122          DCA CTRA
04222  7604  TSTRC,  LAS             /READ SR
04223  7700          SMA CLA         /PRINT SPEED?
04224  5211          JMP TSTRD       /NO, CONTINUE
04225  4447          JMS I XTYPST    /YES
04226  1532          RSPD
04227  4257          JMS TSTRPC
04230  7402          HLT
04231  5200          JMP PRG13
04232  0000  TKN,    OPEN

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-46

             /PROGRAM 14, PUNCH SPEED PRINT LOOP
04233  7200  PRG14,  CLA
04234  3123          DCA CTRB        /CLEAR CTRB
04235  5245          JMP TSTPL
04236  6026  TSTPP,  PLS
04237  6021          PSF
04240  5237          JMP .-1
04241  2122          ISZ CTRA        /60?
04242  5247          JMP TSTPC       /NO
04243  2123          ISZ CTRB        /YES, INCREMENT CTRB
04244  7000          NOP
04245  1141  TSTPL,  TAD [-74
04246  3122          DCA CTRA        /LOAD -60 IN CTRA
04247  7604  TSTPC,  LAS             /READ SR
04250  7700          SMA CLA         /PRINT SPEED (AFTER 60 SECONDS)
04251  5236          JMP TSTPP       /NO, CONTINUE
04252  4447          JMS I XTYPST    /YES
04253  1543          PSPD
04254  4257          JMS TSTRPC
04255  7402          HLT
04256  5233          JMP PRG14
04257  0000  TSTRPC, 0
04260  4265          JMS BDCNV       /TYPE C(CTRB) IN DECIMAL
04261  0123          CTRB
04262  4447          JMS I XTYPST    /TYPE "CPS"
04263  1554          CPS
04264  5657          JMP I TSTRPC    /EXIT
04265  0000  BDCNV,  0               /BINARY TO DECIMAL CONVERT
04266  4475          SETLOC          /AND PRINT SUBROUTINE
04267  4331          CNVCTR
04270  7774          -4
04271  1322          TAD ADDRZA      /INITIALIZE ARROW
04272  3303          DCA ARROW
04273  1665          TAD I BDCNV     /GET AND STORE BINARY
04274  2265          ISZ BDCNV       /NUMBER, SORE IT AT VALUE
04275  3330          DCA DIGIT
04276  1730          TAD I DIGIT
04277  3327          DCA VALUE
04300  3330          DCA DIGIT       /O TO DIGIT
04301  7100          CLL
04302  1327          TAD VALUE
04303  1323  ARROW,  TAD TENPWR
04304  7420          SNL
04305  5311          JMP .+4
04306  2330          ISZ DIGIT
04307  3327          DCA VALUE
04310  5301          JMP ARROW-2
04311  7200          CLA
04312  1330          TAD DIGIT
04313  1140          TAD [260
04314  4473          JMS I UPUNCH
04315  7300          CLA CLL
04316  2303          ISZ ARROW
04317  2331          ISZ CNVCTR
04320  5300          JMP ARROW-3

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-47

04321  5665          JMP I BDCNV
04322  1323  ADDRZA, TAD TENPWR
04323  6030  TENPWR, -1750
04324  7634          -144
04325  7766          -12
04326  7777          -1
04327  0000  VALUE,  0
04330  0000  DIGIT,  0
04331  0000  CNVCTR, 0
             /
             /PROGRAM 15, READ X CHARACTERS, STALL Y MS, LOOP TO ADJUST TIMINGS
04332  7602  PRG15,  HLT CLA         /HALT TO SET SR
04333  7604          LAS             /READ SR
04334  0174          AND [177        /MASK OFF EXCESS BITS
04335  7041          CIA
04336  3021          DCA DELAYM      /STORE STALL COUNT
04337  7604          LAS             /READ SR
04340  0137          AND [7600       /MASK OFF EXCESS BITS
04341  7106          CLL RTL
04342  7006          RTL
04343  7006          RTL
04344  7041          CIA
04345  3347          DCA .+2
04346  4477  P15A,   SETA            /-X TO CTRA
04347  0000          0
04350  6014  P15B,   RFC             /FETCH CHAR
04351  6011          RSF             /FLAG 1?
04352  5351          JMP .-1
04353  2122          ISZ CTRA        /READ X CHARS?
04354  5350          JMP P15B        /NO
04355  4502          DELAY           /YES, DELAY Y MS
04356  5333          JMP PRG15+1     /REPEAT
             /WOW! I MADE IT...
             $
00137  7600
00140  0260
00141  7704
00142  7742
00143  7362
00144  7000
00145  7777
00146  7766
00147  7634
00150  0060
00151  0252
00152  0125
00153  0377
00154  0020
00155  0040
00156  0200
00157  0400
00160  6060
00161  0707
00162  7700
00163  1125

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 1-48

00164  0240
00165  0100
00166  7740
00167  7510
00170  7500
00171  0077
00172  1130
00173  7640
00174  0177
00175  0031
00176  7763
00177  0017

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 2

A      0140      GETPT  0067      PRG4   3517      P0T6A  2435
AC     0023      GETPTR 0070      PRG5   3537      P0T6B  2453
ACTIND 0133      GETPTT 1412      PRG6   3553      P0T6S  2446
ADDRZA 4322      GETRDY 0242      PRG7   3600      P0T7   2600
AMPRD  4053      GTPTRP 1435      PRINT  0671      P0T7A  2604
AMPRDA 4070      INCRTN 0266      PSPD   1543      P0T7B  2615
ARROW  4303      INIT   0217      PTMSK  0377      P0T7S  2632
ASCCN  1000      INITPT 1400      PT0    1460      P0T7WA 2635
ASCT   1041      INPATT 0066      PT1    1461      P0T7WB 2636
B      0240      INTSVC 0703      PT2    1462      P1E0   3017
BDCNV  4265      IOUT   0733      PT3    1463      P1E1   3051
BELL3  4076      KSTART 0020      PUNCH  0426      P1E10A 3415
CHAIN  0025      LINK   0024      PVCTR  0716      P1E10B 3437
CHAINN 0270      LPRGN  1255      P0E0   2025      P1E2   3076
CHCK   0521      LRRGN  1273      P0E1   2052      P1E3   3147
CHECK  0071      MARK   1230      P0E10A 2654      P1E4   3224
CHRCNT 0324      MARKAD 1246      P0E2   2073      P1T0   3010
CHR1   0110      MARKER 1521      P0E3   2137      P1T0A  3014
CHR2   0111      MCTR   0563      P0E4   2224      P1T0B  3027
CHR3   0112      MILCTR 0121      P0E5   2412      P1T0S  3023
CNV    1024      MILLI  0135      P0E6   2442      P1T1   3032
CNVCTR 4331      MIL1   0106      P0E7   2620      P1T1A  3044
COUNT  0022      MOVE   0536      P0T0   2010      P1T1B  3046
CPCH   3646      MOVEA  0551      P0T0A  2016      P1T1S  3055
CPIC   0107      MSCTR  0120      P0T0S  2031      P1T10  3400
CPS    1554      NONE   0000      P0T1   2036      P1T10A 3405
CRCNT  0063      NOSUF  4040      P0T1A  2045      P1T10B 3422
CRCTR  0615      NXTST  0117      P0T1S  2056      P1T10C 3434
CREAD  3653      OPEN   0000      P0T10  2637      P1T10D 3455
CRLF   0600      OUT    5503      P0T10A 2644      P1T10E 3456
CTR    0136      PBIN   3624      P0T10B 2661      P1T10S 3443
CTRA   0122      PCHCLR 0741      P0T10C 2672      P1T2   3063
CTRB   0123      PCHCNT 0132      P0T10D 2712      P1T2A  3067
CTRC   0124      PCNT2  3301      P0T10E 2713      P1T2B  3112
CTRD   0125      PFLAG  0126      P0T10S 2701      P1T2S  3102
CTSK   1363      PIND   1465      P0T11  2717      P1T3   3115
CTSK1  1364      PLDR   1214      P0T11A 2723      P1T3A  3137
CURTST 0115      PLDRW  1227      P0T11B 2743      P1T3S  3153
DELAY  4502      PLOOP  3205      P0T11C 2746      P1T4   3200
DELAYM 0021      PNUMB  1471      P0T11S 2755      P1T4A  3220
DELTIM 0134      PRGADR 0240      P0T2   2064      P1T4S  3230
DIGIT  4330      PRGEND 0305      P0T2A  2071      P1T5   3234
DLCNT  0513      PRGNUM 0030      P0T2OK 2102      P1T5A  3240
DLYCNT 0072      PRGTAB 0031      P0T2S  2077      P1T6   3251
DLYMS  0411      PRG0   2000      P0T3   2105      P1T6A  3255
DLYMSK 0104      PRG1   3000      P0T3A  2127      P1T7   3265
DLY212 2766      PRG10  4000      P0T3S  2143      P1T7A  3271
DLY250 2773      PRG11  4102      P0T4   2200      P15A   4346
ENUMB  1474      PRG12  4110      P0T4A  2220      P15B   4350
ERNUMB 1466      PRG12A 4113      P0T4S  2230      P2A    3465
ERROR  1050      PRG13  4200      P0T5   2400      P2B    3470
ERRORA 1075      PRG14  4233      P0T5A  2404      P2C    3472
FADDR  0561      PRG15  4332      P0T5B  2425      P2D    3477
FLAG   0702      PRG2   3462      P0T5S  2416      P2E    3503
FORWD  0307      PRG3   3506      P0T6   2430      P3A    3513

/HIGH SPEED READER/PUNCH TESTS            PAL8-V10A 24-OCT-81 PAGE 2-1

P4A    3531      SR1MSK 2000      ULRRGN 0054      
P4B    3534      SR2MSK 1000      UMARK  0060      
P5A    3547      SR3MSK 0400      UMOVE  0074      
P6A    3570      SR4MSK 0200      UNEXIT 0730      
P6B    3573      SR5MSK 0100      UNINT  1501      
P7770  3302      SR6MSK 0040      UPLDR  0057      
RAMPA  4017      SR7MSK 0020      UPUNCH 0073      
RAMPB  4022      STALL  1125      URDSR  0076      
RAMPC  4033      STCTA  1111      USTCTA 0077      
RAMPD  4042      STCTB  1117      USTCTB 0100      
RAMPE  4046      STCTR  0400      USTCTR 0075      
RAMPF  4052      STDLYM 1042      USTDLM 0101      
RAMPWA 4074      STRT   0200      UTCHK  0061      
RAMPWB 4075      SUFX   1476      UTPCH  0056      
RANCON 0477      SWITCH 0673      UTREAD 0055      
RANDEX 0476      SYNC   0064      UTSB   0062      
RANDNO 0027      SYNCA  0065      VALUE  4327      
RANGEN 0447      SYNK   1311      WAS    1611      
RANP1  1251      SYNKA  1324      WASC   1037      
RANP2  1252      SYNKB  1347      WCHK   0535      
RANR1  1253      SYNKC  1351      WNZERO 3671      
RANR2  1254      TADDR  0562      WRTN   1560      
RANSAV 0512      TCHK   1143      XTYPST 0047      
RANTAD 0464      TCHKW  0131      
RANTBL 0500      TDOMSG 1615      
RANTND 0511      TEMP   0113      
RBIN   3703      TEMP1  0114      
RBINA  3714      TEMQ   0700      
RBUSY  0127      TEMR   0701      
RCF    6014      TENPWR 4323      
RCHKW  0130      TIM    2151      
RCNT2  2235      TIM1   3161      
RDRCLR 0743      TKN    4232      
RDSR   0443      TPCH   1207      
READSR 4476      TREAD  1200      
RIND   1464      TSB    1145      
RLOOP  2205      TSC1   0624      
RSPD   1532      TSC2   0635      
RTNNO  0116      TSTMSK 0017      
RVCTR  0711      TSTPC  4247      
R7770  2234      TSTPL  4245      
SASC   1040      TSTPP  4236      
SB     1604      TSTRC  4222      
SBWAS  1601      TSTRD  4211      
SEED1  1247      TSTRL  4220      
SETA   4477      TSTRPC 4257      
SETB   4500      TYPAT  0646      
SETDLM 4501      TYPSP  0652      
SETLOC 4475      TYPSTG 0616      
SFADR  1110      UASCCN 0052      
SHALT  0333      UCRLF  0050      
SHLT   0026      UDLYMS 0102      
SRMSK  0105      UERROR 0051      
SRSET  0241      UIOUT  0103      
SR0MSK 4000      ULPRGN 0053      



ERRORS DETECTED: 0
LINKS GENERATED: 0