PRST NOP
      CLF 0 
      JSB RESET 
      LDB BIT.0     EXIT
      JSB SWRT,I        TO
      JMP ARROW 
      CCB           MAKE B=ALL ONES 
      JSB PUDVR 
      JSB PUDVR 
      JSB PUDVR     OUTPUT A CHARACTER FOR END
      JSB LEADR         AND A LEADR 
      JSB MSGH,I    TELL OPERATOR TO TEAR TAPE .
      DEF T5M1H 
      JSB READ2     READ AND VERIFY PUNCHED TAPE
      JMP TST06,I 
* 
D1000 OCT 10000 
T5PSC OCT 0 
T5RSC OCT 0 
BIT.0 OCT 1 
* 
* 
* 
* 
* 
      SPC 1 
* 
      SPC 1 
T5IEH NOP           THIS ROUTINE TELLS OPERATOR 
      JSB MSGH,I    TO CLEAR SW BIT0, THEN HALTS
      DEF INITM 
      NOP 
      JMP T5IEH,I 
      SPC 1 
* 
      SPC 1 
PNCH1 NOP           PUNCH ROUTINE #1
      LDB SPAD1     CHECK FOR POINTER 
      CPB .END.          OUT-OF-BOUNDS
      JMP PREST     RESET POINTER 
      LDB SPAD1,I   GET THE DATA TO PUNCH 
      ISZ SPAD1     BUMP POINTER
      JSB PUDVR     PUNCH THE (BREG)
      JMP PNCH1+1   DOIT AGAIN
PREST LDB BUFST     RESET PUNCH 
      STB SPAD1          POINTER
      JMP PNCH1,I   EXIT
* 
SPAD1 OCT 0 
BUFST DEF BUF5
.END. DEF BUFND 
PUJSB JSB SO.SO,I 
      SKP 
T5ERR NOP           ERROR HANDLING ROUTINE
      STA T5ARS     SAVE THE A AND B
      STB T5BRS     REGISTERS FOR LATER 
      LDB .BAD
      JSB MKBUF      AKE THE "BAD" BUFFER 
      NOP 
      LDA SPAD6,I     GET THE "GOOD" DATA PATTERN 
      LDB .GOOD     POINTER TO GOOD DATA BUFFER 
      JSB MKBUF     MAKE THE GOOD BUFFER
      NOP 
      LDA T5ARS 
      LDB T5BRS     RESTORE THE A AND B REGISTERS 
      NOP 
      JSB ERMS,I    REPORT THE ERROR
      DEF ABBGM 
      NOP 
      JMP T5ERR,I     EXIT ROUTINE
* 
T5BRS OCT 0 
T5ARS OCT 0 
      SPC 1 
* 
      SPC 1 
R.SET NOP 
      LDA BUFST     RESET THE 
      STA SPAD6          RDR POINTER
      JMP R.SET,I 
      SPC 1 
* 
      SPC 1 
RESET NOP 
      LDA BUFST     RESET 
      STA SPAD6          READ AND 
      STA SPAD1               PUNCH POINTERS
      JMP RESET,I 
* 
SPAD6 OCT 0 
      SPC 1 
* 
      SPC 1 
PINTR NOP           PUNCH ROUTINE USING INTERRUPT 
      NOP 
      LDB SPAD1     POINTER 
      CPB .END.     OUT-OF-BOUNDS?
      JMP PRST      YES, RESET
      LDB SPAD1,I   NO, GET NEXT DATA 
      ISZ SPAD1     BUMP POINTER
      NOP           DEBUG 
T5PI1 OTB PUNCH 
T5PI2 STC PUNCH,C 
      NOP 
      JMP PINTR,I   EXIT
      SKP 
READ1 NOP           MAIN READ ROUTINE 
      JSB R.SET     INITIALIZE POINTERS, ETC
      SPC 1 
.RD.1 LDA SPAD6     CHECK POINTER FOR 
      CPA .END.      OUT-OF-BOUNDS
      JMP READ1,I   FINISHED, BACK TO CALLING ROUTINE 
      JSB READ      OK TO READ
      NOP 
      CPA SPAD6,I   READ VALID? 
      JMP *+2       YES, PASS ERROR HALT
      JSB T5ERR     REPORT ERROR
      ISZ SPAD6     BUMP POINTER
      NOP           DEBUF 
      JMP .RD.1 
      SPC 1 
* 
      SPC 1 
READ2 NOP           FINISH READ ROUTINE 
      JSB SYNC      TAKE UP LEADER
      JSB R.SET     RESET POINTERS ETC
      SPC 1 
.RD.2 LDA SPAD6 
      CPA .END.      OUT-OF-BOUNDS
      JMP NDCK1 
      JSB READ      OK TO READ
      NOP 
      CPA SPAD6,I   READ VALID? 
      JMP *+2       YES, PASS ERROR HALT
      JSB T5ERR     REPORT ERROR
      ISZ SPAD6     BUMP POINTER
      NOP           DEBUF 
      JMP .RD.2 
      SPC 1 
* 
      SPC 1 
NDCK1 JSB READ     GET NXT CHARAT 
      CPA ENDCH     ALL 1,S?
      JMP NDCK2     YES, DO 2ND CHECK 
      JSB SYNC       NO, READ ANOTHER BUFFER
      JMP READ2+2 
* 
* 
* 
* 
* 
      SKP 
* 
      SPC 1 
NDCK2 JSB READ     GET NXT CHARACTER
      CPA ENDCH 
      JMP READ2,I   END FOUND, EXIT 
      JSB ERMS,I
      DEF OVRUN 
      NOP 
      JMP *-1 
* 
ENDCH OCT 377 
      SPC 5 
BUF5  OCT 377,201,125,252,333,155,066,033 
      OCT 204,037,340,377,127,201,102,145 
      OCT 132,347,030,377,132,245,030,102 
      OCT 044,030,201,245,102,044,030,231 
      OCT 044,102,201,377,252,125,250,377 
      OCT 000,347,122,255,211,152,235,052 
      OCT 367,010,167,030,245,044,333,000 
      OCT 377,201,125,252,333,155,066,033 
      OCT 204,037,340,377,127,201,102,145 
      OCT 132,347,030,377,132,245,030,102 
      OCT 044,030,201,245,102,044,030,231 
      OCT 044,102,201,377,252,125,250,377 
      OCT 000,347,122,255,211,152,235,052 
      OCT 367,010,167,030,245,044,333,000 
      OCT 377,201,125,252,333,155,066,033 
      OCT 204,037,340,377,127,201,102,145 
      OCT 132,347,030,377,132,245,030,102 
      OCT 044,030,201,245,102,044,030,231 
      OCT 044,102,201,377,252,125,250,377 
      OCT 000,347,122,255,211,152,235,052 
      OCT 367,010,167,030,245,044,333,000 
      OCT 377,201,125,252,333,155,066,033 
      OCT 204,037,340,377,127,201,102,145 
      OCT 132,347,030,377,132,245,030,102 
      OCT 044,030,201,245,102,044,030,231 
      OCT 044,102,201,377,252,125,250,377 
      OCT 000,347,122,255,211,152,235,052 
      OCT 367,010,167,030,245,044,333,000 
BUFND OCT 377 
* 
      HED PUNCH OUT THE LOOP
* 
* 
*     TEST 07 
* 
*     THE MESSAGE "H060 TO MAKE LOOP, PUNCH ON
*     AND RUN" IS OUTPUT, AND THE COMPUTER HALTS. 
*     THE OPERATOR CAN MAKE A LOOP BY FOLLOWING 
*     THESE INSTRUCTIONS.  THREE ITERATIONS OF
*     THE DATA BUFER WILL BE OUTPUT TO THE PUNCH
* 
*     THIS TAPE CAN THEN BE MADE INTO A LOOP
*     USING A TAPE REPAIR PATCH, OR TRANSPARENT 
*     TAPE. 
* 
*     THIS ROUTINE WILL NOT RUN AS PART OF THE
*     DIAGNOSTIC, BUT CAN BE CALLED AT CONFIGURATION
*     TIME BY THE OPERATOR
* 
* 
* 
* 
* 
* 
* 
      SKP 
TST07 EQU * 
      SPC 1 
      NOP 
      JSB PSCHK     WANT TO RUN TEST? 
      JSB MSGH,I    OUTPUT MSG
      DEF T7MSG 
      LDA OCT.3     INITIALIZE
      STA R7X3C          XTHRU COUNTER
      LDA NDN40     INITIALIZE
      STA R7SP1          40 COUNTER 
      JSB R7LDR     PUNCH LEADER
      SPC 1 
* 
      SPC 1 
R7HR1 LDA NDN20     PUNCH A LEADER OF 20
      STA R7SP1          FEED 
      JSB R7LDR             FRAMES
      LDA NDN55     INITIALIZE THE
      STA R7SP1          XTHRU 55 
      LDA R7BFP     SET UP THE
      STA R7SP2          DATA PIINTER 
      SPC 1 
* 
      SPC 1 
R7HR2 LDB R7SP2,I   GET DATA WORD 
      JSB PUDVR     PUNCH IT
      ISZ R7SP2     BUMP POINTER
      ISZ R7SP1     FINISHER ONE BUFFER?
      JMP R7HR2     NO, GET ANOTHER WORD
      ISZ R7X3C     YES FINISHED 3 BUFFERS? 
      JMP R7HR1     NO, PUNCH MORE LEADER 
      LDA NDN40     YES, INITIALIZE 
      STA R7SP1 
      JSB R7LDR             AND PUNCH A TRAILER 
      JMP TST07,I   EXIT
      SPC 1 
* 
      SPC 1 
R7LDR NOP           THIS ROUTINE PUNCHES
      CLB           AN ALL ZEROS LEADER/TRAILER 
      JSB PUDVR 
      ISZ R7SP1 
      JMP *-2 
      JMP R7LDR,I 
* 
OCT.3 DEC -3
R7X3C OCT 0         ROUTINE 7 X3 COUNTER
NDN40 DEC -40 
R7SP1 OCT 0 
NDN20 DEC -20 
NDN55 DEC -55 
R7BFP DEF BUFER 
R7SP2 OCT 0 
      HED PUNCH SWR BITS 0-7
* 
* 
*     TEST 10 
* 
*     THIS UTILITY ROUTINE OUTPUTS SWITCH 
*     REGISTER BITS 0-7 TO THE PUNCH. 
*     THIS ROUTINE MUST BE CALLED BY THE
*     OPERATOR. 
* 
* 
* 
* 
      SKP 
TST10 EQU * 
      SPC 1 
      NOP 
      JSB PSCHK     WANT TO RUN TEST? 
      JSB MSGH,I
      DEF T10MS 
X2    JSB SWRT,I
      NOP 
      JSB PUDVR 
      LDA B 
      AND BIT13 
      SZA 
      JMP X2
      JMP TST10,I 
* 
BIT13 OCT 20000 
      SKP 
      HED READER SPEED TEST 
* 
*     TST11 
* 
*     TEST 11 IS THE READER SPEED TEST.  IT IS ANOTHER UTILITY TEST 
*     WHICH MAY BE SELECTED BY THE OPERATOR.  THE INITIAL MESSAGE 
*     INSTRUCTING THE OPERATOR TO SELECT A SWITCH REGISTER BIT TO 
*     DIFFERENTIATE BETWEEN 2748/58 AND 2737 PHOTOREADERS, AND THE
*     PROGRAM HALTS THE COMPUTER.  IF THE READER IS A 2737, BIT 5 
*     SHOULD BE SET TO A ONE.  IF THE READER IS A 2748/58, BIT 5
*     SHOULD BE SET TO A ZERO.  AND RUN MUST BE PRESSED.  THE READER
*     WILL THEN ADVANCE TAPE, AND THE PROGRAM WILL CALCULATE THE
*     READER SPEED.  IF THE SPEED IS CORRECT, THE TEST IS TERMINATED
*     IF A SLOW SPEED IS DETECTED, THE ERROR IS REPORTED AND THE A
*     REGISTER CONTAINS THE NUMBER OF ACTUAL CHARACTERS READ, THE B 
*     REGISTER CONTAINS THE EXPECTED NUMBER OF CHARACTER. 
* 
*     IF THE OPERATOR WISHES THIS TEST TO CONTINUE LONGER THAN THE
*     NORMAL ONE SECOND, HE MAY SET SWITCH REGISTER BIT 7 TO A ONE
*     PRIOR TO THE START OF TEST 11 EXECUTION.  TO EXIT THIS LOOP 
*     CONDITION, SWITCH REGISTER BIT 7 SHOULD BE SET TO A ZERO. 
* 
* 
* 
      SKP 
TST11 EQU * 
      SPC 1 
      NOP 
      JSB RSCHK     WANT TO RUN TEST? 
      JSB MSGH,I    OUTPUT INSTRUCTION MESSAGE
      DEF RSTM1      AND HALT.
      JSB FREQ,I    SET CHAR/SEC CONSTANT FOR 50/60 HZ
      LDB BIT05     IS THE READER A 
      JSB SWRT,I         2737?
      JSB RMXRT     YES, GET THE 300 CPS CONSTANT 
      LDA HPRDC     NO, GET THE 500 CPS CONSTANT
      STA MBGTC     AND PUT IN HOLD/CONSTANT
      LDA RSJSB     PUT THE READ/COUNTER SUBROUTINE 
      STA RSRSC,I   ADDRESS IN THE RDR S.C. 
      LDA RSTIR     ESTABLISH THE BASE
      STA RRLNK          PAGE LINK ADDRESS
.TS11 CLA           ZERO THE INTERRUPT
      STA RSICL     COUNTER LOCATION. 
      LDA OSTMC     GET THE ONE SECOND CONSTANT 
      STF INTP      TURN INTSYS ON
RIOA1 STC RDR,C     TELL THE READER TO START UP 
      JSB TMRR,I    START TIMING
      CLF INTP      TURN OFF THE INTERRUPT SYSTEM 
RIOA2 CLC RDR,C     ROUTINE CLEAN-UP
      LDA RSICL     GET THE INTERRUPT COUNT 
      ADA MBGTC     SUBTRACT THE MBG CONSTANT 
      SSA,RSS       IN READ SPEED SPEC? 
      JMP RSEDR     YES, JUMP OVER ERROR
      LDA RSICL     GET COUNT FOR DISPLAY 
      LDB MBGTC     NO, WAS THIS THE TEST FOR 
      CPB RXRDC      THE 2737 READER? 
      JSB ERRMX     YES, REPORT 2737 SPEED SLOW 
      JSB ERRHP     NO,  REPORT 2748 SPEED SLOW 
      JSB LPCHK     BIT 7=1?
      JMP .TS11     YES, LOOP UNTIL =0
      JMP TST11,I   EXIT THE LOOP AND ROUTINE 
* 
      SPC 4 
RSTIH NOP 
      ISZ RSICL     BUMP INTERRUPT COUNTER
RIOA3 STC RDR,C     HIT THE READER AGAIN, 
      JMP RSTIH,I   AND BACK TO THE TIMER.
* 
RSICL OCT 0         INTERRUPT COUNT LOCATION
      SPC 2 
RSEDR JSB MSGC,I    TELL OPERATOR TEST IS 
      DEF RSEND     FINSHED, & EXIT 
      JSB LPCHK     BIT 7=1?
      JMP .TS11     UES LOOP
      JMP TST11,I   NO, EXIT LOOP 
RMXRT NOP 
      LDA RXRDC     GET THE 2737 CONSTANT 
      ISZ RMXRT     GO PAST 2748 INSTRUCTION FETCH
      JMP RMXRT,I   AND EXIT
* 
RXRDC NOP           CONTAINS 2737 CPS CONSTANT
      SPC 2 
ERRMX NOP 
      CMB,INB       MAKE B POSITIVE FOR DISPLAY 
      ISZ ERRMX     BUMP PAST NEXT ERROR
      JSB ERMS,I    REPORT THAT THE 2737
      DEF RMXEM     SPEED WAS TOO SLOW. 
      JMP ERRMX,I   AND EXIT
      SPC 2 
ERRHP NOP 
      CMB,INB       MAKE B POSITIVE FOR DISPLAY 
      JSB ERMS,I    REPORT THAT THE 2748/58 
      DEF HPREM     SPEED WAS TOO SLOW. 
      JMP ERRHP,I 
      SPC 2 
* 
* 
HPRDC NOP           CONTAINS 2748 2758/CPS CONSTANT 
MBGTC OCT 0         WILL CONTAIN CONSTANT FOR TIMING
RSJSB JSB RRLNK,I 
RSRSC OCT 0         WILL = RDR S.C. AFTER CONFIG. 
RSTIR DEF RSTIH     RDR ROUTINE POINTER 
OSTMC DEC 1000      ONE SECOND TIMER CONSTANT 
FREQ  DEF ZFREQ     POINTER TO FREQUENCY ROUTINE
* 
* 
* 
* 
      SKP 
      SKP 
      HED PUNCH SPEED TEST
* 
*     TST12 
* 
*     TEST 12 IS THE PUNCH SPEED TEST.  LIKE THE READER SPEED TEST, 
*     IT MUST BE SELECTED BY THE OPERATOR, AND LIKE THE READER TEST 
*     IT REQUIRS A SWITCH REGISTER INPUT FROM THE OPERATOR TO INFORM
*     THE PROGRAM WHICH PUNCH IS BEING TESTED.  SWITCH REGISTER BIT6
*     MUST BE SET TO 1 IF THE PUNCH IS A 2753, OR SET TO 0 IF THE 
*     PUNCH BEING TESTED IS A 2895. 
*     AN INSTRUCTION MESSAGE IS OUTPUT INFORMING THE OPERATOR OF THE
*     NEED TO SET OR CLEAR BIT6, AND THE PROGRAM HALTS AWAITING THIS
*     INFORMATION.
* 
*     IF THE OPERATOR WISHES TO EXTEND THE EXECUTION TIME OF THIS 
*     TEST, SWITCH REGISTER BIT 7 SHOULD BE SET TO A ONE PRIOR TO 
*     THE START OF EXECUTION.  TO EXIT THIS LOOP CONDITION, SWITCH
*     REGISTER BIT 7 MUST BE SET TO A ZERO. 
* 
* 
* 
      SKP 
TST12 EQU * 
      SPC 1 
      NOP 
      JSB PSCHK     WANT TO RUN TEST? 
      JSB MSGH,I    OUTPUT INSTRUCTION MESSAGE
      DEF PSTM1     AND HALT
      LDB BIT06     IS THE PUNCH TO BE
      JSB SWRT,I    TESTED A 2753?
      JSB TLYRT     YES, GO GET THE CONSTANT
      LDA FCTPC     NO, GET THE 2895 CONSTANT 
      STA MBGTC      AND PUT IT IN HOLDER 
      LDA PUSUB     GET JSB PUSUB INSTRUCTION 
      STA PIOA6,I 
      LDA PSTIR     GET THE ROUNTIN4S ADDRESS 
      STA PULNK     AND PLACE IN BASE PAGE LINK 
.TS12 CLA           ZERO THE
      STA PSICL     COUNTER 
      LDA FCTPC      GET A NUMBER TO OUTPUT 
PIOA1 OTA PUNCH     OUTPUT BUFFER 
      LDA OSTMC     GET THE ONE SECOND CONSTANT 
      STF INTP      INTERRUPT SYSTEM ON 
PIOA2 STC PUNCH,C   TELL THE PUNCH TO START,
      JSB TMRR,I    AND CONTINUE TIMING TEST. 
      CLF INTP      OFF THE INTERRUPT SYSTEM
PIOA3 CLC PUNCH,C   OFF PUNCH CONTROL 
      LDA PSICL     GET THE INTERRUPT COUNT 
      ADA MBGTC     SUBTRACT THE MBGT CONSTANT
      SSA,RSS       IS THE PUNCH SPEED CORRECT? 
      JMP PSEDR     YES, OVER ERROR 
      LDA PSICL     GET COUNT FOR DISPLAY 
      LDB MBGTC     NO, GET THE SHOULD BE VALUE 
      CPB TLYRC     WAS THIS A 2753?
      JSB TLYER     YES, REPORT ERROR 
      JSB FCTER     NO, REPORT 2895 ERROR.
      JSB LPCHK     BIT 7=1?
      JMP .TS12     YES, LOOP 
      JMP TST12,I   EXIT
PSEDR JSB MSGC,I    REPORT SUCESSFUL SPEED TEST 
      DEF PSEND 
      JSB LPCHK     CHECK FOR LOOP
      JMP .TS12     YES, LOOP UNTIL BIT7 IS CLEARED 
      JMP TST12,I   EXIT
* 
BIT06 OCT 100 
FCTPC DEC -74 
PUSUB JSB PULNK,I 
PIOA6 OCT 0 
PSTIR DEF PSTIH 
PSICL OCT 0 
TLYRC DEC -119
PTR12 DEF BUF5
      SKP 
TLYRT NOP 
      LDA TLYRC     GET 2753 TIME CONSTANT
      ISZ TLYRT     OVER THE 2895 CONSTANT
      JMP TLYRT,I   AND RETURN
      SPC 2 
PSTIH NOP 
      ISZ PSICL     INCREMENT THE PUINT COUNTER 
PIOA7 OTA PUNCH 
PIOA4 STC PUNCH,C   HIT THE PUNCH WITH ANOTHER GO 
      JMP PSTIH,I   AND BACK TO TIMER.
      SPC 2 
TLYER NOP 
      CMB,INB       MAKE B A POSITIVE NUMBER
      JSB ERMS,I    REPORT THE PUNCH IS 
      DEF TLYEM     TO SLOW 
      ISZ TLYER     GO PAST THE 2895 ERROR
      JMP TLYER,I   AND EXIT. 
      SPC 2 
FCTER NOP 
      CMB,INB       MAKE B POSITIVE 
      JSB ERMS,I    REPORT 2895 OPERATION 
      DEF FCTEM     WAS TOO SLOW
      JMP FCTER,I   EXIT
      SPC 2 
LPCHK NOP 
      LDB BIT07     IS BIT 7 A ONE? 
      JSB SWRT,I    IF SO,
      JMP LPCHK,I        LOOP 
      ISZ LPCHK     IF NOT, 
      JMP LPCHK,I   EXIT
* 
BIT07 OCT 200 
P12AD OCT 0 
      HED 2753 STATUS TEST
* 
*     TST13 
* 
*     TEST 13 IS THE 2753 HIGH SPEED PUNCH STATUS TEST.  IT CONSISTS
*     OF A ONE BIT CHECK.  THE OPERATOR IS TOLD TO REMOVE THE TAPE
*     SUPPLY REEL TO FORCE AN ERROR.  WHEN RUN IS PUSHED, BIT 5 
*     FROM THE PUNCH INTERFACE IS CHECKED TO INSURE THE ABILITY OF
*     THE INTERFACE DTTECTING A LOW SUPPLY REEL CONDITION. THE
*     OPERATOR IS THEN INSTRUCTED TO REINSTALL THE SUPPLY REEL, AND 
*     WHEN RUN IS PRESSED, THE BIT 5 IS TESTED FOR A ZERO CONDITION 
*     AND THE TEST IS EXITED. 
* 
* 
* 
* 
* 
* 
* 
* 
* 
      SKP 
TST13 EQU * 
      SPC 1 
      NOP 
      JSB PSCHK     WANT TO RUN TEST? 
      JSB MSGH,I    INSTRUCT THE OPERATOR TO REMOVE 
      DEF TST1H 
PIOA5 LIB PUNCH     GET THE PUNCH STATUS
      CPB BIT05     LOW TAPE STATUS?
     JMP *+3       YES, OVER THE ERROR
      JSB ERMS,I    NO, TELL THE OPERATOR 
      DEF T13EM     ABOUT THE PROBLEM 
      JSB MSGH,I    INSTRUCT THE OPERATOR TO REPLACE
      DEF TSTH2     THE SUPPLY REEL.
PIOA8 LIB PUNCH 
      SZB,RSS 
      JMP *+3       YES, OVER THE RERRER
      JSB ERMS,I     NO, INFORM THE OPERATOR
      DEF T13EN     OF THE PROBLEM
      JSB MSGC,I    ANNOUNCE A SUCESSFUL TEST 
      DEF TSTH3     TO THE OPERATOR 
      JMP TST13,I   AND EXIT
      SPC 5 
* 
TST1H ASC 16,H104 2753 HIGH SPEED TAPE PUNCH
      ASC 6,STATUS CHECK
      OCT 6412
      ASC 17,   REMOVE SUPPLY REEL, PRESS RUN 
      OCT 3457      BELL AND SLASH
* 
T13EM ASC 18,E105 DID NOT DETECT LOW TAPE STATUS/ 
* 
T13EN ASC 17,E106 REPLACING SUPPLY REEL DID NOT 
      ASC 7, CLEAR STATUS/
* 
TSTH2 ASC 18,H107 REPLACE SUPPLY REEL, PRESS RUN/ 
* 
TSTH3 ASC 14,H110 STATUS CHECK COMPLETE/
* 
* 
* 
      HED 2895 MANUAL FUNCTIONS TEST
* 
*     TST14 
* 
*     TEST 14 IS A TEST OF THE MANUAL FUNCTIONS OF THE 2895 PUNCH.
*     THERE ARE EIGHT FUNCTIONS TO BE TESTED.  EACH TEST IS STARTED 
*     BY AN INSTRUCTION MESSAGE, TELLING THE OPERATOR WHAT TO DO. 
* 
*     'PRESS RUN' IN THE MESSAGES, REFERS TO THE COMPUTER RUN 
*     SWITCH. 
* 
*     THE EIGHT FUNCTIONS ARE:
* 
*         1  POWER ON SWITCH. 
* 
*         2 DC ON SWITCH
* 
*         3 TAPE FEED SWITCH
* 
*         4 FEED HOLE SWITCH
* 
*         5 CODE HOLE SWITCH
* 
*         6 LOW TAPE SWITCH/INDICATOR 
* 
*         7 LOOSE TENSION ARM/ERROR INDICATOR 
* 
*         8 TIGHT TENSION ARM/ERROR INDICATOR 
* 
* 
* 
* 
* 
      SKP 
TST14 EQU * 
      SPC 1 
      NOP 
      JSB PSCHK     WANT TO RUN TEST? 
      JSB MSGC,I    TITLE 
      DEF T14M1     MESSAGE 
      JSB MSGH,I    POWER ON SWITCH 
      DEF TFPOM     MESSAGE 
      JSB MSGH,I    DC ON SWITCH
      DEF TFDCM     MESSAGE 
      JSB MSGH,I    TAPE FEED SWITCH
      DEF TFTFM     MESSAGE 
      JSB MSGH,I
      DEF TFFHM 
      JSB MSGH,I    CODE HOLE SWITCH
      DEF TFCHM     MSG 
      JSB MSGH,I    REMOVE REEL 
      DEF TFFRM 
      JSB MSGH,I    REPLACE REEL
      DEF TFRPM     MSG 
      JSB MSGH,I    TENSION ARM LET 
      DEF TFLEM     MESSAGE.
      JSB MSGC,I     COMPLETE 
      DEF TFICM     MESSAGE 
      NOP 
      JMP TST14,I   EXIT THE BMC SPECIAL TEST 
      SKP 
* 
* 
T14M1 ASC 16,H111 2895 MANUAL FUNCTIONS TEST/ 
* 
TFPOM ASC 16,H112 PRESS 'POWER ON'-PRESS RUN
      OCT 3457      BELL AND SLASH
* 
TFDCM ASC 17,H113 PRESS 'DC ON', 'READY' SHOULD 
      ASC 11, ILLUMINATE. PRESS RUN 
      OCT 3457      BELL AND SLASH
* 
TFTFM ASC 18,H114 PRESS 'TAPE FEED', SHOULD FEED
      ASC 11,BLANK TAPE. PRESS RUN
      OCT 3457      BELL AND SLASH
* 
TFFHM ASC 18,H115 PRESS 'FEED HOLD'. SHOULD FEED
      ASC 16,TAPE WITH FEED HOLES. PRESS RUN
      OCT 3457      BELL AND SLASH
* 
TFCHM ASC 18,H116 PRESS 'CODE HOLE'. SHOULD FEED
      ASC 15,FULLY PUNCHED TAPE. PRESS RUN
      OCT 3457      BELL AND SLASH
* 
TFFRM ASC 17,H117 REMOVE THE TAPE SUPPLY REEL.
      ASC 5,PRESS RUN 
      OCT 3457      BELL AND SLASH
* 
TFRPM ASC 15,H120 TAPE LOW INDICATOR SHOULD 
      ASC 16, BE ILLUMINATED. REPLACE SUPPLY
      OCT 6412
      ASC 9,   REEL. PRESS RUN
      OCT 3457      BELL AND SLASH
* 
TFLEM ASC 13,H121 MOVE THE TAPE TENSION 
      ASC 15, ARM TO MAXIMUM RIGHT AND LEFT 
      OCT 6412
      ASC 15,   THE ERROR INDICATOR SHOULD
      ASC 15,ILLUMINATE AT THE TWO MAXIMUM
      OCT 6412
      ASC 17,   POSITIONS, AND BE EXTINGUISHED
      ASC 11,IN THE CENTER-PUSH RUN 
      OCT 3457      BELL AND SLASH
* 
TFICM ASC 18,H122 MANUAL FUNCTIONS TEST COMPLETE/ 
* 
* 
* 
      HED SUBROUTINE 50/60 HZ FOR PAPER TAPE READER TEST
* 
*     THIS ROUTINE SETS UP THE CHARACTER COUNTERS 
*     FOR OPERATION OF THE 2748/58 AND 2737 
*     PAPER TAPE READERS
*     THE CHARACTER COUNTERS WILL BE SET DIFFERENTLY
*     WHETHER THE READERS ARE OPERATED AT 
* 
************* 50HZ OR 60HZ ******************** 
* 
* 
* 
ZFREQ NOP           UPDATE POINTER ROUTINE
      LDA USSC      IS IT 50HZ OR 60HZ ?
      SSA,RSS 
      JMP *+7       GO TO 60HZ OPERATION
* 
* 
*      OPERATION AT 50HZ
* 
* 
      LDA HPRDD     GET THE 415 CPS CONSTANT
      STA HPR1,I    SAVE IT IN HPRDC
      LDA RXRDE     GET THE 250 CPS CONSTANT
      STA RXR1,I    SAVE IT IN RXRDC
      LDA SAVA,I    RESTORE THE A REGISTER
      JMP ZFREQ,I   RETURN TO MAIN PROGRAM
* 
* 
*     OPERATION AT 60HZ 
* 
* 
      LDA HPRDE     GET THE 500 CPS CONSTANT
      STA HPR1,I    SAVE IT IN HPRDC
      LDA RXRDF     GET THE 300 CPS CONSTANT
      STA RXR1,I    SAVE IT IN RXRDC
      LDA SAVA,I    RESTORE THE A REGISTER
      JMP ZFREQ,I   RETURN TO MAIN PROGRAM
* 
* 
HPRDE DEC -498      500 CPS CONSTANT
HPRDD DEC -413      415 CPS CONSTANT
RXRDE DEC -248      250 CPS CONSTANT
RXRDF DEC -298      300 CPS CONSTANT
RXR1  DEF RXRDC     2737 CPS CONSTANT IN TEST 11
HPR1  DEF HPRDC     2748-58 CPS CONSTANT IN TEST 11 
SAVA  DEF ZSAVA 
      SPC 3 
FWAA  EQU * 
      SPC 3 
      END 
                    