TITLE 'EP=BLSCADST - DAS CONDITIONAL ALLOCATION DSNAME VALIDAT*00001000 TION ' 00002000 * /* CHANGE ACTIVITY 00003000 * THIS MODULE IS WRITTEN FOR @G57LPSR 00004000 BLSCADST CSECT , 0002 00005000 @MAINENT DS 0H 0002 00006000 USING *,@15 0002 00007000 B @PROLOG 0002 00008000 DC AL1(16) 0002 00009000 DC C'BLSCADST 78.062' 0002 00010000 DROP @15 00011000 @PROLOG STM @14,@12,12(@13) 0002 00012000 BALR @12,0 0002 00013000 @PSTART DS 0H 0002 00014000 USING @PSTART,@12 0002 00015000 L @00,@SIZDATD 0002 00016000 BLSCGETF R,LV=(0) 00017000 LR @11,@01 0002 00018000 USING @DATD,@11 0002 00019000 ST @13,@SA00001+4 0002 00020000 LM @00,@01,20(@13) 0002 00021000 ST @11,8(,@13) 0002 00022000 LR @13,@11 0002 00023000 MVC @PC00001(8),0(@01) 0002 00024000 EJECT 00025000 * 0015 00026000 * /*****************************************************************/ 00027000 * /* */ 00028000 * /* INITIALIZE MODULE STATUS */ 00029000 * /* */ 00030000 * /*****************************************************************/ 00031000 * 0015 00032000 * DMCBPTR=ADDR(DMCBPARM); /* BASE THE DMCB */ 00033000 L DMCBPTR,@PC00001 0015 00034000 * MODNAME=LMODNMC; 0016 00035000 MVC MODNAME(8),@CC00313 0016 00036000 * RETCODE=F0C; 0017 00037000 SLR @10,@10 0017 00038000 ST @10,RETCODE 0017 00039000 * CLEN=F0C; /* INIT COMPARE LENGTH */ 00040000 SLR CLEN,CLEN 0018 00041000 * ALBAS=ADDR(ALPARMS); /* SET ALPARM BASE TO PLIST START*/ 00042000 * 0019 00043000 L ALBAS,@PC00001+4 0019 00044000 LA @10,ALPARMS(,ALBAS) 0019 00045000 LR ALBAS,@10 0019 00046000 * /*****************************************************************/ 00047000 * /* */ 00048000 * /* VALIDATE OVERRIDE DSNAME WITH ALLOCATED DSNAME */ 00049000 * /* */ 00050000 * /*****************************************************************/ 00051000 * 0020 00052000 * IF OPNPVL=ON THEN /* TEST FOR NO OVERRIDE PARMS */ 00053000 L @10,@PC00001+4 0020 00054000 TM OPNPVL(@10),B'10000000' 0020 00055000 BNO @RF00020 0020 00056000 * RETCODE=ZZZFLAGT; /* OVERRIDE PARM IS REQUIRED */ 00057000 MVC RETCODE(4),@CF00054 0021 00058000 * ELSE 0022 00059000 * DO; /* OVERRIDE PARM PRESENT */ 00060000 B @RC00020 0022 00061000 @RF00020 DS 0H 0023 00062000 * ALOPT=ALOP&LHEX7FC; /* ELIMINATE LAST ENTRY BIT FROM 00063000 * KEY CODE */ 00064000 LA ALOPT,127 0023 00065000 SLR @10,@10 0023 00066000 IC @10,ALOP(,ALBAS) 0023 00067000 NR ALOPT,@10 0023 00068000 * IF ALOPT^=DSNOPC THEN /* TEST NOT DATA SET NAME PARM */ 00069000 C ALOPT,@CF00070 0024 00070000 BE @RF00024 0024 00071000 * RETCODE=ZZZFLAGT; /* DSN PARM MUST BE FIRST PARM */ 00072000 MVC RETCODE(4),@CF00054 0025 00073000 * ELSE 0026 00074000 * DO; /* DATA SET NAME PARM */ 00075000 B @RC00024 0026 00076000 @RF00024 DS 0H 0027 00077000 * ALBAS=ALBAS+F4C; /* BUMP PLIST BASE TO PARM LENGTH 00078000 * ADDR */ 00079000 AL ALBAS,@CF00039 0027 00080000 * IF ALPTR=F0C|ALPTR=ZZZNULL|/* TEST FOR INVALID LENGTH 0028 00081000 * POINTER */ 00082000 * CLENF44C THEN/* OR FOR INVALID DSN PARM 0028 00083000 * LENGTH */ 00084000 SLR @10,@10 0028 00085000 L @04,ALPTR(,ALBAS) 0028 00086000 CR @04,@10 0028 00087000 BE @RT00028 0028 00088000 CL @04,@CF00063 0028 00089000 BE @RT00028 0028 00090000 CR CLEN,@10 0028 00091000 BL @RT00028 0028 00092000 C CLEN,@CF00088 0028 00093000 BNH @RF00028 0028 00094000 @RT00028 DS 0H 0029 00095000 * RETCODE=ZZZFLAGT; /* INVALID DSN PARM LENGTH */ 00096000 MVC RETCODE(4),@CF00054 0029 00097000 * ELSE 0030 00098000 * DO; /* VALID DSN LENGTH */ 00099000 B @RC00028 0030 00100000 @RF00028 DS 0H 0031 00101000 * CLEN=ALPTF31; /* GET COMPARE LENGTH */ 00102000 L @10,ALPTR(,ALBAS) 0031 00103000 L CLEN,ALPTF31(,@10) 0031 00104000 * ALBAS=ALBAS+F4C; /* BUMP ALPARM BASE TO GET PTR TO 00105000 * VL PARM FIELD */ 00106000 AL ALBAS,@CF00039 0032 00107000 * IF ALPTR=F0C|ALPTR=ZZZNULL|/* TEST FOR INVALID DSN 0033 00108000 * POINTER */ 00109000 * DMCBDSN(F1C:CLEN)^=ALPTCVL(F1C:CLEN) THEN/* OR 0033 00110000 * FOR NO DATA SET NAME MATCH */ 00111000 L @10,ALPTR(,ALBAS) 0033 00112000 LTR @10,@10 0033 00113000 BZ @RT00033 0033 00114000 CL @10,@CF00063 0033 00115000 BE @RT00033 0033 00116000 LR @04,CLEN 0033 00117000 BCTR @04,0 0033 00118000 EX @04,@SC00323 0033 00119000 BE @RF00033 0033 00120000 @RT00033 DS 0H 0034 00121000 * RETCODE=ZZZFLAGT; /* DATA SET NAMES MUST MATCH */ 00122000 MVC RETCODE(4),@CF00054 0034 00123000 * END; /* VALID DSN LENGTH */ 00124000 @RF00033 DS 0H 0036 00125000 * END; /* DATA SET NAME PARM */ 00126000 @RC00028 DS 0H 0037 00127000 * END; /* OVERRIDE PARM PRESENT */ 00128000 @RC00024 DS 0H 0038 00129000 SPACE 1 00130000 * RETURN CODE(RETCODE); /* ALL DONE */ 00131000 @RC00020 L @10,RETCODE 0038 00132000 L @13,4(,@13) 0038 00133000 L @00,@SIZDATD 0038 00134000 LR @01,@11 0038 00135000 BLSCFREF R,LV=(0),A=(1) 00136000 LR @15,@10 0038 00137000 L @14,12(,@13) 0038 00138000 LM @00,@12,20(@13) 0038 00139000 BR @14 0038 00140000 EJECT 00141000 * 0039 00142000 * /*****************************************************************/ 00143000 * /* */ 00144000 * /* PROCEDURE STATEMENTS END */ 00145000 * /* */ 00146000 * /*****************************************************************/ 00147000 * 0039 00148000 */*BLSUPEND--MVS IPCS MODULE */ 00149000 * 0039 00150000 * DECLARE /* COMMON VARIABLES */ 00151000 * I256C CHAR(256) BASED, 0039 00152000 * I031F FIXED(31) BASED, 0039 00153000 * I031P PTR(31) BASED, 0039 00154000 * I015F FIXED(15) BASED, 0039 00155000 * I015P PTR(15) BASED, 0039 00156000 * I008P PTR(8) BASED, 0039 00157000 * I001C CHAR(1) BASED; 0039 00158000 * GENERATE NODEFS NOREFS DATA; 0040 00159000 * END; /* BLRPEND */ 00160000 @EL00001 L @13,4(,@13) 0041 00161000 @EF00001 L @00,@SIZDATD 0041 00162000 LR @01,@11 0041 00163000 BLSCFREF R,LV=(0),A=(1) 00164000 @ER00001 LM @14,@12,12(@13) 0041 00165000 BR @14 0041 00166000 @DATA DS 0H 00167000 @SC00323 CLC DMCBDSN(0,DMCBPTR),ALPTCVL(@10) 00168000 @DATD DSECT 00169000 DS 0F 00170000 @SA00001 DS 18F 00171000 @PC00001 DS 2F 00172000 BLSCADST CSECT 00173000 DS 0F 00174000 @CF00070 DC F'2' 00175000 @CF00039 DC F'4' 00176000 @CF00054 DC F'16' 00177000 @CF00088 DC F'44' 00178000 @CF00063 DC XL4'80000000' 00179000 @DATD DSECT 00180000 DS 0D 00181000 MODSTAT DS CL12 00182000 ORG MODSTAT 00183000 MODNAME DS CL8 00184000 RETCODE DS FL4 00185000 ORG MODSTAT+12 00186000 BLSCADST CSECT 00187000 DS 0F 00188000 @SIZDATD DC AL1(0) 00189000 DC AL3(@ENDDATD-@DATD) 00190000 DS 0D 00191000 @CC00313 DC C'BLSCADST' 00192000 @DATD DSECT 00193000 SPACE 2 00194000 *********************************************************************** 00195000 * THE FOLLOWING AREA, BLRPATCH, IS RESERVED FOR PATCH APPLICATION * 00196000 * TO OBTAIN PATCH ROOM IN THE @DATD AUTOMATIC STORAGE AREA, MODIFY * 00197000 * CONSTANT @SIZDATD TO REFLECT THE DESIRED @DATD SIZE * 00198000 *********************************************************************** 00199000 SPACE 00200000 BLSCADST CSECT 00201000 ORG 00202000 DS 0D 00203000 BLRPATCH DC CL8'ZAPAREA',(((*-BLSCADST+19)/20+7)/8)CL8'BLSCADST' 00204000 @DATD DSECT 00205000 SPACE 2 00206000 *********************************************************************** 00207000 * ALIGN END OF DATA ON A DOUBLEWORD BOUNDARY * 00208000 *********************************************************************** 00209000 SPACE 00210000 DS 0D 00211000 @DATD DSECT 00212000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 00213000 @ENDDATD EQU * 00214000 BLSCADST CSECT 00215000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 00216000 @01 EQU 01 00217000 @02 EQU 02 00218000 @03 EQU 03 00219000 @04 EQU 04 00220000 @05 EQU 05 00221000 @06 EQU 06 00222000 @07 EQU 07 00223000 @08 EQU 08 00224000 @09 EQU 09 00225000 @10 EQU 10 00226000 @11 EQU 11 00227000 @12 EQU 12 00228000 @13 EQU 13 00229000 @14 EQU 14 00230000 @15 EQU 15 00231000 ALOPT EQU @04 00232000 CLEN EQU @03 00233000 ALBAS EQU @02 00234000 DMCBPTR EQU @05 00235000 DMCB EQU 0 00236000 DMCBFTY EQU DMCB+20 00237000 DMCBOPN EQU DMCB+21 00238000 DMCBRMOD EQU DMCB+23 00239000 DMCBOUT EQU DMCBRMOD 00240000 DMCBOPTS EQU DMCB+24 00241000 DMCBGKY EQU DMCBOPTS 00242000 DMCBMFLG EQU DMCB+28 00243000 DMCBBUFP EQU DMCB+32 00244000 DMCBKEYP EQU DMCB+44 00245000 DMCBRI EQU DMCB+64 00246000 DMCBFRE EQU DMCB+88 00247000 DMCBEOB EQU DMCB+92 00248000 DMCBACBE EQU DMCB+124 00249000 DMCBDSN EQU DMCB+284 00250000 DMCBSPEC EQU DMCB+380 00251000 DMCBAMS EQU DMCB+416 00252000 DMCBAUDT EQU DMCB+568 00253000 DMCBLSCP EQU DMCBAUDT+16 00254000 ALPTR EQU 0 00255000 ALOP EQU ALPTR 00256000 ALPRB4C1 EQU ALPTR+3 00257000 ALPTF31 EQU 0 00258000 ALPTB2C3 EQU ALPTF31+1 00259000 ALPTB3C2 EQU ALPTB2C3+1 00260000 ALPTCVL EQU 0 00261000 DMCBDMGR EQU 0 00262000 DMCBRQC EQU 0 00263000 I001C EQU 0 00264000 I008P EQU 0 00265000 I015F EQU 0 00266000 I015P EQU 0 00267000 I031F EQU 0 00268000 I031P EQU 0 00269000 I256C EQU 0 00270000 DMCBPARM EQU 0 00271000 PLIST EQU 0 00272000 OPNP EQU PLIST+16 00273000 OPNPVL EQU OPNP 00274000 ALPARMS EQU PLIST+20 00275000 DMCBVSM EQU DMCBAMS 00276000 DMCBQSM EQU DMCBAMS 00277000 AGO .@UNREFD START UNREFERENCED COMPONENTS 00278000 DMCBRES7 EQU DMCBQSM+96 00279000 DMCBDCB EQU DMCBQSM 00280000 DMCBACB EQU DMCBVSM+76 00281000 DMCBRPL EQU DMCBVSM 00282000 ACMODP EQU PLIST+12 00283000 MODELP EQU PLIST+8 00284000 DMCBPP EQU PLIST+4 00285000 ZZ2P EQU PLIST 00286000 ALPTB4C1 EQU ALPTB3C2+1 00287000 @NM00004 EQU ALPTB3C2 00288000 @NM00003 EQU ALPTB2C3 00289000 @NM00002 EQU ALPTF31 00290000 ALPRB4F1 EQU ALPRB4C1 00291000 @NM00001 EQU ALPTR+1 00292000 ALVL EQU ALOP 00293000 DMCBWRK EQU DMCB+648 00294000 DMCBRES8 EQU DMCB+640 00295000 DMCBMODN EQU DMCB+632 00296000 DMCBCARY EQU DMCBAUDT+20 00297000 DMCBCLC EQU DMCBAUDT+12 00298000 DMCBOPC EQU DMCBAUDT+8 00299000 DMCBFRC EQU DMCBAUDT+4 00300000 DMCBALC EQU DMCBAUDT 00301000 DMCBFR EQU DMCB+412 00302000 DMCBRES6 EQU DMCB+410 00303000 DMCBIRSC EQU DMCB+408 00304000 DMCBSUBC EQU DMCB+404 00305000 DMCBDRBP EQU DMCB+400 00306000 DMCBRSZM EQU DMCB+398 00307000 DMCBRSZA EQU DMCB+396 00308000 DMCBCISZ EQU DMCB+394 00309000 DMCBDCBL EQU DMCB+392 00310000 DMCBDCLR EQU DMCB+390 00311000 DMCBDCFM EQU DMCB+389 00312000 DMCBRES5 EQU DMCB+388 00313000 DMCBLBRT EQU DMCB+386 00314000 DMCBLBSQ EQU DMCB+384 00315000 DMCBLBPS EQU DMCB+383 00316000 DMCBLBTY EQU DMCB+382 00317000 DMCBRES4 EQU DMCB+381 00318000 DMCBSPRS EQU DMCBSPEC 00319000 DMCBSPRN EQU DMCBSPEC 00320000 DMCBSPCT EQU DMCBSPEC 00321000 DMCBSPRL EQU DMCBSPEC 00322000 DMCBSPSE EQU DMCB+376 00323000 DMCBSPPR EQU DMCB+372 00324000 DMCBSPTY EQU DMCB+369 00325000 DMCBODIS EQU DMCB+368 00326000 DMCBDISP EQU DMCB+367 00327000 DMCBSTAT EQU DMCB+366 00328000 DMCBRES3 EQU DMCB+364 00329000 DMCBMEMB EQU DMCB+356 00330000 DMCBMODL EQU DMCB+348 00331000 DMCBRES9 EQU DMCB+340 00332000 DMCBPID EQU DMCB+332 00333000 DMCBTYPE EQU DMCB+328 00334000 DMCBUNIT EQU DMCB+276 00335000 DMCBDSOR EQU DMCB+274 00336000 DMCBVOL EQU DMCB+268 00337000 DMCBDDNM EQU DMCB+260 00338000 DMCBSYNM EQU DMCB+132 00339000 DMCBRPLF EQU DMCB+128 00340000 DMCBDCBE EQU DMCBACBE 00341000 DMCBARC EQU DMCB+120 00342000 DMCBCPC EQU DMCB+116 00343000 DMCBRET EQU DMCB+112 00344000 DMCBSTL EQU DMCB+96 00345000 DMCBRES2 EQU DMCB+85 00346000 DMCBSPID EQU DMCB+84 00347000 DMCBRESC EQU DMCB+80 00348000 DMCBZZ1P EQU DMCB+76 00349000 DMCBMSGS EQU DMCB+72 00350000 DMCBMSG0 EQU DMCB+68 00351000 DMCBRRL EQU DMCB+60 00352000 DMCBRBA EQU DMCB+56 00353000 DMCBMSG EQU DMCB+52 00354000 DMCBKEYL EQU DMCB+48 00355000 DMCBKPC EQU DMCBKEYP 00356000 DMCBORL EQU DMCB+40 00357000 DMCBBLEN EQU DMCB+36 00358000 DMCBBFPC EQU DMCBBUFP 00359000 DMCBRES1 EQU DMCB+31 00360000 DMCBACCM EQU DMCB+30 00361000 DMCBREJ EQU DMCB+29 00362000 DMCBRESB EQU DMCBMFLG 00363000 DMCBFMOD EQU DMCBMFLG 00364000 DMCBLOPT EQU DMCB+27 00365000 DMCBLRM EQU DMCB+26 00366000 DMCBLRQ EQU DMCB+25 00367000 DMCBOPRS EQU DMCBOPTS 00368000 DMCBLRD EQU DMCBOPTS 00369000 DMCBBWD EQU DMCBOPTS 00370000 DMCBUPD EQU DMCBOPTS 00371000 DMCBAPX EQU DMCBOPTS 00372000 DMCBRNO EQU DMCBGKY 00373000 DMCBKYD EQU DMCBOPTS 00374000 DMCBRMRS EQU DMCBRMOD 00375000 DMCBRM5 EQU DMCBRMOD 00376000 DMCBRM6 EQU DMCBRMOD 00377000 DMCBTMP EQU DMCBOUT 00378000 DMCBRQST EQU DMCB+22 00379000 DMCBRESA EQU DMCBOPN 00380000 DMCBSOUT EQU DMCBOPN 00381000 DMCBSIN EQU DMCBOPN 00382000 DMCBVSF EQU DMCBFTY 00383000 DMCBKSF EQU DMCBFTY 00384000 DMCBFTRS EQU DMCBFTY 00385000 DMCBSHF EQU DMCBFTY 00386000 DMCBIRL EQU DMCB+16 00387000 DMCBRTC EQU DMCB+12 00388000 DMCBTVP EQU DMCB+8 00389000 DMCBNEXT EQU DMCB+4 00390000 DMCBID EQU DMCB 00391000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 00392000 @ENDDATA EQU * 00393000 END BLSCADST,(C'PLS2001',0701,78062) 00394000