MACRO 00020000 &LABEL IKJPOSIT &TYPNAM,&OP,&OP1,&OP2,&OP3,&OP4,&OP5,&OP6, *00030002 &PROMPT=,&DEFAULT=,&HELP=,&VALIDCK= 00040002 .* Y02666 00040402 .* RELEASE 20 SUPPORT CODE -- 20035 00041000 .* RELEASE 2.0 SUPPORT CODE -- Y02666 00043002 GBLC &IKJCSNM,&IKJDSNM 00050000 LCLA &TYPENO,&PCLSIZ,&T,&END 00060000 LCLB &FLIST,&FASIS,&FPRPT,&FDFLT,&FHELP,&FRANGE,&FVALID,&FEND*00070000 BIT,&FQSTR,&FUSID,&FVOLSER,&FDDNAM 00080002 .* Y02666 00082002 &FENDBIT SETB 0 00090000 .* Y02666 00102002 AIF (N'&SYSLIST LT 9).GOOD 00102402 .* Y02666 00104002 MNOTE 8,'NO MORE THAN 8 POSITIONAL PARAMETERS ALLOWED' 00110002 .* Y02666 00112002 &FENDBIT SETB 1 00120000 .GOOD ANOP 00130000 AIF ('&IKJCSNM' NE '').GOOD2 00140000 MNOTE 8,'CSECT NAME (FROM IKJPARM MACRO LABEL) IS MISSING' 00150000 &FENDBIT SETB 1 00160000 .GOOD2 ANOP 00170000 &FLIST SETB ('&OP' EQ 'LIST' OR '&OP1' EQ 'LIST' OR '&OP2' EQ 'LIST' *00180002 OR '&OP3' EQ 'LIST' OR '&OP4' EQ 'LIST' *00182002 OR '&OP5' EQ 'LIST' OR 'OP6' EQ 'LIST') 00190002 .* Y02666 00192002 &FASIS SETB ('&OP' EQ 'ASIS' OR '&OP1' EQ 'ASIS' OR '&OP2' EQ 'ASIS' *00200002 OR '&OP3' EQ 'ASIS' OR '&OP4' EQ 'ASIS' OR '&OP5' *00204002 EQ 'ASIS' OR '&OP6' EQ 'ASIS') 00210002 .* Y02666 00212002 &FRANGE SETB ('&OP' EQ 'RANGE' OR '&OP1' EQ 'RANGE' OR '&OP2' *00220002 EQ 'RANGE' OR '&OP3' EQ 'RANGE' OR '&OP4' EQ *00224002 'RANGE' OR '&OP5' EQ 'RANGE' OR '&OP6' EQ 'RANGE') 00230002 .* Y02666 00230102 &FVOLSER SETB ('&OP' EQ 'VOLSER' OR '&OP1' EQ 'VOLSER' OR '&OP2' *00230202 EQ 'VOLSER' OR '&OP3' EQ 'VOLSER' OR '&OP4' EQ 'VOLSER' *00230402 OR '&OP5' EQ 'VOLSER' OR '&OP6' EQ 'VOLSER') 00230602 .* Y02666 00230902 &FQSTR SETB ('&OP' EQ 'SQSTRING' OR '&OP1' EQ 'SQSTRING' OR '&OP2' EQ *00231202 'SQSTRING' OR '&OP3' EQ 'SQSTRING' OR '&OP4' EQ 'SQSTRIN*00234102 G' OR '&OP5' EQ 'SQSTRING' OR '&OP6' EQ 'SQSTRING') 00234902 .* Y02666 00235702 &FUSID SETB ('&OP' EQ 'USID' OR '&OP1' EQ 'USID' OR *00236502 '&OP2' EQ 'USID' OR '&OP3' EQ 'USID' OR '&OP4' EQ *00237302 'USID' OR '&OP5' EQ 'USID' OR '&OP6' EQ 'USID') 00238102 .* Y02666 00240202 &FDDNAM SETB ('&OP' EQ 'DDNAM' OR '&OP1' EQ 'DDNAM' OR '&OP2' EQ *00240802 'DDNAM' OR '&OP3' EQ 'DDNAM' OR '&OP4' EQ 'DDNAM' OR *00241402 '&OP5' EQ 'DDNAM' OR '&OP6' EQ 'DDNAM') 00241802 .* Y02666 00242102 AIF ('&OP' EQ '' OR '&OP' EQ 'LIST' OR '&OP' EQ *00242802 'USID' OR '&OP' EQ 'RANGE' OR '&OP' EQ 'ASIS' OR *00243102 '&OP' EQ 'UPPERCASE' OR '&OP' EQ 'SQSTRING').OPT 00243402 AIF ('&OP' EQ 'VOLSER' OR '&OP' EQ 'DDNAM').OPT 00243702 .* Y02666 00244002 MNOTE 8,'''&OP'' IS AN INVALID POSITIONAL PARAMETER' 00244302 &FENDBIT SETB 1 00244502 .OPT AIF ('&OP1' EQ '' OR '&OP1' EQ 'LIST' OR '&OP1' *00245302 EQ 'RANGE' OR '&OP1' EQ 'ASIS' OR *00246302 '&OP1' EQ 'USID' OR '&OP1' EQ 'UPPERCASE').OPT2 00246902 AIF ('&OP1' EQ 'SQSTRING' OR '&OP1' EQ 'VOLSER' *00247702 OR '&OP1' EQ 'DDNAM').OPT2 00248502 .* Y02666 00249302 MNOTE 8,'''&OP1'' IS AN INVALID POSITIONAL PARAMETER' 00250102 &FENDBIT SETB 1 00250902 .OPT2 AIF ('&OP2' EQ '' OR '&OP2' EQ 'LIST' OR '&OP2' *00251702 EQ 'RANGE' OR '&OP2' EQ 'ASIS' OR *00252802 '&OP2' EQ 'USID' OR '&OP2' EQ 'UPPERCASE').OPT3 00253302 .* Y02666 00254402 AIF ('&OP2' EQ 'SQSTRING' OR '&OP2' EQ 'VOLSER' OR *00255602 '&OP2' EQ 'DDNAM').OPT3 00256802 MNOTE 8,'''&OP2'' IS AN INVALID POSITIONAL PARAMETER' 00258002 &FENDBIT SETB 1 00259202 .OPT3 AIF ('&OP3' EQ '' OR '&OP3' EQ 'LIST' OR '&OP3' *00260402 EQ 'RANGE' OR '&OP3' EQ 'ASIS' OR *00261602 '&OP3' EQ 'USID' OR '&OP3' EQ 'UPPERCASE').OPT4 00262802 AIF ('&OP3' EQ 'SQSTRING').OPT4 00264002 AIF ('&OP3' EQ 'VOLSER' OR '&OP3' EQ 'DDNAM').OPT4 00264402 .* Y02666 00265202 MNOTE 8,'''&OP3'' IS AN INVALID POSITIONAL PARAMETER' 00266402 &FENDBIT SETB 1 00267602 .OPT4 AIF ('&OP4' EQ '' OR '&OP4' EQ 'LIST' OR '&OP4' *00268802 EQ 'RANGE' OR '&OP4' EQ 'ASIS' OR *00270002 '&OP4' EQ 'USID' OR '&OP4' EQ 'UPPERCASE').OPT1 00271202 AIF ('&OP4' EQ 'SQSTRING').OPT1 00272402 AIF ('&OP4' EQ 'VOLSER' OR '&OP4' EQ 'DDNAM').OPT1 00273602 .* Y02666 00273702 MNOTE 8,'''&OP4'' IS AN INVALID POSITIONAL PARAMETER' 00274802 &FENDBIT SETB 1 00276002 .OPT1 AIF ('&OP5' EQ '' OR '&OP5' EQ 'LIST' OR '&OP5' *00276402 EQ 'RANGE' OR '&OP5' EQ 'ASIS' OR *00276802 '&OP5' EQ 'USID' OR '&OP5' EQ 'UPPERCASE').OPT5 00276902 AIF ('&OP5' EQ 'SQSTRING').OPT5 00277002 AIF ('&OP5' EQ 'VOLSER' OR '&OP5' EQ 'DDNAM').OPT5 00277102 .* Y02666 00277302 MNOTE 8,'''&OP5'' IS AN INVALID POSITIONAL PARAMETER' 00277702 &FENDBIT SETB 1 00277802 .OPT5 AIF ('&OP6' EQ '' OR '&OP6' EQ 'LIST' OR '&OP6' *00278802 EQ 'RANGE' OR '&OP6' EQ 'ASIS' OR *00278902 '&OP6' EQ 'USID' OR '&OP6' EQ 'UPPERCASE').OPT6 00279002 AIF ('&OP6' EQ 'SQSTRING').OPT6 00279102 AIF ('&OP6' EQ 'VOLSER' OR '&OP6' EQ 'DDNAM').OPT6 00279202 .* Y02666 00279302 MNOTE 8,'''&OP6'' IS AN INVALID POSITIONAL PARAMETER' 00279402 &FENDBIT SETB 1 00279502 .OPT6 AIF (('&OP' EQ 'UPPERCASE' OR '&OP1' EQ 'UPPERCASE' *00279602 OR '&OP2' EQ 'UPPERCASE' OR '&OP3' EQ *00279702 'UPPERCASE') AND &FASIS).ERROR0 00280002 AIF (('&OP4' EQ 'UPPERCASE') AND &FASIS).ERROR0 00280802 AIF (('&OP5' EQ 'UPPERCASE' OR '&OP6' EQ 'UPPERCASE') AND *00281202 &FASIS).ERROR0 00281602 AGO .A7 00282002 .ERROR0 MNOTE 8,'BOTH ''UPPERCASE'' AND ''ASIS'' CANNOT BE SPECIFIED' 00283202 &FENDBIT SETB 1 00284402 .A7 ANOP 00285602 AIF (NOT(&FUSID OR &FVOLSER OR &FDDNAM)).A0 00286002 AIF ('&TYPNAM' EQ 'DSNAME' OR '&TYPNAM' EQ 'DSTHING').A0 00286802 AIF (NOT &FUSID).A6 00288902 .ERROR7 MNOTE 4,'''USID'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00289202 &FUSID SETB 0 00290402 &FENDBIT SETB 1 00291602 .A6 ANOP 00293602 AIF (NOT &FVOLSER).A10 00295602 .ERROR8 MNOTE 4,'''VOLSER'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00296402 &FVOLSER SETB 0 00297302 &FENDBIT SETB 1 00298202 .A10 ANOP 00298602 AIF (NOT &FDDNAM).A0 00298702 .ERROR9 MNOTE 4,'''DDNAM'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00298802 &FDDNAM SETB 0 00298902 &FENDBIT SETB 1 00300802 .A0 ANOP 00304802 AIF (('&TYPNAM' EQ 'DELIMITER' OR '&TYPNAM' EQ 'SPACE') *00306702 AND ('&PROMPT' NE '' OR '&DEFAULT' NE '' OR '&HELP' NE *00308602 '' OR '&VALIDCK' NE '')).ERROR3 00310502 &FPRPT SETB ('&PROMPT' NE '') 00312402 &FDFLT SETB ('&DEFAULT' NE '') 00314302 &FHELP SETB ('&HELP' NE '') 00316202 &FVALID SETB ('&VALIDCK' NE '') 00318102 AGO .A1 00320000 .ERROR3 MNOTE 4,'PROMPT, DEFAULT, HELP, VALIDCK IGNORED WITH &TYPNAM' 00330000 .A1 AIF (('&TYPNAM' NE 'ADDRESS' AND '&TYPNAM' NE 'VALUE') *00350000 AND &FRANGE).RANGE 00351000 AGO .A15 00360000 .RANGE MNOTE 4,'''RANGE'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00370002 &FRANGE SETB 0 00380000 .A15 AIF (&FDFLT AND &FPRPT).ERROR1 00390000 AGO .A2 00400000 .ERROR1 MNOTE 8,'PARAMETER CANNOT BOTH DEFAULT AND REQUIRE PROMPTING' 00410000 &FENDBIT SETB 1 00420000 .A2 AIF ('&LABEL' EQ '').ERROR2 00430000 AGO .A3 00440000 .ERROR2 MNOTE 8,'STATEMENT LABEL MISSING BUT REQUIRED' 00450000 &FENDBIT SETB 1 00460000 .A3 AIF (('&TYPNAM' NE 'STRING') AND &FQSTR).ERROR4 00470001 .* Y02666 00470402 AGO .A4 00472001 .ERROR4 MNOTE 8,'''SQSTRING'' OPTION ILLEGAL WITH &TYPNAM' 00474002 .* Y02666 00474402 &FENDBIT SETB 1 00476001 .A4 AIF (NOT &FLIST OR ( '&TYPNAM' NE 'DELIMITER' AND '&TYPNAM' *00480001 NE 'STRING' AND '&TYPNAM' NE 'QSTRING' AND '&TYPNAM' *00490002 NE 'SPACE')).ACCEPT1 00491002 MNOTE 4,'''LIST'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00500002 &FLIST SETB 0 00510000 .ACCEPT1 AIF (NOT &FASIS OR ( '&TYPNAM' NE 'DELIMITER' AND *00520000 '&TYPNAM' NE 'SPACE')).ACCEPT2 00521000 MNOTE 4,'''ASIS'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00530002 &FASIS SETB 0 00540000 .ACCEPT2 ANOP 00550000 AIF ('&OP' NE 'UPPERCASE' AND '&OP2' NE 'UPPERCASE' *00550602 AND '&OP3' NE 'UPPERCASE' OR ('&TYPNAM' NE *00551002 'DELIMITER' AND '&TYPNAM' NE 'SPACE')).ACCEPT4 00554602 AIF ('&OP4' NE 'UPPERCASE' AND '&OP5' NE *00556002 'UPPERCASE' AND '&OP6' NE 'UPPERCASE' OR ('&TYPNAM' NE *00557402 'DELIMITER' AND '&TYPNAM' NE 'SPACE')).ACCEPT4 00558802 MNOTE 4,'''UPPERCASE'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00560202 .ACCEPT4 ANOP 00561602 AIF (NOT &FVALID OR ('&TYPNAM' NE 'STRING')).ACCEPT3 00563002 MNOTE 4,'''VALIDCK'' OPTION ILLEGAL WITH &TYPNAM - IGNORED' 00564402 &FVALID SETB 0 00565802 .ACCEPT3 ANOP 00567202 &TYPENO SETA 1 00568602 AIF ('&TYPNAM' EQ 'DELIMITER').TYPED 00570000 &TYPENO SETA 10 00571000 AIF ('&TYPNAM' EQ 'SPACE').TYPED 00572000 &TYPENO SETA 3 00580000 &PCLSIZ SETA 2 00590000 AIF ('&TYPNAM' EQ 'VALUE').TYPED 00600000 &TYPENO SETA 2 00610000 AIF ('&TYPNAM' EQ 'STRING').TYPED 00620000 &TYPENO SETA 5 00630000 AIF ('&TYPNAM' EQ 'PSTRING').TYPED 00640000 &TYPENO SETA 9 00650000 AIF ('&TYPNAM' EQ 'QSTRING').TYPED 00660000 &PCLSIZ SETA 4 00670000 &TYPENO SETA 6 00680000 AIF ('&TYPNAM' EQ 'USERID').TYPED 00690000 &PCLSIZ SETA 6 @Z40RPKQ 00692000 &TYPENO SETA 12 @Z40RPKQ 00694000 AIF ('&TYPNAM' EQ 'UID2PSWD').TYPED @Z40RPKQ 00696000 &TYPENO SETA 4 00700000 &PCLSIZ SETA 9 00710000 AIF ('&TYPNAM' EQ 'ADDRESS').TYPED 00720000 &PCLSIZ SETA 6 00730000 &TYPENO SETA 7 00740000 AIF ('&TYPNAM' EQ 'DSNAME').TYPED 00750000 &TYPENO SETA 8 00752002 AIF ('&TYPNAM' EQ 'DSTHING').TYPED 00754002 .* Y02666 00754102 &PCLSIZ SETA 4 YM4738 00754202 .* Y02666 00754302 &TYPENO SETA 11 00754402 .* Y02666 00756002 AIF ('&TYPNAM' EQ 'JOBNAME').TYPED 00760002 AIF ('&TYPNAM' EQ '').NULTYPE 00770002 AGO .ILLTYPE 00776002 .NULTYPE MNOTE 8,'POSITIONAL PARAMETER TYPE FIELD MISSING BUT REQUIRED' 00778002 &FENDBIT SETB 1 00780002 AGO .TYPED 00782002 .ILLTYPE ANOP 00784002 MNOTE 8,'ILLEGAL POSITIONAL TYPE - ''&TYPNAM''' 00786002 .END MEXIT 00790000 .TYPED AIF (&FENDBIT).END 00800000 &IKJCSNM CSECT , RESUME PCL CSECT 00810000 POST&SYSNDX EQU * 00820000 DC BL2'001&FPRPT&FDFLT.0&FHELP&FVALID&FLIST&FASIS&FRANGE.0&*00830001 FQSTR&FUSID&FVOLSER&FDDNAM' 00830102 DC AL2(PEND&SYSNDX-POST&SYSNDX) LENGTH OF PCE 00850000 DC AL2(&LABEL-&IKJDSNM) OFFSET TO PDE 00870000 DC AL1(&TYPENO) TYPE OF POSITIONAL 00910000 AIF (&FPRPT).PRPT PROMPT 00920000 AIF (NOT &FDFLT).NPRDF NEITHER 00930000 DC AL1(IKJ@&SYSNDX-*-2),C&DEFAULT DEFAULT DATA 00940000 AGO .EQUGEN 00950000 .PRPT DC AL1(IKJ@&SYSNDX-*-2),C&PROMPT PROMPT DATA 00960000 .EQUGEN ANOP 00970000 IKJ@&SYSNDX EQU * 00980000 .NPRDF ANOP 00990000 AIF (NOT &FHELP).NOHELP IS HELP SPECIFIED 01000000 DC AL2(IKJ$&SYSNDX-*) LENGTH OF HELP DATA 01010000 &T SETA 1 01020000 .HELPLP ANOP 01030000 &T SETA &T+1 NEXT HELP 01040000 AIF (&T EQ 257).HELPER 01050002 AIF (&T LE N'&HELP).HELPLP 01060000 AGO .HELPCT 01070000 .HELPER MNOTE 4,'ONLY 255 LEVELS OF HELP AVAILABLE. OTHERS IGNORED' 01080000 &T SETA &T+1 PROVIDE FOR DECREMENT 01081000 .HELPCT ANOP 01090000 &T SETA &T-1 01100000 DC AL1(&T) NUMBER OF HELP MESSAGES 01110000 &END SETA &T 01111000 &T SETA 1 01120000 .HELPLPA ANOP 01130000 DC AL2(IKJ&SYSNDX.&T-*),AL2(00),C&HELP(&T) HELP MSG SEGMENT 01140000 IKJ&SYSNDX.&T EQU * 01150000 &T SETA &T+1 01160000 AIF (&T LE &END).HELPLPA 01170000 IKJ$&SYSNDX EQU * 01180000 .NOHELP AIF (NOT &FVALID).NOVALID IS VALIDCK SPECIFIED 01220000 DC AL3(&VALIDCK) VALIDCK ROUTINE ADDRESS 01230000 .NOVALID ANOP 01240000 PEND&SYSNDX EQU * 01250000 &IKJDSNM DSECT 01260000 &LABEL DS &PCLSIZ.A ALLOCATE PDE SPACE 01270000 AIF (NOT &FRANGE).NRNGGEN 01280000 DS &PCLSIZ.A ALLOCATE ADDITIONAL PDE SPACE 01290000 .NRNGGEN ANOP 01300000 AIF (NOT &FLIST).NLSTGEN 01310000 DS A FOR LIST CHAIN POINTER 01320000 .NLSTGEN ANOP 01330000 &SYSECT CSECT , RESUME USERS CSECT 01340000 MEXIT 01350000 MEND 01360000