TITLE 'BLSFAD00-ADD DATA SET NAME SUBCOMMAND PROCESSOR *00001000 ' 00002000 * /* CHANGE ACTIVITY */ 00003000 * THIS MODULE IS WRITTEN FOR @G57LPRM 00004000 BLSFAD00 CSECT , 01S0002 00005000 @MAINENT DS 0H 01S0002 00006000 USING *,@15 01S0002 00007000 B @PROLOG 01S0002 00008000 DC AL1(16) 01S0002 00009000 DC C'BLSFAD00 78.065' 01S0002 00010000 DROP @15 00011000 @PROLOG STM @14,@12,12(@13) 01S0002 00012000 BALR @12,0 01S0002 00013000 @PSTART DS 0H 01S0002 00014000 USING @PSTART,@12 01S0002 00015000 L @00,@SIZDATD 01S0002 00016000 BLSUALLR R,LV=(0) 00017000 LR @11,@01 01S0002 00018000 USING @DATD,@11 01S0002 00019000 ST @13,@SA00001+4 01S0002 00020000 LM @00,@01,20(@13) 01S0002 00021000 ST @11,8(,@13) 01S0002 00022000 LR @13,@11 01S0002 00023000 *BLREXTRN - IDENTIFY EXTERNAL REFERENCES 00024000 EXTRN BLSDC600 00025000 * ZZ2PTR=R1; /* GET TASK VARIABLE ADDR */ 00026000 LR ZZ2PTR,R1 01S0222 00027000 * RESPECIFY 01S0223 00028000 * R1 UNRESTRICTED; /* RELEASE R1 */ 00029000 * 01S0223 00030000 * /*****************************************************************/ 00031000 * /* */ 00032000 * /* INITIALIZE AREAS TO TRACK PROCESSING THROUGH MODULE AREAS HAVE*/ 00033000 * /* THE LABELS OF FADRETC AND FADBITC IN THE AUTOMATIC STORAGE */ 00034000 * /* AREA TO BE USED AS EYE CATCHERS */ 00035000 * /* */ 00036000 * /*****************************************************************/ 00037000 * 01S0224 00038000 * TRACK=TRACK&&TRACK; /* INITIALIZE TRACKING FIELDS */ 00039000 XC TRACK(11),TRACK 01S0224 00040000 * TRKCODE=TRKCODE&&TRKCODE; /* INIT RETCODES TO ZERO */ 00041000 XC TRKCODE(36),TRKCODE 01S0225 00042000 * ENQFLAG=ENQFLAG&&ENQFLAG; /* CLEAR ENQ FLAG AREA */ 00043000 XC ENQFLAG(1),ENQFLAG 01S0226 00044000 * TRKLBL=FADRETC; /* INIT LABEL ON RETCODES */ 00045000 MVC TRKLBL(8),@CC01071 01S0227 00046000 * BITLBL=FADBITC; /* INIT LABEL ON BIT MAPS */ 00047000 MVC BITLBL(8),@CC01073 01S0228 00048000 * PIDPREF=ZEROCHAR; /* INITIALIZE THE PREFIX */ 00049000 MVC PIDPREF(3),ZEROCHAR 01S0229 00050000 * RETC=ZERO; /* INITIALIZE THE RETC */ 00051000 SLR RETC,RETC 01S0230 00052000 * CALL CLEARREC; /* CLEAR ALL RECORDS TO BIN ZEROS*/ 00053000 BAL @14,CLEARREC 01S0231 00054000 */* *********************************************************** */ 00055000 */* */ 00056000 */* START OF MODULE PROCESSING */ 00057000 */* */ 00058000 */* *********************************************************** */ 00059000 * 01S0232 00060000 * 01S0232 00061000 * /*****************************************************************/ 00062000 * /* */ 00063000 * /* CALL IKJPARSE TO PARSE THE COMMAND OPERANDS */ 00064000 * /* */ 00065000 * /*****************************************************************/ 00066000 * 01S0232 00067000 * PARSE='1'B; /* TRACK CALL TO PARSE */ 00068000 OI PARSE,B'01000000' 01S0232 00069000 * DO; /* BLSUPARS CONFIRMATION MF(E,PX)*/ 00070000 * CALL BLSUPARI(ZZ2,PCCSECT,PDAPTR);/* PARSE OPERANDS */ 00071000 ST ZZ2PTR,@AL00001 01S0234 00072000 L @10,PCPTR 01S0234 00073000 ST @10,@AL00001+4 01S0234 00074000 LA @10,PDAPTR 01S0234 00075000 ST @10,@AL00001+8 01S0234 00076000 L @10,ZZ2BVTP(,ZZ2PTR) 01S0234 00077000 L @15,BVTPARIP(,@10) 01S0234 00078000 LA @01,@AL00001 01S0234 00079000 BALR @14,@15 01S0234 00080000 * RESPECIFY 01S0235 00081000 * (GPR15F) RESTRICTED; 01S0235 00082000 * IF GPR15F^=ZZZFLAGI THEN 01S0236 00083000 * 01S0236 00084000 LTR GPR15F,GPR15F 01S0236 00085000 BZ @RF00236 01S0236 00086000 * /*************************************************************/ 00087000 * /* */ 00088000 * /* UNABLE TO PARSE */ 00089000 * /* */ 00090000 * /*************************************************************/ 00091000 * 01S0237 00092000 * DO; /* UNABLE TO PARSE */ 00093000 * RETC=GPR15F; /* RETURN CODE */ 00094000 LR RETC,GPR15F 01S0238 00095000 * GO TO EXITNORL; /* EXIT WITHOUT PDL */ 00096000 B EXITNORL 01S0239 00097000 * END; 01S0240 00098000 * RESPECIFY 01S0241 00099000 * (GPR15F) UNRESTRICTED; 01S0241 00100000 @RF00236 DS 0H 01S0242 00101000 * RESPECIFY 01S0242 00102000 * (PDRPTR) RESTRICTED; 01S0242 00103000 * PDRPTR=PDAPTR; /* ->PDL */ 00104000 L PDRPTR,PDAPTR 01S0243 00105000 * GENERATE REFS(PD,PDRPTR) CODE(USING PD,PDRPTR); 01S0244 00106000 USING PD,PDRPTR 00107000 * IF PXTEST=PXTEST1 THEN 01S0245 00108000 CLC PXTEST(2),@CH00040 01S0245 00109000 BNE @RF00245 01S0245 00110000 * ZZ2AFX=ZZZ1; /* TEST */ 00111000 OI ZZ2AFX(ZZ2PTR),B'10000000' 01S0246 00112000 * ELSE 01S0247 00113000 * IF PXTEST=PXTEST0 THEN 01S0247 00114000 B @RC00245 01S0247 00115000 @RF00245 CLC PXTEST(2),@CH00067 01S0247 00116000 BNE @RF00247 01S0247 00117000 * ZZ2AFX=ZZZ0; /* NOTEST */ 00118000 NI ZZ2AFX(ZZ2PTR),B'01111111' 01S0248 00119000 * IF PXCONF=PXCONF1 THEN 01S0249 00120000 @RF00247 DS 0H 01S0249 00121000 @RC00245 CLC PXCONF(2),@CH00040 01S0249 00122000 BNE @RF00249 01S0249 00123000 * ZZ2AFC=ZZZ1; /* CONFIRM */ 00124000 OI ZZ2AFC(ZZ2PTR),B'10000000' 01S0250 00125000 * ELSE 01S0251 00126000 * IF PXCONF=PXCONF0 THEN 01S0251 00127000 B @RC00249 01S0251 00128000 @RF00249 CLC PXCONF(2),@CH00067 01S0251 00129000 BNE @RF00251 01S0251 00130000 * ZZ2AFC=ZZZ0; /* NOCONFIRM */ 00131000 NI ZZ2AFC(ZZ2PTR),B'01111111' 01S0252 00132000 * END; /* BLSUPARS CONFIRMATION MF(E,PX) 00133000 * PARSE ROUTINE CALLED */ 00134000 * 01S0253 00135000 @RF00251 DS 0H 01S0253 00136000 @RC00249 DS 0H 01S0254 00137000 * /*****************************************************************/ 00138000 * /* */ 00139000 * /* RETURNED FROM PARSE WITH GOOD LIST CONTINUE PROCESSING */ 00140000 * /* */ 00141000 * /*****************************************************************/ 00142000 * 01S0254 00143000 * 01S0254 00144000 * /*****************************************************************/ 00145000 * /* */ 00146000 * /* VERIFY THAT THE PROBLEM NUMBER SPECIFIED IS VALID, AND THAT */ 00147000 * /* THE DATA SET SPECIFIED CAN HAVE THE MANAGED ATTR REQUESTED BY */ 00148000 * /* USER. */ 00149000 * /* */ 00150000 * /*****************************************************************/ 00151000 * 01S0254 00152000 * FAV='1'B; /* INDICATE WE ARE REQ VALIDITY 00153000 * CHK */ 00154000 OI FAV,B'00100000' 01S0254 00155000 * CALL BLSFAV00(ZZ2,DSNS,PRN,MAN,CURDSN,CURMEM,CURPID,PDRSTKEY, 00156000 * DSDBSKEY,OLDSTPDR,ENQFLAG); /* GET CURRENT PROB AND DSN (READ 00157000 * IN PDR STATUS RECORD, IF 01S0255 00158000 * AVAILABLE) */ 00159000 ST ZZ2PTR,@AL00001 01S0255 00160000 LA @10,DSNS 01S0255 00161000 ST @10,@AL00001+4 01S0255 00162000 LA @10,PRN 01S0255 00163000 ST @10,@AL00001+8 01S0255 00164000 LA @10,MAN 01S0255 00165000 ST @10,@AL00001+12 01S0255 00166000 LA @10,CURDSN 01S0255 00167000 ST @10,@AL00001+16 01S0255 00168000 LA @10,CURMEM 01S0255 00169000 ST @10,@AL00001+20 01S0255 00170000 LA @10,CURPID 01S0255 00171000 ST @10,@AL00001+24 01S0255 00172000 LA @10,PDRSTKEY 01S0255 00173000 ST @10,@AL00001+28 01S0255 00174000 LA @10,DSDBSKEY 01S0255 00175000 ST @10,@AL00001+32 01S0255 00176000 LA @10,OLDSTPDR 01S0255 00177000 ST @10,@AL00001+36 01S0255 00178000 LA @10,ENQFLAG 01S0255 00179000 ST @10,@AL00001+40 01S0255 00180000 L @15,@CV01151 01S0255 00181000 LA @01,@AL00001 01S0255 00182000 BALR @14,@15 01S0255 00183000 * RESPECIFY 01S0256 00184000 * RF RESTRICTED; /* SAVE REG 15 */ 00185000 * FAVCODE=RF; /* SAVE THE CODE FOR TRACK AND 00186000 * TEST */ 00187000 ST RF,FAVCODE 01S0257 00188000 * IF ENQDONE='1'B THEN /* HAS ENQUEUE BEEN COMPLETED? */ 00189000 TM ENQDONE,B'10000000' 01S0258 00190000 BNO @RF00258 01S0258 00191000 * ENQ='1'B; /* YES, MARK IT FOR FUTURE 01S0259 00192000 * PROCESSING */ 00193000 OI ENQ,B'00010000' 01S0259 00194000 * IF RF