 TITLE   'CARD SCAN ROUTINE-  IEHDSCAN'                                 00300016
         COPY  LCGASMSW                                          SM4351 00581021
IEHDSCAN CSECT                                                          00584821
*********************************************************************** 00592440
*                  FIXES THIS MODULE                                  * 00594440
*                     LATEST FIRST                                    * 00596440
*********************************************************************** 00598440
*                                                                       00600040
*C 142000,772858                    @XA16070,@YA18061,@ZA24160,@SA79721 00600199
*                                                                       00600399
*C 142000,361000                             @XA13633=@YA13305=@ZA07400 00600440
*A 773103                                    @XA13633=@YA13305=@ZA07400 00600840
*                                                                       00601203
*C774244,774340,776457                                         @ZM42083 00608803
*D349600,350200,775062-775295,776485-776499,776527             @ZM42083 00616403
*D379020-381000                                                @ZM42083 00624003
*                                                                       00630940
*C 143000,772706,772738             @XA10392=@SA74492=@YA10561=@ZA04428 00631603
*A 141500-142000,772703-772704,     @XA10392=@SA74492=@YA10561=@ZA04428 00639203
*A 772735-772736                    @XA10392=@SA74492=@YA10561=@ZA04428 00646803
*                                                                       00654403
*A 313500-314500                    @SA69592=@YA04854=@XA05828=@ZA01200 00662003
*                                                                       00669640
*1251689000                                                      M6170  00677203
*1251291000-295000                                               M4974  00684803
*1251421000                                                      M5593  00692420
*                                                                     * 00700020
* STATUS CHANGE LEVEL 000                                             * 00900020
*********************************************************************** 00950040
         EJECT                                                          01000040
* FUNCTION/OPERATION                                                  * 01500020
*      THIS ROUTINE PROCESS THE SYSIN DATA SET FOR IEHDASDR UTILITY   * 01700020
*      PROGRAM.  USING THE QSAM GET MACRO(MOVE MODE), THE INPUT       * 01900020
*      STREAM IS SCANNED ONE EIGHTY BYTE CARD IMAGE AT A TIME. THE    * 02100020
*      INPUT STREAM IS ANALYZED FOR COMMANDS, KEYWORDS, PARAMETERS,   * 02300020
*      AND CONTINUATION CARDS. CONTROL IS RETURNED TO THE MONITOR     * 02500020
*      ROUTINE FOR EACH OF THESE CONDITIONS.                          * 02700020
*                                                                     * 02900020
* ENTRY POINTS                                                        * 03100020
*      IEHDSCAN IS THE ONLY ENTRY POINT. IT RECEIVES CONTROL FROM     * 03300020
*      THE IEHDASDS ROUTINE.                                          * 03500020
*                                                                     * 03700020
* INPUT                                                               * 03900020
*      A POINTER TO THE WORK AREA IN REGISTER 12.                     * 04100020
*                                                                     * 04300020
* EXITS                                                               * 04500020
*      NORMAL - CONTROL IS RETURNED TO THE IEHDASDS ROUTINE AFTER     * 04700020
*        DETECTION OF A COMMAND, A KEYWORD, A PARAMETER, A COMPLETE   * 04900020
*        CARD AND AN END OF FILE CONDITION ON THE SYSIN DATA SET.     * 05100020
*        NO RETURN CODE IS PASSED.                                    * 05300020
*      ERROR - CONTROL IS RETURNED TO THE IEHDASDS ROUTINE FOR        * 05500020
*        ERROR CONDITIONS(INVALID SYNTAX).  THE MONITOR INTERPRETS    * 05700020
*        THESE CONDITIONS BY SWIRCH SETTINGS AND DETERMINES THE       * 05900020
*        NECESSARY MESSAGES.  NO RETURN CODE IS PASSED.               * 06100020
*                                                                     * 06300020
* EXTERNAL REFERENCES                                                 * 06500020
*      NONE                                                           * 06700020
*                                                                     * 06900020
* TABLES/WORK AREAS                                                   * 07100020
*      UPON ENTRY,REGISTER 12 POINTS TO THE WORK AREA, DESCRIBED BY   * 07300020
*      THE DSECT IEHDWORK.                                            * 07500020
*                                                                     * 07700020
* ATTRIBUTES                                                          * 07900020
*      SERIALLY REUSABLE,RELOCATABLE                                  * 08100020
*                                                                     * 08300020
         EJECT                                                          08500020
*                                                                     * 08700020
*                                                                     * 08900020
* REGISTER EQUATE DEFINITIONS                                         * 09100020
*                                                                     * 09300020
*                                                                     * 09500020
         SPACE 1                                                        09700020
GR0      EQU   0                                                        09900020
GR1      EQU   1                                                        10100020
GR2      EQU   2                                                        10300020
GR3      EQU   3                                                        10500020
GR4      EQU   4                                                        10700020
GR5      EQU   5                                                        10900020
GR6      EQU   6                                                        11100020
GR7      EQU   7                                                        11300020
GR8      EQU   8                                                        11500020
GR9      EQU   9                                                        11700020
GR10     EQU   10                                                       11900020
GR11     EQU   11                                                       12100020
GR12     EQU   12                                                       12300020
GR13     EQU   13                                                       12500020
GR14     EQU   14                                                       12700020
GR15     EQU   15                                                       12900020
SS1VAL   EQU   X'01'                    'SS1' PARM SUPPLIED    @Y30LSFY 12950003
         SPACE 2                                                        13100020
         USING WORK,GR12                                                13300020
         USING IEHCDSCN,GR11           ESTABLISH ADDRESSABILITY.        13500020
         USING FUNCBLK,GR10             ADDRESS TO IEHDBLKS             13550021
IEHCDSCN STM   GR14,GR0,K12(GR13)      SAVE REGISTERS.                  13700020
         STM   GR3,GR12,K32(GR13)      SAVE REGISTERS.                  13900020
         LR    GR11,GR15               LOAD BASE REGISTER               14100020
         B     APARNO                  BRANCH AROUND APAR NO   @ZA04428 14150003
         DC    C'IEHDSCAN OZ24160'     LAST APAR FIX THIS MOD  @ZA24160 14200099
APARNO   LA    GR7,SCANSAVE            ADDRESS OF SAVE AREA    @ZA04428 14300003
         ST    GR7,K8(GR13)            ADDRESS OF NEW AREA TO OLD       14500020
         ST    GR13,K4(GR7)            ADDRESS OF OLD AREA TO NEW       14700020
         LR    GR13,GR7                SAVE AREA ADDRESS                14900020
         L     GR3,READ1               DCB ADDRESS                      15100020
         USING IHADCB,GR3                                               15300020
         LA    GR4,FILEND              RETURN ADDRESS ON EOF            15500020
         ST    GR4,DCBEODAD            SAVE IN DCB                      15700020
         B     SKIPHOLD                BYPASS POINTER SAVE.     XM3762  15750002
         DROP  GR3                                                      15900020
         EJECT                                                          16100020
*  DETERMINE FIELD TO BE SCANNED BY SWITCH READINGS.                  * 16300020
         SPACE 1                                                        16500020
* FORMERLY IN THE DASDS ROUTINE, AND HAS BEEN MODIFIED IN THE REPACK    16550021
* TO RETURN TO THIS POINT INSTEAD OF EXITING OUT OF DSCAN AND RETURNING 16600021
         SPACE 1                                                        16650021
SCAN     EQU   *                        REPACK RETURN POINT             16660021
         ST    GR4,HOLD4                SAVE POINTER                    16670021
         ST    GR9,HOLD9                SAVE RETURN POINT               16680021
SKIPHOLD EQU   *                                                        16690002
         L     GR3,STORGR3             ADDRESS OF COL TO SCAN           16700020
         TM    SWITCHRD,ON             FIRST TIME IN SCAN               16900020
         BZ    NEWCD                   YES-READ A CARD                  17100020
         NI    SWITCHRD,GOOD           TURN OFF ERROR SWITCH            17300020
         TM    SWITCHRD,BYPASS         BYPASS THIS CARD                 17500020
         BO    PASCD                   YES-CHECK FOR CONTINUATION       17700020
         TM    SWITCHRD,COMD           COMMAND PROCESSED                17900020
         BO    PREKEY                  YES-LOOKING FOR KEYWORD          18100020
         TM    SWITCHRD,KEY            KEYWORD PROCESSED                18300020
         BO    PARAM                   YES-LOOKING FOR PARAMETER        18500020
         TM    DELIMIN2,X80            WAS PREVIOUS RUN A TODD          18700020
         BZ    CONTA                   NO - CONTINUE                    18900020
         TM    PARENCTR,BPAREN         ONLY ONE PAREN?                  19100020
         BM    TOPARM1                 YES- CONTINUE PROCESSING PARAM   19300020
         MVI   DELIMIN2,K0             RESET                            19500020
         MVI   PARENCTR,ZERO           RESET                            19700020
CONTA    TM    SWITCHRD,PARM           PARAMETER PROCESSED              19900020
         BO    KEYWD                   YES-CHECK FOR MORE KEYWORDS      20100020
NEWCD    EQU   *                                                        20300020
         XC    SWITCHRD(ALL),SWITCHRD  CLEAR BUFFER AND SWITCHES        20500020
         SR    GR2,GR2                 CLEAR REGISTER                   20700020
         BAL   GR9,CDRD                READ A CARD                      20900020
         CLI   SWITCHRD+COL72,BLANK    IS COLUMN 72 BLANK               21100020
         BE    STSCAN                  YES-START SCAN                   21300020
         OI    COL72LG,SPEC1           NO-SET CONTINUATION SWITCH       21500020
         SPACE 1                                                        21700020
*  CHECK NAME FIELD.                                                  * 21900020
         SPACE 1                                                        22100020
STSCAN   EQU   *                                                        22300020
         LA    GR2,K1(GR2)             INCREMENT CNT REGISTER           22500020
         CLI   K0(GR3),BLANK           IS COLUMN BLANK                  22700020
         BE    LENGTH                  YES-CHECK LENGTH                 22900020
         LA    GR3,K1(GR3)             NO-GO TO NEXT COLUMN             23100020
         B     STSCAN                  SEARCH THIS COLUMN               23300020
LENGTH   EQU   *                                                        23500020
         BCTR  GR2,GR0                 DECREMENT BYTE COUNT             23700020
         LTR   GR2,GR2                 BYTE COUNT ZERO                  23900020
         BZ    COMMD                   YES-CHECK COMMAND FIELD          24100020
         LA    GR8,K8                  MAXIMUM LENGTH FOR COMMAND       24300020
         CR    GR2,GR8                 IS NAME TOO LONG                 24500020
         BH    ERRO                    YES-SET ERROR SWITCH             24700020
         SR    GR2,GR2                 CLEAR BYTE COUNT                 24900020
         EJECT                                                          25100020
*  CHECK COMMAND AND KEYWORD FIELDS.                                  * 25300020
         SPACE 1                                                        25500020
COMMD    EQU   *                                                        25700020
         MVI   SWITCHRD,COMD           SET COMMAND SWITCH.              25900020
         BAL   GR9,PASBLANK            CHECK FOR COMMAND.               26100020
         ST    GR3,STORGR3             SAVE STARTING ADDR OF FIELD.     26300020
FIELD    EQU   *                                                        26500020
         LA    GR2,K1(GR2)             INCREASE BYTE COUNT              26700020
         CLI   K0(GR3),BLANK           IS THIS COLUMN BLANK             26900020
         BE    RETURN                  YES-RETURN TO MONITOR            27100020
         LA    GR3,K1(GR3)             NO-GO TO NEXT COLUMN             27300020
         B     FIELD                   CHECK THIS COLUMN                27500020
PASBLANK EQU   *                                                        27700020
         LA    GR3,K1(GR3)             GO TO NEXT COLUMN.               27900020
         LA    GR4,SWITCHRD+COL72      OBTAIN ADDR OF LAST COLUMN.      28100020
         CLI   K0(GR3),BLANK           IS THIS COLUMN BLANK.            28300020
         BNE   K0(K0,GR9)              NO-RETURN TO CALLER.             28500020
         CR    GR3,GR4                 IS THIS THE LAST COLUMN.         28700020
         BNE   PASBLANK                NO-CHECK NEXT COLUMN.            28900020
         B     ERRO                    BRANCH TO ERROR ROUTINE   M4974  29300020
PREKEY   EQU   *                                                        29700020
         BCTR  GR3,GR0                 BACKSPACE ONE COLUMN.            29900020
         BAL   GR9,PASBLANK            SKIP ALL BLANKS.                 30100020
         ST    GR3,STORGR3             SAVE STARTING ADDR OF FIELD.     30300020
KEYWD    EQU   *                                                        30500020
         MVI   COMCD,ZERO              CLEAR CONTINUATION SWITCH.       30700020
         MVI   SWITCHRD,KEY            SET KEYWORD SWITCH.              30900020
         CLI   K0(GR3),BLANK           IS FIRST COLUMN BLANK.           31100020
         BE    CONTIN                  YES-CHECK FOR A CONTINUATION.    31300020
         LA    GR4,SWITCHRD+COL72      ADR OF LAST COL         @ZA01200 31350002
         CR    GR3,GR4                 COL 72?                 @ZA01200 31400002
         BE    CONTIN                  YES. CONTINUATION?      @ZA01200 31450002
         LA    GR4,K9                  NUMBER OF BYTES SCANNING.        31500020
         MVC   DEC(K10),TAB            RESET NUMBER BYTES.              31700020
         TRT   K0(K9,GR3),TAB          CHECK KEYWORD FIELD.             31900020
         LTR   GR2,GR2                 ALL BYTES GOOD.                  32100020
         BZ    ERR1                    YES-INVALID KEYWORD.             32300020
         CLC   K0(SSILN,GR3),SSICODE    SSI PARAM ?            @Y30LSFY 32350003
         BE    FINISH                   YES, CONTINUE          @Y30LSFY 32400003
         CLI   K0(GR1),EQUAL           IS CHARACTER AN EQUAL.           32500020
         BNE   ERR2                    NO-INVALID KEYWORD.              32700020
FINISH   EQU   *                                                        32900020
         LR    GR4,GR1                 SAVE COLUMN ADDRESS              33100020
         SR    GR1,GR3                 LENGTH OBTAINED.                 33300020
         LR    GR2,GR1                 PUT IN COUNT REGISTER            33500020
         LR    GR3,GR4                 ADDRESS OF LAST COL SCANNED      33700020
         B     RETURN                  RETURN TO MONITOR                33900020
         EJECT                                                          34100020
*  CHECK PARAMETER FIELD FOR PROPER KEYWORD.                          * 34300020
         SPACE 1                                                        34500020
PARAM    EQU   *                                                        34700020
         MVI   SWITCHRD,PARM           SET SW FOR PARAMETER             34900020
         TM    DELIMIN,TODDS           IS PARM FOR TODD                 35100021
         BO    TOPARM                  YES-CHECK FOR TODD PARM          35300020
         XC    DEC(K10),DEC            TURN ON NUMBER BYTES             35500020
         TM    DELIMIN,OWNERIS         IS PARM FOR OWNERID              35700021
         BO    OWPARM                  YES-CHECK FOR OWNERID PARM       35900020
         TM    DELIMIN,NEWVOLID        IS PARM FOR NEWVOLID.   @ZA07400 36100040
         BO    NUVOL                   YES - CHECK FOR NEWVOLID PARM.   36300020
         TRT   K0(K11,GR3),TAB         CHECK PARAMETER BYTES            36500020
         LTR   GR2,GR2                 ALL BYTES GOOD                   36700020
         LA    GR4,K11                 SAVE BYTE COUNT                  36900020
         BZ    ERR1                    YES-INVALID PARAMETER            37100020
         CLI   K0(GR1),COMMA           IS LAST BYTE CHECKED A COMMA     37300020
         BNE   ERR2                    NO-INVALID PARAMETER             37500020
ENDCHK   EQU   *                                                        37700020
         B     FINISH                  RETURN TO MONITOR                37900020
         EJECT                                                          37901003
TOPARM   EQU   *                                                        38300020
         MVI   PARENCTR,ZERO           CLEAR PARENTHESIS SW             38500020
         CLI   K0(GR3),LPAREN         IS FIRST BYTE LEFT PARENTHESIS    38700020
         BNE   TOPARM1                 NO-SCAN PARAMETER                38900020
         OI    PARENCTR,WAITING        YES-SET SW FOR LEFT PAREN        39100020
         LA    GR3,K1(GR3)             GO TO NEXT COLUMN                39300020
         ST    GR3,STORGR3             UPDATE POINTER                   39500020
TOPARM1  EQU   *                                                        39700020
         XC    DEC(K10),DEC            TURN ON NUMBER BYTES             39900020
         SR    GR2,GR2                 CLEAR REG                        40100020
         MVI   DELIMIN2,X80            SET TODD AS OP                   40300020
         MVI   TABSL,ZERO              TURN ON SLASH BYTE               40500020
         TRT   K0(K9,GR3),TAB          CHECK PARAMETER                  40700020
         OI    TABSL,ONE               RESET SLASH BYTE                 40900020
         LR    GR4,GR1                 YES-SAVE COLUMN ADDRESS.         41100020
         SR    GR4,GR3                 LENGTH BETWEEN COMMAS            41300020
         LA    GR8,K1                  MINIMUM LENGTH FOR TODD PARM     41500020
         CR    GR4,GR8                 IS LENGTH LESS THAN ONE OR EQUAL 41700020
         BL    ERR1                    YES - BRANCH LT ONE              41900020
         LTR   GR2,GR2                 ARE ALL BYTES TESTED GOOD        42300020
         BZ    ERR1                    YES-INVALID PARAMETER            42500020
         CLI   K0(GR1),COMMA           IS LAST BYTE SCANNED A COMMA     42700020
         BE    FINISH01                YES-CHECK PAREN COUNTER          42900020
         CLI   K0(GR1),RPAREN          IS LAST BYTE RIGHT PAREN.        43100020
         BE    PARNCHK                 SET PAREN SWITCH                 43300020
         CLI   K0(GR1),BLANK           IS IT A BLANK                    43500020
         BNE   ERR2                    NO-INVALID PARAMETER             43700020
         B     FINISH02                RETURN                           43900020
PARNCHK  EQU   *                                                        44100020
         OI    PARENCTR,ONE            YES-SET SW FOR RIGHT PAREN       44300020
PARNCHK1 EQU   *                                                        44500020
         TM    PARENCTR,WAITING        PARENTHISIS EXPECTED?            44700020
         BZ    ERR1                    NO - ERROR                       44900020
         LR    GR2,GR1                 LOAD ADDR OF LAST COL SCANNED    45100020
         SR    GR2,GR3                 GET COUNT                        45300020
         LA    GR8,K1                  LOWER LIMIT                      45500020
         CR    GR2,GR8                 TOO FEW?                         45700020
         BNH   ERR1                    YES - ERROR                      45900020
         CLI   K1(GR1),COMMA           COMMA FOLLOWING )                46100020
         BNE   KOMA                    NO - CHECK BLANK                 46300020
         LA    GR3,K1(GR1)             RESET GR3                        46500020
         B     RETURN                  RETURN                           46700020
         EJECT                                                          46900020
FINISH01 EQU   *                                                        47100020
         TM    PARENCTR,WAITING        PARENTHISIS EXPECTED             47300020
         BO    FINISH                  YES - NORMAL COMPLETION          47500020
         MVI   DELIMIN2,K0             RESET TODD SW                    47700020
         B     FINISH                  CONTINUE                         47900020
FINISH02 EQU   *                                                        48100020
         TM    PARENCTR,WAITING        PARENTHISIS EXPECTED             48300020
         BO    ERR1                    YES - BLANK MEANS ERROR          48500020
         OI    SWITCHRD,BYPASS         BYPASS REMAINDER OF CARD XM3741  48550002
         MVI   DELIMIN2,K0             RESET TODD SW                    48700020
         B     FINISH                  CONTINUE                         48900020
KOMA     EQU   *                                                        49100020
         LR    GR3,GR1                 UPDATE POINTER                   49300020
         CLI   K1(GR1),BLANK           IS IT A BLANK?                   49500020
         BE    RETURN                  YES - GOOD RETURN                49700020
         B     ERR1                    NO - ERROR                       49900020
         EJECT                                                          50100020
OWPARM   EQU   *                                                        50300020
         MVI   TABSL,ZERO              TURN ON SLASH BYTE.              50500020
         MVI   TABPR,ZERO              TURN ON PERIOD BYTE              50700020
OWPARM1  EQU   *                                                        50900020
         NI    TABHY,ZERO              TURN ON HYPHEN BYTE              51100020
         TRT   K0(K11,GR3),TAB         SCAN THE PARAMETER               51300020
         OI    TABSL,ONE               RESET SLASH BYTE.                51500020
         OI    TABHY,ONE               RESET HYPHEN BYTE                51700020
         OI    TABPR,ONE               RESET PERIOD BYTE                51900020
         LTR   GR2,GR2                 ARE ALL BYTES GOOD               52100020
         LA    GR4,K11                 SAVE BYTE COUNT                  52300020
         BZ    ERR1                    YES-INVALID PARM LENGTH          52500020
         CLI   K0(GR1),COMMA           IS BYTE A COMMA                  52700020
         BNE   ERR2                    NO-INVALID PARM                  52900020
         B     ENDCHK                  RETURN TO MONITOR                53100020
NUVOL    EQU   *                                                        53300020
         CLI   K0(GR3),PRIME           IS THE FIRST CHAR A PRIME.       53500020
         BNE   OWPARM1                 NO - GO TO NORMAL PARM TEST.     53700020
         LA    GR3,K1(GR3)             YES - CHECK FOR SPECIAL PARM.    53900020
         OI    PARENCTR,WAITING        SET LEFT PRIME SWITCH.           54100020
         LR    GR1,GR3                 SAVE BEGINNING ADDR OF FIELD.    54300020
         LA    GR2,K7                  MAXIMUM LENGTH OF FIELD.         54500020
NUVOL1   EQU   *                                                        54700020
         CLI   K0(GR1),PRIME           IS THIS CHARACTER A PRIME.       54900020
         BE    PRIMECHK                YES - CHECK LENGTH OF PARAMETER. 55100020
         LA    GR1,K1(GR1)             NO - GO TO NEXT COLUMN.          55300020
         BCT   GR2,NUVOL1              DECREMENT FIELD LENGTH.          55500020
         B     ERR2                    ERROR - PARM FIELD TOO LONG.     55700020
PRIMECHK EQU   *                                                        55900020
         LR    GR4,GR1                 SAVE FIELD ADDRESS.              56100020
         SR    GR1,GR3                 OBTAIN LENGTH OF FIELD.          56300020
         BCTR  GR1,GR0                 DECREMENT BYTE COUNT.            56500020
         LTR   GR1,GR1                 IS BYTE COUNT ZERO.              56700020
         LR    GR1,GR4                 RESTORE FIELD ADDRESS.           56900020
         BZ    ERR2                    YES - INVALID LENGTH.            57100020
         B     FINISH                  NO - RETURN TO MONITOR.          57300020
         EJECT                                                          57500020
*  DETERMINE THE CONTINUATION CARD STATUS.                            * 57700020
         SPACE 1                                                        57900020
CONTIN   EQU   *                                                        58100020
         TM    COL72LG,SPEC1           IS COLUMN 72 BLANK               58300020
         BZ    FINCD                   YES-CARD COMPLETED               58500020
         BCTR  GR3,GR0                 GO BACK ONE COLUMN               58900020
         CLI   K0(GR3),COMMA           NO-IS THERE A COMMA              59100020
         BNE   COMMTCD                 NO-COMMENT CONTINUATION          59300020
         MVI   COMCD,WAITING           SET SW FOR CONTROL CARD          59500020
COMMTCD  EQU   *                                                        59700020
         BAL   GR9,CDRD                GET A CARD                       59900020
         MVI   COL72LG,ZERO            RESET SWITCH              A58684 59950021
         CLC   K0(K15,GR3),CLEAR       ARE THE FIRST 15 COLS BLANK      60100020
         LA    GR4,K15                 SAVE BYTE COUNT                  60300020
         BNE   ERR1                    NO-INVALID CONTINUATION CARD     60500020
         CLI   SWITCHRD+COL72,BLANK    IS COLUMN 72 BLANK               60700020
         BE    CONT1                   YES-CONTINUE CHECK               60900020
         OI    COL72LG,SPEC1           NO-TURN ON CONTINUATION SW       61100020
CONT1    EQU   *                                                        61300020
         LA    GR3,K15(GR3)            GO TO FIRST VALID COLUMN         61500020
         ST    GR3,STORGR3           SAVE ADDRESS OF LAST COL SCANNED.  61700020
         CLI   K0(GR3),BLANK           IS THIS COLUMN BLANK             61900020
         BE    ERRO                    YES-INVALID CONTINUATION CARD    62100020
         TM    COMCD,WAITING           IS THIS A CONTINUED CONTROL CD   62300020
         BO    KEYWD                   YES-CHECK FOR KEYWORD            62500020
         B     PASCD1                   NO - BYPASS IT                  62700020
         SPACE 1                                                        62900020
*  RETURNING CONTROL TO MONITOR WITH PROPER SWITCH SETTINGS.          * 63100020
         SPACE 1                                                        63300020
ERR1     EQU   *                                                        63500020
         AR    GR3,GR4                 ADD BYTES SCANNED.               63700020
         BCTR  GR3,GR0                 POINT TO LAST COL SCANNED.       63900020
         B     ERRO                    SET ERROR SWITCH                 64100020
ERR2     EQU   *                                                        64300020
         LR    GR4,GR1                 SAVE COLUMN ADDRESS.             64500020
         SR    GR1,GR3                 OBTAIN BYTE COUNT.               64700020
         LTR   GR1,GR1                 IS BYTE COUNT ZERO.              64900020
         BZ    ERRO                    YES-VALID ERROR                  65100020
         LR    GR2,GR1                 UPDATE COUNT                     65300020
         LR    GR3,GR4                 ADDRESS OF BYTES SCANNED         65500020
         CLI   K0(GR4),BLANK           IS LAST COL SCANNED BLANK.       65700020
         BE    RETURN40                PROCESS FOR BLANK                65900020
ERRO     EQU   *                                                        66100020
         OI    SWITCHRD,ERROR          SET ERROR SWITCH                 66300020
         B     RETURN                  RETURN TO MONITOR.               66500020
         EJECT                                                          66700020
FINCD    EQU   *                                                        66900020
         LA    GR4,K1                  BYTE COUNT SCANNED        M5593  67000020
         BCTR  GR3,K0                  DECREMENT PTR                    67100020
         CLI   K0(GR3),COMMA           COMMA DELIMETER                  67300020
         BE    ERR1                    YES - ERROR NO CONTINUATION      67500020
SETBY    EQU   *                                                        67700020
         MVI   SWITCHRD,BYPASS         SET FINISHED CARD SWITCH.        67900020
         B     RETURN                  RETURN TO MONITOR.               68100020
FILEND   EQU   *                                                        68300020
         MVI   SWITCHRD,EOF            SET END OF FILE INDICATOR M6170  68400020
         TM    COL72LG,SPEC1           IS ANOTHER CARD NEEDED.          68500020
         BO    ERRO                    YES-NO MORE AVAILABLE.           68700020
RETURN   EQU   *                                                        69100020
         MVI   DELIMIN,ZERO            CLEAR PARAMETER SWITCH.          69300020
         L     GR1,STORGR3             STARTING ADDR OF FIELD.          69500020
         LA    GR3,K1(GR3)             GO TO NEXT COLUMN.               69700020
         ST    GR3,STORGR3             SAVE ADDR OF THIS COLUMN.        69900020
* GO TO THE REPACK AREA...CODE THAT CAME OUT OF DASDS                   69950021
         B     REPAC                    DO FORMER DASDS CODE            70000021
REPACX   EQU   *                        EXIT FROM THE DASDS CODE        70050021
*                                                                       70060021
         L     GR13,SCANSAVE+K4        ADDR OF MONITOR SAVE AREA.       70100020
         LM    GR14,GR0,K12(GR13)      RESTORE THE REGISTERS.           70300020
         LM    GR3,GR12,K32(GR13)      RESTORE THE REGISTERS.           70500020
         BR    GR14                    RETURN TO MONITOR.               70700020
         SPACE 2                                                        70900020
RETURN40 EQU   *                                                        71100020
         BCTR  GR3,K0                  POINT TO BLANK ON EXIT           71300020
         B     RETURN                  RETURN                           71500020
         SPACE 2                                                        71700020
CDRD     EQU   *                                                        71900020
         L     GR1,READ1               ADDRESS OF SYSIN DCB             72100020
         LA    GR0,CARDBUFF            ADDRESS OF INPUT BUFFER          72300020
         GET   (GR1),(GR0)             READ IN A CARD                   72500020
         MVC   MSGWTR+K1(K80),CARDBUFF PUT CARD IN PRINTER BUFFER       72700020
         LINK  EP=IEHDPRNT             PRINT CARD                       72900020
         LA    GR3,CARDBUFF            ADDRESS OF FIRST COLUMN          73100020
         BR    GR9                     RETURN TO CALLER                 73300020
         SPACE 1                                                        73500020
PASCD    EQU   *                                                        73700020
         TM    COL72LG,SPEC1           IS A CONTINUATION CARD NEEDED    73900020
         BZ    NEWCD                    NO - BYPASS THIS CARD           74100020
         BAL   GR9,CDRD                GET A NEW CARD                   74300020
         CLI   SWITCHRD+COL72,BLANK    IS A CONTINUATION CARD NEEDED.   74500020
         BE    NEWCD                   NO - PROCESS A NEW CARD.         74700020
         OI    COL72LG,SPEC1           YES - SET CONTINUATION SW.       74900020
         B     PASCD                   OBTAIN CONTINUATION CARD.        75100020
PASCD1   EQU   *                                                        75300020
         TM    COL72LG,SPEC1            CONTINUATION                    75500020
         BZ    SETBY                    NO - BYPASS SW                  75700020
PASCD1A  EQU   *                                                        75900020
         BAL   GR9,CDRD                 READ CONTINUATION CARD          76100020
         CLI   SWITCHRD+COL72,BLANK     CONTINUATION                    76300020
         BNE   PASCD1A                  YES - GET NEXT CD               76500020
         B     SETBY                    SET BYPASS SW                   76700020
         EJECT                                                          76750021
* THE FOLLOWING INSTRUCTIONS ARE TAKEN FROM THE IEHDASDS MODULE         76760021
* AND REPACKED INTO THIS MODULE, WITH SOME MINOR CHANGES.               76770021
* ALL LABELS WERE TAKEN INTACT, AND IN SOME CASES THE BRANCHES          76780021
* TO A LABEL WAS LEFT WITH THE SAME NAME, AND A EXIT TYPE OF            76790021
* ROUTINE CREATED. THIS WAS TO FACILITATE DEBUGGING, BY                 76792021
* MAINTAINING COMPATABILITY WITH THAT CODE THAT WAS BEING               76794021
* REPACKED.                                                             76796021
REPAC    EQU   *                        START OF REPACK AREA            76798021
         L     GR4,HOLD4                RESTORE POINTER                 76798421
         L     GR9,HOLD9                RESTORE RETURN ADDRESS          76798821
         TM    SWITCHRD,ERROR          WAS THERE AN ERROR.              76800021
         BO    MSGPRT                  YES,GO GIVE A MESSAGE.           76850021
         SPACE 1                                                        76860021
         TM    SWITCHRD,COMD           IS THIS A COMMAND.               76870021
         BO    OPRLUP                  YES-GO TEST VALIDITY AND PROCESS 76880021
         SPACE 1                                                        76890021
         TM    SWITCHRD,KEY            IS THIS A KEYWORD.               76892021
         BO    KEYLUP                  YES-GO TEST VALIDITY AND PROCESS 76894021
         SPACE                                                          76896021
         TM    SWITCHRD,EOF            WAS AN EOF READ.                 76898021
         BO    CHECK                   YES-GO SEE IF FINISHED.          76898421
         SPACE                                                          76898821
         TM    SWITCHRD,PARM           THIS A PARAMETER.                76899221
         BZ    SCAN3                   NO--GO MAKE MORE TESTS.          76899621
         TM    SW1,DD1OK               MULTIPLE PARMS ALLOWED.          76899721
         BCR   K1,GR9                  YES-PROCESS PARAMETER.           76899821
         TM    SW1,PARMXY              NO--ANY PREVIOUS PARMS.          76899921
         BO    INVALP1                 YES-THEN THIS PARAMETER INVALID. 76949921
         OI    SW1,PARMXY              REMEMBER THIS PARAMETER.         76959921
         BR    GR9                     PROCESS THIS PARAMETER.          76969921
         SPACE                                                          76979921
SCAN3    EQU   *                                                        76981921
         TM    SWITCHRD,BYPASS         IS THIS CARD FINISHED.           76989921
         BZ    SCAN                    NO--CONTINUE SCAN//THIS CARD.    76991921
         SPACE                                                          76993921
         B     SCAN1                    GO TO START PROCESSING          76995921
         SPACE                                                          77096121
SCANTBL  STC   LENGT2,SAVLGTH          STORE LENGTH.                    77186221
         CLI   SAVLGTH,8               IS LENGTH EIGHT OR LESS.         77188221
         BH    MSGPRT                  YES-CONTROL STATEMENT ERROR.     77190221
         LA    GR4,12                  TABLE INCREMENTING VALUE.        77192221
         MVI   WURK,C' '               CLEAR SEARCH AREA.               77194221
         MVC   WURK+1(7),WURK          CLEAR REMAINING ARGUMENT AREA.   77194621
         BCTR  LENGT2,0                DECREMENT LENGTH FOR EXECUTE.    77195021
         EX    LENGT2,OPRLUP3           MOVE PARAMETER TO STORGE AREA   77195421
OPRCMP   CLC   WURK(8),0(GR3)          CHK IF SEARCH ARGUMENT IN TABLE. 77195821
         BNE   OPRLUP2                 NO--CONTINUE SCAN OF TABLE.      77195921
         LA    GR3,8(GR3)              POINT TO BRANCH ADDRESS.         77196021
         NI    SW1,X'FF'-COMMAND-SPEC1   RESET INDICATORS.              77196121
         BR    GR3                     ENTER PROPER ROUTINE.            77212821
OPRLUP2  BXLE  GR3,GR4,OPRCMP          LOOP TO CONTINUE SEARCH.         77222821
         TM    SW1,COMMAND             ERROR WHILE LOOKING FOR COMMAND. 77224821
         BZ    INVALKEY                YES--INVALID KEYWORD.            77226821
         NI    SW1,X'FF'-COMMAND       RESET COMMAND INDICATOR.         77228821
         B     INVALCOM                MUST BE INVALID COMMAND.         77229221
OPRLUP3  MVC   WURK(1),0(SCANADR)      MOVE IN ARGUMENT.                77229321
*   KEYWORD LOOKUP ROUTINE.                                             77229421
         SPACE 1                                                        77235021
KEYLUP   LA    GR3,KEYTAB              START OF KEYWORD TABLE.          77237021
         LA    GR5,KEYEND              END OF VALID KEYWORDS.           77239021
         NI    SW1,X'FF'-DD1OK-PARMXY  RESET PARM SWITCHES.             77239421
         B     SCANTBL                 GO FIND THIS KEYWORD.            77239821
* SET THE BRANCH TABLE ADDRESSES FOR DASDS                              77239921
CHECK    TM    SW1,TEXTIN               IPL TEXT?                       77240021
         BO    NOIPLMSG                 YES - ERR MESSAGE               77244421
         MVI   GOVAL,GOCHECK            SET BRANCH TO CHECK             77246421
         B     REPACX                   EXIT DSCAN                      77246821
SCAN1    MVI   GOVAL,GOSCAN1            SET BRANCH TO SCAN1             77248421
         B     REPACX                   EXIT DSCAN                      77248821
OPRLUP   MVI   GOVAL,GOOPRL             SET BRANCH TO OPRLUP            77251821
         B     REPACX                   EXIT DSCAN                      77252221
GETCOPY  MVI   GOVAL,GOCOPY             SET BRANCH TO GETCOPY           77252321
         B     REPACX                   EXIT DSCAN                      77252621
MSGWRT2  MVI   GOVAL,GOWRT2             SET BRANCH TO MSGWRT2           77252721
         B     REPACX                   EXIT DSCAN                      77252821
         EJECT                                                          77253021
*********************************************************************** 77253421
*                                                                     * 77253821
*   THE FOLLOWING TABLE IS A LIST OF THE REQUIRED KEYWORDS            * 77254221
*     FOR EACH FUNCTION.                                              * 77254621
*                                                                     * 77255021
*********************************************************************** 77255421
KCODES   EQU   *                                                        77255821
         DC    AL1(0)                  DUMMY                            77256221
         DC    AL1(FROMDD+TODD)        DUMP                             77256621
         DC    AL1(FROMDD+TODD)        RESTORE                          77257021
         DC    AL1(TRACK+TODD)         GETALT                           77257421
         DC    AL1(NEWVOLID+TODD)      LABEL                            77257821
         DC    AL1(TODD+EXTENT+VTOC)   ANALYZE                          77258221
         DC    AL1(TODD+EXTENT+VTOC)   FORMAT                           77258621
         DC    AL1(FROMDD+TODD)        IPLPROG                          77259021
         DC    AL1(0)                                                   77259421
         SPACE 3                                                        77259821
*********************************************************************** 77260221
*                                                                     * 77260621
*   THE FOLLOWING TABLE INDICATES THE BIT SWITCH SETTINGS FOR THE     * 77261021
*     -SEQSW-. ALL THE VARIOUS KEYWORDS ARE LISTED WITH THE           * 77261421
*     SUPPORTED FUNCTIONS.                                            * 77261821
*                                                                     * 77262221
*********************************************************************** 77262621
****                                                               **** 77263021
* (BITS) *   0    .  1 .   2    .  3  .  4  .   5   .   6    .  7     * 77263421
* DUMP   * FROMDD .TODD.CPYVOLID.BEGIN. END .       .        .        * 77263821
*        *        .    .        .     .     .       .        .        * 77264221
* RESTORE* FROMDD .TODD.CPYVOLID.     .     .       .        .        * 77264621
*        *        .    .        .     .     .       .        .        * 77265021
* GETALT * TRACK  .TODD.        .     .     .       .        .        * 77265421
*        *        .    .        .     .     .       .        .        * 77265821
* LABEL  *NEWVOLID.TODD.        .     .     .OWNERID.        .        * 77266221
*        *        .    .        .     .     .       .        .        * 77266621
* ANALYZE*NEWVOLID.TODD.EXTENT  .VTOC .IPLDD.OWNERID.FLAGTEST.PASSES  * 77267021
*        *        .    .        .     .     .       .        .        * 77267421
* FORMAT *NEWVOLID.TODD.EXTENT  .VTOC .IPLDD.OWNERID.        .        * 77267821
*        *        .    .        .     .     .       .        .        * 77268221
* IPLPROG* FROMDD .TODD.        .     .     .       .        .        * 77268621
*        *        .    .        .     .     .       .        .        * 77269021
*********************************************************************** 77269421
         EJECT                                                          77269821
*   HANDLE ALL KEYWORDS HERE.                                           77270221
FROMANAL TM    SEQSW,FROMDD            FROMDD SPECIFIED BEFORE @ZA04428 77270303
         BO    INVALKEY                YES WRTE IEH802I TERM   @ZA04428 77270403
         CLI   FUNCSW,IPLPROG          THIS IPLPROG FUNCTION?  @ZA04428 77270603
         BE    FROMAN                  YES- BRANCH                      77271021
         CLI   FUNCSW,RESTORE          IS THIS DUMP OR RESTORE?         77271421
         BH    INVALKEY                NO--INVALID KEYWORD.             77271821
FROMAN   OI    SEQSW,FROMDD            INDICATE FROMDD DKEYWORD.        77272221
         LA    GR4,DDNAME1             RETURN TO SCAN FOR PARAMETER.    77272621
         B     GETPARM1                GO PROCESS THE PARAMETER.        77273021
         SPACE                                                          77273421
TODDANAL TM    SEQSW,TODD              TODD SPECIFIED BEFORE   @ZA04428 77273503
         BO    INVALKEY                YES WRTE IEH802I TERM   @ZA04428 77273603
         OI    SEQSW,TODD              SET TODD KEY PRESENT.   @ZA04428 77273803
         OI    DELIMIN,X'01'           TELL SCAN '/' IS OK IN PARAMETER 77274221
         OI    SW1,DD1OK               INDICATE MULTIPLE PARMS OK.      77274621
         LA    GR4,DDNAME2             ADDRESS TO STORE TODD DDNAME.    77275021
         SPACE                                                          77275421
GETPARM1 LA    GR3,8                   MAXIMUM PARAMETER LENGTH.        77275821
GETPARM  BAL   GR9,SCAN                RETURN TO SCAN FOR PARAMETER.    77276221
SLSHSWT  NI    DELIMIN2,X'FE'          RESET SLASH SWITCH.      SA53297 77276621
DDNFIND  EQU   *                                                 A50288 77277021
         L     GR7,CVTPTR              ADDRESS OF CVT.           XM3762 77277402
         USING CVT,GR7                                           XM3762 77277802
         L     GR15,CVTTCBP            TCB DOUBLE WORD.          A50288 77278221
         L     GR15,4(GR15)            PICK UP TCB ADDRESS.      A50288 77279021
         L     GR15,12(GR15)           PICK UP TIOT ADDRESS.     A50288 77279421
         LA    GR15,24(GR15)           PICK UP DD ENTRY ADDRESS. A50288 77279821
         SR    GR3,GR3                  ZERO WORK REG            A50288 77280221
FINDDN   IC    GR3,0(GR15)             LOAD DD ENTRY LENGTH.     A50288 77280621
         LTR   GR3,GR3                 TEST FOR END OF TIOT.     A50288 77281021
         BZ    LABANAL                 END OF TABLE/NO DDNAME.   A50288 77281421
         BCTR  GR2,0                    DECRE LEN FOR EXECUTE    A50288 77281821
         EX    GR2,CHKTODD              COMPARE TODD DDNAME      A50288 77282221
         LA    GR2,1(GR2)               RESET LENGTH             A50288 77282621
         LA    GR15,0(GR3,GR15)         SETUP FOR NEXT ENTRY     A50288 77283021
         BNE   FINDDN                   NO MATCH - LOOP BACK     A50288 77283421
         B     FNDDN                    DDNAME FOUND IN TIOT     A50288 77283821
LABANAL  EQU   *                                                 A50288 77284221
         CLI   FUNCSW,ANALYSIS          ANALYZE FUNCTION         A50288 77284621
         BE    TSTLNG                   YES - GO TEST LENGTH     A50288 77285021
         CLI   FUNCSW,LABEL             LABEL FUNCTION           A50288 77285421
         BNE   FNDDN                    NO - INVALID PARAM     @ZA24160 77285899
TSTLNG   EQU   *                                                 A50288 77286221
         CH    GR2,FIVE                 TODD FRO 2321            A50288 77286621
         BE    TSTCHAR                  YES, OFFLINE 2321        A50288 77287021
         CH    GR2,THREE                TODD FOR DASD            A50288 77287421
         BNE   INVALP1                  NO                       A50288 77287821
TSTCHAR  EQU   *                                                 A50288 77288221
         TM    0(GR1),X'F0'             1ST CHAR NUMERIC         A50288 77288621
         BO    SPECIALA                 YES                      A50288 77289021
         CLI   0(GR1),C'F'              1ST CHAR ALPHA F         A50288 77289421
         BNH   SPECIALA                 IF CHANNEL A-F, BRCH     A50288 77289821
         B     INVALP1                  BAD TODD PARAM           A50288 77290221
FNDDN    EQU   *                                                 A50288 77290621
         LA    GR3,8                    RESET MAX PARAM LENGTH   A50288 77291021
         TM    SW1,SPEC1               PREVIOUS UNLABELED REQUEST.      77291421
         BO    INVALP1                 YES-INVALID PARAMETER.           77291821
         CLR   GR2,GR3                 IS THE LENGTH VALID.             77292221
         BCTR  GR2,0                   DECREMENT LENGTH BY ONE.         77292621
         BH    INVALPAR                YES-INVALID PARAMETER.           77293021
         CLI   0(GR4),BLANK            YES-ANY PROCESSED PRIOR.         77293421
         BNE   GETCOPY                 YES-GO BUILD A COPY BLOCK.       77293821
MOVEP    EX    GR2,PMOVE               NO--MOVE DDNAME TO FUNCTION BLK. 77294221
         B     SCAN3                   CONTINUE SCAN OF CARD.           77294621
*                                        PARAMETERS OR OTHER KEYWORDS.  77295021
         SPACE                                                          77295421
SPECIAL  EQU   *                                                        77295821
         CLI   FUNCSW,ANALYSIS         THIS AN ANALYZE FUNCTION.        77296221
         BE    SPECIALA                YES-VALID PARAMETER.        O122 77296621
         CLI   FUNCSW,LABEL            THIS A LABEL FUNCTION.      O122 77297021
         BNE   INVALP1                 NO--INVALID PARAMETER.           77297421
SPECIALA EQU   *                                                   O122 77297821
         CLI   DDNAME2,BLANK           ANY DDNAMES PROCESSED PRIOR.     77298221
         BNE   INVALP1                 YES-INVALID PARAMETER.           77298621
         STC   GR2,WURK                SAVE THE LENGTH.                 77299021
         BCTR  GR2,0                   DECREMENT FOR EXECUTE.           77299421
         CLI   WURK,3                   ACTUAL LENGTH EQUAL 3.          77299821
         BE    ALLSET                  PARAMETER IS OKAY.               77300221
         CLI   3(GR1),C'/'             FOURTH BYTE A SLASH.             77300621
         BNE   INVALPAR                 NO--MUT BE INVALID PARAMETE@.   77301099
         CLI   WURK,5                   ACTUAL LENGTH EQUAL 5.          77301399
         BNE   INVALPAR                NO--MUST BE INVALID PARAMETE@.   77301699
         TM    4(GR1),X'F0'            VALID BIN NO.                    77302221
         BZ    INVALPAR                NO--INVALID PARAMETER.           77302621
ALLSET   EQU   *                                                        77303021
         TM    SW1,SPEC1               PREVIOUS UNLABELED REQUEST.      77303421
         BO    GETCOPY                 YES-GO BUILD A COPY BLOCK.       77303821
         OI    SW1,SPEC1               NO--GO INDICATE OFF-LINE REQUEST 77304221
ALLSET1  LA    GR4,1(GR4)              PARAMETER MOVE TO ADDRESS.       77304621
         B     MOVEP                   GO STORE THE PARAMETER.          77305021
OLDLANAL CLI   FUNCSW,RESTORE          IS THIS DUMP OR RESTORE.         77305421
         BH    INVALKEY                NO--INVALID KEYWORD.             77305821
         BAL   GR9,SCAN                GO SCAN FOR PARAMETER.           77306221
         CLC   0(2,GR1),NO             IS PARAMETER A 'NO'.             77306621
         BE    SCAN3                   YES-CONTINUE SCAN OF CARD.       77307021
         CLC   0(3,GR1),YES            IS PARAMETER A YES.              77307421
         BNE   INVALP1                 NO--MUST BE INVALID PARAMETER.   77307821
         OI    SEQSW,CPYVOLID          INDICATE MUST USE NEW SERIAL NO. 77308221
         B     SCAN3                   CONTINUE SCAN OF CARD.           77308621
         SPACE                                                          77309021
NEWLANAL CLI   FUNCSW,LABEL            THIS FORMAT/ANALYZE/LABEL.       77309421
         BL    INVALKEY                NO--INVALID KEYWORD.             77309821
         OI    SEQSW,NEWVOLID          INDICATE NEWVOLID KEYWORD.       77310221
         OI    DELIMIN,NEWVOLID         ''  NEWVOLID KEYWORD   @ZA07400 77310340
         BAL   GR9,SCAN                RETURN TO SCAN FOR PARAMETERS    77310621
         MVI   SERNO,BLANK             BLANK 1ST BYTE.                  77311021
         MVC   SERNO+1(5),SERNO        INSURE PADDED WITH BLANKS.       77311421
         LA    GR4,SERNO               ADDRESS TO MOVE IN SERIAL NO.    77311821
         LA    GR3,6                   LENGTH COMPARE CONSTANT.         77312221
         CLR   GR2,GR3                 IS THE LENGTH VALID.             77312621
         BCTR  GR2,0                   DECREMENT FOR EXECUTE.           77313021
         BH    INVALPAR                NO--INVALID LENGTH.              77313421
MOVEP1   EX    GR2,PMOVE               MOVE PARAMETER TO FUNCTION BLOCK 77313821
         B     SCAN3                   CONTINUE SCAN OF CARD.           77314221
         SPACE                                                          77314621
VTOCANAL CLI   FUNCSW,ANALYSIS         IS THIS FORMAT OR ANALYZE.       77315021
         BL    INVALKEY                NO--INVALID KEYWORD.             77315421
         OI    SEQSW,VTOC              INDICATE VTOC KEYWORD.           77315821
         LA    GR4,FVTOCPTR+4          ADDRESS TO STORE PARAMETER.      77316221
         LA    GR3,5                   COMPARE CONSTANT.                77316621
VTOC1    BAL   GR9,SCAN                RETURN TO SCAN FOR PARAMETER.    77317021
         NI    DELIMIN,X'FD'       TURN OFF .- SWITCH            A27508 77317421
         CLR   GR2,GR3                 IS THE LENGTH VALID.             77327421
         BCTR  GR2,0                   DECREMENT FOR EXECUTE.           77329421
         BH    INVALPAR                NO--INVALID LENGTH.              77331421
         CLI   OWNID+9,BLANK           IS THIS AN OWNERID REQUEST.      77331821
         BE    VTOC1A                  YES-BYPASS DIGIT TEST.           77332221
         BAL   GR14,TESTDEC            GO TEST FOR ALL DECIMAL DIGITS.  77332621
VTOC1A   SR    GR4,GR2                 SUBTRACT LENGTH FOR RIGHT ADJUST 77332721
         B     MOVEP1                  PROCESS PARM//CONTINUE SCAN.     77334021
         SPACE                                                          77336021
EXTNANAL CLI   FUNCSW,ANALYSIS         IS THIS FORMAT OR ANALYZE        77336421
         BL    INVALKEY                NO--INVALID KEYWORD.             77336521
         OI    SEQSW,EXTENT            INDICATE EXTENT KEYWORD          77339421
         LA    GR4,FEXTENT+4           ADDRESS TO STORE PARAMETER.      77341421
         LA    GR3,5                   LENGTH COMPARE CONSTANT.         77343421
         B     VTOC1                   GO PROCESS THE PARAMETER.        77343821
         SPACE                                                          77344221
FLAGANAL CLI   FUNCSW,ANALYSIS         IS THIS AN ANALYSIS FUNCTION.    77344621
         BNE   INVALKEY                NO--INVALID KEYWORD.             77345021
         BAL   GR9,SCAN                RETURN TO SCAN FOR PARAMETER.    77345121
         CH    GR2,THREE               IS THE LENGTH VALID.             77347221
         BH    INVALP1                 NO--MUST BE INVALID PARAMETER.   77349221
         CLC   0(3,GR1),YES            IS PARAMETER A 'YES'.            77351221
         BE    SCAN3                   YES-CONTINUE SCAN OF CARD.       77351621
         CLC   0(2,GR1),NO             IS PARAMETER A 'NO'.             77354321
         BNE   INVALP1                 NO--MUST BE INVALID PARAMETER.   77356321
         OI    SEQSW,FLAGTEST          YES-SET INDICATOR/NO FLAGTEST.   77358321
         B     SCAN3                   CONTINUE SCAN OF CARD.           77358721
SS1CODE  EQU   *                                               @Y30LSFY 77358803
         OI    SEQSW+K1,SS1VAL          INDIC SS1 PARM SUPPLIED@Y30LSFY 77358903
         CLI   FUNCSW,ANALYSIS          ANALYSIS SWITCH        @Y30LSFY 77359003
         BNE   INVALKEY                 NO, EXIT WITH ERROR    @Y30LSFY 77360603
         L     GR3,STORGR3              GET LAST COLUMN SCANNED@Y30LSFY 77361103
         BCTR  GR3,GR0                  BACK UP ONE COLUMN     @Y30LSFY 77361603
         CLI   K0(GR3),BLANK            IS COLUMN BLANK        @Y30LSFY 77362103
         BE    CONTIN                   YES-CHECK FOR CONT.    @Y30LSFY 77362603
         L     GR3,STORGR3              LOAD NEXT KEYWORD ADDR @Y30LSFY 77370603
         B     KEYWD                    CONTINUE SCAN          @Y30LSFY 77377803
         SPACE                                                          77379203
PASSANAL CLI   FUNCSW,ANALYSIS         IS THIS AN ANALYSIS FUNCTION.    77379603
         BNE   INVALKEY                NO--INVALID KEYWORD.             77381203
         OI    SEQSW,PASSES            INDICATE PASSES KEYWORD.         77382803
         BAL   GR9,SCAN                RETURN TO SCAN FOR PARAMETER.    77384403
         CH    GR2,THREE               IS THE PARAMETER LENGTH VALID.   77386003
         BCTR  GR2,0                   DECREMENT FOR EXECUTE.           77387603
         BH    INVALPAR                NO--INVALID PARAMETER.           77389203
         BAL   GR14,TESTDEC            GO TEST FOR ALL DECIMAL DIGITS.  77390803
         XC    WURK(8),WURK            CLEAR WORK SLOT.                 77392403
         LA    GR4,WURK+7              ADDREES TO MOVE IN PARAMETER.    77394003
         SR    GR4,GR2                 SET ADDRESS FOR RIGHT ADJUST.    77395603
         EX    GR2,PMOVE               MOVE PARAMETER TO WORK SLOT.     77397203
         PACK  WURK(8),WURK+4(4)       REMOVE THE ZONES.                77398803
         CVB   GR4,WURK                CHANGE TO BINARY.                77400403
         CH    GR4,TWO56               IS COUNT MORE THAN 255.          77402003
         BNL   INVALPAR                YES-INVALID PARAMETER.           77403603
         STH   GR4,PASSCNT             NO--STORE IN FUNCTION BLOCK.     77405203
         STH   GR4,COUNT               ALSO SET CURRENT COUNT.          77406803
         B     SCAN3                   CONTINUE SCAN OF CARD.           77408403
         SPACE                                                          77410003
IPLDANAL CLI   FUNCSW,ANALYSIS         IS THIS ANALYZE OR FORMAT.       77411603
         BL    INVALKEY                NO--INVALID KEYWORD.             77413203
         OI    SEQSW,IPLDD             INDICATE IPLDD KEYWORD.          77414803
         MVC   WORKD8(8),DDNAME2       SAVE TODD PARAMETER.      A32162 77416403
         LA    GR4,DDNAME1             ADDRESS TO STORE IPLDD DDNAME.   77418003
         B     GETPARM1                GO PROCESS THE PARAMETER.        77419603
         SPACE                                                          77421203
         SPACE                                                          77422803
BEGNANAL CLI   FUNCSW,DUMP             THIS A DUMP/REST FUNCT  @ZM42083 77424403
         BNE   INVALKEY                NO--INVALID KEYWORD.             77425403
         OI    SEQSW,BEGIN             INDICATE BEGIN KEYWORD SPECIFIED 77427603
         LA    GR5,CCHHBEG             PARAMETER TARGET ADDRESS.        77429203
         B     PROCTRAK                GO PROCESS THE PARAMETER.        77430803
         SPACE                                                          77432403
ENDDANAL CLI   FUNCSW,DUMP             THIS A DUMP/REST FUNCT  @ZM42083 77434003
         BNE   INVALKEY                NO--INVALID KEYWORD.             77435003
         OI    SEQSW,END               INDICATE END ADDRESS KEYWORD     77437203
         LA    GR5,CCHHEND             PARAMETER TARGET ADDRESS.        77438803
         B     PROCTRAK                GO PROCESS THE PARAMETER.        77440403
         SPACE                                                          77442003
OWNRANAL CLI   FUNCSW,LABEL            THIS FORMAT/ANALYZE/LABEL.       77443603
         BL    INVALKEY                NO--INVALID KEYWORD.             77445203
         OI    SEQSW,OWNERID           INDICATE OWNER KEYWORD SPEC.     77446803
         LA    GR3,10                  LENGTH COMPARE CONSTANT.         77448403
         OI    DELIMIN,X'02'       TELL SCAN THAT '.' AND '-' OK A27508 77450003
         MVI   OWNID,BLANK             BLANK FIRST BYTE.                77451603
         MVC   OWNID+1(9),OWNID        INSURE PADDED WITH BLANKS.       77453203
         LA    GR4,OWNID+9             ADDRESS TO STORE PARAMETER-      77454803
*                                        RIGHT ADJUSTED.                77456403
         B     VTOC1                   GO PROCESS PARAMETER.            77458003
         SPACE                                                          77459603
TRACANAL CLI   FUNCSW,GETALT           IS THIS A GET ALT FUNCTION       77461203
         BNE   INVALKEY                NO--INVALID KEYWORD.             77462803
         OI    SEQSW,TRACK             INDICATE TRACK KEYWORD PRESENT.  77464403
         LA    GR5,GTRACK              PARAMETER TARGET ADDRESS.        77466003
PROCTRAK LA    GR4,WURK                ADDRESS OF WORK SLOT.            77467603
         BAL   GR9,SCAN                RETURN TO SCAN FOR PARAMETER.    77469203
         CH    GR2,EIGHT               IS LENGHT EIGTH.                 77470803
         BCTR  GR2,0                   DECREMENT FOR EXECUTE.           77472403
         BNE   INVALPAR                NO--INVALID PARAMETER.           77474003
         EX    GR2,PMOVE               MOVE PARAMETER TO WORK SLOT.     77475603
         OC    WURK(8),CTOEMASK        CHANGE ALL C ZONES TO E.         77477203
         TR    WURK(8),ALTTT-225       CONVERT TO HEX.                  77478803
         PACK  0(5,GR5),WURK(9)        REMOVE ZONES.                    77480403
         B     SCAN3                   CONTINUE SCAN OF CARD.           77482003
         SPACE                                                          77483603
PURGANAL EQU   *                       PROCESS PURGE KEYWORD HERE.      77485203
         CLI   FUNCSW,RESTORE          IS THIS DUMP OR RESTORE.         77486803
         BNH   PURGE1                  YES--A/OK.                       77488403
         CLI   FUNCSW,ANALYSIS         IS THIS FORMAT OR ANALYZE        77490003
         BL    INVALKEY                NO--INVALID KEYWORD.             77491603
PURGE1   BAL   GR9,SCAN                RETURN TO SCAN FOR PARAMETER.    77493203
         CH    GR2,THREE               IS THE LENGTH VALID.             77494803
         BH    INVALP1                 NO--MUST BE INVALID PARAMETER.   77496403
         CLC   0(2,GR1),NO             IS PARAMETER A 'NO'.             77498003
         BE    SCAN3                   YES-RETURN TO SCAN.              77499603
         CLC   0(3,GR1),YES            IS PARAMETER A 'YES'.            77501203
         BNE   INVALP1                 NO--MUST BE INVALID.             77502803
         OI    SEQSW+1,PURGE           INDICATE PURGE REQUESTED.        77504403
         B     SCAN3                   CONTINUE SCAN OF CARD.           77506003
         SPACE 1                                                        77506103
         SPACE                                                          77530903
TESTDEC  LA    GR15,1(GR2)             LENGTH OF PARAMETER.             77532303
         LR    GR3,GR1                 ADDRESS OF PARAMETER.            77533703
TESTDEC1 TM    0(GR3),X'F0'            THIS A DECIMAL DIGIT.            77535103
         BC    12,INVALPAR             NO--GO GIVE MESSAGE.             77536503
         LA    GR3,1(GR3)              STEP TO NEXT DIGIT.              77537903
         BCT   GR15,TESTDEC1           CHECK MORE DIGITS, IF ANY.       77539303
         BR    GR14                    RETURN.                          77540703
MSGPRT   EQU   *                                                        77542103
         TM    SW1,TEXTIN              ARE WE LOOKING FOR IPL TEXT.     77543503
         BO    NOIPLMSG                YES-GIVE PROPER MESSSAGE.        77544903
         LA    GR1,MESS0               MESSAGE NUMBER.                  77546303
         BAL   GR9,BUILD               GO MOVE MESSAGE TO BUFFER.       77547703
         L     GR3,STORGR3             LAST ADDRESS SCANNED.            77549103
         LA    GR4,CARDBUFF            START OF CONTROL STATEMENT.      77550503
         SR    GR3,GR4                 NO. OF COLUMNS SCANNED.          77551903
         CVD   GR3,WURK                CONVERT TO DECIMAL               77553303
         UNPK  WURK(2),WURK+6(2)       UNPACK FOR PRINTING.             77554703
         OI    WURK+1,X'F0'            SET PROPER ZONE.                 77556103
         TR    WURK(2),IOTAB-240       CONVERT TO EBCDIC FOR PRINTING.  77557503
         MVC   0(2,GR1),WURK           PLACE ANSWER IN MESSAGE.         77558903
         B     MSGWRT2                 GO WRITE OUT THE MESSAGE.        77560303
         SPACE                                                          77561703
INVALCOM LA    GR1,MESS1               MESSAGE NUMBER 801.              77563103
INV1     BAL   GR9,BUILD               GO MOVE MESSAGE TO BUFFER.       77564503
         MVC   0(8,GR1),WURK           MOVE INVALID PORTION TO MESSAGE. 77565903
         B     MSGWRT2                 GO WRITE OUT THE MESSAGE.        77567303
INVALKEY LA    GR1,MESS2               MESSAGE NUMBER 802.              77568703
         B     INV1                    BUILD AND WRITE OUT THE MESSAGE. 77570103
INVALP1  BCTR  GR2,0                   DECREMENT LENGTH FOR EXECUTE.    77571503
INVALPAR LR    GR5,GR1                 SAVE ADDRESS OF PARAMETER.       77572903
         LA    GR1,MESS3               MESSAGE NUMBER 803.              77574303
         BAL   GR9,BUILD               GO BUILD THE MESSAGE.            77575703
         LR    GR4,GR1                 ADDRESS TO MOVE IN PARAMETER.    77577103
         LR    GR1,GR5                 ADDRESS OF PARAMETER.            77578503
         EX    GR2,PMOVE               PARAMETER TO OUTPUT BUFFER.      77579903
         B     MSGWRT2                 GO WRITE OUT THE MESSAGE.        77581303
         SPACE                                                          77582703
KEYMISS  LA    GR1,MESS4               MESSAGE NUMBER 804.              77584103
         BAL   GR9,BUILD               GO MOVE MESSAGE TO BUFFER.       77585503
         B     MSGWRT2                 GO WRITE OUT THE MESSAGE.        77586903
*   BUILD ALL MESSAGES HERE.                                            77588303
BUILD    LINK  EP=IEHDMSGB                                              77589703
         BR    GR9                     RETURN.                          77591103
NOIPL    MVI   SWITCHRD,EOF            INDICATE EOF ENCOUNTERED.        77592503
NOIPLMSG LA    GR1,MESS26              MESSAGE NUMBER 826.              77593903
         NI    SW1,X'FF'-TEXTIN        INSURE SWITCH IS OFF.            77595303
         BAL   GR9,BUILD               PLACE MESSAGE IN BUFFER.         77596703
         MVC   0(8,GR1),WORKD8         DDNAME TO MESSAGE.        A32162 77598103
         B     MSGWRT2                 GO WRITE OUT THE MESSAGE.        77599503
*   KEYWORD LOOKUP TABLE                                                77600903
         DS    0F                                                       77602303
KEYTAB   DC    C'TODD    '             TABLE OF VALID KEYWORDS.         77603703
         B     TODDANAL                ADDRESS OF KEYWORD ANALYSIS.     77605103
         DC    C'FROMDD  '                                              77606503
         B     FROMANAL                                                 77607903
         DC    C'NEWVOLID'                                              77609303
         B     NEWLANAL                                                 77610703
         DC    C'VTOC    '                                              77612103
         B     VTOCANAL                                                 77613503
         DC    C'EXTENT  '                                              77614903
         B     EXTNANAL                                                 77616303
         DC    C'FLAGTEST'                                              77617703
         B     FLAGANAL                                                 77619103
         DC    C'PASSES  '                                              77620503
         B     PASSANAL                                                 77621903
         DC    C'IPLDD   '                                              77623303
         B     IPLDANAL                                                 77624703
         DC    C'CPYVOLID'                                              77626103
         B     OLDLANAL                                                 77627503
         DC    C'BEGIN   '                                              77628903
         B     BEGNANAL                                                 77630303
         DC    C'END     '                                              77631703
         B     ENDDANAL                                                 77633103
         DC    C'OWNERID '                                              77634503
         B     OWNRANAL                                                 77635903
SSICODE  DC    C'MSS     '                                     @Y30LSFY 77640103
         B     SS1CODE                                         @Y30LSFY 77641503
         DC    C'PURGE   '                                              77642903
         B     PURGANAL                                                 77644303
KEYEND   DC    C'TRACK   '                                     @ZM42083 77645703
         B     TRACANAL                                                 77647103
         EJECT                                                          77651303
*  EQUATE DEFINITIONS                                                 * 77654121
         SPACE 1                                                        77669421
K0       EQU   0                       DISPLACEMENT CONSTANTS.          77684721
K1       EQU   1                                                        77700020
K2       EQU   2                                                        77750021
K3       EQU   3                                                        77800021
K4       EQU   4                                                        77900020
K5       EQU   5                                                        77950021
K6       EQU   6                                                        78000021
K7       EQU   7                                                        78100020
K8       EQU   8                                                        78300020
K9       EQU   9                                                        78500020
K10      EQU   10                                                       78700020
K11      EQU   11                                                       78900020
K12      EQU   12                                                       79100020
K15      EQU   15                                                       79300020
K16      EQU   16                                                       79500020
K24      EQU   24                                                       79550021
K32      EQU   32                                                       79700020
K80      EQU   80                                                       79900020
K225     EQU   225                                                      79950021
K240     EQU   240                                                      80000021
X01      EQU   X'01'                                                    80050021
X02      EQU   X'02'                                                    80060021
XF0      EQU   X'F0'                                                    80070021
X80      EQU   X'80'                                                    80100020
ALL      EQU   140                                                      80300020
COL72    EQU   72                                                       80500020
COL71    EQU   71                                               SA54610 80550002
SSILN    EQU   3                        LENGTH OF SSI PARAM    @Y30LSFY 80600003
BLANK    EQU   X'40'                   HEX FOR BLANK SPACE.             80700020
BPAREN   EQU   X'11'                   SW SETTING FOR BOTH PAREN.       80900020
COMMA    EQU   C','                    HEX FOR COMMA.                   81100020
EQUAL    EQU   C'='                    HEX FOR EQUAL.                   81300020
GOOD     EQU   X'7F'                   RESET ERROR SWITCH VALUE.        81500020
LPAREN   EQU   C'('                    HEX FOR LEFT PAREN.              81700020
NEWVOLIS EQU   X'80'                   SW SETTING FOR NEWVOLID.         81900021
ON       EQU   X'FF'                   FIRST ENTRY SWITCH VALUE.        82100020
ONE      EQU   X'01'                   BYTE OFF SETTING.                82300020
OWNERIS  EQU   X'02'                   SW SETTING FOR OWNERID.          82500021
PRIME    EQU   X'7D'                   HEX FOR PRIME (').               82700020
RPAREN   EQU   C')'                    HEX FOR RIGHT PAREN.             82900020
TODDS    EQU   X'01'                   SW SETTING FOR TODD.             83100021
ZERO     EQU   X'00'                   CLEAR SWITCH SETTING.            83300020
         SPACE 2                                                        83500020
*  WORKAREA AND TABLES                                                * 83700020
         SPACE 1                                                        83900020
CLEAR    DC    CL15' '                 CONTINUATION BYTE CHECK.         84100020
COMCD    DC    X'00'                 SWITCH FOR CONTINUED CONTROL CARD. 84300020
SCANSAVE DS    18F                     CALLED PROGRAM SAVE AREA         84500020
TAB      DS    0D                      ARGUMENT TABLE                   84700020
         DC    91X'01'                                                  84900020
         DC    X'00'                                                    85100020
         DC    31X'01'                                                  85300020
         DC    2X'00'                                                   85500020
         DC    68X'01'                                                  85700020
         DC    9X'00'                                                   85900020
         DC    7X'01'                                                   86100020
         DC    9X'00'                                                   86300020
         DC    8X'01'                                                   86500020
         DC    8X'00'                                                   86700020
         DC    22X'01'                                                  86900020
DEC      EQU   TAB+240                 NUMERIC FIELD.                   87100020
TABSL    EQU   TAB+97                  SLASH BYTE.                      87300020
TABHY    EQU   TAB+96                  HYPHEN BYTE.              A61555 87500001
TABPR    EQU   TAB+75                  PERIOD BYTE.                     87700020
* CONSTANTS AND EQUATES ETC. MOVED FROM DASDS IN THE REPACK             87710021
PMOVE    MVC   0(1,GR4),0(GR1)          MOVE DDNAME PARAMETERS          87720021
CHKTODD  CLC   4(0,GR15),0(GR1)         COMPARE DDN                     87730021
TWO56    DC    H'256'                   COMPARE CONSTANT                87740021
EIGHT    DC    H'8'                     COMPARE CONSTANT                87741003
THREE    DC    H'3'                     COMPARE CONSTANT                87744021
FIVE     DC    H'5'                     COMPARE CONSTANT                87746021
SAVLGTH  DS    1C                                                       87748021
YES      DC    C'YES'                                                   87748421
NO       DC    C'NO'                                                    87748821
CTOEMASK DC    X'2020202020202020'      USED TO CHANGE ZONES            87749221
ALTTT    DC    X'0A0B0C0D0E0FDDDDDD'    TABLE - CONVERT TO HEX          87749621
         DC    X'DDDDDDDDDDDD'                                          87749721
         DC    X'00010203040506070809'                                  87749821
IOTAB    DC    C'0123456789ABCDEF'      TRANSLATE TABLE                 87749921
* THE FOLLOWING ARE USED TO SET UP VALUES FOR BRANCHING IN DASDS        87751921
GONORM   EQU   X'00'                    DO NORMAL DASDS INSTRUCTIONS    87759921
GOCHECK  EQU   X'04'                    GO SEE IF FINISHED              87761921
GOSCAN1  EQU   X'08'                    START PROCESSING                87763921
GOOPRL   EQU   X'0C'                    TEST COMMAND VALIDITY           87765921
GOCOPY   EQU   X'10'                    PROCESS TODD COPIES             87766321
GOWRT2   EQU   X'14'                    GO WRITE MESSAGE                87766421
*                                                                       87766521
MESS0    EQU   0                        MESSAGE NUMBER 800              87766621
MESS1    EQU   1                        MESSAGE NUMBER 801              87776621
MESS2    EQU   2                        MESSAGE NUMBER 802              87778621
MESS3    EQU   3                        MESSAGE NUMBER 803              87780621
MESS4    EQU   4                        MESSAGE NUMBER 804              87782621
MESS26   EQU   26                       MESSAGE NUMBER 826              87783021
SCANADR  EQU   1                        REGISTER ASSIGNMENT             87783121
LENGT2   EQU   2                        CALLED LENGTH IN DASDS          87792621
*                                                                       87802521
         SPACE 2                                                        87831021
         IEHDBLKS                                                       87840521
         SPACE 2                                                        87850021
CVT      DSECT                                                          87860021
         CVT   SYS=MIN                                                  87870021
         SPACE 2                                                        87900020
         IEHDWORK                                                       88100020
         DCBD  DSORG=PS                                                 88300020
         END                                                            88500020
$ END                                                                   88700020
