*********************************************************************** 00020000
*                                                                     * 00040000
*                    * * * I E B G S C A N * * *                      * 00060000
*                                                                     * 00080000
*                         * * * * * * * * *                           * 00100000
*                                                                     * 00120000
*      THIS SUBROUTINE IS EXECUTED IN CONJUNCTION  WITH THE  CARD     * 00140000
*      SCAN ROUTINE I E B C C S 0 2. IT ANALYZES PARAMETERS WHICH     * 00160000
*      ARE PASSED BY THE SCAN ROUTINE, DIAGNOSES INVALID PARAMET-     * 00180000
*      ERS, SETS SWITCHES AND CREATES TABLES TO BE  USED  BY  THE     * 00200000
*      PROCESSING ROUTINE I E B G E N 0 3.                            * 00220000
*                                                                     * 00240000
*                         * * * * * * * * *                           * 00260000
*                                                                     * 00280000
*                             E N T R Y                               * 00300000
*                                                                     * 00320000
*      THIS ROUTINE HAS EXTERNALLY REFERENCABLE VALUES  OR  NAMES     * 00340000
*      WHOSE SYMBOLS AND FUNCTIONS ARE:                               * 00360000
*                                                                     * 00380000
*                               C C A                                 * 00400000
*                                                                     * 00420000
*              THE COMMON ENTRY POINT TO THE PROGRAM TO               * 00440000
*              BE USED IN A C A L L.                                  * 00460000
*                                                                     * 00480000
*                             D D R T N                               * 00500000
*                                                                     * 00520000
*              THE ENTRY POINT TO A CLOSED SUBROUTINE WHOSE FUNC-     * 00540000
*              TION IS THE PRINTING OF A DIAGNOSTIC MESSAGE:          * 00560000
*                      'DDNAME      CANNOT BE OPENED'                 * 00580000
*                                                                     * 00600000
*                          B L K R T N                           * BS0H 00603017
*                                                                * BS0H 00606017
*              THE ENTRY POINT TO A SUBROUTINE WHOSE FUNCTION IS * BS0H 00609017
*              THE PRINTING OF A DIAGNOSTIC MESSAGE              * BS0H 00612017
*                      'INVALID SYSIN BLOCKSIZE'                 * BS0H 00615017
*                         * * * * * * * * *                           * 00620000
*                                                                     * 00640000
*                             I N P U T                               * 00660000
*                                                                     * 00680000
*      INPUT TO THIS ROUTINE IS PROVIDED BY THE CARD SCAN ROUTINE     * 00700000
*      ONE CARD FIELD AT A TIME. THE ADDRESS OF A WORK AREA WHICH     * 00720000
*      CONTAINS SWITCHES SET BY THE CARD  SCAN  ROUTINE  AND  THE     * 00740000
*      PARAMETER TO BE ANALYZED IS PASSED IN A LIST POINTED TO BY     * 00760000
*      GP REGISTER 1.                                                 * 00780000
*                                                                     * 00800000
*********************************************************************** 00820000
         EJECT                                                          00840000
*********************************************************************** 00860000
*                                                                     * 00880000
*                            O U T P U T                              * 00900000
*                                                                     * 00920000
*      THE OUTPUT FROM THIS ROUTINE IS  A  GROUP  OF  TABLES  AND     * 00940000
*      SWITCHES, THE ADDRESSES OF WHICH ARE CONTAINED IN  A  LIST     * 00960000
*      POINTED TO BY GP REGISTER 1 AT EXIT TIME. THESE TABLES AND     * 00980000
*      SWITCHES PROVIDE THE PROCESSING ROUTINE OF  THE   GENERATE     * 01000000
*      UTILITY WITH THE PARAMETERS SPECIFIED IN THE UTILITY  CON-     * 01020000
*      TROL CARDS IN A USABLE FORMAT.                                 * 01040000
*                                                                     * 01060000
*                         * * * * * * * * *                           * 01080000
*                                                                     * 01100000
*                             E X T R N                               * 01120000
*                                                                     * 01140000
*      THE SUBROUTINE REFERENCES THESE EXTERNALLY DEFINED  VALUES     * 01160000
*      OR SUBROUTINE NAMES:                                           * 01180000
*                            A C T C C S                              * 01200000
*                                                                     * 01220000
*              THE ENTRY POINT OF THE CARD SCAN ROUTINE               * 01240000
*                                                                     * 01260000
*                            H W R M S G                              * 01280000
*                                                                     * 01300000
*              ENTRY TO SUBROUTINE USED BY THIS ROUTINE               * 01320000
*              TO WRITE MESSAGES ON THE DEVICE  DEFINED               * 01340000
*              BY DDNAME S Y S P R I N T.                             * 01360000
*                                                                     * 01380000
*                             H C D W R                               * 01400000
*                                                                     * 01420000
*              ENTRY TO SUBROUTINE USED BY THIS ROUTINE               * 01440000
*              TO WRITE CONTROL CARD IMAGES  ON  DEVICE               * 01460000
*              DEFINED BY DDNAME S Y S P R I N T.                     * 01480000
*                                                                     * 01500000
*                          GENLABEL                              * UL0H 01502017
*                                                                * UL0H 01504017
*             THIS IS A SWITCH IN IEBCCS02,WHICH IS SET          * UL0H 01506017
*             BY IEBGSCAN,AS SOON AS IT IS DETERMINED THAT       * UL0H 01508017
*             THE NEXT CARD FROM SYSIN IS A LABEL DATA CARD,     * UL0H 01510017
*             AND DOES NOT NEED TO BE SCANNED.                   * UL0H 01512017
*             THIS SWITCH IS RESET WHEN RESUMING OF SCANNING     * UL0H 01514017
*             IS REQUIRED.                                       * UL0H 01516017
*                                                                * UL0H 01518017
*********************************************************************** 01520000
         EJECT                                                          01540000
*********************************************************************** 01560000
*                                                                     * 01580000
*                   E R R O R   C O N D I T I O N                     * 01600000
*                                                                     * 01620000
*      THE SUBROUTINE WILL TERMINATE PROCESSING, CAUSE AN APPROP-     * 01640000
*      RIATE DIAGNOSTIC MESSAGE TO BE PRINTED AND RETURN VIA REG-     * 01660000
*      ISTER 12 UPON ALL SUBSEQUENT ENTRIES UPON  RECOGNITION  OF     * 01680000
*      THE FOLLOWING TYPES OF ERROR:                                  * 01700000
*                                                                     * 01720000
*              1.PERMANENT I/O ERROR   READING  CONTROL               * 01740000
*                STATEMENTS.                                          * 01760000
*      UPON RECOGNITION OF AN ERROR IN A CONTROL STATEMENT, AN    *SA0I 01770018
*      EXPLANATORY ERROR MESSAGE IS PRINTED IMMEDIATELY FOLLOWING *SA0I 01780018
*      THE CARD CONTAINING THE ERROR.  PROCESSING IS TERMINATED   *SA0I 01790018
*      WHEN ALL CARDS HAVE BEEN SCANNED FOR ERRORS.               *SA0I 01800018
*                                                                     * 01840000
*                         * * * * * * * * *                           * 01860000
*                                                                     * 01880000
*                     FUNCTION/OPERATION                         * UL0H 01881017
*                                                                * UL0H 01882017
*             IEBGSCAN REQUIRES A RECORD STATEMENT INDICATING    * UL0H 01883017
*             THAT LABEL INFORMATION IS FOLLOWING IN SYSIN,      * UL0H 01884017
*             IT CHECK WHETHER THIS STATEMENT APPEARS LEGALLY    * UL0H 01885017
*             AND THEN IT GETS A SAVE AREA FOR AS MANY LABELS AS * UL0H 01886017
*             INDICATED IN THE RECORD STATEMENT,AND IT SETS THE  * UL0H 01887017
*             GENLABEL SWITCH IN CCS02.                          * UL0H 01888017
*             AFTER ALL LABELS ARE READ GENLABEL IS RESET        * UL0H 01889017
*                                                                * UL0H 01890017
*                     * * * * * * * * *                          * UL0H 01891017
*                             N O T E S                               * 01900000
*                                                                     * 01920000
*      THIS SUBROUTINE IS 'ONLY LOADABLE'.IT IS NOT RE-ENTRANT.IT     * 01940000
*      NOT RE-USABLE.                                                 * 01960000
*                                                                     * 01980000
*********************************************************************** 02000000
         EJECT                                                          02020000
IEBGSCAN CSECT                                                          02040000
*1825018810-018910,024800,038800,054200,056440-056480,074300,089400UL0H 02042017
*1725124000                                                        BSOH 02045017
*1725086800                                                        9430 02048017
*0871022800-023200,028200-028800,029000,030600,032600-033000,034400SA0I 02048118
*035200,036400-037000,037800,038400,039200,039700-039820,039910,   SA0I 02048218
*042600-042800,043800-044000,045000-045200,045800-046200,047400-   SA0I 02048318
*047600,048600-048800,049800-050000,051000-051200,052200-052400,   SA0I 02048418
*053400-053600,054360,054600-054840,055400-055800,056640-056680,   SA0I 02048518
*057200-057600,058800,059200,060600,061000-062600,063400,064000,   SA0I 02048618
*065200,065640-065700,067000,069000,071400,072800,074400,074600-   SA0I 02048718
*074800,076400,077350,078480,081400,082000,083400,083800-084000,   SA0I 02048818
*084800,087200,090200-091000,091800,092200,093200-094000,094600,   SA0I 02048918
*095000,095600,096200-096600,101600-101800,102800,104200-104800,   SA0I 02049018
*105600-107800,109000,109800-110200,111000-111900,112350,112390,   SA0I 02049118
*112450,112510,112570,112610-112630,112670,112700-112710,112780,   SA0I 02049218
*112820-112860,112900-112920,113070-113080,118280,119000-121000,   SA0I 02049318
*124900                                                            SA0I 02049418
*0871059400-059600                                                 0492 02050218
*                                                                A36072 02050321
*                                                                A36129 02050421
* 098100,110950                                                   M0171 02050618
*                                                                A27695 02050719
*                                                                A27717 02050819
*                                                                A28288 02050919
*A066900,068900,071300,072700                                    A41800 02052221
*D067120,069120,071520,072920                                    A41800 02052321
*A125160,125180,139440-139560                                    A45131 02052821
*C125230                                                         A45131 02053221
*D128800-129400                                                  A45131 02053321
*A103920,103940                                                 YA01701 02053402
*C103830                                                        YA01701 02053502
*C058700                                                        YA01699 02053602
*A039602,071700,117902-117916                                   YA01703 02054002
*C117920                                                        YA01703 02054402
*C140600                                              VS08565 = OZ00131 02054502
*A125700-125760                                                @ZA01696 02054603
*C125800                                                       @ZA01696 02054703
*D104450-104550                                                @ZA07330 02056600
*A119260                                                       @ZA28787 02057699
*C063400                                                       @ZA28787 02058699
* REGISTER ASSIGNMENTS                                             BS0H 02060102
R0       EQU   0                                                        02062021
R1       EQU   1                                                        02063921
R2       EQU   2                                                        02065821
R3       EQU   3                                                        02067721
R4       EQU   4                                                        02069621
R5       EQU   5                                                        02071521
R6       EQU   6                                                        02073421
R7       EQU   7                                                        02075321
R8       EQU   8                                                        02077221
R9       EQU   9                                                        02079121
R10      EQU   10                                                       02081021
R11      EQU   11                                                       02082921
R12      EQU   12                                                       02084821
R13      EQU   13                                                       02086721
R14      EQU   14                                                       02088621
R15      EQU   15                                                       02090521
RETREG   EQU   14                                                  BS0H 02092421
GOREG    EQU   15                                                  BS0H 02094321
CCA      SAVE  (14,12),T,IEBGSCAN-OZ28787                      @ZA28787 02096299
         ENTRY CCA                                                      02098100
         TM    0(R1),X'80'              DD PARAMETER PRESENT?           02100000
         BCR   1,R14                    NO, EXIT                        02120000
         LR    R2,R15                   YES,INITIALIZE BASE REG 2       02140000
         USING CCA,R2                                                   02160000
         STM   R13,R14,CSAVE13          SAVE REGS 13-14                 02180000
         L     R1,0(R1)                 GET SYSIN DD NAME ADDR          02200000
         MVC   CSIDDA(8),0(R1)          SAVE SYSIN DD NAME              02220000
         LA    R13,CREGSAVE             LOAD REG SAVE ARE ADDR          02240000
         LA    R12,CSCAN                LOAD SCAN SUBROUTINE ADDR       02260000
         LA    R10,CCNVRT               LOAD CONVERSION SUBROUTINE ADDR 02300000
         NI    CERRSW,X'0F'             RESET CODING SWITCHES      SA0I 02320018
         OI    CCOMM1+1,X'F0'                                           02340000
         OI    CCOMM3+1,X'F0'                                           02360000
         OI    CCOMM5+1,X'F0'                                           02380000
     OI   CKEYWD0+1,X'F0'                                               02400000
         OI    CPARAC1+1,X'F0'                                          02420000
         XC    CCOMMSW(5),CCOMMSW       RESET ITEM SWITCHES             02440000
         MVC   CPX(2),CH1               RESET P(X)                      02460000
         MVC   HEXITT(64),HEXITT-1     BLANK OUT EXIT TABLE        UL0H 02480017
       XC   HMDTAD(19),HMDTAD    ZERO OUT SWITCHES                      02500000
         SR    R4,R4                    ZERO OUT TABLE XRS              02520000
         SR    R5,R5                                                    02540000
         LA    R6,HEDCBAD                                               02560000
         SR    R7,R7                                                    02580000
         MVI   CWORK,X'00'                                              02600000
CSCAN    CALL  ACTCCS,(CWORK,CSIDDA)    CALL CONTROL CARD SCANNER SUBRT 02620000
         CLI   CWRSW,X'02'              IO ERROR?                       02640000
         BE    CIPERR                   YES                             02660000
         CLI   CWRSW,X'01'              NO,NEW CARD?                    02680000
         BNE   CTEST                    NO                              02700000
         STM   R0,R1,CSAVE1             SAVE  REGS 0-1                  02720000
         LA    R1,CWORK+1               YES,WRITE CARD ON SYSPRINT      02740000
         L     R15,CCDWRA               LOAD CTRL CARD WRITER SUBR ADDR 02760000
         BALR  R14,R15                                                  02780000
         LM    R0,R1,CSAVE1             RESTORE  REGS 0-1               02800000
*                                                                 *SA0I 02820018
*                  ANALYSIS OF ERROR BITS SET BY CCS02            *SA0I 02840018
*                                                                 *SA0I 02860018
CTEST    TM    CWORK,X'80'              ERROR                      SA0I 02880018
         BO    CA                       YES,DETERMINE ERROR        SA0I 02884018
         TM    CWORK,X'40'              BYPASS SWITCH ON           SA0I 02888018
         BO    MOREPARM                 YES,TEST FOR MORE          SA0I 02892018
*                                       PARAMETERS                 SA0I 02896018
         TM    CWORK,X'20'              EOF SWITCH ON              SA0I 02900018
         BO    CEOF                     YES,EOF                    SA0I 02904018
CLAB     TM    LABINPUT,X'80'           LABEL GENERATION           SA0I 02908018
         BO    LABGENER                 YES,BRANCH                 SA0I 02912018
         TM    CWORK,X'08'              NO,COMMAND?                     02920000
         BO    CCOMM                    YES                             02940000
         TM    CWORK,X'04'              NO,KEYWORD?                     02960000
         BO    CKEYW                    YES                             02980000
         TM    CWORK,X'02'              NO,PARAMETER?                   03000000
         BO    CPARA                    YES                             03020000
         BR    R12                      NO,SCAN FURTHER                 03040000
MOREPARM TM    CWORK,X'01'              END OF PARAMETERS          SA0I 03041018
         BO    CLAB                     YES,ANALYZE                SA0I 03042018
         BR    R12                      NO,SCAN FURTHER            SA0I 03043018
CA       TM    CWORK+130,X'02'          ARE PARENTHESES CLOSED     SA0I 03044018
         BO    CODE46                   NO,WRITE ERROR MSG 46      SA0I 03045018
         TM    CWORK,X'08'              IS COMMAND SWITCH ON       SA0I 03046018
         BZ    CB                       NO,BRANCH                  SA0I 03047018
         TM    CWORK,X'06'              IS KEYWORD OR PARAMETER    SA0I 03048018
*                                       SWITCH ON                  SA0I 03049018
         BC    5,CODE39                 YES,WRITE ERROR MSG 39     SA0I 03050018
         B     CODE36                   WRITE ERROR MSG 36         SA0I 03051018
CB       TM    CWORK,X'04'              IS KEYWORD SWITCH ON       SA0I 03052018
         BC    5,CODE37                 WRITE ERROR MSG 37 IF YES  SA0I 03053018
         TM    CWORK,X'02'              IS PARAMETER SWITCH ON     SA0I 03054018
         BC    5,CODE38                 WRITE ERROR MSG 38 IF YES  SA0I 03055018
         TM    CWORK+81,X'02'           IS KEYWORD REQUIRED        SA0I 03056018
*                                       SWITCH ON                  SA0I 03057018
         BC    5,CODE40                 WRITE ERROR MSG 40 IF YES  SA0I 03058018
         TM    CWORK+81,X'01'           IS PARAMETER REQ SWITCH ON SA0I 03059018
         BC    5,CODE41                 WRITE ERROR MSG 41 IF YES  SA0I 03060018
         TM    CWORK,X'40'              BYPASS SWITCH ON           SA0I 03061018
         BZ    CODE44                   NO,WRITE ERROR MSG 44      SA0I 03062018
         B     CODE45                   WRITE ERROR MSG 45         SA0I 03063018
*                                                                  SA0I 03064018
*                                                                 *SA0I 03065018
*                         ANALYSIS OF COMMANDS                    *SA0I 03066018
*                                                                 *SA0I 03067018
CCOMM    TM    CCOMMSW,X'10'            RECORD SWITCH SET?              03080000
         BZ    CCOMM2                                                   03100000
CCOMM1   B     CCOMM2                   FIRST-TIME SWITCH               03120000
         OI    0(R6),X'80'              SET LST-FLD BIT IN PREC EDCB    03140000
CCOMM2   NI    CCOMM1+1,X'0F'           TURN OFF SWITCH                 03160000
         NI    CCOMMSW,X'00'            TURN OFF COMMAND SWITCHES       03180000
         CLC   0(8,R1),CCGENERA         COMMAND=GENERATE?               03200000
         BNE   CCOMM5                   NO                              03220000
         CH    R0,CH8                                                   03240000
         BC    8,CCOMM3                 YES,BRANCH                 SA0I 03250018
         B     CODE36                   WRITE ERROR MSG 36         SA0I 03260018
CCOMM3   B     CCOMM4                   FIRST-TIME SWITCH          SA0I 03270018
         B     CODE36                   WRITE ERROR MSG 36         SA0I 03280018
CCOMM4   NI    CCOMM3+1,X'0F'           TURN OFF SWITCH                 03320000
         NI    CCOMM5+1,X'0F'           TURN OFF SWITCH                 03340000
         OI    CCOMMSW,X'80'            SET GENERATE SWITCH             03360000
         BR    R12                      SCAN FURTHER                    03380000
CCOMM5   B     CCOMM6                   FIRST TIME SWITCH               03400000
         B     CCOMM7                                                   03420000
CCOMM6   B     CODE36                   WRITE ERROR MSG 36         SA0I 03440018
CCOMM7   CLC   0(5,R1),CCEXITS          COMMAND=EXITS?                  03460000
         BNE   CCOMM8                   NO                              03480000
         CH    R0,CH5                                                   03500000
         BC    7,CODE36                 BRANCH IF NOT 5            SA0I 03520018
         OI    CCOMMSW,X'40'            YES,SET EXITS SWITCH            03540000
         BR    R12                      SCAN FURTHER                    03560000
CCOMM8   CLC   0(6,R1),CCMEMBER         COMMAND=MEMBER?                 03580000
         BNE   CCOMM9                   NO                              03600000
         CH    R0,CH6                                                   03620000
         BC    7,CODE36                 NO,WRITE ERROR MSG 36      SA0I 03650018
         OI    CCOMMSW,X'20'            SET MEMBER SWITCH          SA0I 03680018
         MVI   HPOID,X'02'              SET PDS SWITCH                  03720000
         MVC   CPX(2),CH1               RESET P(X)                      03740000
    CLI   CIDSW,X'00'                                                   03760000
         BC    7,CODE48                 WRITE ERROR MSG 48         SA0I 03780018
      MVI   CIDSW,X'01'                                                 03800000
         MVI   CIDSW2,X'00'                                             03820000
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 03825018
         BC    1,SETKEY                 YES,BRANCH AROUND          SA0I 03830018
*                                       ERROR MESSAGE              SA0I 03835018
         LTR   R4,R4                    TABLE SPACE ALLOTTED       SA0I 03840018
         BC    8,CODE42                 NO,WRITE ERROR MSG 42      SA0I 03845018
SETKEY   OI    CWORK+81,X'02'           TURN KEYWORD REQ SW ON     SA0I 03850018
         BR    R12                      SCAN FURTHER               SA0I 03855018
CCOMM9   CLC   0(6,R1),CCRECORD         COMMAND=RECORD?                 03860000
         BNE   CCOMM10                 NO                          UL0H 03880017
         CH    R0,CH6                                                   03900000
         BC    7,CODE36                 NO,WRITE ERROR MSG 36      SA0I 03920018
         MVI   CRCDSW,X'00'             SET RECORD SWITCH               03940000
         OI    CCOMMSW,X'10'            YES,SET RECORD SWITCH           03960000
         OI    CWORK+141,X'0E'    SET RECORD SW                @YA01703 03962002
         BR    R12                      SCAN FURTHER                    03964000
CCOMM10  CLC   0(6,R1),CCLABELS        COMMAND=LABELS?             UL0H 03967017
         BC    7,CODE36                 NO,WRITE ERROR MSG 36      SA0I 03970018
         CH    R0,CH6                   IS LENGTH EQ 6             SA0I 03973018
         BC    7,CODE36                 NO,WRITE ERROR MSG 36      SA0I 03976018
         TM    FIRSTLAB,X'01'           LABELS CARD PROCESSED YET  SA0I 03979018
         BC    1,CODE36                 YES,WRITE ERROR MSG 36     SA0I 03982018
         OI    FIRSTLAB,X'01'          SET FIRST TIME SWITCH       UL0H 03985017
         OI    CCOMMSW,X'08'            YES-SET LABELS SWITCH      UL0H 03988017
         OI    CWORK+81,X'02'           TURN KEYWORD REQ SW ON     SA0I 03990018
         BR    R12                                                 SA0I 03992018
*                     ANALYSIS OF KEYWORDS                        *SA0I 03994018
*                                                                 *SA0I 03996018
*                                                                       04000000
CKEYW    XC    CMAXEXSW(2),CMAXEXSW     TURN OFF KEYWORD SWITCHES       04020000
         NI    CWORK+81,X'FD'           TURN KEYWORD REQ SW OFF    SA0I 04030018
         TM    CCOMMSW,X'80'            GENERATE SWITCH SET?            04040000
         BO    CKEYWA                   YES                             04060000
         TM    CCOMMSW,X'40'            NO,EXITS SWITCH SET?            04080000
         BO    CKEYWB                   YES                             04100000
         TM    CCOMMSW,X'20'            NO,MEMBER SWITCH SET?           04120000
         BO    CKEYWC                   YES                             04140000
         B     CKEYWD                   NO                              04160000
*                                                                       04180000
CKEYWA   CLC   0(8,R1),CCMAXNAM         KEYWORD=MAXNAME?         A28288 04200019
         BNE   CKEYWA2                  NO                              04220000
         OI    CMAXEXSW,X'80'           SET MAXNAME SWITCH         SA0I 04270018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 04280018
         BR    R12                      SCAN FURTHER                    04300000
CKEYWA2  CLC   0(8,R1),CCMAXFLD        KEYWORD=MAXFLDS?          A28288 04320019
         BNE   CKEYWA3                  NO                              04340000
         OI    CMAXEXSW,X'40'           SET MAXFLDS SWITCH         SA0I 04390018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 04400018
         BR    R12                      SCAN FURTHER                    04420000
CKEYWA3  CLC   0(7,R1),CCMAXGPS        KEYWORD=MAXGPS?           A28288 04440019
         BNE   CKEYWA4                  NO                              04460000
         OI    CMAXEXSW,X'20'           SET MAXGPS SWITCH          SA0I 04510018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 04520018
         BR    R12                      SCAN FURTHER                    04540000
CKEYWA4  CLC   0(8,R1),CCMAXLIT        KEYWORD=MAXLITS?          A28288 04550019
         BC    7,CODE37                 NO,WRITE ERROR MSG 37      SA0I 04570018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 04600018
         BR    R12                      YES,SCAN FURTHER                04640000
*                                                                       04660000
CKEYWB   CLC   0(6,R1),CCEXIT1          KEYWORD=INHDR?           A28288 04680019
         BNE   CKEYWB2                  NO                              04700000
         TM    CEXITSSW,X'20'           IS INHDR SWITCH ON         SA0I 04744018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 04752018
         OI    CEXITSSW,X'20'           SET INHDR SWITCH           SA0I 04760018
         MVI   EXITNAME,X'20'          INDICATE INHDR KEYWORD      SA0I 04764018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 04768018
         BR    R12                      SCAN FURTHER                    04780000
CKEYWB2  CLC   0(7,R1),CCEXIT2          KEYWORD=OUTHDR?          A28288 04800019
         BNE   CKEYWB3                  NO                              04820000
         TM    CEXITSSW,X'10'           IS OUTHDR SWITCH ON        SA0I 04864018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 04872018
         OI    CEXITSSW,X'10'           SET OUTHDR SWITCH          SA0I 04880018
         MVI   EXITNAME,X'10'          INDICATE OUTHDR KEYWORD     SA0I 04884018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 04888018
         BR    R12                      SCAN FURTHER                    04900000
CKEYWB3  CLC   0(6,R1),CCEXIT3          KEYWORD=INTLR?           A28288 04920019
         BNE   CKEYWB4                  NO                              04940000
         TM    CEXITSSW,X'08'           IS INTLR SWITCH ON         SA0I 04984018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 04992018
         OI    CEXITSSW,X'08'           SET INTLR SWITCH           SA0I 05000018
         MVI   EXITNAME,X'08'          INDICATE INTTLR KEYWORD     SA0I 05004018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05008018
         BR    R12                      SCAN FURTHER                    05020000
CKEYWB4  CLC   0(7,R1),CCEXIT4          KEYWORD=OUTTLR?          A28288 05040019
         BNE   CKEYWB5                  NO                              05060000
         TM    CEXITSSW,X'04'           IS OUTTLR SWITCH ON        SA0I 05104018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 05112018
         OI    CEXITSSW,X'04'           SET OUTTLR SWITCH          SA0I 05120018
         MVI   EXITNAME,X'04'          INDICATE OUTTLR KEYWORD     SA0I 05124018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05128018
         BR    R12                      SCAN FURTHER                    05140000
CKEYWB5  CLC   0(5,R1),CCDATA           KEYWORD=DATA?            A28288 05160019
         BNE   CKEYWB6                  NO                              05180000
         TM    CEXITSSW,X'02'           IS DATA SWITCH ON          SA0I 05224018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 05232018
         OI    CEXITSSW,X'02'           SET DATA SWITCH            SA0I 05240018
         MVI   EXITNAME,X'02'          INDICATE DATA KEYWORD       SA0I 05244018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05248018
         BR    R12                      SCAN FURTHER                    05260000
CKEYWB6  CLC   0(4,R1),CCKEY            KEYWORD=KEY?             A28288 05280019
         BNE   CKEYWB7                  NO                              05300000
         TM    CEXITSSW,X'01'           IS KEY SWITCH ON           SA0I 05344018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 05352018
         OI    CEXITSSW,X'01'           SET KEY SWITCH             SA0I 05360018
         MVI   EXITNAME,X'01'         INDICATE KEY KEYWORD         SA0I 05364018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05368018
         BR    R12                      SCAN FURTHER                    05380000
CKEYWB7  CLC   0(8,R1),CCIOERRO         KEYWORD=IOERROR?         A28288 05400019
         BNE   CKEYWB8                 NO                          UL0H 05420017
         TM    CEXITSSW,X'80'           IS IOERROR SWITCH ON       SA0I 05434018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 05436018
         OI    CEXITSSW,X'80'           SET IOERROR SWITCH         SA0I 05438018
         MVI   EXITNAME,X'00'          INDICATE IOERROR KEYWORD    SA0I 05439018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05440018
         BR    R12                      YES,SCAN FURTHER                05444000
CKEYWB8  CLC   0(6,R1),CCTOTAL          KEYWORD=TOTAL?           A28288 05450019
         BC    7,CODE37                 NO,WRITE ERROR MSG 37      SA0I 05456018
         TM    CEXITSSW,X'40'           IS TOTAL SWITCH ON         SA0I 05472018
         BNZ   CODE47                   YES,WRITE ERROR MSG 47     SA0I 05476018
         OI    CEXITSSW,X'40'           SET TOTAL SWITCH           SA0I 05480018
         MVI   EXITNAME,X'40'          INDICATE TOTAL KEYWORD      SA0I 05482018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05484018
         BR    R12                                                 UL0H 05492017
*                                                                       05500000
CKEYWC   CLC   0(5,R1),CCNAME           KEYWORD=NAME?            A28288 05510019
         BC    7,CODE37                 NO,WRITE ERROR MSG 37      SA0I 05530018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05560018
         OI    COTHSW,X'80'             YES,SET NAME SWITCH             05600000
         BR    R12                      SCAN FURTHER                    05620000
*                                                                       05640000
CKEYWD   TM    CCOMMSW,X'08'           COMMAND IS LABELS?          UL0H 05644017
         BO    CKEYWD3                                             UL0H 05648017
         CLC   0(7,R1),CCLABELS         KEYWORD=LABELS?          A28288 05652019
         BNE   CKEYWDA                                             UL0H 05656017
         OI    LABINPUT,X'08'           SET LABEL SWITCH           SA0I 05666018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 05668018
         BR    R12                                                 UL0H 05672017
CKEYWDA  CLC   0(6,R1),CCIDENT          KEYWORD=IDENT?           A28288 05676019
         BNE   CKEYWD2                  NO                              05680000
*                                       LENGTH INVALID             SA0I 05720018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 05730018
         BC    1,SKIP1                 YES, SKIP PAST PROCESSING   SA0I 05740018
*                                      OF THIS PARAMETER           SA0I 05750018
         LTR   R5,R5                    TABLE SPACE ALLOTTED       SA0I 05760018
         BC    8,CODE42                 WRITE ERROR MSG 42 IF NOT  SA0I 05770018
CKEYWD0   B   CKEYWD1                                                   05780000
         LA    R5,12(,R5)                                               05800000
CKEYWD1  NI    CKEYWD0+1,X'0F'                                          05820000
         S     R5,HRDTAD                                                05840000
         CH    R5,CMAXG                                                 05860000
         BNL   CODE42                   WRITE ERROR MSG 42 IF   YA01699 05870002
*                                       GT MAX                     SA0I 05880018
         A     R5,HRDTAD                                                05900000
SET1     OI    CRDTSW,X'FF'             SET RDT SWITCH             SA0I 05910018
         TM    CRCDSW,X'F0'            WAS THERE A PREVIOUS FIELD  0492 05920018
         BZ    NOFIELD                 NO, DO NOT SET FIELD BIT    0492 05928018
         MVI   0(R5),X'20'             SET BIT IN IDENT AREA       0492 05936018
         B     SKIP1                   CONTINUE PROCESSING         0492 05944018
NOFIELD  MVI   0(R5),X'00'             SET FIELD BIT TO ZERO       0492 05952018
SKIP1    OI    CRDTSW2,X'FF'            SET IDENT SWITCH           0492 05960018
         OI    CRCDSW,X'0F'             SET IDENT SWITCH           0492 05970018
         OI    COTHSW,X'40'             SET IDENT SWITCH                05980000
         MVI   CIDSW,X'00'                                              06000000
         MVI   CIDSW2,X'01'                                             06020000
         MVC   CPX(2),CH1               RESET P(X)                      06040000
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 06050018
         BR    R12                      SCAN FURTHER               SA0I 06060018
CKEYWD2   CLC   0(6,R1),CCFIELD         KEYWORD=FIELD?           A28288 06070019
         BC    7,CODE37                 NO,WRITE ERROR MSG 37      SA0I 06090018
         CLI   6(R1),X'4D'   IS AN LEFT PARENT. PRESENT?         A36072 06100021
         BNE   CODE46        NO, WRITE ERROR MESSAGE             A36072 06110021
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 06120018
         BC    1,SKIP                   YES,BRANCH AROUND          5052 06130018
*                                       PROCESSING                 5052 06140018
         LTR   R6,R6                    TABLE SPACE ALLOTTED       SA0I 06150018
         BC    8,CODE42                 NO,WRITE ERROR MSG 42      SA0I 06160018
         TM    CRCDSW,X'0F'            WAS THERE A PREVIOUS IDENT  0492 06163018
         BZ    SKIP                    NO, DO NOT SET BIT          0492 06166018
SETSW    MVI   0(R5),X'20'              SET FIELD SWITCH IN TABLE  0492 06170018
SKIP     OI    CRCDSW,X'F0'             SET FIELD SWITCH           0492 06180018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 06190018
         BC    1,SET2                   YES,BRANCH AROUND          SA0I 06200018
*                                       PROCESSING                 SA0I 06210018
         LA    R6,8(,R6)                UPDATE EDCB XR                  06280000
         S     R6,HEDCBAD               TABLE OVERFLOW?                 06300000
         CH    R6,CMAXF                                                 06320000
         BC    11,CODE42A               YES,WRITE ERROR MSG 42 @ZA28787 06340099
         A     R6,HEDCBAD               NO,RESTORE XR                   06360000
         MVC   0(8,R6),CSTEDCB          MOVE IN STANDARD EDCB           06380000
SET2     OI    COTHSW,X'20'             YES,SET FIELD SWITCH       SA0I 06400018
     OI   CEDITSW,X'FF'                                                 06420000
         MVC   CPX(2),CH1               RESET P(X)                      06440000
         CLI   CIDSW2,X'01'                                             06460000
         BNE   CHANGE                                                   06480000
BBKK     MVI   CIDSW2,X'00'                                             06500000
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 06510018
         BR    R12                      SCAN FURTHER               SA0I 06520018
CHANGE   NI    CRDTSW,X'00'    CLEAR RDT SWITCH                         06540000
         B    BBKK                                                      06560000
CKEYWD3  CLC   0(5,R1),CCDATA           KEYWORD=DATA?            A28288 06561019
         BC    7,CODE37                 NO,WRITE ERROR MSG 37      SA0I 06565018
         OI    LABINPUT,X'04'           SET SWITCH FOR LABELS      SA0I 06566018
         OI    CWORK+81,X'01'           TURN PARAMETER REQ SW ON   SA0I 06567018
         BR    R12                     PARAMETER PROCESSING AND    UL0H 06572017
*                                      CONTINUE SCANNING           UL0H 06574017
CIDSW2   DC    X'00'                                                    06580000
*                                                                 *SA0I 06590018
*                      ANALYSIS OF PARAMETERS                     *SA0I 06600018
*                                                                 *SA0I 06610018
CPARA    TM    CCOMMSW,X'80'            GENERATE SWITCH SET?            06620000
         BZ    CPARAB                   NO                              06640000
         TM    CMAXEXSW,X'80'           YES,MAXNAME SWITCH SET?         06660000
         BZ    CPARAA2                  NO                              06680000
         NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 06688018
         BALR  R9,R10                   CONVERT PARAM TO BINARY  A41800 06690021
         LTR   R0,R0                    IS LENGTH EQ 0             SA0I 06696018
         BC    8,CODE38                 YES,WRITE ERROR MSG 38     SA0I 06704018
       ST    R0,MXNAMK                                                  06720000
         MH    R0,CH10                  MULTIPLY NUMBER BY 10 BYTES     06740000
         STH   R0,CMAXN                 STORE TABLE SIZE                06760000
         GETMAIN R,LV=(R0)                                              06780000
         ST    R1,HMDTAD                STORE ADDRESS OF MDT            06800000
         LR    R4,R1                                                    06820000
         BR    R12                      SCAN FURTHER                    06840000
CPARAA2  TM    CMAXEXSW,X'40'           MAXFLDS SWITCH SET?             06860000
         BZ    CPARAA3                  NO                              06880000
         NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 06888018
         BALR  R9,R10                   CONVERT PARAM TO BINARY  A41800 06890021
         LTR   R0,R0                    IS LENGTH EQ 0             SA0I 06896018
         BC    8,CODE38                 YES,WRITE ERROR MSG 38     SA0I 06904018
         MH    R0,CH8                   MULTIPLY NUMBER BY 8  BYTES     06920000
         STH   R0,CMAXF                 STORE TABLE SIZE                06940000
         AH    R0,CH8                                                   06960000
         GETMAIN R,LV=(R0)                                              06980000
         AH    R1,CH8                                                   07000000
         ST    R1,HEDCBAD               STORE ADDRESS OF EDCBS          07020000
         LR    R6,R1                    LOAD REG6 WITH ADDR OF EDCBS    07040000
         SH    R6,CH8                   AND SUBTRACT 8 FROM THE ADDR    07060000
         BR    R12                      SCAN FURTHER                    07080000
CPARAA3  TM    CMAXEXSW,X'20'           MAXGPS SWITCH SET?              07100000
         BZ    CPARAA4                  NO                              07120000
         NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 07128018
         BALR  R9,R10                   CONVERT PARAM TO BINARY  A41800 07130021
         LTR   R0,R0                    IS LENGTH EQ 0             SA0I 07136018
         BC    8,CODE38                 YES,WRITE ERROR MSG 38     SA0I 07144018
         MH    R0,CH12                  MULTIPLY NUMBER BY 12 BYTES     07160000
         AH    R0,CH12            FOR RECORD STMT WITHOUT PARAM YA01703 07170002
         STH   R0,CMAXG                 STORE TABLE SIZE                07180000
         GETMAIN R,LV=(R0)                                              07200000
         ST    R1,HRDTAD                STORE ADDRESS OF RDT            07220000
         LR    R5,R1                    LOAD ADDR OF RDT IN REG 5       07240000
         BR    R12                      SCAN FURTHER                    07260000
CPARAA4  NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 07268018
         BALR  R9,R10                   CONVERT PARAM TO BINARY  A41800 07270021
         LTR   R0,R0                    IS LENGTH EQ 0             SA0I 07276018
         BC    8,CODE38                 YES,WRITE ERROR MSG 38     SA0I 07284018
         STH   R0,CMAXL                 STORE TABLE SIZE                07300000
         GETMAIN R,LV=(R0)                                              07320000
         ST    R1,HLITTAD               STORE ADDRESS OF LITT           07340000
         LR    R7,R1                    LOAD ADDR OF LITT IN REG 7      07360000
         BR    R12                      SCAN FURTHER                    07380000
*                                                                       07400000
CPARAB   TM    CCOMMSW,X'40'            EXITS SWITCH SET?               07420000
         BZ    CPARAF                                              UL0H 07430017
         NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 07432018
         LTR   R0,R0                    IS LENGTH EQ 0             SA0I 07434018
         BC    8,CODE38                 YES,WRITE ERROR MSG 38     SA0I 07436018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 07438018
         BC    1,COMP2                  YES,BRANCH AROUND          SA0I 07440018
*                                       PROCESSING                 SA0I 07442018
         TM    CMAXEXSW,X'80'          AREA LENGTH PARAMETER       SA0I 07446018
         BO    CPARAB6                 YES -GET TOTALING AREA      UL0H 07450017
COMP2    LA    R9,8                     LENGTH GT 8                SA0I 07456018
         CR    R0,R9                                               SA0I 07462018
         BC    2,CODE38                 WRITE ERROR MSG 38 IF GT 8 SA0I 07468018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 07474018
         BCR   1,R12                    YES,SCAN FURTHER           SA0I 07480018
         LA    R3,HEXITT                                                07490000
         SR    R9,R9                    YES,STORE LABEL IN              07500000
         LA    R8,8                                                UL0H 07540017
         MVI   CPARAB2+1,X'40'                                     UL0H 07580017
         B     CPARAB2                                                  07600000
CPARAB1  LA    R3,8(,R3)                                                07620000
CPARAB2  TM    EXITNAME,X'40'          WHICH EXIT KEYWORD SET      SA0I 07640018
         BZ    CPARAB5                                                  07660000
CPARAB3  BCTR  R0,0                                                     07670000
         STC   R0,CPARAB4+1                                             07680000
CPARAB4  MVC   0(1,R3),0(R1)                                            07690000
          CLI  CPARAB2+1,X'40'          TOTALING?                  UL0H 07725017
         BCR   7,R12                   NO                          UL0H 07730017
         OI    CMAXEXSW,X'80'          SET AREA LENGTH BIT         SA0I 07737018
         OI    CWORK+81,X'01'          TURN PARAMETER REQ. SW. ON  UL0I 07741018
         BR    R12                                                      07745000
CPARAB5  IC    R9,CPARAB2+1                                             07755000
         SRL   R9,1                                                     07765000
         STC   R9,CPARAB2+1                                             07775000
         BCT   R8,CPARAB1                                               07785000
         B     CPARAB3                                                  07840000
CPARAB6  BALR  R9,R10                  CONVERT TO BINARY           UL0H 07842017
         ST    R0,TOTLAREA             SAVE LENGTH                 UL0H 07844017
         CH    R0,TW15M1               COMPARE TO MAXIMUM          UL0H 07846017
         BC    2,CODE42                 WRITE ERROR MSG 42 IF      SA0I 07847018
*                                       GT MAX                     SA0I 07848018
         GETMAIN R,LV=(R0)             GET TOTALING AREA           UL0H 07850017
         L     R0,TOTLAREA             LOAD LENGTH                 UL0H 07852017
         ST    R1,TOTLAREA             STORE TOALING AREA ADDRESS  UL0H 07854017
         STH   R0,0(R1)                STORE LENGTH IN TOT. AREA   UL0I 07856018
         BR    R12                                                 UL0H 07858017
*                                                                       07860000
**********************************************************************  07880000
*               REG1 HAS THE POINTER TO THE PARAMETER OF THE MEMBER  *  07900000
*                NAME STATEMENT, FROM CCS02.                         *  07920000
*                                                                    *  07940000
*               REG0 HAS THE LENGTH OF THE MEMBER NAME, FROM CCS02   *  07960000
*                                                                    *  07980000
*               MDT IS THE TABLE FOR THE MEMBER NAMES                *  08000000
*                                                                    *  08020000
**********************************************************************  08040000
*                                                                       08060000
CPARAC   TM    COTHSW,X'80'             NAME SWITCH SET?                08080000
         BZ    CPARAD                   NO                              08100000
         LTR   R0,R0                                                    08120000
         BC    8,CODE41                 WRITE ERROR MSG 41 IF 0    SA0I 08140018
         LA    R9,8                     LEGAL LENGTH?                   08160000
         CR    R0,R9                                                    08180000
         BC    2,CODE38                 WRITE ERROR MSG 38 IF GT 8 SA0I 08200018
         CLC   CPX(2),CH1               YES,PARAMETER 1?                08220000
         BNE   CPARAC2                  NO                              08240000
         NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 08244018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 08248018
         BC    1,SET3                   YES,BRANCH AROUND          SA0I 08252018
*                                       PROCESSING                 SA0I 08256018
         ST    R4,CSAVEMDT                                              08260000
         LA    R4,2(,R4)                                                08280000
CPARAC1  B     CPARAC2                  FIRST-TIME SWITCH               08300000
         LTR   R5,R5                                                    08320000
         BC    8,CODE42                 WRITE ERROR MSG 42 IF 0    SA0I 08340018
         OI    0(R5),X'0F'              ENTER EOM INDICATOR             08360000
SET3     OI    CPDSSW,X'FF'             INDICATE NAME CARD         SA0I 08370018
CPARAC2  TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 08380018
         BC    1,SET4                   YES,BRANCH AROUND          SA0I 08390018
*                                       PROCESSING                 SA0I 08400018
         NI    CPARAC1+1,X'0F'          TURN OFF SWITCH            SA0I 08410018
         ST    R4,FOURSVK                                               08420000
         L     R4,MXNAMK                                                08440000
         LTR   R4,R4                                                    08460000
         BC    8,CODE42                 WRITE ERROR MSG 42 IF 0    SA0I 08480018
      BCTR   R4,0    DECREASE COUNT                                     08500000
     ST    R4,MXNAMK                                                    08520000
        L    R4,FOURSVK                                                 08540000
         BCTR  R0,0                                                     08560000
         STC   R0,CPARAC3+1                                             08580000
         MVI   0(R4),X'40'              BLANK OUT NAME AREA             08600000
         MVC   1(7,R4),0(R4)                                            08620000
CPARAC3  MVC   0(8,R4),0(R1)            STORE NAME IN MDT               08640000
         LA    R4,8(,R4)                INCREMENT XR                    08660000
         TM    CWORK,X'21'              LAST PARAMETER             9430 08680017
         BM    CPARAC4                 YES                              08700000
SET4     LA    R8,1                     NO,INCREMENT P(X)          SA0I 08720018
         AH    R8,CPX                                                   08740000
         STH   R8,CPX                                                   08760000
         BR    R12                      SCAN FURTHER                    08780000
CPARAC4  LH    R8,CPX                                                   08800000
         BCTR  R8,0                                                     08820000
         L     R9,CSAVEMDT                                              08840000
         STH   R8,0(R9)                 INSERT ALIAS COUNT              08860000
         BR    R12                      SCAN FURTHER                    08880000
*                                                                       08900000
CPARAD   TM    COTHSW,X'40'             IDENT SWITCH SET?               08920000
         BZ    CPARAG                                              UL0H 08940017
         CLC   CPX(2),CH1               YES,PARAMETER 1?                08960000
         BNE   CPARAD2                  NO                              08980000
         MVI   CPDSSW,X'00'             INDICATE NAME & IDENT COMB.     09000000
         TM    CERRSW,X'F0'            WAS THERE A PREVIOUS ERROR  SA0I 09010018
         BO    SET5                    YES, SKIP PROCESSING        SA0I 09020018
COMP3    LTR   R0,R0                                               SA0I 09042018
         BC    8,CODE41                 WRITE ERROR MSG 41 IF 0    SA0I 09049018
         TM    CWORK,X'01'              MORE PARAMETERS            SA0I 09056018
         BC    1,CODE41                 WRITE ERROR MSG 41 IF NO   SA0I 09063018
*                                       MORE                       SA0I 09070018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 09077018
         BC    1,SET5                   YES,BRANCH AROUND          SA0I 09084018
*                                       PROCESSING                 SA0I 09091018
         CLI   0(R1),X'F0'              IS PARAMETER EQ 0          SA0I 09098018
         BC    8,CODE38                 YES,WRITE ERROR MSG 38     SA0I 09105018
         BALR  R9,R10                   YES,CONVERT TO BINARY           09120000
         LA    R9,8                     LEGAL LENGTH?                   09140000
         CR    R0,R9                                                    09160000
         BC    2,CODE38                 WRITE ERROR MSG 38 IF GT 8 SA0I 09180018
         STC   R0,1(R5)                 STORE IN RDT                    09200000
SET5     MVC   CPX(2),CH2               UPDATE P(X)                SA0I 09220018
         BR    R12                      SCAN FURTHER                    09240000
CPARAD2  CLC   CPX(2),CH2               PARAMETER 2?                    09260000
         BNE   CPARAD3                  NO                              09280000
         LTR   R0,R0                                                    09300000
         BC    8,CODE41                 WRITE ERROR MSG 41 IF 0    SA0I 09310018
         CLI   0(R1),X'7D'              FIRST BYTE A QUOTE         SA0I 09320018
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT  SA0I 09330018
         TM    CWORK,X'01'              MORE PARAMETERS            SA0I 09340018
         BC    1,CODE41                 WRITE ERROR MSG 41 IF NOT  SA0I 09350018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 09360018
         BC    1,SET6                   YES,BRANCH AROUND          SA0I 09370018
*                                       PROCESSING                 SA0I 09380018
         SH    R0,CH2                   YES,CONSISTENT PARAM LENGTH?    09420000
         STC   R0,IDLENG               COMPARE ACTUAL LENGTH TO    SA0I 09430018
         CLC   IDLENG(1),1(R5)         STATED LENGTH               SA0I 09440018
         BC    7,CODE49                 WRITE ERROR MSG 49 IF NOT  SA0I 09450018
*                                       CONSISTENT                 SA0I 09460018
         MVC   4(8,R5),1(R1)            YES,MOVE TO RDT                 09480000
SET6     MVC   CPX(2),CH3               UPDATE P(X)                SA0I 09500018
         BR    R12                      SCAN FURTHER                    09520000
CPARAD3  CLC   CPX(2),CH3               PARAMETER 3?                    09540000
         BC    7,CODE38                 NO,WRITE ERROR MSG 38      SA0I 09560018
         NI    CWORK+81,X'FE'          TURN OFF PARAMETER REQ BIT  SA0I 09570018
         MVC   CPX(2),CH4               YES,UPDATE P(X)                 09580000
         LTR   R0,R0                                                    09600000
         BC    8,CODE41                 WRITE ERROR MSG 41 IF 0    SA0I 09620018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 09640018
         BCR   1,R12                    YES,SCAN FURTHER           SA0I 09660018
         BALR  R9,R10                   CONVERT TO BINARY               09680000
         BCTR  R0,0                     SUBTRACT 1                      09700000
         STH   R0,2(R5)                 STORE IN RDT                    09720000
         BR    R12                      SCAN FURTHER                    09740000
*                                                                       09760000
CPARAE   CLC   CPX(2),CH1               PARAMETER 1?                    09780000
         BNE   CPARAE2                  NO                              09800000
         NI    CWORK+81,X'FE'          TURN OFF PARAMETER REQ BIT M0171 09810018
         LTR   R0,R0                                                    09820000
         BZ    CPARAE1                                                  09840000
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 09845018
         BC    1,CPARAE1                YES,BRANCH AROUND          SA0I 09850018
*                                       PROCESSING                 SA0I 09855018
         STM   R0,R1,CSAVE1             SAVE PARAMETER REGS      A27695 09855519
CKNUM    CLI   0(R1),X'F0'              IS PARAMETER = 0         A27695 09856019
         BL    CODE38                   LESS THAN F0             A27695 09856519
         CLI   0(R1),X'F9'              IS PARAMETER = 9         A27695 09857019
         BH    CODE38                   GREATER THAN F9          A27695 09857519
         LA    R1,1(R1)                 INCREMENT POINTER        A27695 09858019
         BCT   R0,CKNUM                 WAS ENTIRE LENGTH CHECK  A27695 09858519
          LM   R0,R1,CSAVE1             RESTORE REGS                    09859019
         BALR  R9,R10                   CONVERT TO BINARY               09860000
         STH   R0,4(R6)                 STORE IN EDCB                   09880000
CPARAE1  MVC   CPX(2),CH2               UPDATE P(X)                     09900000
         BR    R12                      SCAN FURTHER                    09920000
CPARAE2  CLC   CPX(2),CH2               PARAMETER 2?                    09940000
         BNE   CPARAE6                  NO                              09960000
         LTR   R0,R0                                                    09980000
         BZ    CPARAE3                                                  10000000
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 10005018
         BC    1,CPARAE3                YES,BRANCH AROUND          SA0I 10010018
*                                       PROCESSING                 SA0I 10015018
         CLI   0(R1),X'7D'              LITERAL?                        10020000
         BE    CPARAE4                  YES                             10040000
         CLI   0(R1),X'F0'             CHECK TO SEE IF THE CHAR    1284 10044018
         BL    CODE38                  IS A NUMERAL- IF NOT WRITE  1284 10048018
         CLI   0(R1),X'F9'             AN ERROR MSG INDICATING     1284 10052018
         BH    CODE38                  AN INVALID PARAMETER        1284 10056018
         BALR  R9,R10                   NO,CONVERT TO BINARY            10060000
         BCTR  R0,0                     SUBTRACT 1                      10080000
         STH   R0,2(R6)                 STORE IN EDCB                   10100000
CPARAE3  MVC   CPX(2),CH3               UPDATE P(X)                     10120000
         BR    R12                      SCAN FURTHER                    10140000
CPARAE4  LTR   R7,R7                   TABLE SPACE ALLOTTED        SA0I 10160018
         BC    8,CODE42                 WRITE ERROR MSG 42 IF NOT  SA0I 10180018
         S     R7,HLITTAD                                               10200000
         AR    R7,R0                                                    10220000
         SH    R7,CH2                                                   10240000
         CH    R7,CMAXL                                                 10260000
         BC    2,CODE42                 WRITE ERROR MSG 42 IF IS   SA0I 10280018
         A     R7,HLITTAD               NO,RESTORE XR                   10300000
         SR    R7,R0                                                    10320000
         AH    R7,CH2                                                   10340000
         OI    0(R6),X'40'              SET LITERAL BIT                 10360000
         SH    R0,CH2                   SHORT LENGTH?                   10380000
         CH    R0,4(R6)                IS STATED LENGTH OF LITERAL SA0I 10381018
*                                      EQ TO ACTUAL LENGTH         SA0I 10382018
         BNE   CODE49                  NO,WRITE ERR MSG 49      YA01701 10383002
         SR    R11,R11                  ZERO OUT REGISTER          8206 10385018
         LA    R9,40                    PUT CONSTANT 40 IN REG     SA0I 10390018
         CH    R9,4(R6)           IS LIT. GREATER THAN 40?      YA01701 10391002
         BL    CODE50             YES,WRITE ERROR MSG           YA01701 10392002
         LA    R1,1(R1)                 ADD 1 TO LITERAL POINTER   8206 10395018
CPARAE5  MVC   0(1,R7),0(R1)            MOVE ONE BYTE OF LITERAL   8206 10400018
*                                       TO TABLE                   8206 10405018
         LA    R11,1(R11)               INCREASE LITERAL LENGTH    8206 10410018
         CR    R11,R9                  IS LITERAL LENGTH GREATER   SA0I 10415018
         BH    CODE50                   THAN 40 - YES WRITE ERR    SA0I 10420018
*                                       MESSAGE                    SA0I 10425018
         CLI   0(R1),X'7D'              COMPARE FOR QUOTE          8206 10430018
         BNE   NOTQUOTE                 NOT A QUOTE,BRANCH AROUND  8206 10435018
         LA    R1,1(R1)                 ADD 1 TO LITERAL POINTER   8206 10440018
NEXTQUOT CLI   0(R1),X'7D'              IS NEXT BYTE QUOTE         8206 10460018
         BNE   CODE38                   NO,WRITE ERROR MSG 38      8206 10465018
NOTQUOTE LA    R1,1(R1)                 ADD 1 TO LITERAL POINTER   8206 10470018
         LA    R7,1(R7)                 ADD 1 TO TABLE POSITION    8206 10475018
*                                       POINTER                    8206 10480018
         BCT   R0,CPARAE5               SUBTRACT 1 FROM LENGTH     8206 10485018
*                                       BRANCH IF NOT 0            8206 10490018
         LR    R8,R7                                                    10500000
         SR    R8,R11                   POINT TO BEGIN OF LITERAL  SA0I 10510018
         S     R8,HLITTAD                                               10520000
         STH   R8,2(R6)                 STORE POSITION IN EDCB          10540000
         B     CPARAE3                                                  10600000
CPARAE6  CLC   CPX(2),CH3               PARAMETER 3?                    10620000
         BNE   CPARAE10                 NO                              10640000
         MVC   CPX(2),CH4               YES,UPDATE P(X)                 10660000
         LTR   R0,R0                                                    10680000
         BZ    CPARAE7                                                  10700000
         CLC   0(2,R1),CCHE                                             10720000
         BNE   CPARAE8                  NO                              10740000
         CH    R0,CH2                                                   10760000
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 2SA0I 10770018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 10780018
         BCR   1,R12                    YES,SCAN FURTHER           SA0I 10790018
         OI    0(R6),X'20'              YES,SET HE BIT                  10800000
CPARAE7  BR    R12                      SCAN FURTHER                    10820000
CPARAE8  CLC   0(2,R1),CCPZ             PZ CONVERSION?                  10840000
         BNE   CPARAE9                  NO                              10860000
         CH    R0,CH2                                                   10880000
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 2SA0I 10890018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 10900018
         BCR   1,R12                    YES,SCAN FURTHER           SA0I 10910018
         OI    0(R6),X'10'              YES,SET PZ BIT                  10920000
         BR    R12                      SCAN FURTHER                    10940000
CPARAE9  CLC   0(2,R1),CCZP             ZP CONVERSION?                  10960000
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT  SA0I 10970018
         CH    R0,CH2                   IS LENGTH EQ 2             SA0I 10980018
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 2SA0I 10990018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 11000018
         BCR   1,R12                    YES,SCAN FURTHER           SA0I 11010018
         OI    0(R6),X'08'             YES-SET ZP BIT                   11040000
         BR    R12                     SCAN FURTHER                     11060000
CPARAE10 CLC   CPX(2),CH4               PARAMETER 4?                    11080000
         BC    7,CODE38                 WRITE ERROR MSG 38         SA0I 11090018
         MVC   CPX(2),CH5               UPDATE P(X)                SA0I 11100018
         LTR   R0,R0                    IS LENGTH EQ 0             SA0I 11110018
         BCR   8,R12                    SCAN FURTHER               SA0I 11120018
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 11130018
         BCR   1,R12                    YES,SCAN FURTHER           SA0I 11140018
         BALR  R9,R10                   CONVERT TO BINARY               11200000
         BCTR  R0,0                                                     11210000
         STH   R0,6(R6)                 STORE IN EDCB                   11220000
         BR    R12                      SCAN FURTHER                    11230000
CPARAF   TM    CCOMMSW,X'08'           COMMAND IS LABELS           UL0H 11231017
         BZ    CPARAC                                              UL0H 11232017
         NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 11232118
         LTR   R0,R0                    IS LENGTH EQ 0             SA0I 11232218
         BC    8,CODE38                 YES,WRITE ERROR MSG 38     SA0I 11232318
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 11232418
         BC    1,SET7                   YES,BRANCH AROUND          SA0I 11232518
*                                       PROCESSING                 SA0I 11232618
         TM    LABINPUT,X'04'          TEST LABELS PAR SWITCH      UL0H 11233017
         BZ    CPARAF5                                             UL0H 11234017
SET7     NI    LABINPUT,X'00'           SET SWITCH OFF             SA0I 11235018
         CLC   0(3,R1),CCYES           PARAMETER=YES?              UL0H 11236017
         BNE   CPARAF1                 NO                          UL0H 11237017
         CH    R0,CH3                                              UL0H 11238017
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 3SA0I 11239018
         OI    LABPROSW,X'80'          SET LABELPROC SWITCH=YES    UL0H 11240017
         BR    R12                     SCAN FURTHER                UL0H 11241017
CPARAF1  CLC   0(2,R1),CCNO            PARAMETER=NO?               UL0H 11242017
         BNE   CPARAF2                 NO                          UL0H 11243017
 CH      R0,CH2                                                    UL0H 11244017
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 2SA0I 11245018
         OI    LABPROSW,X'40'          SET LABEL PROC SWITCH=NO    UL0H 11246017
         BR    R12                     SCAN FURTHER                UL0H 11247017
CPARAF2  CLC   0(4,R1),CCONLY          PARAMETER=ONLY?             UL0H 11248017
         BNE   CPARAF3                 NO                          UL0H 11249017
         CH    R0,CH4                                              UL0H 11250017
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 4SA0I 11251018
         OI    LABPROSW,X'20'          SET LABEL PROS SWITCH=ONLY  UL0H 11252017
         BR    R12                     SCAN FURTHER                UL0H 11253017
CPARAF3   CLC  0(3,R1),CCALL            PARAMETER=ALL?             UL0H 11254017
         BNE   CPARAF4                 NO                          UL0H 11255017
         CH    R0,CH3                                              UL0H 11256017
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 3SA0I 11257018
         OI    LABPROSW,X'10'          SET LABEL PROC SWITCH=ALL   UL0H 11258017
         BR    R12                     SCAN FURTHER                UL0H 11259017
CPARAF4   CLC  0(5,R1),CCINPUT          PARAMETER=INPUT?           UL0H 11260017
         BC    7,CODE38                 WRITE ERROR MSG 38 IF      SA0I 11260818
*                                       NOT INPUT                  SA0I 11261618
         CH    R0,CH5                   IS LENGTH EQ 5             SA0I 11262418
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT 5SA0I 11263218
         OI    LABPROSW,X'08'          SET LABEL PROC SWITCH=INPUT UL0H 11264017
         BR    R12                     SCAN FURTHER                UL0H 11265017
CPARAF5  NI    LABINPUT,X'00'                                      UL0H 11266017
         B     CODE40                   WRITE ERROR MSG 40         SA0I 11267018
CPARAG   TM    LABINPUT,X'08'          RECORD LABELS=N STAT.       UL0H 11268017
         BZ    CPARAE                  NO                          UL0H 11269017
         NI    CWORK+81,X'FE'           TURN PARAMETER REQ SW OFF  SA0I 11269318
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 11269618
         BC    14,LAB                   NO,BRANCH                  SA0I 11269918
         TM    LABPROSW,X'08'           LABELS DATA=INPUT SPECIFIEDSA0I 11270218
         BC    8,CODE42                 WRITE ERROR MSG 42 IF NOT  SA0I 11270518
         XI    LABINPUT,X'88'           SET INPUTLABELSW TO X'80'  SA0I 11270818
         BR    R12                      SCAN FURTHER               SA0I 11271118
LAB      TM    LABPROSW,X'08'           LABELS DATA=INPUT SPECIFIEDSA0I 11271418
         BC    8,CODE42                 WRITE ERROR MSG 42 IF NOT  SA0I 11271718
         TM    LABCTSW,X'08'            FIRST LABEL CARD           UL0H 11272017
         BZ    CPARAG3                  YES INITIALIZE AND PROCESS UL0H 11273017
         L     R9,LPADTAD              ADDRESS NE LABELNNNL ADDRESSUL0H 11274017
         LA    R9,4(R9)                TABLE                       UL0H 11275017
         ST    R9,LPADTAD              STORE ADDRESS OF NEXT ENTRY UL0H 11276017
         TM    LABCTSW,X'80'            SECOND LABEL CARD          UL0H 11277017
         BO    CODE43                   WRITE ERROR MSG 43 IF      SA0I 11277618
*                                       3RD CARD                   SA0I 11278218
         OI    LABCTSW,X'80'            TURN ON SECOND CARD READ SWUL0H 11279017
CPARAG3  OI    LABCTSW,X'08'            TURN ON FIRST CARD READ SW UL0H 11280017
         CH    R0,=H'1'                ONLY ONE DIGIT              UL0H 11281017
         BC    7,CODE38                 WRITE ERROR MSG 38 IF NOT  SA0I 11282018
         CLI   0(R1),X'F0'              LESS THAN DIGIT 0          SA0I 11283018
         BC    4,CODE38                 WRITE ERROR MSG 38 IF IS   SA0I 11284018
         CLI   0(R1),X'F9'              MORE THAN DIGIT 9          SA0I 11285018
         BC    2,CODE38                 WRITE ERROR MSG 38 IF IS   SA0I 11286018
         BALR  R9,R10                  CONVERT TO BINARY           UL0H 11287017
         LA    R9,8                                                UL0H 11288017
         CR    R0,R9                   CONSTANT GREATER THEN 8?    UL0H 11289017
         BC    2,CODE38                 WRITE ERROR MSG 38 IF GT 8 SA0I 11289818
         LTR   R0,R0                                               SA0I 11290618
         BC    4,CODE38                 WRITE ERROR MSG 38 IF      SA0I 11291418
*                                       NEGATIVE                   SA0I 11292218
         BZ    CPARAG4                                            M1180 11293118
         L     R9,LPADTAD              GET ADDRESS OF LABELADDRESS UL0H 11294017
         STC   R0,0(R9)                TABLE,STORE NUMBER OF LABELSUL0H 11295017
         LA    R1,640                                              UL0H 11296017
         GETMAIN R,LV=(R1)             GET STORAGE FOR LABELS      UL0H 11297017
         AL    R1,0(R9)                                            UL0H 11298017
         ST    R1,0(R9)                                            UL0H 11299017
         XI    LABINPUT,X'88'          SET INPUTLABELSW TO X'80'   UL0H 11300017
         LA    R0,X'F0'                SET THE GENLABEL SWITCH     UL0H 11301017
         L     R1,GLABADR              IN CCS02 TO X'F0'           UL0H 11302017
         ST    R0,0(R1)                                            UL0H 11303017
         MVC   SAVLABIF(4),0(R9)       SAVE LABEL INFORMATION      UL0H 11304017
         BR    R12                     SCAN FURTHER                UL0H 11305017
CPARAG4  NI    LABINPUT,X'00'           RESET LABELS SWITCH       M1180 11305318
         BR    R12                      GO TO SCAN ROUTINE        M1180 11305618
*                                                                  UL0H 11306017
*                                                                 *SA0I 11306518
*                  END OF FILE ANALYSIS                           *SA0I 11307018
*                                                                 *SA0I 11307518
CEOF     TM    CWORK+81,X'4A'    CONTINUATION BIT ON  ?          A36129 11308021
         BO    CODE45A       YES, PRINT ERROR MESSAGE            A36129 11308421
         TM    CWORK+127,X'04'   CONTINUATION BIT ON ?           A36129 11316321
         BO    CODE45A       YES, PRINT ERROR MESSAGE            A36129 11318321
         TM    CERRSW,X'F0'  WAS AN ERROR MSG ALR. GIVEN         A36129 11320321
         BO    CEOF7                   YES - BRANCH                SA0I 11324218
         CLI   CEDITSW,X'FF'           EDITING                     ULOH 11332117
         BE    CEOF2                    YES                             11340000
         OI    HCOPYSW,X'F0'            NO, SET COPY SWITCH             11360000
         B     CEOF3                                                    11380000
CEOF2    CLI   CRDTSW2,X'FF'            CHECK FOR IDENT                 11400000
         BNE   CEOF4                    NO                              11420000
         CLI   CPDSSW,X'FF'             LAST CARD = MEMBER              11440000
         BNE   CEOF2A                   NO                              11460000
         OI    0(R5),X'5F'              YES, SET LAST ID IN RDT         11480000
         B     CEOF2B                   AND INDIC. TO PROC. TO EOD      11500000
CEOF2A   OI    0(R5),X'4F'              SET LAST IDENT IN RDT           11520000
CEOF2B   OI    0(R6),X'81'              SET LAST FIELD IN EDCB          11540000
         B     CEOF5                                                    11560000
CEOF3    CLI   CRDTSW2,X'FF'            CHECK FOR IDENT                 11580000
         BNE   CEOF4                    NO                              11600000
         CLI   CPDSSW,X'FF'             LAST CARD = MEMBER              11620000
         BNE   CEOF3A                   NO                              11640000
         OI    0(R5),X'9F'              YES, SET LAST ID IN RDT         11660000
         B     CEOF5                    AND INDICATE PROC. TO EOD       11680000
CEOF3A   OI    0(R5),X'8F'              SET LAST IDENT IN RDT           11700000
         B     CEOF5                                                    11720000
CEOF4    OI    HCOPYSW,X'0F'            SET COPY SWITCH                 11740000
         CLI   CEDITSW,X'FF'            CHECK FOR EDITING               11760000
         BNE   CEOF5                    NO                              11780000
         OI    0(R6),X'80'              YES, SET LAST FIELD IN EDCB     11790000
CEOF5    TM    CWORK+141,X'0F'    A RECORD STMT WITHOUT PARAM?  YA01703 11790202
         BNO   AROUND             NO,SKIP THIS FUNCTION         YA01703 11790402
         NI    CWORK+141,X'F0'    YES,CLEAR SWITCH              YA01703 11790602
         TM    0(R5),X'10'        DOES RDT INDICATE PROC TO EOD YA01703 11790802
         BO    AROUND             YES,SKIP THIS FUNCTION        YA01703 11791002
         NI    0(R5),X'20'        CLEAR END OF TABLE SWITCH     YA01703 11791202
         LA    R5,12(R5)          UPDATE POINTER TO NEXT ENTRY  YA01703 11791402
         OI    0(R5),X'9F'        SET PROCESS TO END OF DATA    YA01703 11791602
AROUND   TM    LABPROSW,X'08'     LABELS DATA=INPUT             YA01703 11792002
         BZ    CEOF6               NO-CONTINUE                     UL0H 11794017
         L     R0,LABPOLAT             HEADER LABELS SPECIFIED     UL0H 11796017
         LTR   R0,R0                                               UL0H 11798017
         BC    7,CEOF6                 YES CONTINUE                UL0H 11800017
         L     R0,LABPOLAT+4           TRAILER LABELS SPECIFIED    UL0H 11802017
         LTR   R0,R0                                               UL0H 11804017
         BC    7,CEOF6                 YES-CONTONUE                UL0H 11806017
         LA    R1,NRLSTER              NO LABELS SPECIFIED         UL0H 11808017
         SLL   R1,8                    WRITE MSG                   UL0H 11810017
         LA    R1,33(R1)                                           UL0H 11812017
         L     R15,CWRMSGA             LOAD ADDRESS OF MSG WRITER  UL0H 11814017
         BALR  R14,R15                                             UL0H 11816017
         TM    CERRSW,X'F0'             IS ERROR MSG GIVEN         SA0I 11823018
         BO    CEOF6                   YES-BRANCH                       11830017
         L     R15,CSAVE13+4           INCREASE RETURN ADDRESS     UL0H 11835017
         LA    R15,4(R15)              FOR ERROR                   UL0H 11840017
         ST    R15,CSAVE13+4                                       UL0H 11845017
CEOF6    LA    R1,HEXITT               LOAD EXIT TABLE ADDRESS     UL0H 11850017
         LM    R13,R14,CSAVE13          RESTORE REGS 13-14              11855000
         RETURN (2,12)                  RESTORE REGS 2-12 AND REURN     11860000
CEOF7    L     R15,CSAVE13+4                                       SA0I 11862018
         L     R15,CSAVE13+4                                       SA0I 11864018
         LA    R15,4(R15)               INCREASE RETURN ADDRESS FORSA0I 11866018
*                                       ERRORS                     SA0I 11868018
         ST    R15,CSAVE13+4                                       SA0I 11870018
         B     CEOF6                                               SA0I 11872018
*                                                                       11880000
*                                                                 *SA0I 11883018
*           THE FOLLOWING CODE ASSIGNS CODES FOR ERROR MESSAGES   *SA0I 11886018
*                                                                 *SA0I 11889018
CODE36   LA    R11,36                   SET ID EQ 36               SA0I 11892018
         B     CERR                     WRITE ERROR MSG            SA0I 11895018
CODE37   LA    R11,37                   SET ID EQ 37               SA0I 11898018
         B     CERR                     WRITE ERROR MSG            SA0I 11901018
CODE38   LA    R11,38                   SET ID EQ 38               SA0I 11904018
         B     CERR                     WRITE ERROR MSG            SA0I 11907018
CODE39   LA    R11,39                   SET ID EQ 39               SA0I 11910018
         B     CERR                     WRITE ERROR MSG            SA0I 11913018
CODE40   LA    R11,40                   SET ID EQ 40               SA0I 11916018
         B     CERR                     WRITE ERROR MSG            SA0I 11919018
CODE41   LA    R11,41                   SET ID EQ 41               SA0I 11922018
         B     CERR                     WRITE ERROR MSG            SA0I 11925018
CODE42A  LA    R12,CEOF7    RET.TO GENRT AFT WRITING A MESSAGE @ZA28787 11926099
CODE42   LA    R11,42                   SET ID EQ 42               SA0I 11928018
         B     CERR                     WRITE ERROR MSG            SA0I 11931018
CODE43   LA    R11,43                   SET ID EQ 43               SA0I 11934018
         B     CERR                     WRITE ERROR MSG            SA0I 11937018
CODE44   LA    R11,44                   SET ID EQ 44               SA0I 11940018
         B     CERR+8                   WRITE ERROR MSG            SA0I 11943018
*                                       NO NOT SET ERROR SW        SA0I 11946018
CODE45A  LA    R12,CEOF7     RET.TO GENRT AFT WRITING A MESSAGE  A36129 11948021
CODE45   LA    R11,45                   SET ID EQ 45               SA0I 11949018
         B     CERR                     WRITE ERROR MSG            SA0I 11952018
CODE46   LA    R11,46                   SET ID EQ 46               SA0I 11955018
         B     CERR                     WRITE ERROR MSG            SA0I 11958018
CODE47   LA    R11,47                   SET ID EQ 47               SA0I 11961018
         B     CERR                     WRITE ERROR MSG            SA0I 11964018
CODE48   LA    R11,48                   SET ID EQ 48               SA0I 11967018
         B     CERR                     WRITE ERROR MSG            SA0I 11970018
CODE49   LA    R11,49                   SET ID EQ 49               SA0I 11973018
         B     CERR                     WRITE ERROR MSG            SA0I 11976018
CODE50   LA    R11,50                   SET ID EQ 50               SA0I 11979018
         B     CERR                     WRITE ERROR MSG            SA0I 11982018
*                                                                  SA0I 11985018
*                                                                  SA0I 11988018
*                                                                 *SA0I 11991018
*  THE FOLLOWING CODE TAKES THE ERROR MESSAGE CODE AND  CONVERTS  *SA0I 11994018
*  IT TO A CODE TO BE PASSED TO THE MESSAGE WRITER. IT ALSO MOVES *SA0I 11997018
*  COLUMN NUMBERS INTO THE ERROR MESSAGES.                        *SA0I 12000018
*                                                                 *SA0I 12003018
CERR     OI    CERRSW,X'F0'             SET ERROR SWITCH           SA0I 12006018
         OI    CWORK,X'40'              TURN ON BYPASS SWITCH      SA0I 12009018
         NI    CWORK+81,X'FC'           TURN SWITCHES OFF          SA0I 12012018
         LR    R0,R11                   LOAD ID INTO REG.          SA0I 12015018
         BCTR  R0,0                     SUBTRACT 1 TO GET CODE     SA0I 12018018
         SLL   R0,8                     POSITION ID IN REG.        SA0I 12021018
         AR    R0,R11                   ADD ID TO CODE             SA0I 12024018
         LA    R15,42                                              SA0I 12027018
         CR    R11,R15                  IS ID GT OR EQ 42          SA0I 12030018
         BNL   NOCOL                    BRANCH ON GT OR EQ 42      SA0I 12033018
         LA    R15,CWORK                GET FIRST COL. OF CARD-1   SA0I 12036018
         SR    R1,R15                   SUBTRACT THIS FROM LOC.PTR SA0I 12039018
         L     R15,AHSMGMDL             LOAD ADDR OF ADDR OF       SA0I 12042018
*                                       FIRST MSG                  SA0I 12045018
         BCTR  R11,0                    SUBTRACT 1 FROM ID         SA0I 12048018
         SLL   R11,2                    MULTIPLY BY 4              SA0I 12051018
         AR    R15,R11                  GET MSG ADDR               SA0I 12054018
         L     R15,0(R15)                                          SA0I 12057018
         CVD   R1,COLDEC                CONVERT COL. NO. TO        SA0I 12060018
*                                       DECIMAL                    SA0I 12063018
         OI    COLDEC+7,X'0F'           CHANGE SIGN TO F           SA0I 12066018
         UNPK  COL(2),COLDEC(8)         UNPACK COL. NO.            SA0I 12069018
         MVC   30(2,R15),COL            PUT COL. NO. INTO LAST 2   SA0I 12072018
*                                       BYTES OF MSG               SA0I 12075018
NOCOL    LR    R1,R0                                               SA0I 12078018
         L     R15,CWRMSGA              WRITE MESSAGE              SA0I 12081018
         BALR  R14,R15                                             SA0I 12084018
         BR    R12                      SCAN MORE                  SA0I 12087018
*                                                                       12120000
CIPERR   L     R9,SYNADMSA             LOAD ADDRESS OF SYNAD INFOA27717 12130019
         MVC   10(79,R9),0(R1)         MOVE INFO TO MSG          A27717 12140019
         FREEMAIN   R,LV=79,A=(1)      FREE GOTTEN CORE          A27717 12150019
         LA    R1,50                   LOAD MSG OFFSET           A27717 12160019
         SLL   R1,8                    AND ADD                   A27717 12170019
         LA    R1,51(R1)               MSG ID                    A27717 12180019
         L     R15,CWRMSGA              LOAD MSG WRITER SUBROUTINE  ADR 12220000
         BALR  R14,R15                  WRITE MESSAGE                   12240000
FROMDDER LA    R15,12                   LOAD CONCODE                    12260000
         LM    R13,R14,CSAVE13          RESTORE REGS 13-14              12280000
         LA    R14,4(,R14)              SET VARIABLE EXIT FOR ERROR     12300000
         RETURN (2,12)                  RESTORE REGS 2-12 AND RETURN    12320000
BLKRTN   LA    R1,BLKERROR              INVALID BLKSIZE  CODE 18   BS0H 12324017
         SLL   R1,8                                                BS0H 12328017
         LA    R4,19                                               BS0H 12332017
         B     ERRTN                    SET UP MESSAGE             BS0H 12336017
DDRTN    LA    R1,DDERROR1              UNABLE TO OPEN SYSIN            12346000
         SLL   R1,8                      MSG CODE 15                    12356000
         LA    R4,16    MSG NUMBER                                      12366000
ERRTN    AR    R1,R4                    R1=MSG CODE AND MSG ID     BS0H 12400017
         L     R15,CWRMSGA   MSG WRITER ADDRESS                         12420000
         BALR  R14,R15   WRITE MSG                                      12440000
         B     FROMDDER                                                 12460000
*                                                                  UL0H 12463017
LABGENER DS    0H                                                  UL0H 12466017
         SR    R8,R8                    ZERO OUT REG 8             UL0H 12469017
         IC    R8,SAVLABIF             LOAD NUMBER OF LABELS       UL0H 12472017
         L     R9,SAVLABIF             FOLLOWING+ADDRESS           UL0H 12475017
         LA    R9,0(R9)                                            UL0H 12478017
         TM    CERRSW,X'F0'             HAS ERROR OCCURRED         SA0I 12479018
         BC    1,LABNUM                 YES,DECREASE LABEL NUMBER  SA0I 12480018
         MVC   0(80,R9),CWORK+1        MOVE LABEL TO LABELPOOL     UL0H 12481017
         LA    R9,80(R9)               INCREASE INDEX IN           UL0H 12484017
         ST    R9,SAVLABIF             LABELPOOL(SAVED ONE)        UL0H 12487017
LABNUM   BCTR  R8,0                     DECREASE NUMBER OF LABELS  SA0I 12490018
         STC   R8,SAVLABIF                                         UL0H 12493017
         LTR   R8,R8                   NUMBER OF LABELS =0?        UL0H 12496017
         BCR   7,R12                   NO : NEXT ONE               UL0H 12499017
         NI    LABINPUT,X'00'          YES  RESET SWITCHES         UL0H 12502017
         SR    R0,R0                   LABINPUT & GENLABEL         UL0H 12505017
         L     R1,GLABADR                                          UL0H 12508017
         ST    R0,0(R1)                                            UL0H 12511017
         MVI   CWORK+72,X'40'           CLEAR CONTINUATION COLUMN M1177 12512018
         BR    R12                     SCAN FURTHER                UL0H 12514017
CCNVRT   LTR   R0,R0            LENGTH OF PARAM ZERO ?           A45131 12516021
         BE    CODE38           YES, PRINT MSG IEB338I           A45131 12518021
         BCTR  R0,0                                                     12523021
         STC   R0,CCNVRT1+1                                             12530000
         OI    CCNVRT1+1,X'70'                                          12540000
CCNVRT1  PACK  CCNVRTWK(8),0(1,R1)                                      12560000
         TM    CCNVRTWK+7,X'0F'         VALID SIGN             @ZA01696 12570003
         BO    VALSIGN                  YES-BRANCH             @ZA01696 12572003
         MVI   CWORK+129,X'00'          RESET PARENTHESIS COUNT@ZA01696 12574003
         B     CODE38                                          @ZA01696 12576003
VALSIGN  CVB   R0,CCNVRTWK                                     @ZA01696 12580003
         BR    R9                                                       12600000
*                                                                       12620000
*CONSTANTS                                                              12640000
*                                                                       12660000
CCNVRTWK DS    1D                       WORK AREA TO UNPACK  A NUMBER   12680000
CSAVE13  DS    2F                       REG 13-14 SAVE AREA             12700000
CSAVE1   DS    2F                       REG 0-1 SAVE AREA               12720000
SYNADMSA DC    V(SYNADMSG)             ADDRESS OF SYNADAF MSG    A27717 12730019
CWRMSGA  DC    V(HWRMSG)                LOC. CONT MSG WRITER SUBR ADDR  12740000
CCDWRA   DC    V(HCDWR)                 LOC. CONT CTL CARD WRTR SUB ADR 12760000
GLABADR  DC    V(GENLABEL)                                         UL0H 12765017
LPADTAD  DC    A(LABPOLAT)                                         UL0H 12770017
COL      DS    CL2                                                 SA0I 12771018
COLDEC   DS    D                                                   SA0I 12772018
AHSMGMDL DC    V(HMSGMDL)                                          SA0I 12773018
SAVLABIF DS    1F                                                  UL0H 12775017
CSIDDA   DS    2F                       SYSIN DD NAME SAVE AREA         12780000
CREGSAVE DS    18F                      REG SAVE AREA                   12800000
CSAVEMDT DS    1F                       MDT SAVE AREA                   12820000
CSOBUF   DS    1F                                                       12840000
CSYSOUTA DS    1F                                                       12860000
CPX      DC    H'1'                                                     12960000
CCOMMSW  DC    X'00'                    SWITCHES                        12980000
CERRSW   DC    X'00'                                               SA0I 12986018
CEXITSSW DC    X'00'                                               SA0I 12992018
IDLENG   DC    X'00'                                               SA0I 12996018
EXITNAME DC    X'00'                                                    12998018
CMAXEXSW DC    X'00'                                                    13000000
COTHSW   DC    X'00'                                                    13020000
CEDITSW  DC    X'00'                                                    13040000
CRDTSW   DC    X'00'                                                    13060000
LABCTSW  DC    X'00'                    LABEL CARD COUNT SWITCH    UL0H 13062017
FIRSTLAB DC    X'00'                                               UL0H 13064017
LABINPUT DC    X'00'                                               UL0H 13066017
TW15M1   DC    H'32767'                                            UL0H 13072017
CCGENERA DC    C'GENERATE'              CONSTANTS                       13080000
CCEXITS  DC    C'EXITS'                                                 13100000
CCMEMBER DC    C'MEMBER'                                                13120000
CCRECORD DC    C'RECORD'                                                13140000
CCMAXNAM DC    C'MAXNAME='                                       A28288 13150019
CCMAXFLD DC    C'MAXFLDS='                                       A28288 13160019
CCMAXGPS DC    C'MAXGPS='                                        A28288 13170019
CCMAXLIT DC    C'MAXLITS='                                       A28288 13180019
CCEXIT1  DC    C'INHDR='                                         A28288 13190019
CCEXIT2  DC    C'OUTHDR='                                        A28288 13200019
CCEXIT3  DC    C'INTLR='                                         A28288 13210019
CCEXIT4  DC    C'OUTTLR='                                        A28288 13220019
CCDATA   DC    C'DATA='                                          A28288 13230019
CCKEY    DC    C'KEY='                                           A28288 13240019
CCIOERRO DC    C'IOERROR='                                       A28288 13250019
CCNAME   DC    C'NAME='                                          A28288 13260019
CCIDENT  DC    C'IDENT='                                         A28288 13270019
CCFIELD  DC    C'FIELD='                                         A28288 13280019
CCLABELS DC    C'LABELS='                                        A28288 13290019
CCTOTAL  DC    C'TOTAL='                                         A28288 13300019
CCYES    DC    C'YES'                                              UL0H 13426017
CCNO     DC    C'NO'                                               UL0H 13428017
CCONLY   DC    C'ONLY'                                             UL0H 13430017
CCALL    DC    C'ALL'                                              UL0H 13432017
CCINPUT  DC    C'INPUT'                                            UL0H 13434017
CCHE     DC    C'HE'                                                    13440000
CCPZ     DC    C'PZ'                                                    13460000
CCZP     DC    C'ZP'                                                    13480000
CSTEDCB  DC    X'0000'                                                  13500000
         DC    X'0000'                                                  13520000
         DC    X'0050'                                                  13540000
         DC    X'0000'                                                  13560000
CH1      DC    H'1'                                                     13580000
CH2      DC    H'2'                                                     13600000
CH3      DC    H'3'                                                     13620000
CH4      DC    H'4'                                                     13640000
CH5      DC    H'5'                                                     13660000
CH6      DC    H'6'                                                     13680000
CH7      DC    H'7'                                                     13700000
CH8      DC    H'8'                                                     13720000
CH10     DC    H'10'                                                    13740000
CH12     DC    H'12'                                                    13760000
         DC    F'64'                                                    13780000
HEXITT   DS    16F                                                 UL0H 13800017
HMDTAD   DS    1F                       SWITCHES                        13820000
HEDCBAD  DC    F'0'                                                     13840000
HRDTAD   DS    1F                                                       13860000
HLITTAD  DS    1F                                                       13880000
LABPOLAT DC    2F'0'                   LABELPOOL ADDRESSES         UL0H 13885017
TOTLAREA DC    F'0'                    TOTALING AREA ADDRESS       UL0H 13890017
LABPROSW DC    X'00'                   LABEL PROCESS SWITCH        UL0H 13895017
HCOPYSW  DC    X'00'                                                    13900000
HPOID    DC    X'00'                                                    13920000
CIDSW    DC  X'00'                                                      13940000
CMAXN    DC    H'0'               MAXNAME CORE LENGTH            A45131 13944021
CMAXF    DC    H'0'               MAXFLDS CORE LENGTH            A45131 13948021
CMAXG    DC    H'0'               MAXGPS CORE LENGTH             A45131 13952021
CMAXL    DC    H'0'               MAXLITS CORE LENGTH            A45131 13956021
CRDTSW2  DC    X'00'                                                    13960000
CRCDSW   DC    X'00'                                                    13980000
CPDSSW   DC    X'00'                                                    14000000
FOURSVK   DC   F'0'                                                     14020000
MXNAMK    DC   F'0'                                                     14040000
CWORK    DC    36F'0'                   WORK AREA               OZ00131 14060002
CWRSW    DS    1C                                                       14080000
CMSGECC  EQU   2                                                        14100000
CMSGUSE  EQU   3                                                        14120000
NRLSTER  EQU   33                                                  UL0H 14130017
DDERROR1 EQU   15                                                       14140000
BLKERROR EQU   19                                                  BS0H 14146017
         ENTRY BLKRTN                                              BS0H 14152017
         ENTRY DDRTN                                                    14160000
         END                                                            14180000
