TITLE 'BLSCRQST -- IPCS DAS DATA ACCESS REQUEST INTERFACE *00001000 ' 00002000 * /* CHANGE ACTIVITY 00003000 * THIS MODULE IS WRITTEN FOR @G57LPSR 00004000 BLSCRQST CSECT , 0002 00005000 @MAINENT DS 0H 0002 00006000 USING *,@15 0002 00007000 B @PROLOG 0002 00008000 DC AL1(16) 0002 00009000 DC C'BLSCRQST 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 BLSCGETS 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 * DMCBPTR=GPR01P; /* BASE THE DMCB */ 00024000 LR DMCBPTR,GPR01P 0012 00025000 * RFY 0013 00026000 * GPR01P UNRSTD; 0013 00027000 * MODNAME=LMODNMC; /* MARK AUTOMATIC STORAGE WITH 0014 00028000 * MODULE NAME */ 00029000 MVC MODNAME(8),@CC00235 0014 00030000 * DMCBRTC=F0C; /* INIT THE RETURN CODE */ 00031000 SLR @10,@10 0015 00032000 ST @10,DMCBRTC(,DMCBPTR) 0015 00033000 * DMCBREJ=F0C; /* INIT THE REJECT CODE */ 00034000 MVI DMCBREJ(DMCBPTR),X'00' 0016 00035000 * DMCBSUBC=F0C; /* INIT THE VSAM RETURN CODE */ 00036000 ST @10,DMCBSUBC(,DMCBPTR) 0017 00037000 * DMCBACBE=F0C; /* INIT THE ACB ERROR REASON CODE*/ 00038000 ST @10,DMCBACBE(,DMCBPTR) 0018 00039000 * DMCBRPLF=F0C; /* INIT THE RPL FEEDBACK CODE */ 00040000 * 0019 00041000 ST @10,DMCBRPLF(,DMCBPTR) 0019 00042000 * /*****************************************************************/ 00043000 * /* */ 00044000 * /* FIND THE CURRENT TASK VARIABLE FOR TCB */ 00045000 * /* */ 00046000 * /*****************************************************************/ 00047000 * 0020 00048000 * CALL BLSCRTCB(DMCB); /* OBTAIN CURRENT ZZ2 TASK VAR */ 00049000 * 0020 00050000 ST DMCBPTR,@AL00001 0020 00051000 L @15,@CV00210 0020 00052000 LA @01,@AL00001 0020 00053000 BALR @14,@15 0020 00054000 * /*****************************************************************/ 00055000 * /* */ 00056000 * /* SAVE REQUEST CALLER */ 00057000 * /* */ 00058000 * /*****************************************************************/ 00059000 * 0021 00060000 * IF DMCBRQST=DMCBOPR /* FOR OPEN REQUEST SAVE RETURN */ 00061000 * THEN 0021 00062000 CLI DMCBRQST(DMCBPTR),1 0021 00063000 BNE @RF00021 0021 00064000 * DMCBOPC=CALLER14; /* ADDRESS IN DMCBOPC */ 00065000 L @10,CSAVEP(,DMCBPTR) 0022 00066000 L @10,CALLER14(,@10) 0022 00067000 ST @10,DMCBOPC(,DMCBPTR) 0022 00068000 * IF DMCBRQST=DMCBCLR /* FOR CLOSE REQUEST SAVE RETURN */ 00069000 * THEN 0023 00070000 @RF00021 CLI DMCBRQST(DMCBPTR),2 0023 00071000 BNE @RF00023 0023 00072000 * DMCBCLC=CALLER14; /* ADDRESS IN DMCBCLC */ 00073000 L @10,CSAVEP(,DMCBPTR) 0024 00074000 L @10,CALLER14(,@10) 0024 00075000 ST @10,DMCBCLC(,DMCBPTR) 0024 00076000 * ELSE 0025 00077000 * DO; /* ELSE SAVE IT IN PROPER SLOT IN 00078000 * WRAP AROUND LIST */ 00079000 B @RC00023 0025 00080000 @RF00023 DS 0H 0026 00081000 * IF(DMCBLSCP=ADDR(DMCBCARY(F1C) 00082000 * )) THEN 0026 00083000 L @10,DMCBLSCP(,DMCBPTR) 0026 00084000 LA @02,DMCBCARY+36(,DMCBPTR) 0026 00085000 CR @10,@02 0026 00086000 BNL @RF00026 0026 00087000 LA @02,DMCBCARY(,DMCBPTR) 0026 00088000 CR @10,@02 0026 00089000 BL @RF00026 0026 00090000 * DMCBLSCP=DMCBLSCP+F4C; 0027 00091000 AL @10,@CF00037 0027 00092000 ST @10,DMCBLSCP(,DMCBPTR) 0027 00093000 * ELSE 0028 00094000 * DMCBLSCP=ADDR(DMCBCARY(F1C)); 0028 00095000 B @RC00026 0028 00096000 @RF00026 LA @10,DMCBCARY(,DMCBPTR) 0028 00097000 ST @10,DMCBLSCP(,DMCBPTR) 0028 00098000 * DMCBRQC=CALLER14; 0029 00099000 @RC00026 L @10,DMCBLSCP(,DMCBPTR) 0029 00100000 L @02,CSAVEP(,DMCBPTR) 0029 00101000 L @02,CALLER14(,@02) 0029 00102000 ST @02,DMCBRQC(,@10) 0029 00103000 * END; 0030 00104000 * 0030 00105000 * /*****************************************************************/ 00106000 * /* */ 00107000 * /* NOW DETERMINE REQUEST VALIDITY */ 00108000 * /* */ 00109000 * /*****************************************************************/ 00110000 * 0031 00111000 * IF(DMCBRQST>DMCBPOR)| /* IS REQUEST RANGE */ 00112000 * (DMCBRQST=LX00C) /* INVALID */ 00113000 * THEN 0031 00114000 @RC00023 CLI DMCBRQST(DMCBPTR),8 0031 00115000 BH @RT00031 0031 00116000 CLI DMCBRQST(DMCBPTR),0 0031 00117000 BNE @RF00031 0031 00118000 @RT00031 DS 0H 0032 00119000 * DO; /* INVALID REQUEST */ 00120000 * DMCBRTC=F4C; /* INDICATE INVALID REQUEST */ 00121000 MVC DMCBRTC(4,DMCBPTR),@CF00037 0033 00122000 * DO; /* ABEND(F129C) DUMP USER */ 00123000 * RESPECIFY 0035 00124000 * (GPR01F) RESTRICTED; 0035 00125000 * GPR01F=(F129C)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 00126000 LA GPR01F,129 0036 00127000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 00128000 O GPR01F,@CF00241 0037 00129000 * SVC(13); /* ISSUE ABEND SVC */ 00130000 SVC 13 0038 00131000 * RESPECIFY 0039 00132000 * (GPR01F) UNRESTRICTED; 0039 00133000 * END; /* ABEND(F129C) DUMP USER ABEND 00134000 * FOR INVALID REQUEST */ 00135000 * END; /* INVALID REQUEST */ 00136000 * ELSE 0042 00137000 * DO; /* WITHIN VALID RANGE */ 00138000 * 0042 00139000 B @RC00031 0042 00140000 @RF00031 DS 0H 0043 00141000 * /*************************************************************/ 00142000 * /* */ 00143000 * /* CALL PROPER ROUTINE. RQPROC IS THE PROPER ENTRY OF RQPROCS*/ 00144000 * /* AS SELECTED BY THE DMCBRQST FIELD */ 00145000 * /* */ 00146000 * /*************************************************************/ 00147000 * 0043 00148000 * RFY 0043 00149000 * GPR01P RSTD; 0043 00150000 * GPR01P=DMCBPTR; /* PASS THE DMCB POINTER */ 00151000 LR GPR01P,DMCBPTR 0044 00152000 * CALL RQPROCS(DMCBRQST)->RQPROC; 0045 00153000 SLR @10,@10 0045 00154000 IC @10,DMCBRQST(,DMCBPTR) 0045 00155000 SLA @10,2 0045 00156000 L @15,RQPROCS-4(@10) 0045 00157000 BALR @14,@15 0045 00158000 * RFY 0046 00159000 * GPR01P UNRSTD; 0046 00160000 * 0046 00161000 * /*************************************************************/ 00162000 * /* */ 00163000 * /* REMEMBER THIS REQUEST */ 00164000 * /* */ 00165000 * /*************************************************************/ 00166000 * 0047 00167000 * DMCBLRQ=DMCBRQST; /* THIS REQUEST IS NOW THE LAST 00168000 * REQUEST */ 00169000 IC @10,DMCBRQST(,DMCBPTR) 0047 00170000 STC @10,DMCBLRQ(,DMCBPTR) 0047 00171000 * DMCBLRM=DMCBRMOD; /* UNTIL THE NEXT REQUEST */ 00172000 MVC DMCBLRM(1,DMCBPTR),DMCBRMOD(DMCBPTR) 0048 00173000 * DMCBLOPT=DMCBOPTS; /* REMEMBER THE OPTIONS TOO */ 00174000 * 0049 00175000 MVC DMCBLOPT(1,DMCBPTR),DMCBOPTS(DMCBPTR) 0049 00176000 * /*************************************************************/ 00177000 * /* */ 00178000 * /* FORCE VSAM UPDATE MODE OFF AS REQUIRED */ 00179000 * /* */ 00180000 * /*************************************************************/ 00181000 * 0050 00182000 * IF DMCBRQST=DMCBGER& /* IF GET REQUEST AND */ 00183000 * DMCBRTC^=F0C THEN /* GET ERROR */ 00184000 CLI DMCBRQST(DMCBPTR),4 0050 00185000 BNE @RF00050 0050 00186000 L @10,DMCBRTC(,DMCBPTR) 0050 00187000 LTR @10,@10 0050 00188000 BZ @RF00050 0050 00189000 * DMCBUPD=OFF; /* TURN OFF UPDATE MODE */ 00190000 NI DMCBUPD(DMCBPTR),B'11101111' 0051 00191000 * IF DMCBRQST=DMCBPUR| /* IF PUT REQUEST OR */ 00192000 * DMCBRQST=DMCBERR| /* ERASE REQUEST OR */ 00193000 * DMCBRQST=DMCBENR THEN /* END REQUEST */ 00194000 @RF00050 CLI DMCBRQST(DMCBPTR),5 0052 00195000 BE @RT00052 0052 00196000 CLI DMCBRQST(DMCBPTR),6 0052 00197000 BE @RT00052 0052 00198000 CLI DMCBRQST(DMCBPTR),7 0052 00199000 BNE @RF00052 0052 00200000 @RT00052 DS 0H 0053 00201000 * DMCBUPD=OFF; /* TURN OFF UPDATE MODE */ 00202000 * 0053 00203000 NI DMCBUPD(DMCBPTR),B'11101111' 0053 00204000 * /*************************************************************/ 00205000 * /* */ 00206000 * /* IF FUNCTION ERROR, DO ERROR ANALYSIS */ 00207000 * /* */ 00208000 * /*************************************************************/ 00209000 * 0054 00210000 * IF DMCBRTC^=F0C& /* TEST FOR FUNCTION ERROR AND */ 00211000 * NOANLE=OFF THEN /* ERROR ANALYSIS DESIRED */ 00212000 @RF00052 L @10,DMCBRTC(,DMCBPTR) 0054 00213000 LTR @10,@10 0054 00214000 BZ @RF00054 0054 00215000 TM NOANLE(DMCBPTR),B'10000000' 0054 00216000 BNZ @RF00054 0054 00217000 * DO; /* ANALYZE FUNCTION ERROR */ 00218000 * CALL BLSCANLE(DMCB); /* ANALYZE FUNCTION ERROR */ 00219000 ST DMCBPTR,@AL00001 0056 00220000 L @15,@CV00209 0056 00221000 LA @01,@AL00001 0056 00222000 BALR @14,@15 0056 00223000 * END; /* ANALYZE FUNCTION ERROR */ 00224000 * NOANLE=OFF; /* RESET NO ERROR ANALYSIS SWITCH*/ 00225000 @RF00054 NI NOANLE(DMCBPTR),B'01111111' 0058 00226000 * CALLER0=DMCBMSG; /* PASS MESSAGE POINTER TO 0059 00227000 * CALLER'S REG 0 */ 00228000 L @10,CSAVEP(,DMCBPTR) 0059 00229000 L @02,DMCBMSG(,DMCBPTR) 0059 00230000 ST @02,CALLER0(,@10) 0059 00231000 * END; /* WITHIN VALID RANGE */ 00232000 * RETURN CODE(DMCBRTC); /* RETURN THE CODE REPORTED BY 0061 00233000 * THE FUNCTION */ 00234000 * 0061 00235000 @RC00031 L @10,DMCBRTC(,DMCBPTR) 0061 00236000 L @13,4(,@13) 0061 00237000 L @00,@SIZDATD 0061 00238000 LR @01,@11 0061 00239000 BLSCFRES R,LV=(0),A=(1) 00240000 LR @15,@10 0061 00241000 L @14,12(,@13) 0061 00242000 LM @00,@12,20(@13) 0061 00243000 BR @14 0061 00244000 * /*****************************************************************/ 00245000 * /* */ 00246000 * /* PROCEDURE STATEMENTS END */ 00247000 * /* */ 00248000 * /*****************************************************************/ 00249000 * 0062 00250000 * DECLARE /* GENERAL PURPOSE REGISTERS */ 00251000 * GPR01F FIXED(31) REG(1), 0062 00252000 * GPR01P PTR(31) REG(1); 0062 00253000 * DECLARE /* COMMON VARIABLES */ 00254000 * I256C CHAR(256) BASED, 0063 00255000 * I031F FIXED(31) BASED, 0063 00256000 * I031P PTR(31) BASED, 0063 00257000 * I015F FIXED(15) BASED, 0063 00258000 * I015P PTR(15) BASED, 0063 00259000 * I008P PTR(8) BASED, 0063 00260000 * I001C CHAR(1) BASED; 0063 00261000 * DCL 0064 00262000 * 1 DASPATCH LOCAL BDY(DWORD), /* PATCH AREA */ 00263000 * 2 DASPATA(DASPATLN) PTR INIT((DASPATLN)0); 0064 00264000 * END BLSCRQST; 0065 00265000 @DATA DS 0H 00266000 @DATD DSECT 00267000 DS 0F 00268000 @SA00001 DS 18F 00269000 @AL00001 DS 1A 00270000 BLSCRQST CSECT 00271000 DS 0F 00272000 @CF00037 DC F'4' 00273000 @CF00241 DC XL4'80000000' 00274000 @DATD DSECT 00275000 DS 0D 00276000 MODNAME DS CL8 00277000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 00278000 @ENDDATD EQU * 00279000 BLSCRQST CSECT 00280000 DS 0F 00281000 @SIZDATD DC AL1(0) 00282000 DC AL3(@ENDDATD-@DATD) 00283000 @CV00201 DC V(BLSCOPEN) 00284000 @CV00202 DC V(BLSCCLSE) 00285000 @CV00203 DC V(BLSCSETT) 00286000 @CV00204 DC V(BLSCGETT) 00287000 @CV00205 DC V(BLSCPUTT) 00288000 @CV00206 DC V(BLSCERSE) 00289000 @CV00207 DC V(BLSCENDD) 00290000 @CV00208 DC V(BLSCPOIN) 00291000 @CV00209 DC V(BLSCANLE) 00292000 @CV00210 DC V(BLSCRTCB) 00293000 DS 0D 00294000 @CC00235 DC C'BLSCRQST' 00295000 DASPATCH DS CL80 00296000 ORG DASPATCH 00297000 DASPATA DC 20A(0) 00298000 ORG DASPATCH+80 00299000 RQPROCS DC VL4(BLSCOPEN) 00300000 DC VL4(BLSCCLSE) 00301000 DC VL4(BLSCSETT) 00302000 DC VL4(BLSCGETT) 00303000 DC VL4(BLSCPUTT) 00304000 DC VL4(BLSCERSE) 00305000 DC VL4(BLSCENDD) 00306000 DC VL4(BLSCPOIN) 00307000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 00308000 @01 EQU 01 00309000 @02 EQU 02 00310000 @03 EQU 03 00311000 @04 EQU 04 00312000 @05 EQU 05 00313000 @06 EQU 06 00314000 @07 EQU 07 00315000 @08 EQU 08 00316000 @09 EQU 09 00317000 @10 EQU 10 00318000 @11 EQU 11 00319000 @12 EQU 12 00320000 @13 EQU 13 00321000 @14 EQU 14 00322000 @15 EQU 15 00323000 DMCBPTR EQU @03 00324000 GPR01P EQU @01 00325000 GPR01F EQU @01 00326000 DMCB EQU 0 00327000 DMCBRTC EQU DMCB+12 00328000 DMCBFTY EQU DMCB+20 00329000 DMCBOPN EQU DMCB+21 00330000 DMCBRQST EQU DMCB+22 00331000 DMCBRMOD EQU DMCB+23 00332000 DMCBOUT EQU DMCBRMOD 00333000 DMCBOPTS EQU DMCB+24 00334000 DMCBGKY EQU DMCBOPTS 00335000 DMCBUPD EQU DMCBOPTS 00336000 DMCBLRQ EQU DMCB+25 00337000 DMCBLRM EQU DMCB+26 00338000 DMCBLOPT EQU DMCB+27 00339000 DMCBMFLG EQU DMCB+28 00340000 DMCBREJ EQU DMCB+29 00341000 DMCBBUFP EQU DMCB+32 00342000 DMCBKEYP EQU DMCB+44 00343000 DMCBMSG EQU DMCB+52 00344000 DMCBRI EQU DMCB+64 00345000 DMCBFRE EQU DMCB+88 00346000 DMCBEOB EQU DMCB+92 00347000 DMCBACBE EQU DMCB+124 00348000 DMCBRPLF EQU DMCB+128 00349000 DMCBSPEC EQU DMCB+380 00350000 DMCBSUBC EQU DMCB+404 00351000 DMCBAMS EQU DMCB+416 00352000 DMCBAUDT EQU DMCB+568 00353000 DMCBOPC EQU DMCBAUDT+8 00354000 DMCBCLC EQU DMCBAUDT+12 00355000 DMCBLSCP EQU DMCBAUDT+16 00356000 DMCBCARY EQU DMCBAUDT+20 00357000 DMCBWRK EQU DMCB+648 00358000 DMCBRQC EQU 0 00359000 RQPROC EQU 0 00360000 CALLER14 EQU 12 00361000 CALLER0 EQU 20 00362000 DMCBDMGR EQU 0 00363000 I001C EQU 0 00364000 I008P EQU 0 00365000 I015F EQU 0 00366000 I015P EQU 0 00367000 I031F EQU 0 00368000 I031P EQU 0 00369000 I256C EQU 0 00370000 DMCBVSM EQU DMCBAMS 00371000 DMCBQSM EQU DMCBAMS 00372000 NOANLE EQU DMCBRTC 00373000 RQSTSAVE EQU DMCBWRK 00374000 CSAVEP EQU RQSTSAVE+4 00375000 AGO .@UNREFD START UNREFERENCED COMPONENTS 00376000 @NM00002 EQU RQSTSAVE+12 00377000 NSAVEP EQU RQSTSAVE+8 00378000 @NM00001 EQU RQSTSAVE 00379000 DMCBRES7 EQU DMCBQSM+96 00380000 DMCBDCB EQU DMCBQSM 00381000 DMCBACB EQU DMCBVSM+76 00382000 DMCBRPL EQU DMCBVSM 00383000 DMCBRES8 EQU DMCB+640 00384000 DMCBMODN EQU DMCB+632 00385000 DMCBFRC EQU DMCBAUDT+4 00386000 DMCBALC EQU DMCBAUDT 00387000 DMCBFR EQU DMCB+412 00388000 DMCBRES6 EQU DMCB+410 00389000 DMCBIRSC EQU DMCB+408 00390000 DMCBDRBP EQU DMCB+400 00391000 DMCBRSZM EQU DMCB+398 00392000 DMCBRSZA EQU DMCB+396 00393000 DMCBCISZ EQU DMCB+394 00394000 DMCBDCBL EQU DMCB+392 00395000 DMCBDCLR EQU DMCB+390 00396000 DMCBDCFM EQU DMCB+389 00397000 DMCBRES5 EQU DMCB+388 00398000 DMCBLBRT EQU DMCB+386 00399000 DMCBLBSQ EQU DMCB+384 00400000 DMCBLBPS EQU DMCB+383 00401000 DMCBLBTY EQU DMCB+382 00402000 DMCBRES4 EQU DMCB+381 00403000 DMCBSPRS EQU DMCBSPEC 00404000 DMCBSPRN EQU DMCBSPEC 00405000 DMCBSPCT EQU DMCBSPEC 00406000 DMCBSPRL EQU DMCBSPEC 00407000 DMCBSPSE EQU DMCB+376 00408000 DMCBSPPR EQU DMCB+372 00409000 DMCBSPTY EQU DMCB+369 00410000 DMCBODIS EQU DMCB+368 00411000 DMCBDISP EQU DMCB+367 00412000 DMCBSTAT EQU DMCB+366 00413000 DMCBRES3 EQU DMCB+364 00414000 DMCBMEMB EQU DMCB+356 00415000 DMCBMODL EQU DMCB+348 00416000 DMCBRES9 EQU DMCB+340 00417000 DMCBPID EQU DMCB+332 00418000 DMCBTYPE EQU DMCB+328 00419000 DMCBDSN EQU DMCB+284 00420000 DMCBUNIT EQU DMCB+276 00421000 DMCBDSOR EQU DMCB+274 00422000 DMCBVOL EQU DMCB+268 00423000 DMCBDDNM EQU DMCB+260 00424000 DMCBSYNM EQU DMCB+132 00425000 DMCBDCBE EQU DMCBACBE 00426000 DMCBARC EQU DMCB+120 00427000 DMCBCPC EQU DMCB+116 00428000 DMCBRET EQU DMCB+112 00429000 DMCBSTL EQU DMCB+96 00430000 DMCBRES2 EQU DMCB+85 00431000 DMCBSPID EQU DMCB+84 00432000 DMCBRESC EQU DMCB+80 00433000 DMCBZZ1P EQU DMCB+76 00434000 DMCBMSGS EQU DMCB+72 00435000 DMCBMSG0 EQU DMCB+68 00436000 DMCBRRL EQU DMCB+60 00437000 DMCBRBA EQU DMCB+56 00438000 DMCBKEYL EQU DMCB+48 00439000 DMCBKPC EQU DMCBKEYP 00440000 DMCBORL EQU DMCB+40 00441000 DMCBBLEN EQU DMCB+36 00442000 DMCBBFPC EQU DMCBBUFP 00443000 DMCBRES1 EQU DMCB+31 00444000 DMCBACCM EQU DMCB+30 00445000 DMCBRESB EQU DMCBMFLG 00446000 DMCBFMOD EQU DMCBMFLG 00447000 DMCBOPRS EQU DMCBOPTS 00448000 DMCBLRD EQU DMCBOPTS 00449000 DMCBBWD EQU DMCBOPTS 00450000 DMCBAPX EQU DMCBOPTS 00451000 DMCBRNO EQU DMCBGKY 00452000 DMCBKYD EQU DMCBOPTS 00453000 DMCBRMRS EQU DMCBRMOD 00454000 DMCBRM5 EQU DMCBRMOD 00455000 DMCBRM6 EQU DMCBRMOD 00456000 DMCBTMP EQU DMCBOUT 00457000 DMCBRESA EQU DMCBOPN 00458000 DMCBSOUT EQU DMCBOPN 00459000 DMCBSIN EQU DMCBOPN 00460000 DMCBVSF EQU DMCBFTY 00461000 DMCBKSF EQU DMCBFTY 00462000 DMCBFTRS EQU DMCBFTY 00463000 DMCBSHF EQU DMCBFTY 00464000 DMCBIRL EQU DMCB+16 00465000 DMCBTVP EQU DMCB+8 00466000 DMCBNEXT EQU DMCB+4 00467000 DMCBID EQU DMCB 00468000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 00469000 @ENDDATA EQU * 00470000 END BLSCRQST,(C'PLS1948',0701,78062) 00471000