             MACRO                                                      00050001
&LABEL   IKJRSVWD &TYPNAM,&HELP=,&PROMPT=,&DEFAULT=                     00100001
.*********************************************************************  00150001
.*                                                                      00160001
.* TITLE  -  IKJRSVWD MACRO (SYMBOLIC DEBUG PROJECT)                    00170001
.*                                                                      00180001
.* FUNCTION  -  THE IKJRSVWD MACRO IS USED BY COMMAND PROCESSORS TO     00190001
.*              DEFINE TO PARSE THE EXPECTED FORMAT OF A RESERVE        00192001
.*              WORD PARAMETER.                                         00194001
.*                                                                      00196001
.* INPUT  -  THE PROTOTYPE STATEMENT IS AS DEFINED ABOVE. IT'S          00198001
.*           PARAMETERS REPRESENT THE FOLLOWING:                        00198401
.*                &LABEL   -  A STATEMENT LABEL IS REQUIRED.            00198501
.*                &TYPNAM  -  PARAMETER TYPE                            00198801
.*                &PROMPT= -  PROMPT DATA, IF ENTERED                   00199201
.*                &DEFAULT=  -  DEFAULT, IF ENTERED                     00199301
.*                &HELP=  -  HELP DATA, IF ENTERED                      00199401
.*                                                                      00199601
.* OUTPUT  -  THIS MACRO PRODUCES A PARAMETER CONTROL ENTRY (PCE) TO    00199701
.*            BE PASSED TO THE PARSE SERVICE ROUTINE.                   00199801
.*            IF AN ERROR IS ENCOUNTERED IN PROCESSING THE MACRO        00199901
.*            INSTRUCTION ENTERED BY THE CP, AN APPROPRIATE ERROR       00216601
.*            MESSAGE IS PRINTED AND THE PCE IS NOT GENERATED.          00226601
.*                                                                      00228601
.*********************************************************************  00230601
.*                                                                      00232601
.* THE FOLLOWING CODE DEFINES VARIABLES TO BE USED IN THE MACRO         00233001
.*   EXPANSION:                                                         00233101
.*           GLOBALS:   IKJCSNM - CSECT NAME FROM IKJPARM MACRO LABEL.  00233201
.*                      IKJDSNM - DSECT NAME FOR PDL                    00238801
.*           LOCALS(BINARY):  FENDBIT - INDICATES THE PCE IS NOT TO     00240801
.*                                      BE GENERATED.                   00242801
.*                                                                      00243201
         GBLC  &IKJDSNM,&IKJCSNM                                        00244401
         LCLA  &T,&END                                                  00246401
         LCLB  &FENDBIT,&FIGCON,&SARSVWD,&FPRPT,&FDFLT,&FHELP           00250001
         LCLC  &QUOTE                                                   00260001
&FENDBIT SETB  0                                                        00300001
.*                                                                      00310001
.* DETERMINE THAT THERE IS NO MORE THAN 1 POSITIONAL PARAMETER.         00320001
.*                                                                      00330001
         AIF   (N'&SYSLIST LT 2).GOOD                                   00350001
         MNOTE 8,'NO MORE THAN ONE POSITIONAL PARAMETER ALLOWED'        00400001
&FENDBIT SETB  1                                                        00402001
.*                                                                      00410001
.* DETERMINE IF STATEMENT LABEL WAS ENTERED.                            00420001
.*                                                                      00430001
.GOOD    AIF   ('&LABEL' NE '').GOOD1                                   00450001
.ERROR1  ANOP                                                           00550001
         MNOTE 8,'STATEMENT LABEL MISSING BUT REQUIRED'                 00600001
&FENDBIT SETB  1                                                        00650001
.*                                                                      00660001
.* DETERMINE IF CSECT NAME IS MISSING.                                  00670001
.*                                                                      00680001
.GOOD1   AIF   ('&IKJCSNM' NE '').GOOD2                                 00700001
         MNOTE 8,'CSECT NAME (FROM IKJPARM MACRO LABEL) IS MISSING'     00750001
&FENDBIT SETB  1                                                        00752001
.GOOD2   AIF   (N'&SYSLIST NE 0).TYPE2                                  00760001
&FIGCON  SETB  1                                                        00770001
         AGO   .OKGOBLD                                                 00780001
.TYPE2   ANOP                                                           00790001
&FPRPT   SETB  ('&PROMPT' NE '')                                        00790401
&FDFLT   SETB  ('&DEFAULT' NE '')                                       00790801
&FHELP   SETB  ('&HELP' NE '')                                          00791201
         AIF   (NOT (&FPRPT AND &FDFLT)).PCEBLD                         00791701
         MNOTE 8,'PARAMETER CANNOT BOTH DEFAULT AND REQUIRE PROMPTING'  00794001
&FENDBIT SETB  1                                                        00796001
.PCEBLD  AIF   ('&TYPNAM' NE '').OKGOBLD                                00798001
         MNOTE 8,'POSITIONAL PARAMETER TYPE FIELD MISSING BUT REQUIRED' 00798101
&FENDBIT SETB  1                                                        00798201
.OKGOBLD AIF   (&FENDBIT).END                                           00798301
&IKJCSNM CSECT ,             RESUME PCL CSECT                           00820001
RSVW&SYSNDX EQU  *                                                      00822001
&LABEL   EQU   *                                                        00822401
         DC    BL2'101&FPRPT&FDFLT.0&FHELP.0&FIGCON.0000000'            00824001
         AIF   (N'&SYSLIST NE 0).CONT                                   00826001
         DC    AL2(RSVD&SYSNDX-RSVW&SYSNDX)  LENGTH OF PCE              00828001
         DC    AL2(0)    NO PDE OFFSET - NO PDE BUILT                   00830001
RSVD&SYSNDX  EQU  *                                                     00832001
         AGO   .EXIT2                                                   00834001
.CONT    DC    AL2(RSVR&SYSNDX-RSVW&SYSNDX)  LENGTH OF PCE              00836001
         DC    AL2(LAB&SYSNDX-&IKJDSNM)          OFFSET TO THE PDE      00838001
.*                                                                      00838101
.* THE FOLLOWING CODE SUPPLIES QUOTES TO &TYPNAM IF THEY ARE MISSING    00838201
.*                                                                      00838301
&QUOTE   SETC  '&TYPNAM'(1,1)                                           00840301
         AIF   ('&QUOTE' EQ '''').QUOT                                  00842301
&QUOTE   SETC  ''''                                                     00842701
         DC    AL2(IKK@&SYSNDX-*),AL2(18),C&QUOTE&TYPNAM&QUOTE   PARAME*00842801
               TER TYPE MESSAGE SEGMENT                                 00843701
         AGO   .EQUGEN1                                                 00844101
.QUOT    ANOP                                                           00844501
         DC    AL2(IKK@&SYSNDX-*),AL2(18),C&TYPNAM  PARAMETER TYPE MESS*00844901
               AGE SEGMENT                                              00845301
.EQUGEN1 ANOP                                                           00845401
IKK@&SYSNDX EQU *                                                       00845701
         AIF   (&FPRPT).PRPT           PROMPT                           00846901
         AIF   (NOT &FDFLT).NPRDF      NEITHER                          00848901
         DC    AL1(IKJ@&SYSNDX-*-2),C&DEFAULT DEFAULT DATA              00850901
         AGO   .EQUGEN                                                  00852901
.PRPT    DC    AL1(IKJ@&SYSNDX-*-2),C&PROMPT PROMPT DATA                00854901
.EQUGEN  ANOP                                                           00856901
IKJ@&SYSNDX EQU *                                                       00858901
.NPRDF   ANOP                                                           00860901
         AIF   (NOT &FHELP).NOHELP     IS HELP SPECIFIED                00870901
         DC    AL2(IKJ$&SYSNDX-*)      LENGTH OF HELP DATA              00872901
&T       SETA  1                                                        00873301
.HELPLP  ANOP                                                           00873701
&T       SETA  &T+1                    NEXT HELP                        00873801
         AIF   (&T EQ 256).HELPER                                       00873901
         AIF   (&T LE N'&HELP).HELPLP                                   00878201
         AGO   .HELPCT                                                  00880201
.HELPER  MNOTE 4,'ONLY 255 LEVELS OF HELP AVAILABLE. OTHERS IGNORED'    00882201
.HELPCT  ANOP                                                           00886901
&T       SETA  &T-1                                                     00888901
         DC    AL1(&T)                 NUMBER OF HELP MESSAGES          00890901
&END     SETA  &T                                                       00891301
&T       SETA  1                                                        00903001
.HELPLPA ANOP                                                           00913001
         DC    AL2(IKJ&SYSNDX.&T-*),AL2(00),C&HELP(&T) HELP MSG SEGMENT 00913401
IKJ&SYSNDX.&T EQU *                                                     00913801
&T       SETA  &T+1                                                     00914201
         AIF   (&T LE &END).HELPLPA                                     00914601
IKJ$&SYSNDX EQU *                                                       00914701
.NOHELP  ANOP                                                           00914801
         AIF    (N'&SYSLIST NE 0).GOOD3                                 00921101
         AGO   .EXIT2                                                   00921201
.END     MEXIT                                                          00921301
.GOOD3   ANOP                                                           00921501
RSVR&SYSNDX EQU *                                                       00922101
&IKJDSNM DSECT                                                          00922401
LAB&SYSNDX   DS    2F                  ALLOCATE PDL SPACE               00922701
.EXIT2   ANOP                                                           00972701
&SYSECT  CSECT ,                   RESUME USERS CSECT                   01300001
         MEXIT                                                          01350001
         MEND                                                           01400001
