         MACRO                                                          00050000
&NAME    STACK &PARM=,&UPT=,&ECT=,&ECB=,&TERM=,&STORAGE=,&DELETE=,     *00100000
               &ENTRY=,&MF=,&DATASET=                                   00150000
.********************************************************************** 00200000
.*                                                                    * 00250000
.*                                                                    * 00300000
.*                                                                    * 00350000
.*                                                                    * 00400000
.*STATUS:                                                             * 00450000
.*   CHANGE LEVEL 002.                                                * 00500000
.*                                                                    * 00550000
.*FUNCTION:                                                           * 00600000
.*   THE STACK MACRO EXAMINES PARAMETERS SPECIFIED IN THE STACK MACRO * 00650000
.*   INSTRUCTION AND BUILDS A PARAMETER BLOCK TO BE USED BY THE STACK * 00700000
.*   SERVICE ROUTINE                                                  * 00750000
.*   IN THE LIST FORM, THE STACK MACRO GENERATES THE STACK            * 00850000
.*   PARAMETER BLOCK CONSISTING OF ONE WORD OF CONTROL (OPERATION AND * 00900000
.*   CODE) AND THE ADDRESSES OF THE STORAGE LIST SOURCE DESCRIPTOR,   * 00950000
.*   THE INPUT DD NAME, THE OUTPUT DD NAME, AND A MEMBER NAME.        * 00960000
.*   IN THE EXECUTE FORM OF THE STACK MACRO, CODE IS GENERATED        * 01000000
.*   WHICH WILL RESET THE PARAMETER BLOCK IF REQUIRED AND LOAD THE    * 01050000
.*   ADDRESSES OF THE UPT, ECT, ECB, AND PARAMETER BLOCK INTO THE     * 01100000
.*   SERVICE ROUTINE PARAMETER LIST IF SPECIFIED. A LINK MACRO WILL   * 01150000
.*   BE GENERATED TO INVOKE THE STACK SERVICE ROUTINE UNLESS AN       * 01200000
.*   ENTRY POINT IS SPECIFIED. IF AN ENTRY POINT IS SPECIFIED, OR IF  * 01250000
.*   THE ENTRY POINT ADDR IS IN THE CVT, A BALR WILL BE GENERATED.    * 01300000
.*                                                                    * 01350000
.*ENTRY POINTS:                                                       * 01400000
.*   STACK MACRO CALL - ONLY ENTRY POINT.                             * 01450000
.*                                                                    * 01500000
.*INPUT:                                                              * 01550000
.*   PARAMETERS SPECIFIED IN THE STACK MACRO FORMAT.                    01600000
.*                                                                    * 01700000
.*OUTPUT:                                                             * 01750000
.*   IN THE L-FORM, A 5-WORD PARAMETER BLOCK CONSISTING OF CONTROL    * 01800000
.*   WHICH IS SET BY THE MACRO, THE ADDRESS OF THE STORAGE LIST       * 01850000
.*   SOURCE DESCRIPTOR, AND THE ADDR OF AN INPUT AND OUTPUT DD NAME.  * 01900000
.*   IN THE E-FORM, CODE WHICH RESETS CONTROL IN THE PARAMETER BLOCK, * 01950000
.*   PLACES THE ADDRESSES OF THE SERVICE ROUTINE PARAMETER BLOCK,     * 02000000
.*   UPT, ECT, AND ECB IN THE SERVICE ROUTINE PARAMETER LIST AS       * 02050000
.*   SPECIFIED, AND INVOKES THE SERVICE ROUTINE.                      * 02100000
.*                                                                    * 02150000
.*EXTERNAL REFERENCES:                                                * 02200000
.*   LINK MACRO.                                                      * 02250000
.*                                                                    * 02300000
.*EXITS,NORMAL:                                                       * 02350000
.*   IN THE L-FORM, RETURN TO CALLER.                                 * 02400000
.*   IN THE E-FORM, CODE IS GENERATED TO INVOKE THE STACK SERVICE     * 02450000
.*   ROUTINE ACCORDING TO THE STANDARD LINKAGE CONVENTIONS            * 02500000
.*                                                                    * 02600000
.*EXITS,ERROR:                                                        * 02650000
.*   INVALID INPUT.                                                   * 02700000
.*                                                                    * 02750000
.*TABLES/WORK AREAS:                                                  * 02800000
.*   SERVICE ROUTINE PARAMETER LIST - A TABLE OF POINTERS TO THE UPT, * 02850000
.*   ECT, ECB, AND SERVICE ROUTINE PARAMETER BLOCK.                   * 02900000
.*   SERVICE ROUTINE PARAMETER BLOCK - A CONTROL TABLE SET ACCORDING  * 02950000
.*   TO THE SPECIFIED MACRO PARAMETERS AND THE ADDRESS OF THE STORAGE * 03000000
.*   LIST SOURCE DESCRIPTOR.                                          * 03050000
.*                                                                    * 03100000
.*ATTRIBUTES:                                                         * 03150000
.*   SERIALLY REUSABLE.                                               * 03200000
.*                                                                    * 03250000
.*NOTES:                                                              * 03300000
.*   DATE OF CURRENT RELEASE :                                        * 03350000
.*      02/15/74                                                      * 03352000
.*   PREVIOUS RELEASE DATES :                                         * 03360000
.*      03/15/73                                                      * 03380000
.*      01/22/70                                                      * 03400000
.*      12/12/69                                                      * 03500000
.*      10/22/69                                                      * 03550000
.*                                                                    * 03600000
.*                                                                    * 03650000
.*CHANGE ACTIVITY                                                     * 03666600
.*               C 000000-999999                               Y30PQJM* 03674900
.* A069250   CLEAR CODE BYTES                                 @ZA75363* 03683200
.*        REPLACE PREVIOUS LEVEL                              @ZA82204* 03691600
.*        REMOVE FIX FOR APAR OZ75363                         @ZA82490* 03695800
.*                                                                    * 03700000
.********************************************************************** 03850000
         LCLA  &A,&NUM                                                  03900000
         LCLB  &PROC,&CLOSE,&INDD,&OUTDD,&PROMPT,&LIST,&CNTL,&SEQ       03925000
         LCLB  &MEMBR                                                   03950000
         LCLC  &C,&DDOUT,&DDIN,&MEMAD                                   03975000
         AIF   (T'&MF EQ 'O').ERR1           NO MF PARAMETER            04000000
         AIF   (N'&SYSLIST EQ 0).MF1   POSITIONAL PARAMETERS INVALID    04050000
         AIF   (T'&SYSLIST(1) NE 'O' OR N'&SYSLIST NE 1).ERR6           04100000
.MF1     AIF   ('&MF' EQ 'L').L1             BRANCH ON LIST FORM        04150000
.********************************************************************** 04200000
.*                                                                    * 04250000
.*                               EXECUTE FORM                         * 04300000
.*                                                                    * 04350000
.********************************************************************** 04400000
         AIF   ('&MF(1)' NE 'E').ERR1                                   04450000
         AIF   (T'&NAME EQ 'O').E1                                      04500000
&NAME    DS    0H                                                       04550000
.E1      AIF   (T'&MF(2) EQ 'O').ERR1                                   04600000
         AIF   ('&MF(2)' EQ '(1)').E2                                   04650000
         AIF   ('&MF(2)'(1,1) EQ '(').WARN3                             04700000
.E1A     LA    1,&MF(2)       LOAD PARM LIST ADDR                       04750000
.E2      AIF   (T'&UPT EQ 'O').E3       UPT OMITTED                     04800000
         AIF   ('&UPT'(1,1) EQ '(').E2A                                 04850000
         LA    14,&UPT        LOAD UPT ADDR                             04900000
         ST    14,0(0,1)     STORE UPT ADDR                             04950000
         AGO   .E3                                                      05000000
.E2A     ANOP                                                           05050000
&A       SETA  K'&UPT-2                                                 05100000
&C       SETC  '&UPT'(2,&A)                                             05150000
         ST    &C,0(0,1)     STORE UPT ADDR IN PARM LIST                05200000
.E3      AIF   (T'&ECT EQ 'O').E4     ECT OMITTED                       05250000
         AIF   ('&ECT'(1,1) EQ '(').E3A                                 05300000
         LA    14,&ECT                  LOAD ECT ADDR                   05350000
         ST    14,4(0,1)               STORE ECT ADDR IN PARM LIST      05400000
         AGO   .E4                                                      05450000
.E3A     ANOP                                                           05500000
&A       SETA  K'&ECT-2                                                 05550000
&C       SETC  '&ECT'(2,&A)                                             05600000
         ST    &C,4(0,1)               STORE ECT ADDR IN PARM LIST      05650000
.E4      AIF   (T'&ECB EQ 'O').E5       ECB OMITTED                     05700000
         AIF   ('&ECB'(1,1) EQ '(').E4A                                 05750000
         LA    14,&ECB        LOAD ECB ADDR                             05800000
         ST    14,8(0,1)     STORE ECB ADDR IN PARM LIST                05850000
         AGO   .E5                                                      05900000
.E4A     ANOP                                                           05950000
&A       SETA  K'&ECB-2                                                 06000000
&C       SETC  '&ECB'(2,&A)                                             06050000
         ST    &C,8(0,1)     STORE ECB ADDR IN PARM LIST                06100000
.E5      AIF   (T'&PARM EQ 'O').E5B     PARM OMITTED                    06150000
         AIF   ('&PARM'(1,1)  EQ '(').E5A                               06200000
         LA    14,&PARM       LOAD PARM ADDR                            06250000
         ST    14,12(0,1)    STORE PARM ADDR IN PARM LIST               06300000
         AGO   .E6                                                      06350000
.E5A     ANOP                                                           06400000
&A       SETA  K'&PARM-2                                                06450000
&C       SETC  '&PARM'(2,&A)                                            06500000
         ST    &C,12(0,1)    STORE PARM ADDR IN PARM LIST               06550000
         AIF   (T'&TERM EQ 'O' AND N'&STORAGE EQ 0 AND                 *06600000
               T'&DELETE EQ 'O' AND N'&DATASET EQ 0).E11                06650000
         LR    14,&C          LOAD PARM ADDR                            06700000
         AGO   .E6                                                      06750000
.E5B     AIF   (T'&TERM EQ 'O' AND N'&STORAGE EQ 0   AND T'&DELETE     *06800000
               EQ 'O' AND N'&DATASET EQ 0).E11                          06850000
         L     14,12(0,1)     LOAD PARM BLOCK ADDR INTO REGISTER        06900000
.E6      AIF   (T'&TERM EQ 'O' AND N'&STORAGE EQ 0   AND T'&DELETE     *06950000
               EQ 'O' AND N'&DATASET EQ 0).E11                          07000000
.E7      AIF   (T'&TERM EQ 'O').E8      TERM OMITTED                    07050000
         AIF   (N'&STORAGE NE 0   OR T'&DELETE NE 'O'                  *07100000
               OR N'&DATASET NE 0).ERR3                                 07110000
         AIF   ('&TERM' NE '*').ERR4                                    07150000
         MVI   0(14),X'80'         SET OPERATION FIELD                  07200000
         MVI   1(14),X'80'         SET CODE FIELD                       07250000
         AGO   .E11                                                     07300000
.E8      AIF   (N'&STORAGE EQ 0).E9          STORAGE OMITTED            07350000
         AIF   (T'&TERM NE 'O' OR T'&DELETE NE 'O'                     *07400000
               OR N'&DATASET NE 0).ERR3                                 07410000
         MVI   0(14),X'80'         SET OPERATION FIELD                  07450000
         AIF   ('&STORAGE' EQ '()').E8E      ALL OPERANDS OMITTED       07500000
&A       SETA  N'&STORAGE                                               07550000
         AIF   (&A GT 3).ERR2           TOO MANY OPERANDS               07600000
         AIF   (&A EQ 1 OR T'&STORAGE(2) EQ 'O').E8E   LSD ADDR ONLY    07650000
.E8B     AIF   ('&STORAGE(2)' NE 'PROCN').E8C                           07700000
         MVI   1(14),X'42'         SET CODE FIELD                       07750000
         AGO   .E8D1                                                    07800000
.E8C     AIF   ('&STORAGE(2)' NE 'PROCL').E8D                           07850000
         MVI   1(14),X'43'         SET CODE FIELD                       07900000
         AGO   .E8D1                                                    07950000
.E8D1    AIF   (&A NE 3).E8F                                            07960000
         AIF   ('&STORAGE(3)' NE 'PROMPT').ERR9                         07970000
         OI    1(14),B'00000100'                                        07980000
         AGO   .E8F                                                     07990000
.E8D     AIF   ('&STORAGE(2)' NE 'SOURCE').ERR2                         08000000
.E8E     MVI   1(14),X'40'         SET CODE FIELD                       08050000
.E8F     AIF   (T'&STORAGE(1) EQ 'O' OR '&STORAGE' EQ '()').WARN1       08100000
         AIF   ('&STORAGE(1)'(1,1) EQ '(').E8G                          08150000
         LA    0,&STORAGE(1)       LOAD STORAGE SOURCE DESCRIPTOR ADDR  08200000
         ST    0,4(0,14)          STORE STORAGE SOURCE DESCRIPTOR ADDR  08250000
         AGO   .E11                                                     08300000
.E8G     ANOP                                                           08350000
&A       SETA  K'&STORAGE(1)-2                                          08400000
&C       SETC  '&STORAGE(1)'(2,&A)                                      08450000
         ST    &C,4(0,14)         STORE STORAGE SOURCE DESCRIPTOR ADDR  08500000
         AGO   .E11                                                     08550000
.E9      AIF   (T'&DELETE EQ 'O').E10        DELETE OMITTED             08600000
         AIF   (T'&TERM NE 'O' OR N'&STORAGE NE 0                      *08633300
               OR N'&DATASET NE 0).ERR3                                 08666600
.E9A     AIF   ('&DELETE' NE 'TOP').E9B                                 08700000
         MVI   0(14),X'40'    SET OPERATION FIELD                       08750000
         AGO   .E11                                                     08800000
.E9B     AIF   ('&DELETE' NE 'PROC').E9C                                08850000
         MVI   0(14),X'20'    SET OPERATION FIELD                       08900000
         AGO   .E11                                                     08950000
.E9C     AIF   ('&DELETE' NE 'ALL').ERR5                                09000000
         MVI   0(14),X'10'    SET OPERATION FIELD                       09050000
         AGO   .E11                                                     09055000
.E10     AIF   (T'&DATASET EQ 'O').E11   DATASET OMITTED                09060000
         AGO   .DD0          GO TO DATASET PARSE ROUTINE                09070000
.RETURNE ANOP                RETURN POINT FROM PARSE ROUTINE            09080000
         MVI   0(14),X'80'              SET OPERATION FIELD             09090000
         MVI   1(14),B'10&INDD.&OUTDD.0&PROMPT.&PROC.&LIST.' OPTION     09090600
         MVI   3(14),B'0000&MEMBR.&SEQ.&CNTL.&CLOSE.'  SET CLOSE OPTION 09091200
.E106    AIF   (&MEMBR NE 1).E108B                                      09091800
         AIF   ('&MEMAD'(1,1) EQ '(').E108RR                            09092400
         LA    0,&MEMAD                                                 09093000
&MEMAD   SETC  '0'                                                      09093600
         AGO   .E108AA                                                  09094200
.E108RR  ANOP                                                           09094800
&MEMAD   SETC   '&MEMAD'(2,K'&MEMAD-2)                                  09095400
.E108AA  ST    &MEMAD,16(0,14)              STORE MEMBER NAME ADDR      09096000
.E108B   AIF   (&INDD EQ B'0').E10AA1   INDD NOT SPECIFIED              09096600
         AIF   ('&DDIN'(1,1) EQ '(').E10RR1  INDD IN A REGISTER         09098000
         LA    0,&DDIN         LOAD ADDRESS OF INPUT DDNAME             09098400
&DDIN    SETC  '0'                                                      09098600
         AGO   .E10RX1        GO TO STORE INSTRUNCTION                  09098800
.E10RR1  ANOP                                                           09099200
&DDIN    SETC  '&DDIN'(2,(K'&DDIN-2))   STRIP PARENS FROM REGISTER      09099600
.E10RX1  ST    &DDIN,8(0,14)       STORE ADDRESS OF INPUT DDNAME        09099700
.E10AA1  AIF   (&OUTDD EQ B'0').E10AA2   OUTDD NOT SPECIFIED            09099900
         AIF   ('&DDOUT'(1,1) EQ '(').E10RR2   OUTDD IN A REGISTER      09116600
         LA    0,&DDOUT       LOAD ADDRESS OF OUTPUT DDNAME             09126600
&DDOUT   SETC  '0'                                                      09127600
         AGO   .E10RX2        GO TO STORE INSTRUCTION                   09128600
.E10RR2  ANOP                                                           09130600
&DDOUT   SETC  '&DDOUT'(2,(K'&DDOUT-2))  STRIP PARENS FROM REGISTER     09132600
.E10RX2  ST    &DDOUT,12(0,14) STORE ADDRESS OF OUTPUT DDNAME           09132900
.E10AA2  ANOP                                                           09133200
.E11     AIF   (T'&ENTRY EQ 'O').E12         ENTRY POINT OMITTED        09133300
         AIF   ('&ENTRY' EQ '(15)').E11B                                09150000
         AIF   ('&ENTRY'(1,1) EQ '(').WARN4                             09200000
.E11A    LA    15,&ENTRY      LOAD EP ADDR                              09250000
.E11B    BALR  14,15     BRANCH TO SERVICE ROUTINE                      09300000
         MEXIT                                                          09350000
.E12     L     15,16(0,0)          LOAD CVT POINTER                     09361100
         TM    472(15),B'10000000'   IS STACK ADDR HERE ?               09372200
         BNO   IKJ@&SYSNDX          NO- BRANCH TO LINK                  09383300
         L     15,472(15)            YES- BALR TO STACK                 09394400
         BALR  14,15                                                    09405500
         B     IKJ$&SYSNDX         BRANCH AROUND LINK                   09416600
IKJ@&SYSNDX LINK  EP=IKJSTCK          LINK TO STACK                     09427700
IKJ$&SYSNDX DS    0H                                                    09438800
         MEXIT                                                          09450000
.********************************************************************** 09500000
.*                                                                    * 09550000
.*                                 LIST FORM                          * 09600000
.*                                                                    * 09650000
.********************************************************************** 09700000
.L1      DS    0F                                                       09750000
.L2      AIF   (T'&TERM EQ 'O').L3      TERM OMITTED                    09800000
         AIF   ('&TERM' NE '*').ERR4                                    09850000
         AIF   (N'&STORAGE NE 0   OR T'&DELETE NE 'O'                  *09900000
               OR T'&DATASET NE 'O').ERR3                               09910000
&NAME    DC    X'80800000'         SET OPERATION AND CODE FIELDS        09950000
         DC    4A(0)      STORAGE SOURCE DESCRIPTOR ADDR                10000000
         MEXIT                                                          10050000
.L3      AIF   (T'&DELETE EQ 'O').L4    DELETE OMITTED                  10100000
         AIF   (T'&TERM NE 'O' OR N'&STORAGE NE 0                      *10133300
               OR N'&DATASET NE 0).ERR3                                 10166600
.L3A     AIF   ('&DELETE' NE 'TOP').L3B                                 10200000
&NAME    DC    X'40000000'         SET OPERATION AND CODE FIELDS        10250000
         AGO   .L3D                                                     10300000
.L3B     AIF   ('&DELETE' NE 'PROC').L3C                                10350000
&NAME    DC    X'20000000'         SET OPERATION AND CODE FIELDS        10400000
         AGO   .L3D                                                     10450000
.L3C     AIF   ('&DELETE' NE 'ALL').ERR5                                10500000
&NAME    DC    X'10000000'         SET OPERATION AND CODE FIELDS        10550000
.L3D     DC    4A(0)      STORAGE SOURCE DESCRIPTOR ADDR                10600000
         MEXIT                                                          10650000
.L4      AIF   (N'&STORAGE EQ 0).L5     NO STORAGE OPERANDS             10700000
         AIF   (T'&TERM NE 'O' OR T'&DELETE NE 'O'                     *10733300
               OR N'&DATASET NE 0).ERR3                                 10766600
         AIF   ('&STORAGE' EQ '()').L4E      ALL OPERANDS OMITTED       10800000
&A       SETA  N'&STORAGE                                               10850000
&LIST    SETB  0                                                        10860000
&PROMPT  SETB  0                                                        10870000
         AIF   (&A EQ 1 OR T'&STORAGE(2) EQ 'O').L4E   LSD ADDR ONLY    10900000
.L4B     AIF   ('&STORAGE(2)' NE 'PROCN').L4C                           10950000
         AGO   .L4D1                                                    11050000
.L4C     AIF   ('&STORAGE(2)' NE 'PROCL').L4D1                          11100000
&LIST    SETB  1                                                        11150000
.L4D1    AIF   (&A LT 3).L4D2                                           11200000
         AIF   ('&STORAGE(3)' NE 'PROMPT').ERR9                         11210000
&PROMPT  SETB  1                                                        11220000
.L4D2    ANOP                                                           11222000
&NAME    DC    X'80'                                                    11224000
         DC    B'01000&PROMPT.1&LIST.'                                  11226000
         DC    X'0000'                                                  11228000
         AGO   .L4F                                                     11230000
.L4D     AIF   ('&STORAGE(2)' NE 'SOURCE').ERR2                         11250000
.L4E     ANOP                                                           11300000
&NAME    DC    X'80400000'         SET OPERATION AND CODE FIELDS        11350000
.L4F     AIF   (T'&STORAGE(1) EQ 'O' OR '&STORAGE' EQ '()').WARN2       11400000
         DC    A(&STORAGE(1))      STORAGE SOURCE DESCRIPTOR ADDR       11450000
         DC    3A(0)                                                    11460000
         MEXIT                                                          11500000
.L5      AIF   (T'&DATASET EQ 'O').L6  IF DATASET OPERAND OMITTED       11510000
         AGO   .DD0      GO PARSE DATASET OPERANDS                      11520000
.RETURNL ANOP      RETURN POINT FROM DATASET PARSE                      11530000
&NAME    DC    X'80'     SET OPERATION FIELD                            11540000
         DC    B'10&INDD.&OUTDD.0&PROMPT.&PROC.&LIST.' OPTION           11542000
         DC    X'00'                                                    11544000
         DC    B'0000&MEMBR.&SEQ.&CNTL.&CLOSE.'   SET CLOSE OPTION      11546000
         DC    A(0)     ADDRESS OF LSD                                  11548000
         DC    A(&DDIN.)    ADDRESS OF DDNAME                           11548400
         DC    A(&DDOUT.)   ADDRESS OF DDNAME                           11548800
         DC    A(&MEMAD.)   ADDRESS OF MEMBERNAME                       11549000
         MEXIT                                                          11549200
.L6      ANOP                                                           11550000
&NAME    DC    X'00000000'         SET OPERATION AND CODE FIELDS        11600000
         DC    4A(0)      STORAGE SOURCE DESCRIPTOR ADDR                11650000
         MEXIT                                                          11700000
.DD0     ANOP                                                           11710000
&DDIN    SETC  '0'                                                      11720000
&DDOUT   SETC  '0'                                                      11730000
&MEMAD   SETC  '0'                                                      11733300
&MEMBR   SETB  0                                                        11736600
&PROC    SETB  0                                                        11740000
&PROMPT  SETB  0                                                        11742000
&CLOSE   SETB  0                                                        11744000
&LIST    SETB  0                                                        11746000
&INDD    SETB  0                                                        11748000
&OUTDD   SETB  0                                                        11748400
&SEQ     SETB  0                                                        11748500
&CNTL    SETB  0                                                        11748600
         AIF   (T'&TERM NE 'O' OR T'&STORAGE NE 'O' OR                 *11748800
               T'&DELETE NE 'O').ERR3                                   11749200
&NUM     SETA  N'&DATASET                                               11749600
         AIF   (&NUM EQ 0).DD7                                          11749700
.DD1     AIF   (&NUM NE 1 OR '&DATASET(&NUM)' NE 'CLOSE').DD2           11749800
&CLOSE   SETB  1                                                        11749900
         AGO   .DD7                                                     11766600
.DD2     AIF   ('&DATASET(&NUM)' EQ '*').DD7                            11776600
.DD3     AIF   ('&DATASET(&NUM)' NE 'PROMPT').DD4A                      11780600
&PROMPT  SETB  1                                                        11782600
         AGO   .DD7                                                     11783000
.DD4A    AIF   ('&DATASET(&NUM)' NE 'CNTL').DD4B                        11784300
&CNTL    SETB  1                                                        11786300
         AGO   .DD7                                                     11786700
.DD4B    AIF   ('&DATASET(&NUM)' NE 'LIST').DD5                         11787000
&LIST    SETB  1                                                        11788300
         AGO   .DD7                                                     11789600
.DD5     AIF   ('&DATASET(&NUM)'(1,5) NE 'INDD=').DD5B                  11790900
&INDD    SETB  1                                                        11792800
&PROC    SETB  1                                                        11793500
&DDIN    SETC  '&DATASET(&NUM)'(6,(K'&DATASET(&NUM)-5))                 11794800
         AGO   .DD7                                                     11796100
.DD5B    AIF    ('&DATASET(&NUM)'(1,7) NE 'MEMBER=').DD6                11796500
&MEMBR   SETB   1                                                       11796900
&MEMAD   SETC   '&DATASET(&NUM)'(8,(K'&DATASET(&NUM)-6))                11797300
         AGO     .DD7                                                   11797700
.DD6     AIF   ('&DATASET(&NUM)'(1,6) NE 'OUTDD=').DD65                 11798100
&OUTDD   SETB  1                                                        11798700
&PROC    SETB  1                                                        11800000
&DDOUT   SETC  '&DATASET(&NUM)'(7,(K'&DATASET(&NUM)-6))                 11808200
         AGO   .DD7                                                     11810700
.DD65    AIF   ('&DATASET(&NUM)' NE 'SEQ').ERR7                         11813200
&SEQ     SETB  1                                                        11815700
.DD7     ANOP                                                           11818200
&NUM     SETA  &NUM-1                                                   11820200
         AIF   (&NUM GT 0).DD2                                          11820300
         AIF   ('&MF' EQ 'L').RETURNL                                   11820600
         AGO   .RETURNE                                                 11821000
.WARN1   MNOTE 0,'FIRST STORAGE OPERAND IS ASSUMED TO BE IN PARM BLOCK' 11822200
         AGO   .E10                                                     11836100
.WARN2   MNOTE 0,'FIRST STORAGE OPERAND IS OMITTED'                     11850000
         DC    4A(0)           STORAGE SOURCE DESCRIPTOR ADDR           11900000
         MEXIT                                                          11950000
.WARN3   MNOTE 0,'PARAMETER LIST ADDR IN MF PARAMETER IS NOT IN REG 1'  12000000
         AGO   .E1A                                                     12050000
.WARN4   MNOTE 0,'ENTRY POINT ADDR IN ENTRY PARAMETER IS NOT IN REG 15' 12100000
         AGO   .E11A                                                    12150000
.ERR1    MNOTE 8,'INVALID OR OMITTED MF PARAMETER'                      12200000
         MEXIT                                                          12250000
.ERR2    MNOTE 8,'INVALID STORAGE PARAMETER OPERAND'                    12300000
         MEXIT                                                          12350000
.ERR3    MNOTE 8,'TERM, STORAGE, DATASET, AND DELETE ARE MUTUALLY EXCLU*12400000
               SIVE'                                                    12420000
         MEXIT                                                          12450000
.ERR4    MNOTE 8,'INVALID TERM OPERAND'                                 12500000
         MEXIT                                                          12550000
.ERR5    MNOTE 8,'INVALID DELETE OPERAND'                               12600000
         MEXIT                                                          12650000
.ERR6    MNOTE 8,'POSITIONAL PARAMETERS ARE INVALID'                    12700000
         MEXIT                                                          12750000
.ERR7    MNOTE 8,'INVALID DATASET PARAMETER'                            12760000
         MEXIT                                                          12770000
.ERR9    MNOTE 8,'PROCN OR PROCP SPECIFIED AND KEYWORD OTHER THAN PROMP*12792000
               T FOUND'                                                 12794000
         MEND                                                           12800000
