*DECK CP1 
*** CP1 - 415 CARD PUNCH DIAGNOSTIC.
*** CP1 - EXTERNAL DOCUMENTATION
* 
**
* 
* 
*   AUTHOR - U.SENKO                   MAY , 1980 
*            CUSTOMER ENGINEER
*            AARPER  WEST. AUSTRALIA
*            PHONE (09) 3813900 
* 
* 
*    REVISED - R.V.SCHORNSTEIN        JUNE , 1980 
* 
* 
*     COPYRIGHT CONTROL DATA CORPORATION  1980
* 
* 
* 
**
* 
*   1.0       OVERVIEW
*             --------
* 
*       CP1 IS A DIAGNOSTIC FOR THE 415 CARD PUNCH WRITTEN
*       IN MALET LANGAUGE.THE DIAGNOSTIC IS BASED ON THE SMM
*        OFF-LINE TEST. 
*       THE DECK PRODUCED CAN BE USED FOR THE MALET CR1 TEST
*       ,CR1(SMM) OR CR1(CEDIAG). 
* 
*    PART 1 MODULES ARE THE CONFIDENCE LEVEL TESTS AND
*       PRODUCE THE CR1 DECK. 
* 
* 
*    PART 2 MODULES ARE UTILITY MODULES.
* 
* 
*    PART 3 MODULES ARE AIDS TO THE MAIN TESTS. 
* 
*            NOTE 
*              BECAUSE CP1 IS WRITTEN IN MALET LOW LEVEL
*              LANGUAGE (3000) , AN ACCESS LEVEL OF AT
*              LEAST 10 IS REQUIRED TO RUN. 
* 
* 
*       THIS DIAGNOSTIC HAS BEEN TESTED USING 
*       CML 3.1 LEVEL 110 
* 
* 
* 
* 
*** 2.0       DECK STRUCTURE
* 
**
* 
* 
*   2.0       DECK STRUCTURE
*             --------------
* 
* 
* 
*  THE FOLLOWING TABLE OUTLINES THE DETAILS OF ALL THE CARDS
*  PUNCHED IN THIS TEST.
*  THE DECK PRODUCED IS THE CR1 DECK
* 
*  DETAILED DESCRIPTION OF CR1 DECK.
*  SECTION   PATTERN      NUM        DESCRIPTION OF PATTERN 
*  -------   -------      ---        ---------------------- 
*  TITLE       NUM       CARDS
*  -----       ---       -----
*   A          1           1         BCD-A IN COL 1 
*              2           1         DATA STARTS IN ROW 9 
*              3           1         AND FILL SUCCESSIVE
*              4           1         EVEN COL STARTING IN 
*              5           1         COL 2 UNTIL THE
*              6           1         PERSCRIBED NO OF HOLES 
*              7           1         ARE READ.
*              10          1         ***************
*  FILE CARD   11          1         7-8 IN COL 1 AND 4-5 IN
*                                    COL 2 ACTS AS EOF CARD 
*  FILE CARD   12          1         7-8 IN COL 1 AND 
*                                    4-5-6-7-8-9 IN COL 2 
*   B          1           1         BCD-B IN COL 1  TITLE
*              13          1         BINARY 10 IN COL 1 
*              14          1                11
*              15          1                12
*              16          1         BINARY 13 IN COL 1 
*              17          1                14
*              20          1                15
*              21          1         BINARY 16 IN COL 1 
*              22          1                17
*              23          1                20
*              24          1         BINARY 21 IN COL 1 
*              25          1                22
*              26          1                23
*              27          1         BINARY 24 IN COL 1 
*              30          1                25
*              31          1         BINARY 26 IN COL 1 
*              32          1                27
*  FILE CARD   11          1         7-8 IN COL 1 
*  FILE CARD   12          1         7-8 IN COL 1 
*   C          1           1         BCD-C IN COL 1 
*              33          3         SEQUENCED COL FROM 5 IN
*                                    COL 1 TO 124 IN COL 80 
*              34          3         ALTERNATE COL OF 5252
*                                    AND 2525 WITH 7-9 COL 1
*              35          3         ALTERNATE COL OF 2525
*                                    AND 5252.
*              36          3         12 COL 2525 12 COL 5252
*                                    ALTERNATE
*              37          1         BLANK CARD.
*  FILE CARD   11          1         7-8 IN COL 1 
*  FILE CARD   12          1         7-8 IN COL 1 
*   D          1           1         BCD-D IN COL 1 
*              40          3         ROW SEQ 12-9 AND REPEAT
*              41          3         ROW SEQ 9-12 AND REPEAT
*              42          3         HEAVY PUNCHING ON UPPER
*                                    PORTION OF CARD
*              43          3         HEAVY PUNCHING ON LOWER
*                                    PORTION OF CARD
*              44          3         12 PUNCH IN COL 1
*              45          3         9 PUNCH IN COL 1 
*              46          3         12 PUNCH IN COL 80 
*              47          3         9 PUNCH IN COL 80
*              50          3         12-9 PUNCH IN COL 1
*              51          3         12-9 PUNCH IN COL80
*  FILE CARD   11          1         7-8 IN COL 1 
*  FILE CARD   12          1         7-8 IN COL 1 
*   E          1           1         BCD-E IN COL 1 
*              52          1         ALTERNATE 4 COL OF 
*                                    2525 AND 4 COL OF 5252 
*              53          1         ALTERNATE 4 COL OF 
*                                    1463 AND 4 COL OF 6314 
*              54          1         ALTERNATE 4 COL OF 
*                                    0707 AND 4 COL OF 7070 
*              55          1         ALTERNATE 4 COL OF 
*                                    7417 AND 4 COL 0360
*              56          1         ALTERNATE 4 COL OF 
*                                    6037 AND 4 COL OF 1740 
*              57          1         EACH COL 2525
*              60          1         EACH COL 3333
*              61          1         EACH COL 3567
*              62          1         EACH COL 6757
*              63          1         EACH COL 3737
*              64          1         EACH COL 4034
*              65          1         EACH COL 1601
*              66          1         ALTERNATE 4 COL 6334 
*                                    5322 3555 5276 2450
*              67          1         ALTERNATE 4 COL 5322 
*                                    3555 5276 2450 6334
*              70          1          ALTERNATE 4 COL 3555
*                                    5276 2450 6334 5322
*              71          1         ALTERNATE 4 COL 5276 
*                                    2450 6334 5322 3555
*              72          1         ALTERNATE 4 COL 2450 
*                                    6334 5322 3555 5276
*              73          10        ALTERNATE 4 COL 3777 
*                                    7767 7577
*  FILE CARD   11          1         7-8 PUNCH IN COL 1 
*  FILE CARD   12          1         7-8 PUNCH IN COL 1 
*   F          1           1         BCD-F IN COL 1 
*              74          3         BCD CODES 00-77 IN COL 
*                                    1-64 
*              75          15        RANDOM BCD CARDS 
*              76          1         BLANK CARD 
*  FILE CARD  11          1         7-8 PUNCH IN COL 1
*  FILE CARD   12          1         7-8 PUNCH IN COL 1 
*    G         1           1         BCD-G IN COL 1 
*              77          1         8 COL 1030 8 COL 4102
*             100          1         8 COL 0604 8 COL 2041
*             101          1         8 COL 4102 8 COL 1030
*             102          1         8 COL 2041 8 COL 0604
*             103          1         8 COL 5132 8 COL 2645
*             105          1         8 COL 2645 8 COL 5132
*             106          1         8 COL 6747 8 COL 3675
*             107          1         8 COL 7173 8 COL 5736
*             108          1         8 COL 3675 8 COL 6747
*             111          1         8 COL 5736 8 COL 7173
*             112          1         8 COL 1030 8 COL 4102
*             113          1         8 COL 6747 8 COL 3675
*             113          1         8 COL 0604 8 COL 2041
*             114          1         8 COL 7173 8 COL 5736
*             115          1         8 COL 4102 8 COL 1030
*             116          1         8 COL 3675 8 COL 6747
*             117          1         8 COL 2041 8 COL 0604
*             120          1         8 COL 5736 8 COL 7173
*  FILE CARD  11           1         7-8 IN COL 1 
*  FILE CARD  12           1         7-8 IN COL 1 
*   H          1           1         BCD-H IN COL 1 
*             121          3         FULLY LACED CARD 
*             122          1         COL 1-2 FULLY LACED
*             123          1         COL 1-4 FULLY LACED
*             124          1         COL 1-8 FULLY LACED
*             125          1         COL 1-16 FULLY LACED 
*             126          1         COL 1-32 FULLY LACED 
*             127          1         COL 79-80 FULLY LACED
*             130          1         COL 77-80 FULLY LACED
*             131          1         COL 73-80 FULLY LACED
*             132          1         COL 65-80 FULLY LACED
*             133          1         COL 49-80 FULLY LACED
*  FILE CARD  11           1         7-8 IN COL 1 
*  FILE CARD  12           1         7-8 PUNCH IN COL 1 
*   I          1           1         BCD-I IN COL 1 
*             134          10        RANDOM PATTERN PAST
*                                    COL 40 
*             135          20        RANDOM PATTERN BEFORE
*                                    COL.41 
*  FILE CARD  11           1         7-8 IN COL 1 
*  FILE CARD  12           1         7-8 IN COL 1 
*   J          1           1         BCD-J IN COL 1 
*             136          100       PUNCH RANDOM CARDS.
*   FILE CARD  11            1       7-8 IN COL 1 
*   FILE CARD  12            1       7-8 IN COL 1 
* 
* 
* 
* 
* 
*** 2.1      SCRATCH FILE GENERATION
*            -----------------------
**
* 
*       EACH SECTION SCRATCH FILE IS WRITTEN AS NEEDED
*       TO THE ABOVE PATTERN.THIS ENABLES INDIVIDUAL
*       SECTIONS TO BE RUN SEPARATELY.
* 
*      RANDOM SECTIONS USE THE REAL TIME CLOCK FOR SEED.
*      SEE SECTIONS F, I, AND J BELOW FOR DETAILS.
* 
* 
* 
*       THE FOLLOWING IS A BREAK DOWN OF THE "CODE".
*** 2.2      MODULES USING SCRATCH
*            ---------------------
**
* 
* 
* 
*  SECTION F
* 
*       40 BINARY NUMBERS ARE STORED ON SCRATCH AS
*       ONE NUMBER PUNCHES 2 COLUMNS IN BCD CODE. 
*       THE FIRST NUMBER IS THE REAL TIME CLOCK,THEN
*       THE FOLLOWING ARE DERIVED BY ADDING A CONSTANT
*       PICKED FROM THE FOLLOWING AT RANDOM.
*       4321,6543,7654,3210,4123,1432,7465,3021.
*       A CHECK IS MADE TO ENSURE THAT A "FILE CARD" IMAGE
*       DOES'NT APPEAR IN COLUMN 1. 
* 
* 
*  SECTION I
* 
*       SIMILIAR TO SECTION F CODING EXCEPT FOR THE 
* 
*       FOLLOWING - 
*       IN THE FIRST TEN CARDS THE RANDOM NUMBER IS PLACED
*       IN COLUMN 80 AND THE CONSTANT IS ADDED IN REVERSE.
*       I.E. - COLUMN 79=COL 80+CONSTANT
* 
*       THE OTHER 20 CARDS START AT COLUMN 1. 
* 
*       THE NUMBER OF COLUMNS PUNCHED ON EACH CARD IS SET 
*       RANDOMLY WITHIN THE CONSTRAINTS SET OUT IN THE
*       PATTERN ABOVE.
* 
* 
*  SECTION J
* 
*       85 RANDOM NUMBERS ARE GENERATED IN THE FOLLOWING
*       MANNER. 
*       MULTIPLY THE REAL TIME CLOCK BY A DECIMAL 13
*       ADD 1703 TO EVEN WORDS,AND 7135 TO ODD WORDS
*       PERFORM A LS END-AROUND ONE PLACE ON VALUE
*       STORE IN OUTPUT AREA. 
* 
* 
* 
*       CHANGE THE DENSITY OF THE CARD BY-
* 
*       A.EXTRACT LOWER 3 BITS OF RT CLOCK USED 
*       B.IF BIAS IS 3 OR 4,NO CHANGE IN DENSITY
*       C.IF BIAS IS 0,SELECTIVELY CLEAR BITS IN WORD 
*         THAT CORRESPOND TO THE BITS SET IN THE THIRD
*         AND FIFTH WORD AHEAD OF WORD BEING CHANGED
*       D.IF BIAS IS 1,SELECTIVELY CLEAR WITH 5TH AHEAD 
*       E.IF BIAS IS 2,SELECTIVELY SET BITS IN THE WORD 
*         WHICH CORRESPOND WITH BITS SET IN WORD 3RD AHEAD
*         THEN CLEAR 5TH AHEAD. 
*       F.IF BIAS IS 5,SELECTIVELY CLEAR 3RD AHEAD,THEN SET 
*         5TH AHEAD.
*       G.IF BIAS IS 6,SELECTIVELY SET FROM 5TH AHEAD.
*       H.IF BIAS IS 7,SELECTIVELY SET FROM 3RD AND 5TH.
* 
* 
*       INSERT STARTING VALUE FOR RECOVERY BY - 
* 
*       A.INSERT UPPER 6 BITS OF STARTING VALUE IN LOWER
*         6 BITS OF WORD 10 (COLUMN 10).
*       B.INSERT LOWER 6 BITS OF STARTING VALUE IN LOWER
*         6 BITS OF WORD 12.
*       C.LEFT SHIFT STARTING VALUE END AROUND ONE. 
*       D.INSERT UPPER 6 BITS OF SHIFTED VALUE IN LOWER 
*         6 BITS OF WORD 20.
*       E.INSERT LOWER 6 BITS OF SHIFTED VALUE IN LOWER 
*         6 BITS OF WORD 22.
* 
* 
* 
*  SPECIAL NOTE - 
* 
* 
*       IF 3RD OR 5TH AHEAD IS EQUAL TO 0000,THEN 
*       THE RESULT IS 0000. - THIS MAKES IT COMPATIBLE
*        TO SMM(CP1 AND CR1). 
* 
* 
* 
* 
* 
*** 3.0      MODULE DESCRIPTIONS
*            -------------------
**
* 
* 
* 
* 
* 
*** 3.1     GENERAL DESCRIPTION 
*            ---------------
**
* 
*         ACCESS LEVEL OF AT LEAST 10 IS REQUIRED 
*         TO RUN CP1 TEST.
* 
* 
*  MODULES CP104-CP113
* 
* 
*       EACH TITLE CARD AND THE FIRST FILE CARD ARE OFFSET. 
* 
*       A DELAY IS INSERTED BETWEEN EACH CARD IN SECTION C
*       AND SOME CARDS IN SECTION J. THIS DELAY VARIES SO 
*       THAT IN SOME INSTANCES THE PUNCH MOTOR STOPS. 
* 
*       INTERRUPTS ARE SELECTED FOR ALL SECTIONS EXCEPT 
*       SECTION D.
* 
*       A DELAY IS INSERTED BETWEEN EACH WORD OUTPUT FOR
*       CARDS 6-11 IN SECTION E.
* 
*       INTERRUPTS ARE CLEARED BY FUN 5 FOR CARDS 12-29 IN
*       SECTION E.
* 
*       ALL CARDS IN SECTION F ARE OUTPUT IN BCD MODE.
* 
*       ALL CARDS ARE OUTPUT WITH A 72 INSTRUCTION FOR ALL
*       SECTIONS EXCEPT SECTION G.
* 
*       SECTION G CARDS ARE OUTPUT WITH 73 INSTRUCTION. 
* 
* 
*** 3.1.1    DETAILED DESCRIPTION OF PART 1 MODULES 
*            -------------------------------------- 
* 
* 
* 
* 
*  MODULE CP100-CONNECT TEST
* 
*       THIS MODULE CHECKS THE ABILITY OF THE CARD PUNCH TO 
*       CONNECT AND REPLY-//READY,NOT BUSY//
*       THIS IS REPEATED 10 TIMES.
*       PARAMETERS-SCOPE LOOP AND REPEAT CONDITION. 
* 
* 
*  MODULE CP101 - 6681 PATH TEST
* 
*       CHECKS THE PATH TO THE 6681 FOR PARITY ERRORS.
*       OUTPUTS A NUMBER OF FUNCTIONS TO THE 6681 AND CHECKS
*       FOR CORRECT STATUS. 
*       PARAMETERS-SCOPE LOOP AND REPEAT CONDITION. 
* 
* 
*  MODULE CP102 - LEGAL FUNCTIONS 
* 
*       CHECKS THE ABILITY OF THE PUNCH TO ACCEPT AND 
*       EXECUTE ALL LEGAL FUNCTIONS.
*       PARAMETERS-SCOPE LOOP AND REPEAT CONDITION. 
* 
* 
*  MODULE CP103 - COMPARE CIRCUIT TEST
* 
*      FORCES COMPARE ERRORS BY OUTPUTTING BLANK CARDS, 
*      WHEN PREPUNCHED CARDS HAVE BEEN PLACED IN HOPPER.
*      * PARAMETER P0 REQUIRED (MODULE BYPASSED IF P1=0000) 
* 
* 
*  MODULE CP104 - SECTION A PUNCH 
* 
*       PUNCHES CARDS FOR SECTION A AS SHOWN ABOVE
*       THE SCRATCH FILE IS WRITTEN FOR SECTION A THEN THE
*       MODULE USES THIS IMFORMATION TO PUNCH THE CARDS.
* 
*       TITLE CARD AND FIRST FILE CARD ARE OFFSET.
* 
*       PARAMETERS - NONE REQUIRED
* 
*  MODULE CP105 - SECTION B PUNCH 
* 
*       PUNCHES CARDS FOR SECTION B.
* 
* 
*  MODULE CP106 - SECTION C PUNCH 
* 
*       PUNCHES CARDS FOR SECTION C.
* 
* 
*  MODULE CP107 - SECTION D PUNCH 
* 
*       PUNCHES CARDS FOR SECTION D.
* 
* 
*  MODULE CP108 - SECTION E PUNCH 
* 
*       PUNCHES CARDS FOR SECTION E.
* 
* 
*  MODULE CP109 - SECTION F PUNCH 
* 
*       PUNCHES CARDS FOR SECTION F.
* 
* 
*  MODULE CP110 - SECTION G PUNCH 
* 
*       PUNCHES CARDS FOR SECTION G.
* 
* 
*  MODULE CP111 - SECTION H PUNCH 
* 
*       PUNCHES CARDS FOR SECTION H.
* 
* 
*  MODULE CP112 - SECTION I PUNCH 
* 
*       PUNCHES CARDS FOR SECTION I.
* 
* 
*  MODULE CP113 - SECTION J PUNCH 
* 
*       PUNCHES CARDS FOR SECTION J.
* 
* 
* 
* 
* 
*** 3.2      PART 2 MODULES 
*            -------------- 
**
* 
* 
*  MODULE CP120 - WRITE AND READ SCRATCH FILES. 
* 
*       WRITES AND READS ANY SECTION SCRATCH FILE CHOSEN BY 
*       P1 PARAMETER. 
* 
*       NOTE-SCRATCH FILES HAVE //0// IMAGES AFTER FILE 
*       CARDS WHICH ARE NOT USED IN MODULES.
* 
* 
*  MODULE CP121 - PUNCH PARAMETER SET PATTERN 
* 
*       PARAMETERS P2,P3,P4, AND P5 ARE USED TO DETERMINE 
*       CARD FORMAT TO PUNCH. 
*        P2 = LOWER COLUMN TO PUNCH.
*        P3 = UPPER COLUMN TO PUNCH.
*        P4 = NUMBER OF CARDS TO PUNCH. 
*        P5 = BINARY PATTERN TO PUNCH IN P4 CARDS.
* 
* 
* 
*  MODULE CP122 - READ BRUSH TEST 
* 
*      PUNCHES 80 CARDS WITH 7777 IN ONE COLUMN STARTING
*      AT COLUMN 1. IF AN ERROR OCCURS THE COLUMN WITH THE
*      ERROR IS INDICATED.
*      THE USER MAY REPEAT ON THIS COLUMN USING MODULE CP121
* 
* 
* 
* 
*** 3.3      PART 3 MODULES 
*            -------------- 
**
* 
* 
*  MODULE CP190 SERIES -SCRATCH FILES 
* 
*      WRITE THE INDIVIDUAL SCRATCH FILES FOR EACH SECTION. 
* 
* 
*   MODULE 96X SERIES - ERROR PROCESSING
* 
*      PROCESS THE ERRORS FROM THE MAIN MODULES 
* 
* 
* 
* 
* 
*** 4.0      PARAMETERS 
*            ---------
**
* 
* 
*   4.0      PARAMETERS 
*            ---------- 
* 
*         AL MUST BE GREATER THAN OR EQUAL TO 10. 
*             AL.GE.10
* 
*    P0=DECIMAL NUMBER OF CARDS FOR CP103.
* 
*    P1=SCRATCH FILE IMFORMATION FOR CP120
* 
*       XXX1 - WRITE/READ SECTION A 
*       XXX2 - WRITE/READ SECTION B 
*       XXX4 - WRITE/READ SECTION C 
*       XX1X - WRITE/READ SECTION D 
*       XX2X - WRITE/READ SECTION E 
*       XX4X - WRITE/READ SECTION F 
*       X1XX - WRITE/READ SECTION G 
*       X2XX - WRITE/READ SECTION H 
*       X4XX - WRITE/READ SECTION I 
*       1XXX - WRITE/READ SECTION J 
*       2000 - NOT USED (BIT 10)
*       .GE.. 4XXX - WRITE/READ ALL SECTIONS
* 
*    P2 - P5 ARE FOR CP121
* 
*       P2= LOWER COLUMN NUMBER IN DECIMAL (POSTRADIX 'D')
*           DEFUALT OF P2 IS 1. 
* 
*       P3= UPPER COLUMN NUMBER IN DECIMAL (POSTRADIX 'D')
*       P4= NUMBER OF CARDS 
*       P5= BINARY PATTERN
* 
*            - P2 MUST BE .LE. TO P3. 
* 
*            - P3 MUST BE LESS THAN OR EQUAL TO 80.(P3.LE.80) 
*              THEREFORE P2.LT.P3.LE.80.
* 
* 
* 
* 
* 
* 
*** 5.0      HARDWARE CONFIGURATION 
*            ---------------------- 
**
* 
* 
*   5.0      HARDWARE CONFIGURATION 
*             ----------------------
* 
*       DIAGNOSTIC HAS BEEN TESTED USING A 3446B CONTROLLER 
*       AND A 415B PUNCH. 
*       THE TEST SHOULD ALSO RUN ON A IBM523 PUNCH WITH THE 
*       FOLLOWING UNCERTAINTIES - 
*       1.NO OFFSET ON CARDS. 
*       2.FULLY LACED CARDS IN SECTION H MAY FAIL.
* 
* 
* 
* 
*** 6.0      MESSAGES 
*            -------- 
* 
**
* 
* 
*** 6.1      NORMAL RUNNING MESSAGES
*            -----------------------
**
* 
* 
*       -CP100 CONNECT AND STATUS CHECK 
* 
*       -CP101 6681 TRANSMISSION PARITY CHECK 
* 
*       -CP102 LEGAL FUNCTION CHECK 
* 
*       -CP103 COMPARE NETWORK CHECK
* 
* 
*       -CP104 SECTION A(21) -WRITE CP1 DECK
* 
*       -CP105 SECTION B(22) -WRITE CP1 DECK
* 
*       -CP106 SECTION C(23) -WRITE CP1 DECK
* 
*       -CP107 SECTION D(24) -WRITE CP1 DECK
* 
*       -CP108 SECTION E(25) -WRITE CP1 DECK
* 
*       -CP109 SECTION F(26) -WRITE CP1 DECK
* 
*       -CP110 SECTION G(27) -WRITE CP1 DECK
* 
*       -CP111 SECTION H(30) -WRITE CP1 DECK
* 
*       -CP112 SECTION I(31) -WRITE CP1 DECK
* 
*       -CP113 SECTION J(41) -WRITE CP1 DECK
* 
* 
*       -CP120 WRITE AND READ SCRATCH 
* 
*       -CP121 UTILITY DECK 
* 
*       -CP122 READ BRUSH TEST
* 
* 
*  NOTE -NUMBER IN ( ) IS BCD CODE OF SECTION LETTER
* 
* 
*** 6.2      SCOPE LOOP DISPLAYS
*            -------------------
**
* 
*       LC=*DEC,EC=*DEC,STATUS=*OCT 
* 
* 
*** 6.3   DAYFILE MESSAGES -
*        ---------------- 
**
* 
*       *DEC ERRORS IN CP1XX
* 
* 
*** 6.4   ERROR MESSAGES -
**
* 
* 
*       MALET ABORT MESSAGES AS PER MALET MANUAL 60456020A
*       PAGE 3.2
*       -CH=XX,EQ=XX,UN=XX,LF=XX,DC=XX
*       LF=LAST FUNCTION ISSUED 
*       DC=DEVICE CODE
*       -ABORT ON (XXXX) AT LINE XXX
*       XXXX=STATUS 
*           =FUNC 
*           =CONN 
*       -6681 STATUS=XXXX,PUNCH STATUS=XXXX 
*       -LAST 6681 STATUS 
* 
* 
*** 6.5     ERROR CODE MESSAGES - 
**
* 
* 
*       -CP1XX ERROR CODE XXX AT LINE YYY 
* 
*  ERROR CODES -
*       -CODE 100 - PUNCH STATUS ERROR WHILE PUNCHING 
*                   CARDS IN CP103-CP122. 
*       -CODE 101 - 6681 STATUS ERROR.
*       -CODE 102 - SCRATCH FILE ERRORS.
*       -CODE 104 - STATUS ERRORS IN CP100-CP102. 
* 
* 
* 
*** 6.6     STATUS ERROR MESSAGES - 
* 
**
* 
* 
*       -CP1XX PUNCH STATUS EXPECTED=XXX,REC=XXX. 
*       -CP1XX //WAITING ON READY-NOT BUSY//
*       -UNEXPECTED STATUS BIT XX 
*       -MISSING STATUS BIT XX
*       -ACTUAL STAT= XX,EXPECTED STATUS= XX
*       -CARD NO XX LAST PUNCHED. 
*       -TITLE CARD LAST PUNCHED. 
* 
*  NOTE- CARD IMAGE IS OF CARD LAST READ THEREFORE
*        IS THE CARD BEFORE THE ONE PUNCHED.
*        IF TITLE CARD LAST PUNCHED,LAST READ IS CARD 
*        IN LAST SECTION. 
*        CARDS IN EACH SECTION NUMBER WITH TITLE CARD 
*        AS ZERO,THEN NEXT CARD IS NUMBER ONE.
* 
*       -CARD IMAGE IS GIVEN FOR COMPARE ERRORS-
*          FIRST 20 COLUMNS OF LAST CARD THROUGH THE
*         READ STATION ARE     COL 1-4 XXXX,XXXX,XXXX,XXXX
*         COL 5-12 XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX
*         COL13-20 XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX
* 
* 
*  6681 STATUS MESSAGES - 
*       -UNEXPECTED STATUS BIT XX 
*       -MISSING STATUS BIT XX
*       -ACTUAL 6681 STATUS=XXXX,EXPECTED=XXXX
* 
*  NOTE -FOR ALL STATUS ERRORS,THE BIT IN QUESTION
*        IS PRINTED OUT MORE CLEARLY. 
*        E.G. -1---------- COMPARE ERROR. 
*             ---------1-- TRANSMISSION PARITY ERROR. 
* 
* 
*  SCRATCH FILE MESSAGES
* 
*       -ERROR CODE XXX,UNEXPECTED EOI ON SCRATCH 
*       -WORDS READ=XXX,STATUS=XX 
* 
* 
* 
* 
* 
*** 7.0      RUNNING INFORMATION
*            -------------------
**
* 
* 
*   7.0      RUNNING INFORMATION
*           --------------------
* 
*         AL MUST BE GREATER THAN OR EQUAL TO 10
*         TO RUN CP1.  AL.GE.10 
* 
*       TO RUN THE CONFIDENCE TEST - R,CP1
* 
*       NOTE-IF CP103 IS TO BE RUN,PLACE PREPUNCHED CARDS 
*            IN HOPPER AND SET P0 TO NUMBER OF CARDS. 
*            TEST WILL BYPASS CP103 IF P0=0000. 
* 
*       ANY MODULE CAN BE RUN INDIVIDUALLY AS THE SECTION 
*       SCRATCH FILE IS PRODUCED AT THE START OF EACH 
*       SECTION.
*  TO PRODUCE THE CR1 DECK SIMPLY R,CP1 
* 
*  NOTE-IF STATUS ERRORS OCCUR,USER MAY CONTINUE WITH NEXT
*  CARD.
* 
***************************************************** 
   MODULE CP100 3000(21),LOCK 
*** CP1 - 00 - CONNECT AND STATUS CHECK 
* 
**
* 
* 
*  OVERVIEW - MODULE PERFORMS PREEXECUTION CHECKS OF
*             3446/415 PUNCH. 
* 
* 
*  DESCRIPTION - CONNECT AND STATUS CHECKS. 
* 
*          1.CONNECT AND CHECK STATUS FOR READY 
*          2.EXECUTE A CLEAR(F=5) 
*          3.CONNECT AND RECONNECT
*          4.EXECUTE A RELEASE AND CHECK FOR ZERO STATUS
*          5.EXECUTE A GATE FUNC(F=4) AND EXPECT AN ABORT 
*          6. REPEAT FROM 1 10 TIMES. 
*          7. EXIT. 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERROR FROM 3446/415. 
*          3. FAILURE TO REJECT FUNCTION AFTER DISCONNECT.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*               WHERE ERROR CODE IS;
*                  104 - STATUS ERROR 
*          3. LEGAL FUNCTION ACCEPTED AFTER DISCONNECT. 
*             ABORT EXPECTED. 
*             LAST FNC = *OCT.
*          4. FORCED ABORT , EXPECTED EC=4016/4023 REC=*OCT.
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*         B1=LOOP COUNTER 
*         B2=SCOPE LOOP COUNTER 
*         B3=MESSAGE POINTER
*         B4=STATUS EXPECTED (PUNCH)
*         B7=ERROR COUNTER
* 
* 
* 
*      MODULES CALLED 
* 
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/  THIS MODULE CHECKS THE ABILITY OF THE CARD PUNCH 
/  TO CONNECT AND REPLY READY,NOT BUSY STATUS 
1  FORMAT CP100 CONNECT AND STATUS CHECK
2  FORMAT CP100 LC=*DEC,EC=*DEC,STATUS=*OCT 
4  FORMAT ABORT ON (FUNC) AT LINE=*OCT
6  FORMAT *DEC ERRORS IN CP100
7  FORMAT CP100 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP100 LAST FNC=*OCT 
11 FORMAT CP100 LEGAL FUNCTION ACCEPTED AFTER DISCONNECT
12 FORMAT CP100 ABORT EXPECTED. 
13 FORMAT CP100 FORCED ABORT. EXPECTED EC=4016/4023 REC=*OCT
17 FORMAT ------------------------------------------------
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
25 B3=3 
   CONN,ABT 60                         *CONNECT 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   B3=5 
   B4=1                                *EXPECTED STAT 
   STATUS 1 WORDS TO SB(1),ABT 60      *GET STATUS
   IF(SB(1).AND.3703.NE.B4) ERROR 7/104,GOTO 64 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR FUNC
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *GET STAT. 
   IF(SB(1).AND.3703.NE.B4) ERROR 7/104,GOTO 64 
   B3=3 
   CONN,ABT 60                         *CONNECT 
   CONN,ABT 60                         *CONNECT 
   B3=4 
   FUNC 0,ABT 60                       *RELEASE 
   B3=5 
   B4=0                                *EXPECTED STAT.
   STATUS 1 WORDS TO SB(1),ABT 60      *GET STAT. 
   IF(SB(1).AND.3703.NE.B4) ERROR 7/104,GOTO 64 
   B3=4 
   FUNC 4,ABT 30                       *ILLEGAL FUNC. 
   B7=B7+1
   MSG 11 TO LINE 3 
   MSG 12 TO LINE 4 
   GOTO 31
30 IF(EC.EQ.4023)GOTO 32   *NO ERROR
   IF(EC.EQ.4016) GOTO 32              *NO ERROR
   MSG 4(EA) TO LINE 0
   MSG EM TO LINE 1 
   MSG 13(EC) TO LINE 2 
   MSG 10(LF) TO LINE 3 
31 PICTURE
   HALT 
   MSG 17 TO PRINT
   BLANK
   ERROR 0/0
32 GOTO 25 WHILE(B1+1.LE.10D)          *REPEAT 10 TIMES 
33 IF(B7.EQ.0) GOTO 34
   MSG 6 (B7) TO DAYFILE
34 EXIT 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1
   IF(ES.AND.SL.EQ.SL) GOTO 65  *IF SCOPE LOOP
   CALL 96Y                            *ABORT SUB 
   IF(ES.AND.SL.EQ.SL)GOTO 65   *IF SL SET AFTER ERROR
   IF(ES.AND.RC.EQ.RC)GOTO 22   *REPEAT CONDITION 
   GOTO 33
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   IF(ES.AND.SL.EQ.SL) GOTO 65         *IF SCOPE LOOP 
   MSG EM(EC,EA) TO LINE 2
   CALL 96A                            *ERROR PROCESS 
   IF(ES.AND.SL.EQ.SL)GOTO 65   *IF SL SET AFTER ERROR
   GOTO 22 WHILE(B1+1.LE.10D)   *REPEAT 
   GOTO 33
/         ****** SCOPE LOOP ******
65 B2=B2+1                             *LOOP INCR.
   MSG 2 (B2,B7,SB(1)) TO DISPLAY 
   GOTO 25
   END 20 
COMPILE              -CP1 XX -
   MODULE CP101 3000(21),LOCK 
*** CP1 - 01 - TRANSMISSION PATH
* 
**
* 
* 
* 
*  OVERVIEW- THIS MODULE CHECKS THE TRANSMISSION PATH TO
*            THE 6681 AND ISSUES FUNCTIONS TO THE CONTROLLER
*            CHECKING STATUS EACH TIME. 
* 
*  DESCRIPTION - TRANSMISSION PATH CHECK. 
* 
*          1. SET BA INDEX FOR FIRST 6681 PATTERN.
*          2. CONNECT.
*          3. ISSUE 6681 PATTERN FROM OB INDEXED BY BA. 
*          4. INCREMENT BA. 
*          5. REPEAT FROM 2 FOR 20 PATTERNS.
*          6. SET BA INDEX FOR FIRST 3446 FUNCTION. 
*          7. CONNECT.
*          8. ISSUE FUNCTION FROM OB INDEXED BY BA. 
*          9. INCREMENT BA. 
*          10.REPEAT FROM 7 FOR 6 FUNCTIONS.
*          11.EXIT. 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERROR FROM 3446/415. 
*          3. FAILURE TO REJECT FUNCTION AFTER DISCONNECT.
*          4. STATUS ERROR FROM 6681. 
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*               WHERE ERROR CODE IS;
*                 101 - 6681 STATUS ERROR 
*                 104 - STATUS ERROR FROM 3446
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          B1=LOOP COUNTER
*          B2=SCOPE LOOP COUNTER
*         B3=MESSAGE POINTER
*          B4=STATUS EXPECTED (PUNCH) 
*          B6=BUFFER POINTER
*          B7=ERROR COUNTER 
*          B14=TIMING LOOP COUNTER
*          B15=LOOP COUNTER 
*          BA=INDEX FOR OB. 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/  THIS MODULE CHECKS THE TRANSMIT PATH TO
/  THE 6681 CONTROLLER FOR PARITY ERRORS. 
1  FORMAT CP101 6681 TRANSMISSION PARITY CHECK
2  FORMAT CP101 LC=*DEC,EC=*DEC,STATUS=*OCT 
6  FORMAT *DEC ERRORS IN CP101
7  FORMAT CP101 ERROR CODE *OCT AT LINE *OCT
/---------BIT PATTERNS TO TEST PATH 
   DATA(OB(1),CON) 6662,6626,6266,2666,5514,5145,1455 
  ,4551,7770,7707,7077,0777,6530,5306,3065,0653,1111
  ,2222,4444,7777 
/---------3446 FUNCTION CODES AND VALID RESPONSES.
   DATA(OB(30),CON) 20,21,22,4,5,0
   DATA(OB(50),CON) 201,1,1,1,1,0 
20 MSG 1 TO PRINT 
21 MSG 1 TO DISPLAY                    *POST MESS.
22 BA=1                   *INITIAL INDEX
* 
*         ISSUE 20-12 BIT PATTERNS. 
* 
24 B6=51
   B1=0 
   B14=0
   GOSUB 50                            *CONNECT 
   B3=4 
   FUNC OB(BA),ABT 60                  *OUTPUT TO 6681
   GOSUB 40                            *CHECK STATUS
   GOTO 24 WHILE (BA+1.LE.20D)         *LOOP
* 
*         ISSUE 5-3446 FUNCTIONS. 
* 
   B6=50
   B1=0 
   B14=0
   BA=30
30 GOSUB 50                            *CONNECT 
   B3=4 
   FUNC OB(BA),ABT 60                      *ISSUE FUNC
   GOSUB 40                            *CHECK STATUS
   B6=B6+1
   GOTO 30 WHILE (BA+1.LE.35)          *LOOP
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 6 (B7) TO DAYFILE               *ERROR MESS. 
34 EXIT 
/         ****** CONN-STATUS CHECK ****** 
40 DELAY 10 MSEC                       *DELAY FOR STAT. 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *6681 STAT 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STAT
41 IF(SB(0).AND.7.NE.0)ERROR 7/101 GOTO 64  *6681 ERROR 
/----------IF PUNCH STATUS ERROR
   IF(SB(1).AND.3703.NE.OB(B6)) ERROR 7/104 GOTO 61 
   GOTO 43
42 DELAY 20 MSEC                       *DELAY FOR STAT. 
   IF(SB(1).AND.3703.EQ.OB(B6)) GOTO 43  *IF STATUS OK
   GOTO 40 WHILE (B1+1.LE.60D)        *RETRY
   B1=0 
   GOTO 41
43 RETURN 
/         ****** CONNECT SUBROUTINE ******
50 B3=3 
   CONN,ABT 60
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *I/P STAT. 
   IF(SB(1).AND.3703.NE.1) ERROR 7/104,GOTO 64
   RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1
   ENDSUB     *CLEAR ANY SUBROUTINES
   IF(ES.AND.SL.EQ.SL) GOTO 65         *IF SCOPE LOOP 
   CALL 96Y                            *ABORT SUB 
   IF(ES.AND.SL.EQ.SL)GOTO 65   *IF SL SET AFTER ERROR
   IF(ES.AND.RC.EQ.RC) GOTO 65   *REPEAT CONDITION
   GOTO 33
/         ****** CHECK FOR BUSY STAT ****** 
61 IF(SB(1).AND.3.NE.3) GOTO 64        *ERROR 
   B3=3 
   CONN,ABT 60
   DELAY 20 MSEC
   GOTO 40 WHILE (B14+1.LE.100D)
   B14=0
   ERROR 7/104              *RESET EM/EC
   GOTO 64
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   IF(ES.AND.SL.EQ.SL) GOTO 65         *IF SCOPE LOOP 
   MSG EM (EC,EA) TO LINE 2 
   B4=OB(B6)                           *EXPECTED STATUS 
   CALL 96A                            *STATUS SUB
   ENDSUB                  *CLEAR ANY SUBROUTINES 
   IF(ES.AND.SL.EQ.SL)GOTO 65   *IF SL SET AFTER ERROR
   GOTO 21 WHILE(B15+1.LE.10D)    *REPEAT 
   GOTO 33
/         ****** SCOPE LOOP ******
65 B2=B2+1                             *LOOP INCR.
   ENDSUB 
   MSG 2 (B2,B7,SB(1)) TO DISPLAY 
   GOTO 22
   END 20 
COMPILE              -CP1 01 -
*  **************************** 
*  **************************** 
   MODULE CP102 3000(21),LOCK 
*** CP1 - 02 - LEGAL FUNC. CHK
* 
**
* 
* 
*  OVERVIEW-THIS MODULE CHECKS THAT ALL LEGAL FUNCTIONS 
*           ARE ACCEPTED,AND CORRECT STATUS IS RETURNED.
* 
*  DESCRIPTION - LEGAL FUNCTION CHECK 
* 
*          1. CONNECT AND STATUS. 
*          2. SET BA TO 1 FOR FIRST FUNCTION. 
*          3. SEND FUNCTION.
*          4. CHECK STATUS AGAINST EXPECTED STATUS. 
*          5. INCREMENT BA AND REPEAT FROM 3 FOR
*             14 FUNCTIONS. 
*          6. EXIT. 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERROR FROM 3446/415. 
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*               WHERE ERROR CODE IS;
*                 104 - STATUS ERROR
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          B0=STATUS EXPECTED(6681) 
*          B1=LOOP COUNTER
*          B2=SCOPE LOOP COUNTER
*          B3=MESSAGE POINTER 
*          B4=STATUS EXPECTED(PUNCH)
*         B5=OUTPUT LINE POINTER
*          B7=ERROR COUNTER 
*          BA=INDEX FOR OB. 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/  THIS MODULE CHECKS THE ABILITY OF THE PUNCH
/  TO ACCEPT AND EXECUTE ALL LEGAL FUNCTIONS. 
1  FORMAT CP102 LEGAL FUNCTION TEST 
2  FORMAT CP102 LC=*DEC,EC=*DEC,STATUS=*OCT 
6  FORMAT *DEC ERRORS IN CP102
7  FORMAT CP102 ERROR CODE *OCT AT LINE *OCT
10 FORMAT STATUS NOT CORRECT AFTER 2 SECONDS. 
11 FORMAT CP102 PUNCH STATUS EXP=*OCT,REC=*OCT
12 FORMAT CP102 STATUS ERROR AFTER FNC=*OCT 
17 FORMAT --------------------------------------------
/--------FUNCTION CODES ISSUED. 
   DATA(OB(1),CON) 1,2,2,3,4,5,20,21,22,23,24 
  ,25,42,5
/--------STATUS RESPONSES EXPECTED. 
   DATA(OB(21),CON) 1,1,1,1,1,1,201,1,1,1,1,1,1,1 
20 MSG 1 TO PRINT 
21 MSG 1 TO DISPLAY                    *POST MESS.
   BA=1                                *INTIALIZE INDEX 
24 GOSUB 40                            *CONN SUB
   B3=4 
   FUNC OB(BA),ABT 60                  *OUTPUT TO PUNCH 
25 DELAY 10 MSEC                       *DELAY FOR STAT. 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *GET STAT. 
   IF(SB(1).NE.OB(BA+20)) GOTO 62      *FUNC ERROR
   B1=0 
   GOTO 24 WHILE (BA+1.LE.14D)          *NEXT FUNC. 
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 6 (B7) TO DAYFILE
34 EXIT 
/         ****** CONNECT/STATUS CHECK ******
40 B3=3 
   CONN,ABT 60                         *CONNECT 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STAT. 
   IF(SB(1).AND.3.NE.1) ERROR 7/104 GOTO 64 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR PUNCH 
   B3=5 
45 STATUS 1 WORDS TO SB(1),ABT 60      *CHECK STATUS
   IF(SB(1).AND 3703.NE.1) ERROR 7/104 GOTO 64
   RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR COUNTER
   IF(ES.AND.SL.EQ.SL) GOTO 65         *IF SCOPE LOOP 
   CALL 96Y                            *ABORT SUB 
   ENDSUB     *CLEAR ANY SUBROUTINE 
   IF(ES.AND.SL.EQ.SL)GOTO 65   *IF SL SET AFTER ERROR
   IF(ES.AND.RC.EQ.RC) GOTO 24         *IF REPEAT COND. 
   GOTO 33
/         ****** FUNCTION ERROR PROCESS ******
62 GOTO 25 WHILE(B1+1.LE.195D)   *RECHECK STATUS
   B1=0 
   IF(ES.AND.SL.EQ.SL)GOTO 65    *IF SCOPE LOOP 
   B7=B7+1
   MSG 12(LF) TO LINE 1 
   MSG 11(OB(BA+20),SB(1)) TO LINE 2
   PICTURE
   HALT 
   MSG 17 TO PRINT
   BLANK
   ERROR 0/0
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 24 WHILE(BA+1.LE.14D)          *NEXT
   GOTO 33
64 ENDSUB 
/---------STATUS ERROR PROCESSOR
   IF(ES.AND.SL.EQ.SL) GOTO 65         *IF SCOPE LOOP 
   DELAY 100 MSEC                      *DELAY 
   GOTO 40 WHILE (B1+1.LE.50D)         *RECHECK STAT. 
   B1=0 
   MSG 10 TO LINE 1 
   B7=B7+1                             *ERROR COUNT 
   MSG EM (EC,EA) TO LINE 2            *POST ERROR MESS 
   B4=1                                *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(ES.AND.SL.EQ.SL)GOTO 65   *IF SL SET AFTER ERROR
   MSG 1 TO DISPLAY 
   GOTO 33
/         ****** SCOPE LOOP ******
65 ENDSUB 
   B2=B2+1                             *LOOP INCR.
   B7=B7+1                             *INCR ERRORS 
   MSG 2 (B2,B7,SB(1)) TO DISPLAY 
   GOTO 24
   END 20 
COMPILE              -CP1 02 -
*  **************************** 
*  **************************** 
   MODULE CP103 3000(21),LOCK 
*** CP103 - CHECK COMPARE NETWORK 
* 
**
* 
* 
*  OVERVIEW- THIS MODULE TESTS THE ABILITY OF THE 
*            CONTROLLER TO DETECT COMPARE ERRORS. 
* 
* 
*          RUNNING INSTRUSTIONS - CP103 
* 
*            WHEN PUNCH IS READY(CARD IN PUNCH STATION
*            AND READ STATION)-PLACE A NUMBER OF
*            PREPUNCHED CARDS IN THE INPUT HOPPER.
*            SET PARAMETER P0 = NUMBER OF PREPUNCHED
*            CARDS USED AND 
*            RUN AT LEAST MODULES CP101-03 AS THE 2 
*            BLANK CARDS IN THE PUNCH ARE FED THROUGH 
*            BY MODULES CP101 AND CP102.
* 
* 
*  DESCRIPTION - CHECK COMPARE NETWORK
* 
*          1. CHECK P0 .NE. 0. MODULE WILL NOT
*             RUN WITH P0=0.
*          2. CONNECT AND CJHECK STATUS.
*          3. SET BINARY MODE.
*          4. PUNCH ONE CARD ( OUTPUT BUFFER CONTAINS NO DATA)
*          5. REPEAT FROM 2. FOR P0 CARDS.
*          6. EXIT. 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 3446/415.
*          3. STATUS ERRORS FROM 6681.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*               WHERE ERROR CODE IS;
*                  100 - PUNCH STATUS ERROR 
*                  101 - 6681 STATUS ERROR
* 
* 
*  PARAMETERS NEEDED- P0=NUMBER OF PREPUNCHED CARDS(DEC)
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B1=STAT LOOP COUNT.
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          P0=NO OF CARDS IN DECIMAL
*          WC=OUTPUT WORD COUNT 
* 
* 
*      MODULES CALLED 
* 
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
* 
/THIS MODULE CHECKS COMPARE NETWORK 
1  FORMAT CP103 COMPARE NETWORK CHECK 
7  FORMAT CP103 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP103 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP103
16 FORMAT CP103 SECTION NOT RUN AS P0=0000
20 IF(P0.EQ.0) GOTO 36         *MODULE NOT RUN
   BA=0                                *ZERO OB POINTER 
   B1=0 
   WC=80D                              *CARD IMAGE
21 MSG 1 TO PRINT,DISPLAY              *SECTION A 
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.P0)           *OUT P0 CARDS
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
36 MSG 16 TO PRINT , DISPLAY
   GOTO 34                       *EXIT
/         ****** PUNCH SUBROUTINE ******
40 GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   FUNC 22,ABT 60 
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.3401) GOTO 47    *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)          *RECHECK STATUS
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
47 B1=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=3401                             *EXPECTED STATUS 
   CALL 96A                            *STATUS SUB. 
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 03 -
*  **************************** 
*  **************************** 
   MODULE CP104 3000(21),LOCK 
*** CP1 - 04 - SECT. A PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
* 
*  DESCRIPTION - PUNCH TEST SECTION A 
* 
*          1. GENERATE PATTERN A ( 90A )
*          2. READ SCRATCH. 
*          3. CONNECT AND STATUS PUNCH. 
*          4. FUNCTION B.C.D. FOR TITLE CARD. 
*          5. PUNCH TITLE CARD. 
*          6. OFFSET TITLE CARD.
*          7. FUNCTION BINARY.
*          8. PUNCH 10 CARDS , READ SCRATCH AS NEEDED 
*             TO FILL OUTPUT BUFFER.
*          9. OFFSET FIRST FILE CARD. 
*         10. EXIT. 
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNT.
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190A - PATTERN GENERATOR SECTION A
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS A(21) OF CP1
1  FORMAT CP104 SECTION A(21) -WRITE CP1 DECK 
7  FORMAT CP104 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP104 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP104
20 CALL 90A                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT,DISPLAY              *SECTION A 
   GOSUB 50                            *READ SCRATCH
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.9D)           *OUT 9 CARDS 
   GOSUB 52               *RECONNECT
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80D 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 46   *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STATUS 
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 04 -
*  **************************** 
*  **************************** 
   MODULE CP105 3000(21),LOCK 
*** CP1 - 05 - SECT. B PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION B 
* 
*          1. GENERATE TEST PATTERN B ( 90B ) 
*          2. READ SCRATCH. 
*          3. CONNECT AND STATUS. 
*          4. SET B.C.D. MODE.
*          5. PUNCH TITLE CARD. 
*          6. OFFSET TITLE CARD.
*          7. SET BINARY. 
*          8. PUNCH 18 CARDS , READ SRCATCH AS NEEDED 
*             TO REFILL OUTPUT BUFFER.
*          9. OFFSET FIRST FILE CARD. 
*          10. EXIT.
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190B - PATTERN GENERATOR SECTION B
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS B(22) OF CP1
1  FORMAT CP105 SECTION B(22) -WRITE CP1 DECK 
7  FORMAT CP105 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP105 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP105
20 CALL 90B                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT,DISPLAY              *SECTION B 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT A LAST CARD
   OB(241D)=77
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.18D)          *OUT 18 CARDS
   GOSUB 52               *RECONNECT
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80D 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 46   *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 05 -
*  **************************** 
*  **************************** 
   MODULE CP106 3000(21),LOCK 
*** CP1 - 06 - SECT. C PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION C 
* 
*          1. GENERATE TEST PATTERN C ( 90C ) 
*          2. READ SCRATCH. 
*          3. CONNECT AND STATUS. 
*          4. SET B.C.D. MODE.
*          5. PUNCH TITLE CARD. 
*          6. OFFSET TITLE CARD.
*          7. SET BINARY. 
*          8. PUNCH 10 CARDS , READ SCRATCH AS NEEDED.
*          9. SET CARD DELAY TO 4000D.
*          10.PUNCH 2 CARDS.
*          11.SET DELAY TO 800D.
*          12.PUNCH 3 CARDS.
*          13.RECONNECT.
*          14. OFFSET FIRST FILE CARD.
*          15. EXIT.
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190C - PATTERN GENERATOR SECTION C
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS C(23) OF CP1
1  FORMAT CP106 SECTION C(23) -WRITE CP1 DECK 
7  FORMAT CP106 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP106 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP106
20 CALL 90C                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT,DISPLAY              *SECTION C 
   B2=500D                             *DELAY B/W CARDS 
   B4=401                              *EXPECTED STATUS 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT B LAST CARD
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.10D)          *OUT 10 CARDS
   B2=4000D                            *PUNCH DELAY 
23 GOSUB 40 
   GOTO 23 WHILE(B6+1.LE.12D)          *OUT 2 CARDS 
   B2=800D
24 GOSUB 40 
   GOTO 24 WHILE (B6+1.LE.15D)         *OUT 3 CARDS 
   GOSUB 52                            *CONNECT 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80
   DELAY B2 MSEC                       *PUNCH DELAY 
   DELAY B2 MSEC                       *PUNCH DELAY 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
43 B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.B4) GOTO 46    *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   REL,ABT 60                          *RELEASE PUNCH 
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 06 -
*  **************************** 
*  **************************** 
   MODULE CP107 3000(21),LOCK 
*** CP1 - 07 - SECT. D PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION D 
* 
*          1. GENERATE TEST PATTERN D ( 90D ) 
*          2. READ SCRATCH. 
*          3. SET B.C.D.
*          4. PUNCH TITLE CARD. 
*          5. OFFSET TITLE CARD.
*          6. SET BINARY. 
*          7. PUNCH 32 CARDS , READ SCRATCH AS NEEDED.
*          8. OFFSET FIRST FILE CARD. 
*          9. EXIT. 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190D - PATTERN GENERATOR SECTION D
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS D(24) OF CP1
1  FORMAT CP107 SECTION D(24) -WRITE CP1 DECK 
7  FORMAT CP107 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP107 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP107
20 CALL 90D                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT,DISPLAY              *SECTION D 
   B4=1                                *EXPECTED STATUS 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT C LAST CARD
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.32D)          *OUT 32 CARDS
   GOSUB 52               *RECONNECT
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 43
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
43 B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.B4) GOTO 46    *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=1                                *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 07 -
*  **************************** 
*  **************************** 
   MODULE CP108 3000(21),LOCK 
*** CP1 - 08 - SECT. E PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION E 
* 
*          1. GENERATE TEST PATTERN ( 90E ) 
*          2. READ SCRATCH. 
*          3. SET B.C.D.
*          4. PUNCH TITLE CARD. 
*          5. OFFSET TITLE CARD.
*          6. SET BINARY. 
*          7. PUNCH 5 CARDS , READ SCRATCH AS NEEDED
*             REFILL OUTPUT BUFFER. 
*          8. SET CARD DELAY TO 2.
*         --- CP108A--- 
*          10.SET DELAY TO 0. 
*          11.PUNCH 18 CARDS. 
*          12.RECONNECT.
*          13.OFFSET FIRST FILE CARD. 
*          14.EXIT. 
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
*                * * * * * * * * * * * * * * * * * * *
* 
*                 RANDOM PATTERNS ARE FROM REAL-
*                 TIME CLOCK AND MAY NOT BE 
*                 REPRODUCABLE. 
* 
*                * * * * * * * * * * * * * * * * * * *
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190E - PATTERN GENERATOR SECTION E
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS E(25) OF CP1
1  FORMAT CP108 SECTION E(25) -WRITE CP1 DECK 
7  FORMAT CP108 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP108 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP108
20 CALL 90E                            *WRITE SCRATCH 
   B1=0 
21 MSG 1 TO PRINT , DISPLAY    *SECTION E 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT D LAST CARD
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.5D)           *OUT 5 CARDS 
   B2=2D                               *WORD DELAY
23 GOSUB 40 
   GOTO 23 WHILE(B6+1.LE.11D)          *OUT 6 CARDS 
   EXIT TO 08A            *CONTINUE SECTION 8 
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
* 
*---------PUNCH SUBROUTINE
* 
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80
   DELAY B2 MSEC                       *PUNCH DELAY 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
   IF(B2.NE.2D) GOTO 44                *NO WORD DELAY 
   B3=6 
43 OUT CHAIN 1 WORDS FROM OB(BA),ABT 60 
   DELAY B2 MSEC                       *WORD DELAY
   GOTO 43 WHILE (BA+1.LE.79)          *ONE CARD
   B3=10
   DCN,ABT 60                          *DEACT. CHANNEL
   BA=0 
   B3=2 
   STATUS8 TO SB(0),ABT 60
   IF(SB(0).AND.7.NE.0)ERROR 7/101 GOSUB 64   *6681 ERROR 
   GOTO 45
44 B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0)ERROR 7/101 GOSUB 64   *6681 ERROR 
45 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 46   *CORRECT STAT
   GOTO 45 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOSUB 64          *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
* 
*---------READ SUBROUTINE 
* 
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
* 
*---------CONNECT/STATUS SUBROUTINE 
* 
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
* 
*---------ABORT PROCESSOR 
* 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
* 
*---------STATUS ERROR PROCESSOR
* 
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   B3=3 
   CONN,ABT 60
   RETURN 
   END 20 
COMPILE              -CP1 08 -
*  **************************** 
*  **************************** 
   MODULE CP108A 3000(21),LOCK
*** CP1 - 08A - SECT. E PUNCH 
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE CONTINUES THE PUNCH OF SECTION E.. 
* 
*  DESCRIPTION - PUNCH TEST SECTION E CONTINUED.
* 
*          1. SET DELAY TO 0. 
*          2. PUNCH 18 CARDS. 
*          3. RECONNECT.
*          4. OFFSET FIRST FILE CARD. 
*          5. EXIT. 
* 
* 
* 
*                * * * * * * * * * * * * * * * * * * *
* 
*                 RANDOM PATTERNS ARE FROM REAL-
*                 TIME CLOCK AND MAY NOT BE 
*                 REPRODUCABLE. 
* 
*                * * * * * * * * * * * * * * * * * * *
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
/ THIS MODULES PUNCHES OUT SECTIONS E(25) OF CP1
1  FORMAT CP108A SECTION E(25) -WRITE CP1 DECK
7  FORMAT CP108A ERROR CODE *OCT AT LINE *OCT 
10 FORMAT CP108A -PAUSE- WAIT ON RNB
15 FORMAT *DEC ERRORS IN CP108A 
20 B1=0 
21 MSG 1 TO PRINT , DISPLAY    *SECTION E 
   B2=0 
24 GOSUB 40 
   GOTO 24 WHILE (B6+1.LE.29D)         *OUT 18 CARDS
   GOSUB 52                            *CONNECT 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
* 
*---------PUNCH SUBROUTINE
* 
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80
   DELAY B2 MSEC                       *PUNCH DELAY 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOSUB 64  *6681 ERROR 
45 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 47   *CORRECT STATUS
   GOTO 45 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   B4=401                   *EXPECTED STATUS
   ERROR 7/100 GOSUB 64                 *ERROR CHECK
47 B1=0 
   B0=B0+80D
   B3=4                            *CHECK CLEAR 
   FUNC 5,ABT 60
   B4=1                     *EXPECTED STATUS
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60 
   IF(SB(1).AND.3703.NE.1)ERROR 7/100 GOSUB 64
   RETURN 
* 
*---------READ SUBROUTINE 
* 
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
* 
*---------CONNECT/STATUS SUBROUTINE 
* 
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
* 
*---------ABORT PROCESSOR 
* 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
* 
*---------STATUS ERROR PROCESSOR
* 
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 CALL 96A               *STATUS SUBROUTINE
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   B3=3 
   CONN ABT,60
   RETURN 
   END 20 
COMPILE              -CP1 08 -
*  **************************** 
*  **************************** 
   MODULE CP109 3000(21),LOCK 
*** CP1 - 09 - SECT. F PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION F 
* 
*          1. GENERATE TEST PATTERN F ( 90F ) 
*          2. READ SCRATCH. 
*          3. SET B.C.D.
*          4. PUNCH TITLE CARD. 
*          5. OFFSET TITLE CARD.
*          6. PUNCH 21 CARDS , READ SCRATCH AS NEEDED TO
*             REFILL OUTPUT BUFFER. 
*          7. OFFSET FIRST FILE CARD. 
*          8. EXIT. 
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190F - PATTERN GENERATOR SECTION F
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS F(26) OF CP1
1  FORMAT CP109 SECTION F(26) -WRITE CP1 DECK 
7  FORMAT CP109 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP109 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP109
20 CALL 90F                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B7=0 
   B1=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT , DISPLAY    *SECTION F 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT E LAST CARD
   GOSUB 40                            *PUNCH 
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.21D)          *OUT 21 CARDS
   GOSUB 52               *RECONNECT
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80D 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
   FUNC 22,ABT 60 
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 46   *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 09 -
*  **************************** 
*  **************************** 
   MODULE CP110 3000(21),LOCK 
*** CP1 - 10 - SECT. G PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION G 
* 
*          1. GENERATE TEST PATTERN G ( 90G ) 
*          2. READ SCRATCH. 
*          3. SET B.C.D.
*          4. PUNCH TITLE CARD. 
*          5. OFFSET TITLE CARD.
*          6. SET BINARY. 
*          7. PUNCH 20 CARDS. 
*          8. OFFSET FIRST FILE CARD. 
*          9. EXIT. 
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190G - PATTERN GENERATOR SECTION G
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS G(27) OF CP1
1  FORMAT CP110 SECTION G(27) -WRITE CP1 DECK 
7  FORMAT CP110 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP110 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP110
20 CALL 90G                            *WRITE SCRATCH 
   B1=0 
   BA=0                                *ZERO OB POINTER 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT , DISPLAY    *SECTION G 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=1760                       *SECT F LAST CARD
   DUP 6060 TO OB(241D) FOR 39
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.20D)          *OUT 20 CARDS
   GOSUB 52               *RECONNECT
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80D 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUTB WC WORDS FROM OB(0),ABT 60     *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 46   *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 10 -
*  **************************** 
*  **************************** 
   MODULE CP111 3000(21),LOCK 
*** CP1 - 11 - SECT. H PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
* 
*  DESCRIPTION - PUNCH TEST SECTION H 
* 
*          1. GENERATE TEST PATTERN H ( 90H ) 
*          2. READ SCRATCH. 
*          3. SET B.C.D.
*          4. PUNCH TITLE CARD. 
*          5. OFFSET TITLE CARD.
*          6. SET BINARY. 
*          7. PUNCH 15 CARDS , READ SCRATCH AS NECESSARY
*             TO REFILL OUTPUT BUFFER.
*          8. OFFSET FIRST FILE CARD. 
*          9. EXIT. 
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190H - PATTERN GENERATOR SECTION H
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS H(30) OF CP1
1  FORMAT CP111 SECTION H(30) -WRITE CP1 DECK 
7  FORMAT CP111 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP111 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP111
20 CALL 90H                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT , DISPLAY    *SECTION H 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT G LAST CARD
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.15D)          *OUT 15 CARDS
   GOSUB 52               *RECONNECT
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80D 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 46   *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 11 -
*  **************************** 
*  **************************** 
   MODULE CP112 3000(21),LOCK 
*** CP1 - 12 - SECT. I PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION I 
* 
*          1. GENERATE TEST PATTERN SECTION I ( 90I ) 
*          2. READ SCRATCH. 
*          3. SET B.C.D.
*          4. PUNCH TITLE CARD. 
*          5. OFFSET TITLE CARD.
*          6. SET BINARY. 
*          7. PUNCH 32 CARDS , READ SCRATCH AS NECESSARY
*             TO REFILL OUTPUT BUFFER.
*          8. OFFSET FIRST FILE CARD. 
*          9. EXIT. 
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
*                * * * * * * * * * * * * * * * * *
* 
*                 RANDOM PATTERNS ARE FROM REAL-
*                 TIME CLOCK AND MAY NOT BE 
*                 REPRODUCABLE. 
* 
*                * * * * * * * * * * * * * * * * *
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190I - PATTERN GENERATOR SECTION I
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS I(31) OF CP1
1  FORMAT CP112 SECTION I(31) -WRITE CP1 DECK 
7  FORMAT CP112 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP112 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP112
20 CALL 90I                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   B7=0 
   B6=0                      *ZERO CARD COUNTER 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT , DISPLAY    *SECTION I 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT H LAST CARD
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.32D)          *OUT 32 CARDS
   GOSUB 52               *RECONNECT
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 EXIT 
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80D 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.401) GOTO 46   *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
   END 20 
COMPILE              -CP1 12 -
*  **************************** 
*  **************************** 
   MODULE CP113 3000(21),LOCK 
*** CP1 - 13 - SECT. J PUNCH
* 
**
* 
* 
* 
*    OVERVIEW- THIS MODULE PUNCHES ALL CARDS IN ABOVE SECT. 
*              THE TITLE CARD AND FIRST FILE CARD ARE 
*              OFFSET BY THE PUNCH. 
*              IN CASE OF STATUS ERRORS AN INDICATION OF
*              WHICH CARD WAS LAST PUNCHED IS GIVEN-CARDS 
*              NUMBER WITH TITLE CARD "0".
*              AN IMAGE OF THE CARD READ IS ALSO GIVEN TO 
*              HELP ISOLATE THE FAILURE.
*              AN ANALYSIS OF THE FAILING STATUS BIT IS DONE
*              TO INDICATE TYPE OF ERROR. 
* 
*  DESCRIPTION - PUNCH TEST SECTION J 
* 
*          1. GENERATE TEST PATTERN J ( 90J ) 
*          2. READ SCRATCH. 
*          3. SET B.C.D.
*          4. PUNCH TITLE CARD. 
*          5. OFFSET TITLE CARD.
*          6. SET BINARY. 
*          7. PUNCH 10 CARDS , READ SCRATCH AS NECESSAY 
*             TO REFILL OUTPUT BUFFER.
*          8. SET CARD DELAY TO 4000D.
*          9. PUNCH 1 CARD. 
*          10.SET DELAY TO 0. 
*          11.PUNCH 29 CARDS. 
*          12.SET DELAY TO 3000D. 
*          13.PUNCH 2 CARDS.
*          14.SET DELAY TO 0. 
*          15.PUNCH 60 CARDS. 
*          16.RECONNECT.
*          17.OFFSET FIRST FILE CARD. 
*          18.EXIT. 
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
*          5. SCRATCH FILE ERRORS.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*                   102 - SCRATCH FILE ERROR
*          3. SCRATCH FILE SUSPECT
*             UNEXPECTED EOI ON SCRATCH 
* 
* 
*                * * * * * * * * * * * * * * * * *
* 
*                 RANDOM PATTERNS ARE FROM REAL-
*                 TIME CLOCK AND MAY NOT BE 
*                 REPRODUCABLE. 
* 
*                * * * * * * * * * * * * * * * * *
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP190J - PATTERN GENERATOR SECTION J
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/ THIS MODULES PUNCHES OUT SECTIONS J(41) OF CP1
1  FORMAT CP113 SECTION J(41) -WRITE CP1 DECK 
7  FORMAT CP113 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP113 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP113
20 CALL 90J                            *WRITE SCRATCH 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   B7=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
21 MSG 1 TO PRINT , DISPLAY    *SECTION J 
   B2=0                                *DELAY B/W CARDS 
   B4=401                              *EXPECTED STATUS 
   GOSUB 50                            *READ SCRATCH
   OB(240D)=6                          *SECT I LAST CARD
   B5=0                                *SET BCD 
   GOSUB 40                            *PUNCH 
   B5=1                                *SET BINARY
   B6=1 
22 GOSUB 40                            *PUNCH 
   GOTO 22 WHILE(B6+1.LE.10D)          *OUT 10 CARDS
   B2=4000D                            *PUNCH DELAY 
23 GOSUB 40 
   GOTO 23 WHILE(B6+1.LE.11D)          *OUT CARDS 
   B2=0 
24 GOSUB 40 
   GOTO 24 WHILE (B6+1.LE.40D)         *OUT CARDS 
   B2=3000D 
25 GOSUB 40 
   GOTO 25 WHILE (B6+1.LE.42D)         *OUT CARDS 
   B2=0 
26 GOSUB 40 
   GOTO 26 WHILE (B6+1.LE.102D)        *OUT CARDS 
   GOSUB 52                            *CONNECT 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET 1ST FILE CARD
   GOSUB 52 
   FUNC 22,ABT 60                      *SELECT EOP
   FUNC 4,ABT 60                       *CHECK LAST CARD 
   GOSUB 44 
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 GOTO 77
/         ****** PUNCH SUBROUTINE ******
40 IF(B0.EQ.320D) GOSUB 50             *READ SCRATCH
   COPY IB(B0) TO OB(0) FOR 80
   DELAY B2 MSEC                       *PUNCH DELAY 
   DELAY B2 MSEC                       *PUNCH DELAY 
   GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   IF(B5.EQ.0) GOTO 41                 *IF BCD
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
   GOTO 42
41 WC=40D 
   FUNC 2,ABT 60                       *SET BCD 
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
43 B3=6 
   OUT WC WORDS FROM OB(0),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64  *6681 ERROR
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.B4) GOTO 46    *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)          *RECHECK STATUS
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B0=B0+80D
   B3=1 
   REL,ABT 60                          *RELEASE PUNCH 
   IF(B6.EQ.103D) GOTO 33 
   RETURN 
/         ****** READ SCRATCH ******
50 COPY IB(240D) TO OB(240D) FOR 80    *SAVE IMAGE
   SYSRD,STATUS TO B3 
   IF(WT.EQ.0) ERROR 7/102 GOTO 64     *NO SCRATCH
   IF(B3.NE.0) ERROR 7/102 GOTO 64     *NO IMFORMATION
   B0=0 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   IF(EC.EQ.102)GOTO 33   *EXIT IF SCRATCH EC.
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
77 END 20 
COMPILE              -CP1 13 -
*  **************************** 
*  **************************** 
   MODULE CP120 3000(21),LOCK 
*** CP1 - 20 - READ + WRITE SCRATCH FILE
* 
**
* 
* 
* 
*  OVERVIEW- THIS IS A UTILITY MODULE TO WRITE AND READ 
*            THE SCRATCH FILES FOR EACH SECTION.
* 
*  DESCRIPTION - READ / WRITE SCRATCH FILE
* 
*          1. TEST P1 PARAMETER , EXIT IF EQUAL TO 0. 
*          2. TEST P1 FOR BIT FOR TEST SECTION PATTERN
*             SELECTION AND GENERATE IF SET.
*          3. REPEAT 2 FOR EACH BIT 0 TO 9. 
*          4. IF BIT 11 OF P1 IS SET (P1.GE.4000) 
*             GENERATE ALL PATTERNS.
*          5. END.
* 
* 
* 
*  PARAMETERS REQUIRED- 
*            P1=SCRATCH FILES TO BE WRITTEN 
* 
* 
*      MODULES CALLED 
* 
*           CP190A - GENERATE PATTERN A 
*           CP190B -     "        "   B 
*           CP190C -     "        "   C 
*           CP190D -     "        "   D 
*           CP190E -     "        "   E 
*           CP190F -     "        "   F 
*           CP190G -     "        "   G 
*           CP190H -     "        "   H 
*           CP190I -     "        "   I 
*           CP190J -     "        "   J 
*           CP190Z - READ SCRATCH AND PRINT 
* 
* 
*********************************************** 
/  WRITE AND READ ALL SCRATCH FILES TO
/  PRODUCE IMAGE OF CP1 DECK. 
1  FORMAT SECTION A 
2  FORMAT SECTION B 
3  FORMAT SECTION C 
4  FORMAT SECTION D 
5  FORMAT SECTION E 
6  FORMAT SECTION F 
7  FORMAT SECTION G 
10 FORMAT SECTION H 
11 FORMAT SECTION I 
12 FORMAT SECTION J 
13 FORMAT CP120 MODULE NOT RUN. NEEDS P1 PARAMETER. 
14 FORMAT CP120 WRITE AND READ SCRATCH
20 MSG 14 TO PRINT,DISPLAY
   IF(P1.EQ.0) GOTO 60
   IF (P1.AND.4000.EQ.4000) GOTO 23    *ALL SECTIONS
   IF (P1.AND.1.NE.1) GOTO 25          *NOT SECT A
23 MSG 1 TO DISPLAY 
   MSG 1 TO LINE 0
   CALL 90A 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 26     *ALL SECTIONS
25 IF(P1.AND.2.NE.2) GOTO 27           *NOT SECT B
26 MSG 2 TO DISPLAY 
   MSG 2 TO LINE 0
   CALL 90B 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 30     *ALL SECTIONS
27 IF(P1.AND.4.NE.4) GOTO 32
30 MSG 3 TO DISPLAY 
   MSG 3 TO LINE 0
   CALL 90C 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 33     *ALL SECTIONS
32 IF(P1.AND.10.NE.10) GOTO 35         *NOT SECT D
33 MSG 4 TO DISPLAY 
   MSG 4 TO LINE 0
   CALL 90D 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 36     *ALL SECT. 
35 IF(P1.AND.20.NE.20) GOTO 37         *NOT SECT E
36 MSG 5 TO DISPLAY 
   MSG 5 TO LINE 0
   CALL 90E 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 40     *ALL SECT. 
37 IF(P1.AND.40.NE.40) GOTO 42         *NOT SECT F
40 MSG 6 TO DISPLAY 
   MSG 6 TO LINE 0
   CALL 90F 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 43     *ALL SECT. 
42 IF(P1.AND.100.NE.100) GOTO 45       *NOT SECT G
43 MSG 7 TO DISPLAY 
   MSG 7 TO LINE 0
   CALL 90G 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 46     *ALL SECT. 
45 IF(P1.AND.200.NE.200) GOTO 47       *NOT SECT H
46 MSG 10 TO DISPLAY
   MSG 10 TO LINE 0 
   CALL 90H 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 50     *ALL SECT. 
47 IF(P1.AND.400.NE.400) GOTO 52       *NOT SECT I
50 MSG 11 TO DISPLAY
   MSG 11 TO LINE 0 
   CALL 90I 
   CALL 90Z 
   IF(P1.AND.4000.EQ.4000) GOTO 53     *ALL SECT. 
52 IF(P1.AND.1000.NE.1000) GOTO 57     *NOT SECT J
53 MSG 12 TO DISPLAY
   MSG 12 TO LINE 0 
   CALL 90J 
   CALL 90Z 
57 GOTO 77
60 MSG 13 TO PRINT , DISPLAY
77 END 20 
COMPILE              -CP1 20 -
*  **************************** 
*  **************************** 
   MODULE CP121 3000(21),LOCK 
*** CP1 - 21 - UTILITY MODULES
* 
**
* 
* 
* 
*  OVERVIEW- THIS MODULE WILL PUNCH OUT A SELECTED
*            PATTERN FOR A SELECTED NUMBER OF CARDS.
* 
*  DESCRIPTION - UTILITY MODULE 21
* 
*          1. TEST PARAMETER P4 FOR NONZERO. END IF ZERO. 
*          2. TEST P2,P3 FOR VALIDITY.
*          3. GENERATE PATTERN AS DEFINED BY P5.
*          4. SET BINARY. 
*          5. PUNCH P4 CARDS. 
*          6. RECONNECT.
*          7. OFFSET LAST CARD PUNCHED. 
*          8. END.
* 
* 
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. STATUS NOT (READY-AND NOT-BUSY) 
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
* 
* 
*  PARAMETERS 
*            P2=LOWER COLUMN NUMBER(DEFAULT=1)
*            P3=UPPER COLUMN NUMBER 
*            P4=NUMBER OF CARDS 
*            P5=BINARY PATTERN
* 
*            THE FOLLOWING CONSTRAINTS APPLY TO P2,P3,P4
*            USED IN THIS SECTION.
*             P4(CARD COUNT) MUST BE GREATER THAN 0.
*             P2(LOWER COLUMN) MUST BE .LE. P3. 
*             P2 WILL DEFAULT TO 1 IF LEFT AT 0.
*             P3(UPPER COLUMN) MUST BE .LE. 80D.
*             IF P2=P3 ONLY ONE COLUMN IS PUNCHED.
* 
* 
* 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*          B15=CONNECT LOOP COUNTER 
*          B14=LOWER COLUMN 
*          B15=UPPER COLUMN 
*          P2=LOWER COLUMN
*          P3=UPPER COLUMN
*          P4=NUMBER OF CARDS 
*          P5=BINARY PATTERN
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/  THIS MODULE PUNCHES A UTILITY DECK 
1  FORMAT CP121 UTILITY DECK
7  FORMAT CP121 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP121 -PAUSE- WAIT ON RNB 
15 FORMAT *DEC ERRORS IN CP121
16 FORMAT CP121 NEEDS P2,P3,P4 PARAMETERS.
17 FORMAT CP121 PARAMETER ERROR P2=*OCT P3=*OCT 
20 MSG 1 TO PRINT 
   IF(P4.EQ.0) GOTO 75         *NO PARAMETER
   B14=P2                    *LOWER COLUMN
   IF(B14.EQ.0)B14=1           *DEFAULT 
   B15=P3                      *UPPER COLUMN
   IF(B15.EQ.0) GOTO 76        *PARAM ERROR P3=0
   IF(B15.GT.80D) GOTO 76      *PARAM ERROR P3>80 
   IF(B14.GT.B15) GOTO 76      *PARAM ERROR P2>P3 
   B2=B15-B14+1                *COLUMNS TO PUNCH
22 DUP P5 TO OB(B14) FOR B2 
   COPY OB(1) TO OB(240D) FOR 80
24 MSG 1 TO DISPLAY 
   BA=0                                *ZERO OB POINTER 
   B1=0 
   WC=80D                              *CARD IMAGE
   SYSREW                              *REWIND SCR. 
   B4=401                              *EXPECTED STATUS 
   B6=1 
26 GOSUB 40 
   GOTO 26 WHILE(B6+1.LE.P4)   *PUNCH P4 CARDS
   GOSUB 52                            *CONNECT 
   B3=4 
   FUNC 3,ABT 60                *OFFSET LAST CARD PUNCHED 
   GOSUB 52 
   B3=4 
   FUNC 22,ABT 60                      *SELECT EOP
   FUNC 4,ABT 60                       *CHECK LAST CARD 
   GOSUB 44 
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 GOTO 77
/         ****** PUNCH SUBROUTINE ******
40 GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   WC=80                               *CARD IMAGE
   FUNC 1,ABT 60                       *SET BINARY
42 FUNC 22,ABT 60                      *SELECT EOP
   FUNC 24,ABT 60                      *SELECT ABN EOP
43 B3=6 
   OUT WC WORDS FROM OB(1),ABT 60      *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64   *6681 ERROR 
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.B4) GOTO 46    *CORRECT STAT
   GOTO 44 WHILE(B1+1.LE.80D)         *RECHECK STATUS 
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
46 IF(B6.NE.1) GOTO 47                 *NO OFFSET 
   B3=4 
   FUNC 3,ABT 60                       *OFFSET
47 B1=0 
   B3=1 
   REL,ABT 60                          *RELEASE PUNCH 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20                 *LOOP COUNT 
53 B3=3 
   CONN,ABT 60
54 B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)      *CONTINUE CHECK 
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM (EC,EA) TO LINE 2 
   IF(B7.GT.5)GOTO 33         *EXIT IF MANY ERRORS
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
   MSG 1 TO DISPLAY      *RESTORE RUN MSG 
   GOTO 47
/---------EXITS 
75 MSG 16 TO PRINT
   MSG 16 TO LINE 2 
   GOTO 77
76 MSG 17(P2,P3) TO PRINT 
   MSG 17(P2,P3) TO LINE 2
77 END 20 
COMPILE              -CP1 21 -
*  **************************** 
*  **************************** 
   MODULE CP122 3000(21),LOCK 
*** CP1 - 22 - READ BRUSH TEST
* 
**
* 
* 
* 
*   OVERVIEW- THIS MODULE CHECKS FOR OVERLAPPING READ 
*             BRUSHES BY PUNCHING ONE COLUMN PER CARD 
*             FOR 80 CARDS. 
*             AN INDICATION OF THE COLUMN IN ERROR IS 
*             GIVEN-THIS MAY THEN BE SET UP IN CP121
*             TO GIVE REPEATS ON THIS COLUMN. 
* 
*  DESCRIPTION - READ BRUSH TEST. 
* 
*          1. SET OUTPUT BUFFER (80) TO 7777B.
*          2. SET BEGINNING ADDRESS (BA) TO 80. 
*          3. PUNCH ONE CARD. 
*          4. DECREMENT BA BY ONE.
*          5. LOOP TO 3 FOR 80 CARDS. 
*          6. RECONNECT.
*          7. STATUS CHECK LAST CARD. 
*          8. END.
* 
* 
*  ERRORS DETECTED
* 
*          1. ABORTS ON ANY 3000 LOW LEVEL COMMAND ARE INDEXED
*             BY (B3) AND ISSUED BY MODULE 96Y .
*              - SEE MODULE CP196Y FOR DETAILS OF MESSAGES. 
*          2. STATUS ERRORS FROM 6681.
*          3. STATUS ERRORS FROM 3446/415.
*          4. COMPARE WHILE READING COLUMN *DEC.
* 
* 
*  ERROR MESSAGES ISSUED
* 
*          1. ABORTS FROM ANY 3000 LOW LEVEL COMMAND ARE ISSUED 
*             FROM MODULE 96Y IN GENERAL FORMAT;
*              *ABORT ON (COMMAND) AT LINE *OCT*
*          2. CP1XX ERROR CODE *OCT AT LINE *OCT
*                WHERE ERROR CODE IS; 
*                   100 - PUNCH STATUS ERROR
*                   101 - 6681 STATUS ERROR 
*          3. COMPARE ERROR WHILE READING COLUMN *DEC.
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          BA=OUTPUT BUFFER ADDRESS 
*          B0=BUFFER COUNTER
*          B1=STAT LOOP COUNTER 
*          B2=DELAY COUNTER 
*          B3=MESSAGE POINTER 
*          B4=PUNCH STATUS
*          B5=BCD/BINARY MODE 
*          B6=SCRATCH CARD COUNT
*          B7=ERROR COUNT 
*  B10 = SCRATCH CELL 
*          B15=CONNECT LOOP COUNTER 
*          WC=OUTPUT WORD COUNT 
* 
* 
* 
*      MODULES CALLED 
* 
*           CP196A - STATUS ERROR PROCESSOR 
*           CP196Y - ABORT PROCESSOR
* 
* 
**********************************************
/  THIS MODULE CHECKS THE READ BRUSHES
1  FORMAT CP122 READ BRUSH TEST 
7  FORMAT CP122 ERROR CODE *OCT AT LINE *OCT
10 FORMAT CP122 -PAUSE- WAIT ON RNB 
12 FORMAT COMPARE ERROR READING COLUMN *DEC 
15 FORMAT *DEC ERRORS IN CP122
17 FORMAT --------------------------------------------- 
* 
* 
   DATA(OB(80),CON) 7777
20 BA=80
   B1=0 
   B7=0 
   B6=1 
   WC=80D                              *CARD IMAGE
   MSG 1 TO PRINT , DISPLAY 
22 GOSUB 40 
   GOTO 22 WHILE(B6+1.LE.80)
   GOSUB 52 
   B3=4 
   FUNC 1,ABT 60
   FUNC 24,ABT 60 
   FUNC 22,ABT 60                      *SELECT EOP
   FUNC 4,ABT 60                       *CHECK LAST CARD 
   GOSUB 44 
33 IF(B7.EQ.0) GOTO 34                 *NO ERRORS 
   MSG 15 (B7) TO DAYFILE 
34 GOTO 77
/---------PUNCH SUBROUTINE
40 GOSUB 52                            *CONN/STAT CHECK 
   B3=4 
   FUNC 5,ABT 60                       *CLEAR 
   FUNC 1,ABT 60                       *SET BINARY
   FUNC 22,ABT 60 
   FUNC 24,ABT 60                      *SELECT ABN EOP
   B3=6 
   BA=81-B6 
   OUT WC WORDS FROM OB(BA),ABT 60     *PUNCH 
   B3=2 
   STATUS8 TO SB(0),ABT 60             *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.0) ERROR 7/101 GOTO 64   *6681 ERROR 
44 DELAY 20D MSEC 
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3703.EQ.B4) GOTO 47    *CORRECT STAT
   B4=401                 *EXPECTED STATUS
   B10=3703               *STATUS MASK
   IF(B6.NE.1) GOTO 46    *IF NOT FIRST CARD
   B10=0103 
   B4=0001                         *IF 1 ST CARD
46 IF(SB(1).AND.B10.EQ.B4)GOTO 47   *CORRECT STATUS 
   GOTO 44 WHILE(B1+1.LE.80D)          *RECHECK STATUS
   B1=0 
   ERROR 7/100 GOTO 64                 *ERROR CHECK 
47 B1=0 
   B3=1 
   REL,ABT 60                          *RELEASE PUNCH 
   RETURN 
/         ****** CONN/STAT SUBROUTINE ******
52 B15=20 
53 B3=3 
   CONN,ABT 60
   B3=5 
   STATUS 1 WORDS TO SB(1),ABT 60      *PUNCH STATUS
   IF(SB(1).AND.3.EQ.1) GOTO 56 
   B3=1 
   REL,ABT 60 
   DELAY 100D MSEC
   GOTO 53 WHILE(B15-1.NE.0)
   MSG 10 TO PRINT,DISPLAY
   PAUSE         *WAIT FOR GO IF PUNCH IS NOT READY OR BUSY 
   MSG 1 TO DISPLAY       *RESET RUN MESSAGE
   GOTO 52
56 RETURN 
/         ****** ABORT PROCESS ****** 
60 B7=B7+1                             *INCR ERROR COUNT
   CALL 96Y                            *ABORT SUB 
   GOTO 33                             *EXIT
/         ****** STATUS ERROR PROCESS ******
64 B7=B7+1
   MSG EM(EC,EA) TO LINE 1
   IF(SB(1).EQ.3401)GOTO 65   *COMPARE ERROR
   IF(SB(1).NE.2401)GOTO 66    *NOT COMPARE ERROR 
65 B10=B6-1             *ERRORS ARE ON PREVIOUS CARD
   MSG 12(B10) TO LINE 2
   PICTURE
   HALT 
   MSG 17 TO PRINT
   BLANK
   GOTO 67
66 B4=401                              *EXPECTED STAT.
   CALL 96A                            *STATUS SUB. 
67 MSG 1 TO DISPLAY   *RESTORE RUN MSG
   GOTO 47
77 END 20 
COMPILE              -CP1 22 -
*  **************************** 
*  **************************** 
   MODULE CP190A 3000(21),LOCK
*** CP1 - 90A - WRITE SCRATCH 
* 
* 
* 
*   OVERVIEW - THE '90' SERIES MODULES ARE USED 
*              BY THE MAIN MODULES CP104-CP120, TO
*              CREATE THE NECESSARY SCRATCH FILES.
*              THE CODING OF THE SCRATCH FILES IS AS
*              LISTED IN THE MAIN DOCUMENTATION.
* 
* 
*      MODULES CALLED 
* 
*           NONE
* 
* 
**********************************************
/  SET UP SCRATCH FILES FOR SECT A(21)
   BASE DECIMAL 
20 OB(0)=2160B                         *TITLE CARD
   DUP 0 TO OB(1) FOR 320D             *ZERO BUFFER 
   DUP 6060B TO OB(1) FOR 39
   OB(81)=1B                           *1 ST CARD 
   OB(161)=7777B                       *2 ND CARD 
   OB(163)=17B
   OB(241)=7777B                       *3 RD CARD 
   COPY OB(241) TO OB(243) FOR 1
   OB(245)=377B 
   SYSREW 
   SYSWR                               *WRITE TO SCRATCH
   DUP 0 TO OB FOR 320                 *ZERO BUFFER 
   OB(1)=7777B                         *4 TH CARD 
   B1=2 
25 COPY OB(1) TO OB(B1+1) FOR 1 
   GOTO 25 WHILE (B1+2.LE.8)
   OB(11)=17B 
   B1=2 
   OB(81)=7777B                        *5 TH CARD 
26 COPY OB(81) TO OB(B1+81) FOR 1 
   GOTO 26 WHILE(B1+2.LE.18)
   OB(101)=377B 
   B1=2 
   OB(161)=7777B                       *6 TH CARD 
27 COPY OB(161) TO OB(B1+161) FOR 1 
   GOTO 27 WHILE(B1+2.LE.40)
   OB(203)=17B
   B1=2 
   OB(240)=4B                          *7 TH CARD 
30 COPY OB(240) TO OB(B1+240) FOR 1 
   GOTO 30 WHILE (B1+2.LE.62) 
   B1=2 
   OB(241)=7777B
31 COPY OB(241) TO OB(B1+241) FOR 1 
   GOTO 31 WHILE(B1+2.LE.78)
   SYSWR                               *WRITE TO SCRATCH
   DUP 0 TO OB FOR 320                 *ZERO BUFFER 
   OB(0)=6B                            *FILE CARD 
   OB(1)=60B
   OB(80)=6B                           *FILE CARD 
   OB(81)=77B 
   DUP 0 TO OB(160) FOR 160 
   SYSWR                               *WRITE SCRATCH 
   SYSREW 
   EXIT 
   END 20 
COMPILE              -CP1 90A - 
*  **************************** 
*  **************************** 
   MODULE CP190B 3000(21),LOCK
*** CP1 - 90B - WRITE SCRATCH 
* 
* 
* 
* 
*      MODULES CALLED 
* 
*           NONE
* 
* 
**********************************************
/  SET UP SCRATCH FILE FOR SECTION B(22)
   BASE DECIMAL 
20 OB(0)=2260B                          *TITLE B
   DUP 0 TO OB(1) FOR 319 
   DUP 6060B TO OB(1) FOR 39
   OB(80)=10B                          *1 
   OB(160)=11B                         *2 
   OB(240)=12B                         *3 
   SYSREW 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320 
   OB(0)=13B                           *4 
   OB(80)=14B                          *5 
   OB(160)=15B                         *6 
   OB(240)=16B                         *7 
   SYSWR                               *WRITE SCRATCH 
   OB(0)=17B                           *8 
   OB(80)=20B                          *9 
   OB(160)=21B                         *10
   OB(240)=22B                         *11
   SYSWR                               *WRITE SCRATCH 
   OB(0)=23B                           *12
   OB(80)=24B                          *13
   OB(160)=25B                         *14
   OB(240)=26B                         *15
   SYSWR                               *WRITE SCRATCH 
   OB(0)=27B                           *16
   OB(80)=6B                           *FILE CARD 
   OB(160)=6B                          *FILE CARD 
   OB(240)=0
   SYSWR                               *WRITE TO SCRATCH
   SYSREW                              *WRITE EOF 
   EXIT 
   END 20 
COMPILE              -CP1 90B - 
*  **************************** 
*  **************************** 
   MODULE CP190C 3000(21),LOCK
*** CP1 - 90C - WRITE SCRATCH 
* 
* 
* 
* 
*      MODULES CALLED 
* 
*           NONE
* 
* 
**********************************************
/  SET UP SCRATCH FILES FOR SECTION C(23) 
20 OB(0D)=2360                         *TITLE CARD
   DUP 6060 TO OB(1D) FOR 39D 
   DUP 0 TO OB(40D) FOR 280 
21 B2=80D                              *1 ST CARD 
   B1=5 
22 OB(B2)=B1
   B1=B1+1
   GOTO 22 WHILE(B2+1.LE.159D)
   COPY OB(80D) TO OB(160D) FOR 80D    *2 ND CARD 
   COPY OB(80D) TO OB(240D) FOR 80D    *3 
   SYSREW 
   SYSWR                               *WRITE SCRATCH 
   OB(0D)=5257                         *4 
   OB(1D)=2525
   OB(2D)=5252
   OB(3D)=2525
   B3=4 
23 COPY OB(2D) TO OB(B3) FOR 2
   GOTO 23 WHILE(B3+2.LE.78D) 
   COPY OB(0D) TO OB(80D) FOR 80       *5 
   COPY OB(0D) TO OB(160D) FOR 80      *6 
   B3=240D
24 COPY OB(1D) TO OB(B3) FOR 2         *7 
   GOTO 24 WHILE(B3+2.LE.318) 
   SYSWR                               *WRITE SCRATCH 
   COPY OB(240D) TO OB(0) FOR 80       *8 
   COPY OB(240D) TO OB(80) FOR 80       *9
   B3=160D
25 DUP OB(0) TO OB(B3) FOR 12D         *10
   GOTO 25 WHILE(B3+24D.LE.232D)
   B3=172D
26 DUP OB(1) TO OB(B3) FOR 12D
   GOTO 26 WHILE(B3+24D.LE.220D)
   COPY OB(160D) TO OB(240D) FOR 80    *11
   SYSWR                               *WRITE SCRATCH 
   COPY OB(160D) TO OB(0) FOR 80       *12
   DUP 0 TO OB(80) FOR 240D            *13
   OB(160D)=6                          *1 ST FILE 
   OB(240D)=6                          *2 ND FILE 
   SYSWR                               *WRITE SCRATCH 
   SYSREW 
   EXIT 
   END 20 
COMPILE              -CP1 90C - 
*  **************************** 
*  **************************** 
   MODULE CP190D 3000(21),LOCK
*** CP1 - 90D - WRITE SCRATCH 
* 
* 
* 
* 
*      MODULES EXIT TO
* 
*           CP1901 - CONTINUE PATTERN D 
* 
* 
**********************************************
/  SET UP SCRATCH FILE FOR SECTION D(24)
20 OB(0)=2460                          *TITLE D 
   DUP 6060 TO OB(1) FOR 39 
   DUP 0 TO OB(40D) FOR 280 
   B1=80                               *1 
   B2=4000
26 OB(B1)=B2
   B2=B2 RS 1 
   GOTO 26 WHILE(B1+1.LE.91)
27 COPY OB(80) TO OB(B1) FOR 12D
   GOTO 27 WHILE(B1+12D.LE.152D)
   COPY OB(80) TO OB(160D) FOR 80      *2 
   COPY OB(80) TO OB(240D) FOR 80      *3 
   SYSREW 
   SYSWR                               *WRITE SCRATCH 
   B1=0                                *4 
   B2=1 
30 OB(B1)=B2
   B2=B2 LS 1 
   GOTO 30 WHILE(B1+1.LE.11D) 
31 COPY OB(0) TO OB(B1) FOR 12D 
   GOTO 31 WHILE(B1+12D.LE.72D) 
   COPY OB(0) TO OB(80) FOR 80         *5 
   COPY OB(0) TO OB(160D) FOR 80       *6 
   DUP 4000 TO OB(240D) FOR 8          *7 
   COPY OB(240D) TO OB(312D) FOR 8
   DUP 6000 TO OB(248) FOR 8
   DUP 6000 TO OB(304D) FOR 8 
   DUP 7000 TO OB(256D) FOR 8 
   DUP 7000 TO OB(296) FOR 8
   DUP 7400 TO OB(264D) FOR 8 
   DUP 7400 TO OB(288) FOR 8
   DUP 7600 TO OB(272D) FOR 7D
   DUP 7600 TO OB(281) FOR 7D 
   DUP 7700 TO OB(279) FOR 2
   SYSWR                               *WRITE SCRATCH 
   COPY OB(240D) TO OB(0) FOR 80       *8 
   COPY OB(240D) TO OB(80) FOR 80      *9 
   DUP 1 TO OB(160D) FOR 8             *10
   DUP 1 TO OB(232D) FOR 8
   DUP 3 TO OB(168) FOR 8 
   DUP 3 TO OB(224D) FOR 8
   DUP 7 TO OB(176D) FOR 8
   DUP 7 TO OB(216D) FOR 8
   DUP 17 TO OB(184)FOR 8 
   DUP 17 TO OB(208) FOR 8
   DUP 37 TO OB(192)FOR 7D
   DUP 37 TO OB(201D) FOR 7 
   DUP 77 TO OB(199) FOR 2D 
   COPY OB(160D) TO OB(240D) FOR 80    *11
   SYSWR                               *WRITE SCRATCH 
   COPY OB(160D) TO OB(0) FOR 80       *12
   OB(80)=4000                         *13
   DUP 0 TO OB(81) FOR 79 
   COPY OB(80) TO OB(160D) FOR 80      *14
   COPY OB(80) TO OB(240D) FOR 80      *15
   SYSWR                               *WRITE SCRATCH 
   EXIT TO 901                         *CONT SECTION D
   END 20 
COMPILE              -CP1 90D - 
*  **************************** 
*  **************************** 
   MODULE CP1901 3000(21),LOCK
*** CP1 - 901 - WRITE SCRATCH 
* 
* 
* 
/  SET UP SCRATCH FILE FOR SECTION D
20 OB(0)=1                             *16
   DUP 0 TO OB(1) FOR 79
   COPY OB(0) TO OB(80) FOR 80         *17
   COPY OB(0) TO OB(160D) FOR 80       *18
   DUP 0 TO OB(240D) FOR 79 
   OB(319)=4000                        *19
   SYSWR                               *WRITE SCRATCH 
   COPY OB(240D) TO OB(0) FOR 80       *20
   COPY OB(240D) TO OB(80) FOR 80      *21
   DUP 0 TO OB(160D) FOR 79 
   OB(239)=1                           *22
   COPY OB(160D) TO OB(240D) FOR 80    *23
   SYSWR                               *WRITE SCRATCH 
   COPY OB(160D) TO OB(0) FOR 80       *24
   OB(80)=4001                         *25
   DUP 0 TO OB(81) FOR 79 
   COPY OB(80) TO OB(160D) FOR 80      *26
   COPY OB(80) TO OB(240D) FOR 80      *27
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320D             *28
   OB(79)=4001
   OB(159)=4001                        *29
   OB(239)=4001                        *30
   OB(240D)=6                          *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320D
   OB(0)=6                             *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   SYSREW                              *WRITE EOF 
   EXIT 
   END 20 
COMPILE              -CP1 901 - 
*  **************************** 
*  **************************** 
   MODULE CP190E 3000(21),LOCK
*** CP1 - 90E - WRITE SCRATCH 
* 
* 
* 
* 
*      MODULES EXIT TO
* 
*           CP1902 - CONTINUE PATTERN E 
* 
* 
**********************************************
/  SET UP SCRATCH FILES FOR SECTION E(25) 
   BASE DECIMAL 
20 OB(0)=2560B                         *TITLE E 
   DUP 6060B TO OB(1) FOR 39
   DUP 0 TO OB(40) FOR 280
21 DUP 2525B TO OB(80) FOR 4           *1 
   B1=88
22 COPY OB(80) TO OB(B1) FOR 4
   GOTO 22 WHILE(B1+8.LE.152) 
   DUP 5252B TO OB(84) FOR 4
   B1=92
23 COPY OB(84) TO OB(B1) FOR 4
   GOTO 23 WHILE(B1+8.LE.156) 
   DUP 1463B TO OB(160) FOR 4          *2 
   B1=168 
24 COPY OB(160) TO OB(B1) FOR 4 
   GOTO 24 WHILE(B1+8.LE.232) 
   DUP 6314B TO OB(164) FOR 4 
   B1=172 
25 COPY OB(164) TO OB(B1) FOR 4 
   GOTO 25 WHILE(B1+8.LE.236) 
   DUP 0707B TO OB(240) FOR 4          *3 
   DUP 7070B TO OB(244) FOR 4 
   B1=248 
26 COPY OB(240) TO OB(B1)FOR 8
   GOTO 26 WHILE(B1+8.LE.312) 
   SYSREW 
   SYSWR                               *WRITE SCRATCH 
   DUP 7417B TO OB(0) FOR 4            *4 
   DUP 0360B TO OB(4) FOR 4 
   B1=8 
27 COPY OB(0) TO OB(B1) FOR 8 
   GOTO 27 WHILE(B1+8.LE.72)
   DUP 6037B TO OB(80) FOR 4           *5 
   DUP 1740B TO OB(84) FOR 4
   B1=88
30 COPY OB(80) TO OB(B1) FOR 8
   GOTO 30 WHILE(B1+8.LE.152) 
   DUP 2525B TO OB(160)FOR 80          *6 
   DUP 3333B TO OB(240) FOR 80         *7 
   SYSWR                               *WRITE SCRATCH 
   DUP 3567B TO OB(0) FOR 80           *8 
   DUP 6757B TO OB(80) FOR 80          *9 
   DUP 3737B TO OB(160) FOR 80         *10
   DUP 4034B TO OB(240) FOR 80         *11
   SYSWR                               *WRITE SCRATCH 
   EXIT TO 902                         *CONTINUE SECT E 
   END 20 
COMPILE              -CP1 90E - 
*  **************************** 
*  **************************** 
   MODULE CP1902 3000(21),LOCK
*** CP1 - 902 - WRITE SCRATCH 
* 
* 
* 
/  CONTINUATION OF SCRATCH FOR SECT E 
   BASE DECIMAL 
20 DUP 1601B TO OB(0) FOR 80           *12
   DUP 6334B TO OB(80) FOR 4           *13
   DUP 5322B TO OB(84) FOR 4
   DUP 3555B TO OB(88) FOR 4
   DUP 5276B TO OB(92) FOR 4
   DUP 2450B TO OB(96) FOR 4
   B1=100 
31 COPY OB(80) TO OB(B1) FOR 20 
   GOTO 31 WHILE(B1+20.LE.140)
32 COPY OB(84) TO OB(B1) FOR 20 
   GOTO 32 WHILE(B1+20.LE.220)         *14
33 COPY OB(88) TO OB(B1) FOR 20        *15
   GOTO 33 WHILE(B1+20.LE.300)
   SYSWR                               *WRITE SCRATCH 
   B1=0 
34 COPY OB(244) TO OB(B1) FOR 20       *16
   GOTO 34 WHILE(B1+20.LE.60) 
35 COPY OB(248) TO OB(B1) FOR 20       *17
   GOTO 35 WHILE(B1+20.LE.140)
   DUP 3777B TO OB(160) FOR 4          *18
   DUP 7767B TO OB(164) FOR 4 
   DUP 7577B TO OB(168) FOR 4 
   B1=172 
36 COPY OB(160) TO OB(B1) FOR 12
   GOTO 36 WHILE(B1+12.LE.232)
   COPY OB(160) TO OB(240) FOR 80      *19
   SYSWR                               *WRITE SCRATCH 
   COPY OB(160) TO OB(0) FOR 160       *20
   SYSWR                               *WRITE-20,21,22,23 
   SYSWR                               *WRITE-24,25,26,27 
   DUP 0 TO OB(0) FOR 320 
   OB(0)=6B                            *FILE CARD 
   OB(80)=6B                           *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   SYSREW 
   EXIT 
   END 20 
COMPILE              -CP1 902 - 
*  **************************** 
*  **************************** 
   MODULE CP190F 3000(21),LOCK
*** CP1 - 90F - WRITE SCRATCH 
* 
* 
* 
* 
*      MODULES CALLED 
* 
*           NONE
* 
* 
**********************************************
/  SCRATCH FILE FOR SECTION F(26) 
   DATA(OB(0),CON) 4321B,6543B,7654B,3210B,4123B
  ,1432B,7465B,3021B
   BASE DECIMAL 
20 COPY OB(0) TO IB(0) FOR 10          *TRANSF DATA 
   B5=0 
   DUP 0 TO OB(0) FOR 320 
   OB(0)=2660B                         *TITLE CARD
   DUP 6060B TO OB(1) FOR 39
   B1=0001B                            *1 
   B2=80
21 OB(B2)=B1
   B1=B1+0202B
   GOTO 21 WHILE(B2+1.LE.111) 
   DUP 6060B TO OB(B2) FOR 8
   COPY OB(80) TO OB(160) FOR 40       *2 
   COPY OB(80) TO OB(240) FOR 40       *3 
   SYSREW 
   SYSWR                               *WRITE SCRATCH 
30 B4=0 
31 GOSUB 60                            *CARD IMAGE
   COPY IB(100) TO OB(B4) FOR 40
   GOTO 31 WHILE(B4+80.LE.240)
   SYSWR                               *WRITE SCRATCH 
   GOTO 30 WHILE (B5+1.LE.2)           *4-15
   B4=0 
   B5=0 
32 GOSUB 60                            *CARD IMAGE
   COPY IB(100) TO OB(B4) FOR 40
   GOTO 32 WHILE(B4+80.LE.160)         *16-18 
   DUP 6060B TO OB(240) FOR 40         *19
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320 
   OB(0)=1760B                         *FILE CARD 
   DUP 6060B TO OB(1) FOR 39
   COPY OB(0) TO OB(80) FOR 80         *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   SYSREW 
   EXIT 
/         ****** CARD IMAGE ******
60 RANDOM TO IB(200D) FOR 1 
   B1=IB(200D).AND.7
   B2=100 
   RANDOM TO IB(100) FOR 1
   IF(IB(100D).AND.1700B.NE.1700B) GOTO 61   *NOT FILE CODE 
   IB(100)=IB(100)+100B                *MAKE NOT FILE CODE
61 B3=B2+1
   IB(B3)=IB(B2)+IB(B1) 
   GOTO 61 WHILE (B2+1.LE.138)
   RETURN 
   END 20 
COMPILE              -CP1 90F - 
*  **************************** 
*  **************************** 
   MODULE CP190G 3000(21),LOCK
*** CP1 - 90G - WRITE SCRATCH 
* 
* 
* 
*   OVERVIEW- PRODUCES A SCRATCH FILE FOR CARDS IN
*             SECTION G(27).
* 
* 
*      MODULES EXIT TO
* 
*           CP1903 - CONTINUE PATTERN G 
* 
* 
**********************************************
/  SCRATCH FILE SECTION G(27) 
   BASE DECIMAL 
20 DUP 0 TO OB(0) FOR 320 
   OB(0)=2760B                         *TITLE G 
   DUP 6060B TO OB(1) FOR 39
   DUP 1030B TO OB(80) FOR 8           *1 
   DUP 4102B TO OB(88) FOR 8
   B1=96
21 COPY OB(80) TO OB(B1) FOR 16 
   GOTO 21 WHILE (B1+16.LE.144) 
   COPY OB(80) TO IB(0) FOR 24         *SAVE FOR CARD 11,15 
   DUP 0604B TO OB(160)FOR 8           *2 
   DUP 2041B TO OB(168) FOR 8 
   B1=176 
22 COPY OB(160) TO OB(B1) FOR 16
   GOTO 22 WHILE(B1+16.LE.224)
   COPY OB(160) TO IB(24) FOR 24       *SAVE FOR C-4,13,17
23 COPY OB(88) TO OB(B1) FOR 16        *3 
   GOTO 23 WHILE(B1+16.LE.304)
   SYSREW 
   SYSWR                               *WRITE SCRATCH 
   B1=0 
24 COPY OB(168) TO OB(B1) FOR 16       *4 
   GOTO 24 WHILE (B1+16.LE.64)
   DUP 5132B TO OB(80) FOR 8           *5 
   DUP 2645B TO OB(88) FOR 8
   B1=96
25 COPY OB(80) TO OB(B1) FOR 16 
   GOTO 25 WHILE (B1+16.LE.144) 
26 COPY OB(88) TO OB(B1) FOR 16        *6 
   GOTO 26 WHILE(B1+16.LE.224)
   DUP 6747B TO OB(240) FOR 8          *7 
   DUP 3675B TO OB(248) FOR 8 
   B1=256 
27 COPY OB(240) TO OB(B1) FOR 16
   GOTO 27 WHILE(B1+16.LE.304)
   SYSWR                               *WRITE SCRATCH 
   COPY OB(240) TO IB(48) FOR 24       *SAVE FOR C-12,16
   DUP 7173B TO OB(0) FOR 8            *8 
   DUP 5736B TO OB(8) FOR 8 
   B1=16
30 COPY OB(0) TO OB(B1) FOR 16
   GOTO 30 WHILE(B1+16.LE.64) 
   COPY OB(0) TO IB(72) FOR 24         *SAVE FOR C-14,18
31 COPY OB(248) TO OB(B1) FOR 16       *9 
   GOTO 31 WHILE (B1+16.LE.144) 
32 COPY OB(8) TO OB(B1) FOR 16         *10
   GOTO 32 WHILE(B1+16.LE.224)
33 COPY IB(0) TO OB(B1) FOR 16         *11
   GOTO 33 WHILE(B1+16.LE.304)
   SYSWR                               *WRITE SCRATCH 
   B1=0 
34 COPY IB(48) TO OB(B1) FOR 16        *12
   GOTO 34 WHILE(B1+16.LE.64) 
35 COPY IB(24) TO OB(B1) FOR 16        *13
   GOTO 35 WHILE(B1+16.LE.144)
36 COPY IB(72) TO OB(B1) FOR 16        *14
   GOTO 36 WHILE(B1+16.LE.224)
37 COPY IB(8) TO OB(B1) FOR 16         *15
   GOTO 37 WHILE(B1+16.LE.304)
   SYSWR                               *WRITE SCRATCH 
   EXIT TO 903                         *CONTINUE
   END 20 
COMPILE              -CP1 90G - 
*  **************************** 
*  **************************** 
   MODULE CP1903 3000(21),LOCK
*** CP1 - 903 - WRITE SCRATCH 
* 
* 
* 
*   OVERVIEW-CONTINUATION OF SCRATCH FILE FOR 
*            SECTION G(27)
* 
/  SCRATCH FOR SECTION G(27)
   BASE DECIMAL 
20 B1=0 
40 COPY IB(56) TO OB(B1) FOR 16        *16
   GOTO 40 WHILE(B1+16.LE.64) 
41 COPY IB(32) TO OB(B1) FOR 16        *17
   GOTO 41 WHILE(B1+16.LE.144)
42 COPY IB(80) TO OB(B1) FOR 16        *18
   GOTO 42 WHILE(B1+16.LE.224)
   OB(240)=6B                          *FILE CARD 
   DUP 0 TO OB(241) FOR 79
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320 
   OB(0)=6B                            *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   SYSREW 
   EXIT 
   END 20 
COMPILE              -CP1 903 - 
*  **************************** 
*  **************************** 
   MODULE CP190H 3000(21),LOCK
*** CP1 - 90H - WRITE SCRATCH 
* 
* 
* 
* 
*   OVERVIEW-PRODUCES SCRATCH FILE FOR SECTION H(30)
* 
* 
*      MODULES CALLED 
* 
*           NONE
* 
* 
**********************************************
/  SCRATCH FILE FOR SECTION H(30) 
   BASE DECIMAL 
20 DUP 0 TO OB(0) FOR 320 
   OB(0)=3060B                         *TITLE H 
   DUP 6060B TO OB(1) FOR 39
   DUP 7777B TO OB(80) FOR 80          *1 
   DUP 7777B TO OB(160) FOR 80         *2 
   DUP 7777B TO OB(240) FOR 80         *3 
   SYSREW 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320 
   DUP 7777B TO OB(0) FOR 2            *4 
   DUP 7777B TO OB(80) FOR 4           *5 
   DUP 7777B TO OB(160) FOR 8          *6 
   DUP 7777B TO OB(240) FOR 16         *7 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320 
   DUP 7777B TO OB(0) FOR 32           *8 
   OB(79)=4000B 
   DUP 7777B TO OB(158) FOR 2          *9 
   DUP 7777B TO OB(236) FOR 4          *10
   DUP 7777B TO OB(312) FOR 8          *11
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320 
   DUP 7777B TO OB(64) FOR 16          *12
   OB(80)=4000B                        *13
   DUP 7777B TO OB(128) FOR 32
   OB(160)=6B                          *FILE CARD 
   OB(240)=6B                          *FILE CARD 
   SYSWR                                  *WRITE SCRATCH
   SYSREW 
   EXIT 
   END 20 
COMPILE              -CP1 90H - 
*  **************************** 
*  **************************** 
   MODULE CP190I 3000(21),LOCK
*** CP1 - 90I - WRITE SCRATCH 
* 
* 
* 
*   OVERVIEW-PRODUCES SCRATCH FILE FOR SECTION I(31)
* 
* 
*      MODULES CALLED 
* 
*           NONE
* 
* 
**********************************************
/  SCRATCH FOR SECTION I(31)
   DATA(OB(0),CON) 4321B,6543B,7654B,3210B,4123B
  ,1432B,7465B,3021B
20 COPY OB(0) TO IB(0) FOR 10D         *TRANS DATA
   DUP 0 TO OB(0) FOR 320D
   OB(0)=3160                          *TITLE I 
   DUP 6060 TO OB(1) FOR 39 
   SYSREW 
   B5=0 
   B7=0 
   GOSUB 50                            *RANDOM COL COUNT
   B3=80
21 B3=B3+B2 
   GOSUB 60 
   COPY IB(100D) TO OB(B3) FOR B1 
   B3=B3-B2 
   GOSUB 50 
   GOTO 21 WHILE(B3+80.LE.240D)        *1,2,3 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320D
   B3=0 
   GOTO 21 WHILE(B7+1.LE.1)            *4,5,6,7 
   B7=0 
30 B3=0 
31 B3=B3+B2 
   GOSUB 60 
   COPY IB(100D) TO OB(B3) FOR B1 
   B3=B3-B2 
   GOSUB 50 
   GOTO 31 WHILE(B3+80.LE.160D)        *8,9,10
   GOSUB 60 
   COPY IB(100D) TO OB(B3) FOR B1             *11 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320D
   B3=0 
41 GOSUB 50 
   GOSUB 62 
   COPY IB(100D) TO OB(B3) FOR B1 
   GOTO 41 WHILE(B3+80.LE.240D)        *12,13,14,15 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320D
   B3=0 
   GOTO 41 WHILE (B7+1.LE.3)           *16-27 
   B3=0 
43 GOSUB 50 
   GOSUB 62 
   COPY IB(100D) TO OB(B3) FOR B1 
   GOTO 43 WHILE (B3+80.LE.160D)       *28-30 
   OB(240D)=6                          *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320D
   OB(0)=6                             *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   SYSREW 
   EXIT 
/         ******SUBROUTINE******
50 RANDOM TO IB(20D) FOR 1
   B1=IB(20D).AND.77                   *RANDOM NUMBEROVER 2 
   IF(B1.LE.44) GOTO 55 
   B1=B1-33 
55 B1=B1+4
   B2=120-B1
   RETURN 
/         ****** CARD IMAGE ******
60 RANDOM TO IB(200D) FOR 1 
   B4=IB(200D).AND.7
   B5=179 
   RANDOM TO IB(179) FOR 1
61 B6=B5-1
   IB(B6)=IB(B5)+IB(B4) 
   GOTO 61 WHILE(B5-1.GE.101D)
   RETURN 
62 B4=IB(20D).AND.7 
   B5=100D
   RANDOM TO IB(B5) FOR 1              *START VALUE 
   IF(IB(B5).AND.14.EQ.14) GOTO 63     *IF FILE CARD
63 B6=B5+1
   IB(B6)=IB(B5)+IB(B4)                *NEXT VALUE
   GOTO 63 WHILE(B5+1.LE.178) 
   RETURN 
   END 20 
COMPILE              -CP1 90I - 
*  **************************** 
*  **************************** 
   MODULE CP190J 3000(21),LOCK
*** CP1 - 90J - WRITE SCRATCH 
* 
* 
* 
*   OVERVIEW- PRODUCES A SCRATCH FILE FOR CARDS IN
*             SECTION J(41) 
* 
* 
*      MODULES EXIT TO
* 
*           CP1904 - CONTINUE PATTERN J 
* 
* 
**********************************************
/  SCRATCH FILE SECTION J(41) 
20 DUP 0 TO OB(0) FOR 320D
   B2=0D
   SYSREW 
   OB(0)=4160B                         *TITLE J 
   DUP 6060B TO OB(1) FOR 39
21 B1=80
   EXIT TO 904                         *CONTINUE
   END 20 
COMPILE              -CP1 90J - 
*  **************************** 
*  **************************** 
   MODULE CP1904 3000(21),LOCK
*** CP1 - 904 - WRITE SCRATCH 
* 
* 
* 
*   OVERVIEW - CONTINUE SECTION J(41) 
* 
* 
*      MODULES EXIT TO
* 
*           CP1905 - CONTINUE PATTERN J 
* 
* 
**********************************************
/  SCRATCH FILE SECTION J(41) 
22 GOSUB 30                            *GET CARD IMAGE
   COPY IB(100D) TO OB(B1) FOR 80 
   GOTO 22 WHILE (B1+80.LE.240D)       *1-3 
   SYSWR                               *WRITE SCRATCH 
   B1=0 
   GOTO 22 WHILE (B2+1.LE.24D)         *4-99
   GOSUB 30                            *GET CARD IMAGE
   COPY IB(100D) TO OB(0) FOR 80       *100 
   EXIT TO 905                         *CONT
30 GOSUB 61                            *85 RANDOM NUMBERS 
   B7=0D
   IB(301D)=IB(300D).AND.7             *CHECK BIAS
   IF(IB(301D).EQ.0) GOTO 31
   IF(IB(301D).EQ.1) GOTO 33
   IF(IB(301D).EQ.2) GOTO 35
   IF(IB(301D).EQ.5) GOTO 41
   IF(IB(301D).EQ.6) GOTO 43
   IF(IB(301D).EQ.7) GOTO 45
   COPY IB(0) TO IB(100D) FOR 80
   GOTO 60
31 IB(B7+100D)=0-IB(B7+3D).AND.IB(B7)  *CLR 3RD,5TH 
   IB(B7+100D)=0-IB(B7+5D).AND.IB(B7+100D)
   GOTO 31 WHILE (B7+1.LE.79) 
33 IB(B7+100D)=0-IB(B7+5D).AND.IB(B7)  *CLR 5TH 
   GOTO 33 WHILE (B7+1.LE.79) 
35 IB(B7+100D)=0-IB(B7+3D).AND.IB(B7)  *SET 3RD,CLR 5TH 
   IB(B7+100D)=IB(B7+100D)+IB(B7+3D)
   IB(B7+100D)=0-IB(B7+5D).AND.IB(B7+100D)
   GOTO 35 WHILE (B7+1.LE.79) 
41 IB(B7+100D)=0-IB(B7+3D).AND.IB(B7)  *CLR 3RD,SET 5TH 
   IB(B7+100D)=0-IB(B7+5D).AND.IB(B7+100D)
   IB(B7+100D)=IB(B7+100D)+IB(B7+5D)
   GOTO 41 WHILE (B7+1.LE.79) 
43 IB(B7+100D)=0-IB(B7+5D).AND.IB(B7)  *SET 5TH 
   IB(B7+100D)=IB(B7+100D)+IB(B7+5D)
   GOTO 43 WHILE (B7+1.LE.79) 
45 IB(B7+100D)=0-IB(B7+3D).AND.IB(B7)  *SET 3RD,5TH 
   IB(B7+100D)=IB(B7+100D)+IB(B7+3D)
   IB(B7+100D)=0-IB(B7+5D).AND.IB(B7+100D)
   IB(B7+100D)=IB(B7+100D)+IB(B7+5D)
   GOTO 45 WHILE (B7+1.LE.79) 
60 IB(302D)=IB(300D).AND.77            *START VALUE 
   IB(303D)=IB(300D).AND.7700.RS.6
   IB(304D)=IB(300D).LS.1 
   IB(305D)=IB(304D).AND.77 
   IB(306D)=IB(304D).AND.7700.RS.6
   IB(109)=IB(109).AND.7700.OR.IB(303D) 
   IB(111D)=IB(111D).AND.7700.OR.IB(302D) 
   IB(119)=IB(119).AND.7700.OR.IB(306D) 
   IB(121D)=IB(121D).AND.7700.OR.IB(305D) 
   IF(IB(100D).AND.14.EQ.14) GOTO 30   *IF FILE CARD
   RETURN 
61 RANDOM TO IB(300D) FOR 1            *RANDOM NO. GENERATE 
   B0=0D
   B5=0D
   B4=IB(300D)
62 B3=B3+B4                            *MULT. BY 13D
   GOTO 62 WHILE(B5+1.LE.12D) 
   B3=B3+1703 
   IF(B0.AND.1.NE.0) GOTO 63
   B3=B3+5232 
63 B3=B3.LS.1 
   IB(B0)=B3
   B4=B3
   B3=0 
   B5=0 
   GOTO 62 WHILE(B0+1.LE.84)
   RETURN 
   END 22 
COMPILE              -CP1 904 - 
*  **************************** 
*  **************************** 
   MODULE CP1905 3000(21),LOCK
*** CP1 - 905 - WRITE SCRATCH 
* 
* 
* 
*   CONTINUATION OF SCRATCH FILE FOR SECTION J
* 
/  SCRATCH FILE SECTION J(41) 
20 DUP 0 TO OB(80) FOR 240D 
   OB(80)=6                            *FILE CARD 
   OB(160D)=6                          *FILE CARD 
   SYSWR                               *WRITE SCRATCH 
   DUP 0 TO OB(0) FOR 320D
   SYSWR
   SYSWR
   SYSWR
   SYSREW 
   EXIT 
   END 20 
COMPILE              -CP1 905 - 
*  **************************** 
*  **************************** 
   MODULE CP190Z 3000(21),LOCK
*** CP1 - 90Z - READ SCRATCH
* 
* 
* 
* 
*      MODULES CALLED 
* 
*           NONE
* 
* 
**********************************************
/  READ AND PRINT SCRATCH FILE
1  FORMAT SCRATCH FILE,CARD *DEC
2  FORMAT *OCT,*OCT,*OCT,*OCT,*OCT,*OCT,*OCT,*OCT 
3  FORMAT // READ THE SCRATCH //
4  FORMAT SYSRD STATUS=*OCT    WT=*OCT
5  FORMAT SECTION *OCT TITLE CARD 
   BASE DECIMAL 
20 MSG 1 TO DISPLAY 
   SYSREW                              *REWIND SCRATCH
   B2=0 
   B0=0 
21 SYSRD,STATUS TO B1                  *READ SCRATCH
   MSG 3 TO DISPLAY 
   MSG 3 TO LINE 1
   MSG 4 (B1,WT) TO LINE 2
   IF(WT.EQ.0) GOTO 60                 *NO SCRATCH
   B6=79
   B3=0 
   B5=0 
   B4=0 
30 B4=B4+3
   IF(B2.NE.0) GOTO 32                 *NOT TITLE CARD
   B7=IB(0).AND.7700B 
   MSG 5 (B7) TO LINE B4
   GOTO 33
32 MSG 1 (B2) TO LINE B4
33 B4=B4+3
35 MSG 2 8 WORDS FROM IB(B5) TO LINE B4 
   B4=B4+1
   GOTO 35 WHILE (B5+8.LE.B6) 
   B6=B6+80 
   B2=B2+1
   GOTO 30 WHILE(B3+1.LE.1) 
   B3=0 
   PICTURE AND BLANK
   B4=0 
   GOTO 30 WHILE (B0+1.LE.1)
   B3=0 
   B0=0 
   IF(B1.EQ.0) GOTO 21                 *READ SCRATCH
   SYSREW 
60 EXIT 
   END 20 
COMPILE              -CP1 90Z - 
*  **************************** 
*  **************************** 
   MODULE CP196A 3000(21),LOCK
*** CP1 - 96A - ERROR PROCESSOR 
* 
**
* 
* 
* 
*   OVERVIEW -THE '96' SERIES MODULES ARE ERROR PROCESSING
*             SUBMODULES FOR THE MAIN MODULES CP100-CP122.
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          REGISTERS SAVED AND RESTORED IN 96Z
*          B5=MSG LINE COUNT. 
* 
*          B14=ILLEGAL ERROR CODE FLAG
* 
* 
*      MODULES EXITED TO
* 
*           CP196B - ERROR PROCESSOR
*           CP196C -    "     " 
*           CP196D -    "     " 
* 
* 
**********************************************
/  ERROR PROCESSOR
1  FORMAT ILLEGAL ERROR CODE= *OCT
20 OB(160)=B0                          *SAVE REG
   OB(161)=B1                          *SAVE REG
   OB(162)=B2                          *SAVE REG
   OB(163)=B3                          *SAVE REG
   OB(164)=B4                          *SAVE REG
   OB(165)=B5                          *SAVE REG
   OB(166)=B6                          *SAVE REG
   OB(167)=B7                          *SAVE REG
   OB(170)=WC                          *SAVE REG
   OB(171)=BA                          *SAVE REG
   OB(172)=B14               *SAVE REGISTER 
   B14=0                     *CLEAR FLAG (DEFAULT)
   IF(EC.LT.100) GOTO 62               *ILLEGAL CODE
   IF(EC.GT.110) GOTO 62               *ILLEGAL CODE
   IF(EC.EQ.104) GOTO 27
   IF(EC.NE.100) GOTO 61               *NOT STAT ERR
27 B5=3 
30 B1=3703                             *MASK
   B0=B4                               *EXPECTED STAT 
   GOTO 77
61 IF(EC.EQ.101) GOTO 66
   IF(EC.EQ.102) GOTO 67
62 MSG 1 (EC) TO LINE B5
   B5=B5+1
   B14=777                   *SET ILLEGAL ERROR CODE
   GOTO 30
66 EXIT TO 96B                         *6681 ERR PROC 
67 EXIT TO 96C                         *SCRATCH ERROR 
77 EXIT TO 96D                         *STAT BIT PROC 
   END 20 
COMPILE              -CP1 96A - 
*  **************************** 
*  **************************** 
   MODULE CP196B 3000(21),LOCK
*** CP1 - 96B - ERROR PROCESSOR 
* 
* 
* 
* 
*      REGISTER USAGE 
* 
*          REGISTERS SAVED
*          B0=EXPECTED STATUS 
*          B1= MASK 
*          B5=MSG LINE COUNTER
* 
* 
* 
*      MODULES EXIT TO
* 
*           CP196Z - ERROR PROCESSOR
* 
* 
**********************************************
/  6681 STATUS ERROR PROCESS
1  FORMAT UNEXPECTED STATUS BIT *DEC
2  FORMAT MISSING STATUS BIT *DEC 
3  FORMAT ACTUAL 6681 STAT=*OCT,EXPECTED=*OCT 
10 FORMAT -----------1 REJECT 
11 FORMAT ----------1- INTERNAL REJECT
12 FORMAT ---------1-- TRANSMISSION PARITY ERROR
13 FORMAT --------1--- NOT USED 
14 FORMAT -------1---- NOT USED 
15 FORMAT ------1----- NOT USED 
16 FORMAT -----1------ NOT USED 
17 FORMAT ----1------- NOT USED 
20 FORMAT ---1-------- NOT USED 
21 FORMAT --1--------- NOT USED 
22 FORMAT -1---------- NOT USED 
23 FORMAT 1----------- NOT USED 
/ 
25 B0=0                                *EXPECTED STAT 
   B1=7                                *MASK
30 B2=B1 XOR 7777 
   B2=B2 AND SB(0)
   B0=B0 OR B2                         *SET DONT CARES
   MSG 3 (SB(0),B0) TO LINE B5
   B5=B5+1
   B2=0 
   B3=1 
36 IF(B0.AND.B3.NE.0)GOTO 40           *EXPECTED IS SET 
   IF(SB(0).AND.B3.EQ.0) GOTO 44       *NO ERROR
   MSG 1 (B2) TO LINE B5               *UNEXPECT STAT 
   GOTO 42
40 IF(SB(0).AND.B3.NE.0) GOTO 44
   MSG 2 (B2) TO LINE B5               *MISSING BIT 
42 B5=B5+1
   B4=B2+10 
   MSG B4 TO LINE B5                   *TELL WHICH ONE
   B5=B5+1
44 B3=B3 LS 1 
   GOTO 36 WHILE (B2+1.LT.12D)
   B5=B5+1
77 EXIT TO 96Z
   END 25 
COMPILE              -CP1 96B - 
*  **************************** 
*  **************************** 
   MODULE CP196C 3000(21),LOCK
*** CP1 - 96C - ERROR PROCESSOR 
* 
* 
* 
* 
* 
*      REGISTER USAGE 
* 
*          REGISTERS SAVED
* 
*      MODULES EXIT TO
* 
*           CP196Z - ERROR PROCESSOR
* 
* 
**********************************************
/  SCRATCH FILE ERROR 
1  FORMAT SCRATCH FILE SUSPECT
2  FORMAT ERROR CODE *OCT,UNEXPECTED EOI ON SCRATCH 
3  FORMAT WORDS READ=*DEC,STATUS=*OCT 
20 MSG 1 TO LINE 5
   MSG 2 (EC) TO LINE 6 
   MSG 3 (WT,B3) TO LINE 7
   EXIT TO 96Z
   END 20 
COMPILE              -CP1 96C - 
*  **************************** 
*  **************************** 
   MODULE CP196D 3000(21),LOCK
*** CP1 - 96D - ERROR PROCESSOR 
* 
* 
* 
* 
*      REGISTER USAGE 
* 
*          REGISTERS SAVED
*          B0=EXPECTED STATUS 
*          B1= MASK 
*          B5=MSG LINE COUNTER
* 
* 
* 
*      MODULES EXIT TO
* 
*           CP196E - ERROR PROCESSOR
*           CP196Z - ERROR PROCESSOR
* 
* 
**********************************************
/  STATUS ERROR PROCESS 
1  FORMAT UNEXPECTED STATUS BIT *DEC
2  FORMAT MISSING STATUS BIT *DEC 
3  FORMAT ACTUAL STAT=*OCT,EXPECTED=*OCT
4  FORMAT CARD N0. *DEC LAST PUNCHED
5  FORMAT TITLE CARD LAST PUNCHED 
10 FORMAT -----------1 READY
11 FORMAT ----------1- BUSY 
12 FORMAT ---------1-- NOT USED 
13 FORMAT --------1--- NOT USED 
14 FORMAT -------1---- NOT USED 
15 FORMAT ------1----- NOT USED 
16 FORMAT -----1------ FAIL TO FEED 
17 FORMAT ----1------- READY & NOT BUSY INTERRUPT 
20 FORMAT ---1-------- END OF OPER. INTERR. 
21 FORMAT --1--------- ABNORM END OF OPER. INTERR.
22 FORMAT -1---------- COMPARE ERROR
23 FORMAT 1----------- NOT USED 
/ 
25 B2=B1 XOR 7777 
   B2=B2 AND SB(1)
   B0=B0 OR B2                         *SET DONT CARES
   MSG 3 (SB(1),B0) TO LINE B5
   B5=B5+1
   B2=0 
   B3=1 
   IF(B14.EQ.777) GOTO 77       *EXIT IF ILLEGAL
36 IF(B0.AND.B3.NE.0)GOTO 40           *EXPECTED IS SET 
   IF(SB(1).AND.B3.EQ.0) GOTO 44       *NO ERROR
   MSG 1 (B2) TO LINE B5               *UNEXPECT STAT 
   GOTO 42
40 IF(SB(1).AND.B3.NE.0) GOTO 44
   MSG 2 (B2) TO LINE B5               *MISSING BIT 
42 B5=B5+1
   B4=B2+10 
   MSG B4 TO LINE B5                   *TELL WHICH ONE
   B5=B5+1
44 B3=B3 LS 1 
   GOTO 36 WHILE (B2+1.LT.12D)
   B5=B5+1
   IF(EC.EQ.104) GOTO 77               *NO CARDS PUNCHED
   IF(B6.NE.0) GOTO 50                 *NOT TITLE CARD
   MSG 5 TO LINE B5 
   GOTO 51
50 MSG 4 (B6) TO LINE B5               *CARD NUMBER 
51 B5=B5+1
   IF(SB(1).AND.2000.NE.2000) GOTO 77  *NO IMAGE
   EXIT TO 96E                         *IMAGE DUMP
77 EXIT TO 96Z
   END 25 
COMPILE              -CP1 96D - 
*  **************************** 
*  **************************** 
   MODULE CP196E 3000(21),LOCK
*** CP1 - 96E - ERROR PROCESSOR 
* 
**
*** CP1 - INTERNAL DOCUMENTATION
* 
* 
* 
*   OVERVIEW- DUMPS IMAGE OF LAST CARD THROUGH
*             READ STATION WHEN ERROR HAS OCCURRED
* 
*   REGISTER USAGE
*           B1=COUNTER
*           B5=PRINT LINE COUNTER 
* 
* 
*    ALL REGISTERS RETURNED TO ORIGINAL VALUE IN 96Z
* 
/  IMAGE OF LAST CARD 
1  FORMAT FIRST 20 COLUMNS OF LAST CARD THROUGH THE 
2  FORMAT READ STATION ARE,    COL 1-4 *OCT,*OCT,*OCT,*OCT
3  FORMAT COL 5-12 *OCT,*OCT,*OCT,*OCT,*OCT,*OCT,*OCT,*OCT
4  FORMAT COL13-20 *OCT,*OCT,*OCT,*OCT,*OCT,*OCT,*OCT,*OCT
20 MSG 1 TO DISPLAY 
   MSG 1 TO LINE B5 
   B5=B5+1
   B0=OB(160) 
   IF(B0.EQ.0) GOTO 30                 *IMAGE IN OBUFFER
   B0=B0-80 
   B1=1 
   MSG 2 4 WORDS FROM IB(B0) TO LINE B5 
   B5=B5+1
   B0=B0+4
   MSG 3 8 WORDS FROM IB(B0) TO LINE B5 
   B5=B5+1
   B0=B0+8
   MSG 4 8 WORDS FROM IB(B0) TO LINE B5 
   GOTO 60
30 B1=1 
   BA=240D
   MSG 2 4 WORDS FROM OB(BA) TO LINE B5 
   B5=B5+1
   BA=BA+4
   MSG 3 8 WORDS FROM OB(BA) TO LINE B5 
   B5=B5+1
   BA=BA+8
   MSG 4 8 WORDS FROM OB(BA) TO LINE B5 
60 EXIT TO 96Z
   END 20 
COMPILE              -CP1 96E - 
*  **************************** 
*  **************************** 
   MODULE CP196Y 3000(21),LOCK
*** CP1 - 96Y - ERROR PROCESSOR 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          REGISTERS NOT ALTERED
* 
* 
/  PROCESS ABORT ERRORS 
1  FORMAT ABORT ON (REL) AT LINE=*OCT 
2  FORMAT ABORT ON (STATUS8) AT LINE=*OCT 
3  FORMAT ABORT ON (CONN) AT LINE=*OCT
4  FORMAT ABORT ON (FUNC) AT LINE=*OCT
5  FORMAT ABORT ON (STAT) AT LINE=*OCT
6  FORMAT ABORT ON (OUT) AT LINE=*OCT 
7  FORMAT ABORT ON (OUTB) AT LINE=*OCT
10 FORMAT ABORT ON (DCN) AT LINE=*OCT 
14 FORMAT CH=*OCT,EQ=*OCT,UN=*OCT,LF=*OCT,DC=*OCT 
15 FORMAT 6681 STATUS=*OCT,PUNCH STATUS=*OCT
16 FORMAT LAST 6681 FUNCTION=*OCT 
17 FORMAT ------------------------------------------------- 
20 MSG B3(EA) TO LINE 2 
   MSG EM TO LINE 3 
   MSG 14(SB(70),SB(71),SB(72),LF,DC) TO LINE 4 
   MSG 15(SB(0),SB(1)) TO LINE 5
   MSG 16 (SB(73)) TO LINE 6
   PICTURE
   HALT 
   MSG 17 TO PRINT
   BLANK
   ERROR 0/0
   EXIT                                *RET TO CALLING MOD. 
   END 20 
COMPILE              -CP1 96Y - 
*  **************************** 
*  **************************** 
   MODULE CP196Z 3000(21),LOCK
*** CP1 - 96Z - ERROR PROCESSOR 
* 
* 
* 
*** CP1 - INTERNAL DOCUMENTATION
* 
*      REGISTER USAGE 
* 
*          REGISTERS NOT ALTERED
17 FORMAT ------------------------------------------------
/  RESTORE REGISTERS
20 PICTURE
   HALT 
   MSG 17 TO PRINT
   BLANK
   IF(EC.NE.102)ERROR 0/0   *SAVE SCRATCH FILE EC 
   B0=OB(160) 
   B1=OB(161) 
   B2=OB(162) 
   B3=OB(163) 
   B4=OB(164) 
   B5=OB(165) 
   B6=OB(166) 
   B7=OB(167) 
   WC=OB(170) 
   BA=OB(171) 
   B14=OB(172)
   EXIT                                *RET TO CALLING MOD. 
   END 20 
COMPILE              -CP1 96Z - 
*  **************************** 
*  **************************** 
   MODULE CP199 3000(21),LOCK 
*** CP1 - 99 - EXTERNAL DOCUMENTATION 
* 
/ 
/   PARAMETER DESCRIPTION.
/ 
/       P0=DECIMAL NUMBER OF PREPUNCHED CARDS IN HOPPER 
/          FOR COMPARE ERROR CHECK IN MODULE CP103. 
/ 
/       P1=CP120 SCRATCH PARAMETERS 
/ 
/          XXX1 - WRITE SECTION A 
/          XXX2 - WRITE SECTION B 
/          XXX4 - WRITE SECTION C 
/          XX1X - WRITE SECTION D 
/          XX2X - WRITE SECTION E 
/          XX4X - WRITE SECTION F 
/          X1XX - WRITE SECTION G 
/          X2XX - WRITE SECTION H 
/          X4XX - WRITE SECTION I 
/          1XXX - WRITE SECTION J 
/          2000 - NOT USED (BIT 10) 
/          4XXX - ALL SECTIONS
/ 
/       P2 - P5 CP121 PARAMETERS
/       P2= LOWER COLUMN
/           P2 DEFAULTS TO 1 , P2 MUST BE .LE. P3 
/       P3= UPPER COLUMN
/           P3 MUST BE .LE. 80D 
/           P3 MUST BE .GE. P2
/       P4= NUMBER OF CARDS 
/           P4 MUST BE .NE. 0 TO RUN MUDULE 21
/       P5= BINARY PATTERN
/ 
/  PART 1 - CONFIDENCE EXTERNAL DOCUMENTATIONS
/    CP100 - CONNECT AND STATUS CHECK 
/    CP101 - 6681 TRANSMISSION CHECK
/    CP102 - LEGAL FUNCTION EXTERNAL DOCUMENTATION
/    CP103 - COMPARE CIRCUIT TEST 
/    CP104 - SECTION A PUNCH TEST 
/    CP105 - SECTION B PUNCH TEST 
/    CP106 - SECTION C PUNCH TEST 
/    CP107 - SECTION D PUNCH TEST 
/    CP108 - SECTION E PUNCH TEST 
/    CP109 - SECTION F PUNCH TEST 
/    CP110 - SECTION G PUNCH TEST 
/    CP111 - SECTION H PUNCH TEST 
/    CP112 - SECTION I PUNCH TEST 
/    CP113 - SECTION J PUNCH TEST 
/ 
/  PART 2 UTILITY MODULES 
/ 
/    CP120 - WRITE AND READ SCRATCH FILE
/    CP121 - PUNCH PARAMETER SELECTED CARDS 
/    CP122 - READ BRUSH TEST
/ 
/  PART 3 SUBMODULES
/ 
/    CP190 SERIES - WRITE SECTION SCRATCH FILES 
/    CP196 SERIES - ERROR REPORTING MODULES 
/ 
20 PAUSE
   EXIT TO 991
   END 20 
COMPILE,SOURCE       -CP1 99 -
*  **************************** 
*  **************************** 
   MODULE CP1991 3000(21),LOCK
*** CP1 - 991 - EXTERNAL DOCUMENTATION
* 
/ 
/ 
/  HARDWARE CONFIGURATION - 
/       DIAGNOSTIC HAS BEEN TESTED USING A 3446B CONTROLLER 
/       AND A 415B PUNCH. 
/       THE TEST SHOULD ALSO RUN ON A IBM523 PUNCH WITH THE 
/       FOLLOWING UNCERTAINTIES - 
/       1.NO OFFSET ON CARDS. 
/       2.FULLY LACED CARDS IN SECTION H MAY FAIL.
/  NORMAL RUNNING MESSAGES -
/       -CP100 CONNECT AND STATUS CHECK 
/       -CP101 6681 TRANSMISSION PARITY CHECK 
/       -CP102 LEGAL FUNCTION CHECK 
/       -CP103 COMPARE NETWORK CHECK
/       -CP104 SECTION A(21) -WRITE CP1 DECK
/       -CP105 SECTION B(22) -WRITE CP1 DECK
/       -CP106 SECTION C(23) -WRITE CP1 DECK
/       -CP107 SECTION D(24) -WRITE CP1 DECK
/       -CP108 SECTION E(25) -WRITE CP1 DECK
/       -CP109 SECTION F(26) -WRITE CP1 DECK
/       -CP110 SECTION G(27) -WRITE CP1 DECK
/       -CP111 SECTION H(30) -WRITE CP1 DECK
/       -CP112 SECTION I(31) -WRITE CP1 DECK
/       -CP113 SECTION J(41) -WRITE CP1 DECK
/       -CP120 WRITE AND READ SCRATCH 
/       -CP121 UTILITY DECK 
/       -CP122 READ BRUSH TEST
/ 
/  NOTE -NUMBER IN ( ) IS BCD CODE OF SECTION LETTER
/ 
/  SCOPE LOOP DISPLAY MESSAGE - 
/       LC=*DEC,EC=*DEC,STATUS=*OCT 
/ 
/  DAYFILE MESSAGES - 
/       *DEC ERRORS IN CP1991 
/ 
/  ERROR MESSAGES - 
/       MALET ABORT MESSAGES AS PER MALET MANUAL 60456020A
/       PAGE 3.2
/       -CH=XX,EQ=XX,UN=XX,LF=XX,DC=XX
/       LF=LAST FUNCTION ISSUED 
/       DC=DEVICE CODE
/       -ABORT ON (XXXX) AT LINE XXX
/       XXXX=STATUS 
/           =FUNC 
/           =CONN 
/       -6681 STATUS=XXXX,PUNCH STATUS=XXXX 
/       -LAST 6681 STATUS 
/ 
/  ERROR CODE MESSAGES -
/       -CP1XX ERROR CODE XXX AT LINE YYY 
/  ERROR CODES -
/       -CODE 100 - PUNCH STATUS ERROR WHILE PUNCHING 
/                   CARDS IN CP103-CP122. 
/       -CODE 101 - 6681 STATUS ERROR.
/       -CODE 102 - SCRATCH FILE ERRORS.
/       -CODE 104 - STATUS ERRORS IN CP100-CP102. 
/ 
/  STATUS ERROR MESSAGES -
/       -CP1XX PUNCH STATUS EXPECTED=XXX,REC=XXX. 
/       -CP1XX //WAITING ON READY-NOT BUSY//
/       -UNEXECPTED STATUS BIT XX 
/       -MISSING STATUS BIT XX
/       -ACTUAL STAT= XX,EXPECTED STATUS= XX
/       -CARD NO XX LAST PUNCHED. 
/       -TITLE CARD LAST PUNCHED. 
/  NOTE- CARD IMAGE IS OF CARD LAST READ THEREFORE
/        IS THE CARD BEFORE THE ONE PUNCHED.
/        IF TITLE CARD LAST PUNCHED,LAST READ IS CARD 
/        IN LAST SECTION. 
/        CARDS IN EACH SECTION NUMBER WITH TITLE CARD 
/        AS ZERO,THEN NEXT CARD IS NUMBER ONE.
/ 
/       -CARD IMAGE IS GIVEN FOR COMPARE ERRORS-
/          FIRST 20 COLUMNS OF LAST CARD THROUGH THE
/         READ STATION ARE     COL 1-4 XXXX,XXXX,XXXX,XXXX
/         COL 5-12 XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX
/         COL13-20 XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX
/ 
/  6681 STATUS MESSAGES - 
/       -UNEXPECTED STATUS BIT XX 
/       -MISSING STATUS BIT XX
/       -ACTUAL 6681 STATUS=XXXX,EXPECTED=XXXX
/ 
/  NOTE -FOR ALL STATUS ERRORS,THE BIT IN QUESTION
/        IS PRINTED OUT MORE CLEARLY. 
/        E.G. -1---------- COMPARE ERROR. 
/             ---------1-- TRANSMISSION PARITY ERROR. 
/ 
/  SCRATCH FILE MESSAGES
/       -ERROR CODE XXX,UNEXPECTED EOI ON SCRATCH 
/       -WORDS READ=XXX,STATUS=XX 
/ 
/ 
20 PAUSE
   END 20 
COMPILE,SOURCE       -CP1 991 - 
*  **************************** 
*  **************************** 
