TITLE 'EP=BLSCFDYN -- IPCS DAS FREE DYNAMIC ALLOCATION INTERFA*00001000 ACE ' 00002000 * /* CHANGE ACTIVITY 00003000 * THIS MODULE IS WRITTEN FOR @G57LPSR 00004000 BLSCFDYN CSECT , 0002 00005000 @MAINENT DS 0H 0002 00006000 USING *,@15 0002 00007000 B @PROLOG 0002 00008000 DC AL1(16) 0002 00009000 DC C'BLSCFDYN 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 * 0032 00025000 * /*****************************************************************/ 00026000 * /* */ 00027000 * /* INITIALIZE MODULE STATUS */ 00028000 * /* */ 00029000 * /*****************************************************************/ 00030000 * 0032 00031000 * DMCBPTR=ADDR(DMCBPARM); /* BASE THE DMCB */ 00032000 L DMCBPTR,@PC00001 0032 00033000 * MODNAME=LMODNMC; /* INITIALIZE THE MODULE NAME */ 00034000 MVC MODNAME(8),@CC00584 0033 00035000 * RETCODE=F0C; /* INIT THE MODULE RETURN CODE */ 00036000 SLR @10,@10 0034 00037000 ST @10,RETCODE 0034 00038000 * SUBCODE=F0C; /* INIT THE SUBROUTINE RETURN 0035 00039000 * CODE FOR DEBUG */ 00040000 ST @10,SUBCODE 0035 00041000 * S99TUFP=F0C; /* INIT THE TEXT UNIT MULTIPLE 0036 00042000 * ENTRY BASE (UNUSED VARIABLE) */ 00043000 * 0036 00044000 SLR S99TUFP,S99TUFP 0036 00045000 * /*****************************************************************/ 00046000 * /* */ 00047000 * /* BUILD DYNALLOC PARAMETER LIST TO FREE DATA SET */ 00048000 * /* */ 00049000 * /*****************************************************************/ 00050000 * 0037 00051000 * S99RB=S99RB&&S99RB; /* CLEAR THE REQUEST BLOCK */ 00052000 XC S99RB(20),S99RB 0037 00053000 * TUL=TUL&&TUL; /* CLEAR THE TEXT UNIT POINTERS 00054000 * AND TEXT UNIT AREA */ 00055000 XC TUL(80),TUL 0038 00056000 * S99RBPTR=ADDR(S99RB); /* INIT THE REQUEST BLOCK POINTER*/ 00057000 LA @02,S99RB 0039 00058000 ST @02,S99RBPTR 0039 00059000 * S99RBPND=ON; /* LAST POINTER INDICATOR */ 00060000 OI S99RBPND,B'10000000' 0040 00061000 * S99RBLN=F20C; /* REQUEST BLOCK LENGTH */ 00062000 MVI S99RBLN,X'14' 0041 00063000 * S99VERB=S99VRBUN; /* VERB IS UNALLOCATE */ 00064000 MVI S99VERB,X'02' 0042 00065000 * S99TXTPP=ADDR(TUPL); /* TEXT UNIT POINTER LIST ADDRESS*/ 00066000 LA @02,TUPL 0043 00067000 ST @02,S99TXTPP 0043 00068000 * S99TUBAS=ADDR(TUS); /* START OF TEXT UNIT AREA */ 00069000 LA S99TUBAS,TUS 0044 00070000 * RFY 0045 00071000 * S99TUNIT BASED(S99TUBAS); /* BASE THE TEXT UNIT MAP */ 00072000 * 0045 00073000 * /*****************************************************************/ 00074000 * /* */ 00075000 * /* BUILD UNALLOCATE BY DDNAME TEXT UNIT */ 00076000 * /* */ 00077000 * /*****************************************************************/ 00078000 * 0046 00079000 * S99TUPTR(F1C)=S99TUBAS; /* TEXT UNIT POINTER LIST ENTRY */ 00080000 ST S99TUBAS,S99TUPTR(,@02) 0046 00081000 * S99TUKEY=DUNDDNAM; /* UNALLOCATE BY DDNAME */ 00082000 MVC S99TUKEY(2,S99TUBAS),@CB00306 0047 00083000 * S99TUNUM=F1C; /* NUMBER OF TU ENTRIES */ 00084000 LA @02,1 0048 00085000 STCM @02,3,S99TUNUM(S99TUBAS) 0048 00086000 * S99TULNG=F8C; /* TEXT UNIT ENTRY LENGTH */ 00087000 MVC S99TULNG(2,S99TUBAS),@CH00048 0049 00088000 * S99TUPAR(F1C:F8C)=DMCBDDNM; /* DDNAME INTO TEXT UNIT ENTRY */ 00089000 MVC S99TUPAR(8,S99TUBAS),DMCBDDNM(DMCBPTR) 0050 00090000 * S99TUPLM=F1C; /* TEXT UNIT POINTER LIST DIM */ 00091000 LR S99TUPLM,@02 0051 00092000 * S99TUPLX=F2C; /* TEXT UNIT POINTER LIST INDEX */ 00093000 LA S99TUPLX,2 0052 00094000 * S99TUBAS=S99TUBAS+F14C; /* BUMP TU BASE FOR NEXT FREE TU */ 00095000 * 0053 00096000 AL S99TUBAS,@CF00549 0053 00097000 * /*****************************************************************/ 00098000 * /* */ 00099000 * /* OBTAIN DISPOSITION OVERRIDE FROM PARM LIST */ 00100000 * /* */ 00101000 * /*****************************************************************/ 00102000 * 0054 00103000 * DMCBODIS=F0C; /* INIT THE OVERRIDE DISP FIELD */ 00104000 MVI DMCBODIS(DMCBPTR),X'00' 0054 00105000 * ALBAS=ADDR(PLIST); /* BASE THE PARM LIST */ 00106000 L ALBAS,@PC00001+4 0055 00107000 * IF ALPTR^=F0C THEN /* TEST FOR OVERRIDE PARM LIST 0056 00108000 * EXISTENCE */ 00109000 C @10,ALPTR(,ALBAS) 0056 00110000 BE @RF00056 0056 00111000 * DO; /* PARM LIST EXISTS */ 00112000 * ALSW=OFF; /* INIT LOOP SWITCH */ 00113000 NI ALSW,B'01111111' 0058 00114000 * DO WHILE ALSW=OFF; /* LOOP THROUGH PARM LIST */ 00115000 B @DE00059 0059 00116000 @DL00059 DS 0H 0060 00117000 * ALOPT=ALOP&LHEX7FC; /* MASK LAST ENTRY BIT FROM KEY 00118000 * CODE */ 00119000 LA ALOPT,127 0060 00120000 SLR @10,@10 0060 00121000 IC @10,ALOP(,ALBAS) 0060 00122000 NR ALOPT,@10 0060 00123000 * IF ALOPT=DISPOP THEN /* TEST FOR DISP PARAMETER */ 00124000 C ALOPT,@CF00052 0061 00125000 BNE @RF00061 0061 00126000 * CALL DISPPROC; /* GET DISP OVERRIDE */ 00127000 BAL @14,DISPPROC 0062 00128000 * ELSE 0063 00129000 * IF ALOPT=PASSOP THEN /* TEST FOR PASSWORD PARAMETER */ 00130000 B @RC00061 0063 00131000 @RF00061 C ALOPT,@CF00564 0063 00132000 BNE @RF00063 0063 00133000 * DO; /* SKIP OVER PASSWORD PARAMETER */ 00134000 * ALBAS=ALBAS+F8C; /* SKIP TO END OF PASSWORD 0065 00135000 * PARAMETER */ 00136000 AL ALBAS,@CF00048 0065 00137000 * END; /* SKIP OVER PASSWORD PARAMETER */ 00138000 * ELSE 0067 00139000 * DO; /* INVALID PARAMETER KEY CODE */ 00140000 B @RC00063 0067 00141000 @RF00063 DS 0H 0068 00142000 * CHSTR867=ALOPT; /* GET KEY FIELD */ 00143000 STCM ALOPT,3,CHSTR867 0068 00144000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO CHARACTER HEX */ 00145000 MVI CHSTR88,X'0F' 0069 00146000 * UNPK(CTEMP,CHSTR8); 0070 00147000 UNPK CTEMP(9),CHSTR8(8) 0070 00148000 * TR(CTEMP,HEXTBL); 0071 00149000 TR CTEMP(9),HEXTBL 0071 00150000 * DO; /* BLSDMSG 0072 00151000 * (ZZ2,F3117C,DMCBMSG,BLSDMSGS) 00152000 * INSERT(MODNAME,CTEMP72) */ 00153000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT 0073 00154000 * INSERT */ 00155000 LA @10,IOPTLIST+12 0073 00156000 ST @10,IOPTLIST 0073 00157000 * IOPTLIST(2)=ADDR(MODNAME);/* INSERT NAME POINTER */ 00158000 LA @10,MODNAME 0074 00159000 ST @10,IOPTLIST+4 0074 00160000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 00161000 SLR @10,@10 0075 00162000 ST @10,IOPTLIST+8 0075 00163000 * RFY 0076 00164000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 0076 00165000 * 1-2 */ 00166000 * I015F=LENGTH(MODNAME);/* INSERT LENGTH */ 00167000 LA @02,IOPTLIST+8 0077 00168000 MVC I015F(2,@02),@CH00048 0077 00169000 * IOPTLIST(4)=0; /* LAST INSERT */ 00170000 ST @10,IOPTLIST+12 0078 00171000 * IOPTLIST(5)=ADDR(CTEMP72);/* INSERT NAME POINTER */ 00172000 LA @02,CTEMP72 0079 00173000 ST @02,IOPTLIST+16 0079 00174000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 00175000 ST @10,IOPTLIST+20 0080 00176000 * RFY 0081 00177000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 0081 00178000 * 1-2 */ 00179000 * I015F=LENGTH(CTEMP72);/* INSERT LENGTH */ 00180000 LA @10,IOPTLIST+20 0082 00181000 MVC I015F(2,@10),@CH00076 0082 00182000 * CALL BLSDMSG0(ZZ2,F3117C,DMCBMSG,BLSDMSGS,'00000000'B 00183000 * ,ADDR(IOPTLIST));/* BUILD MESSAGE */ 00184000 L @10,DMCBTVP(,DMCBPTR) 0083 00185000 ST @10,@AL00001 0083 00186000 LA @10,@CF00557 0083 00187000 ST @10,@AL00001+4 0083 00188000 LA @10,DMCBMSG(,DMCBPTR) 0083 00189000 ST @10,@AL00001+8 0083 00190000 L @10,DMCBMSGS(,DMCBPTR) 0083 00191000 ST @10,@AL00001+12 0083 00192000 LA @10,@CB00599 0083 00193000 ST @10,@AL00001+16 0083 00194000 LA @10,IOPTLIST 0083 00195000 ST @10,@AFTEMPS+4 0083 00196000 LA @10,@AFTEMPS+4 0083 00197000 ST @10,@AL00001+20 0083 00198000 L @15,DMCBMSG0(,DMCBPTR) 0083 00199000 LA @01,@AL00001 0083 00200000 BALR @14,@15 0083 00201000 * END; /* BLSDMSG 0084 00202000 * (ZZ2,F3117C,DMCBMSG,BLSDMSGS) 00203000 * INSERT(MODNAME,CTEMP72) BUILD 00204000 * ERROR MESSAGE */ 00205000 * ALSW=ON; /* SET END OF LOOP */ 00206000 OI ALSW,B'10000000' 0085 00207000 * RETCODE=ERROR; /* MARK ERROR */ 00208000 MVC RETCODE(4),@CF00048 0086 00209000 * DO; /* ABEND(110) DUMP USER */ 00210000 * RESPECIFY 0088 00211000 * (GPR01F) RESTRICTED; 0088 00212000 * GPR01F=(110)&'00000FFF'X;/* COMP CODE IN BITS 20-31*/ 00213000 LA GPR01F,110 0089 00214000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS 0090 00215000 * FLAG */ 00216000 O GPR01F,@CF00602 0090 00217000 * SVC(13); /* ISSUE ABEND SVC */ 00218000 SVC 13 0091 00219000 * RESPECIFY 0092 00220000 * (GPR01F) UNRESTRICTED; 0092 00221000 * END; /* ABEND(110) DUMP USER INTERNAL 00222000 * ERROR */ 00223000 * END; /* INVALID PARAMETER KEY CODE */ 00224000 * IF ALVL=ON THEN /* TEST FOR LAST LIST ELEMENT */ 00225000 @RC00063 DS 0H 0095 00226000 @RC00061 TM ALVL(ALBAS),B'10000000' 0095 00227000 BNO @RF00095 0095 00228000 * DO; /* LAST LIST ELEMENT */ 00229000 * ALSW=ON; /* TERMINATE LIST PROCESSING */ 00230000 OI ALSW,B'10000000' 0097 00231000 * END; /* LAST LIST ELEMENT */ 00232000 * ELSE 0099 00233000 * ALBAS=ALBAS+F4C; /* SET UP FOR NEXT PLIST ENTRY */ 00234000 B @RC00095 0099 00235000 @RF00095 AL ALBAS,@CF00041 0099 00236000 * END; /* LOOP THROUGH PARM LIST */ 00237000 @RC00095 DS 0H 0100 00238000 @DE00059 TM ALSW,B'10000000' 0100 00239000 BZ @DL00059 0100 00240000 * END; /* PARM LIST EXISTS */ 00241000 * 0101 00242000 * /*****************************************************************/ 00243000 * /* */ 00244000 * /* HANDLE DISPOSITION OVERRIDE */ 00245000 * /* */ 00246000 * /*****************************************************************/ 00247000 * 0102 00248000 * IF RETCODE=F0C THEN /* TEST FOR PREVIOUS ERROR */ 00249000 @RF00056 L @10,RETCODE 0102 00250000 LTR @10,@10 0102 00251000 BNZ @RF00102 0102 00252000 * DO; /* OK SO FAR */ 00253000 * IF DMCBODIS^=F0C& /* TEST FOR DISPOSITION OVERRIDE */ 00254000 * DMCBVSF=OFF THEN /* AND NOT VSAM */ 00255000 CLI DMCBODIS(DMCBPTR),0 0104 00256000 BE @RF00104 0104 00257000 TM DMCBVSF(DMCBPTR),B'00000001' 0104 00258000 BNZ @RF00104 0104 00259000 * DO; /* BUILD DISP OVERRIDE TEXT UNIT */ 00260000 * S99TUPTR(F2C)=S99TUBAS; /* TEXT UNIT POINTER ENTRY */ 00261000 L @10,S99TXTPP 0106 00262000 ST S99TUBAS,S99TUPTR+4(,@10) 0106 00263000 * S99TUKEY=DUNOVDSP; /* OVERRIDING DISPOSITION */ 00264000 MVC S99TUKEY(2,S99TUBAS),@CB00314 0107 00265000 * S99TUNUM=F1C; /* NUMBER OF TU ENTRIES */ 00266000 LA @10,1 0108 00267000 STCM @10,3,S99TUNUM(S99TUBAS) 0108 00268000 * S99TULNG=F1C; /* TEXT UNIT ENTRY LENGTH */ 00269000 STCM @10,3,S99TULNG(S99TUBAS) 0109 00270000 * S99TUPAR(F1C)=DMCBODIS; /* OVERRIDE DISP INTO TU ENTRY */ 00271000 MVC S99TUPAR(1,S99TUBAS),DMCBODIS(DMCBPTR) 0110 00272000 * S99TUPLM=F2C; /* TEXT UNIT POINTER LIST DIM */ 00273000 LA S99TUPLM,2 0111 00274000 * S99TUPLX=F3C; /* TEXT UNIT POINTER LIST INDEX */ 00275000 LA S99TUPLX,3 0112 00276000 * S99TUBAS=S99TUBAS+F8C; /* BUMP TU BASE FOR NEXT FREE TU */ 00277000 AL S99TUBAS,@CF00048 0113 00278000 * END; /* BUILD DISP OVERRIDE TEXT UNIT */ 00279000 * 0114 00280000 * /*************************************************************/ 00281000 * /* */ 00282000 * /* HANDLE DATA SET RELEASE FOR DISP = DELETE */ 00283000 * /* */ 00284000 * /*************************************************************/ 00285000 * 0115 00286000 * IF DMCBODIS=DISPODEL| /* TEST OVERRIDE DISP = DELETE */ 00287000 * DMCBDISP=DISPNDEL THEN /* OR NORMAL DISP = DELETE */ 00288000 @RF00104 CLI DMCBODIS(DMCBPTR),X'04' 0115 00289000 BE @RT00115 0115 00290000 CLI DMCBDISP(DMCBPTR),X'04' 0115 00291000 BNE @RF00115 0115 00292000 @RT00115 DS 0H 0116 00293000 * DO; /* BUILD UNALLOC OPTION TEXT UNIT*/ 00294000 * S99TUPTR(S99TUPLX)=S99TUBAS;/* TEXT UNIT POINTER ENTRY */ 00295000 LR @10,S99TUPLX 0117 00296000 SLA @10,2 0117 00297000 L @05,S99TXTPP 0117 00298000 AL @05,@CF00658 0117 00299000 ST S99TUBAS,S99TUPTR(@10,@05) 0117 00300000 * S99TUKEY=DUNUNALC; /* UNALLOCATION OPTION */ 00301000 MVC S99TUKEY(2,S99TUBAS),@CB00318 0118 00302000 * S99TUNUM=F0C; /* NUMBER OF TU ENTRIES */ 00303000 SLR @10,@10 0119 00304000 STCM @10,3,S99TUNUM(S99TUBAS) 0119 00305000 * S99TUPLM=S99TUPLX; /* TEXT UNIT POINTER LIST DIM */ 00306000 LR S99TUPLM,S99TUPLX 0120 00307000 * S99TUPLX=S99TUPLX+F1C; /* TEXT UNIT POINTER LIST INDEX */ 00308000 AL S99TUPLX,@CF00050 0121 00309000 * S99TUBAS=S99TUBAS+F4C; /* BUMP TU BASE FOR NEXT FREE TU */ 00310000 AL S99TUBAS,@CF00041 0122 00311000 * END; /* BUILD UNALLOC OPTION TEXT UNIT*/ 00312000 * S99TUPLN(S99TUPLM)=ON; /* PARM LIST END MARKER */ 00313000 * 0124 00314000 @RF00115 LR @10,S99TUPLM 0124 00315000 SLA @10,2 0124 00316000 L @06,S99TXTPP 0124 00317000 ALR @06,@10 0124 00318000 AL @06,@CF00658 0124 00319000 OI S99TUPLN(@06),B'10000000' 0124 00320000 * /*************************************************************/ 00321000 * /* */ 00322000 * /* PERFORM DYNAMIC FREE FUNCTION */ 00323000 * /* */ 00324000 * /*************************************************************/ 00325000 * 0125 00326000 * RFY 0125 00327000 * (GPR01P, 0125 00328000 * GPR15F) RSTD; 0125 00329000 * GPR01P=ADDR(S99RBPTR); /* DYNALLOC PARM LIST ADDRESS */ 00330000 LA GPR01P,S99RBPTR 0126 00331000 */* MACDATE Y-2 73082 */ 00332000 * 0127 00333000 * SVC(99); /* PERFORM DYNAMIC FREE FUNCTION */ 00334000 SVC 99 0127 00335000 * SUBCODE=GPR15F; /* SAVE RETURN CODE FOR TEST */ 00336000 ST GPR15F,SUBCODE 0128 00337000 * RFY 0129 00338000 * (GPR01P, 0129 00339000 * GPR15F) UNRSTD; 0129 00340000 * IF SUBCODE^=F0C|S99INFO^=F0C THEN/* TEST FOR SUBROUTINE ERROR*/ 00341000 L @10,SUBCODE 0130 00342000 SLR @05,@05 0130 00343000 CR @10,@05 0130 00344000 BNE @RT00130 0130 00345000 LH @10,S99INFO 0130 00346000 N @10,@CF00659 0130 00347000 CR @05,@10 0130 00348000 BE @RF00130 0130 00349000 @RT00130 DS 0H 0131 00350000 * DO; /* DYNAMIC FREE FUNCTION FAILED */ 00351000 * 0131 00352000 * /*********************************************************/ 00353000 * /* */ 00354000 * /* PERFORM FREE ERROR ANALYSIS FUNCTION */ 00355000 * /* */ 00356000 * /*********************************************************/ 00357000 * 0132 00358000 * DMCBIRSC=S99INFO; /* SVC 99 INFORMATION CODE */ 00359000 MVC DMCBIRSC(2,DMCBPTR),S99INFO 0132 00360000 * DMCBSUBC=SUBCODE; /* DYNALLOC RETURN CODE */ 00361000 L @10,SUBCODE 0133 00362000 ST @10,DMCBSUBC(,DMCBPTR) 0133 00363000 * DMCBDRBP=ADDR(S99RB); /* DYNALLOC REQUEST BLOCK */ 00364000 LA @10,S99RB 0134 00365000 ST @10,DMCBDRBP(,DMCBPTR) 0134 00366000 * RFY 0135 00367000 * (GPR01P) RSTD; 0135 00368000 * GPR01P=DMCBPTR; /* PASS DMCB ADDRESS */ 00369000 LR GPR01P,DMCBPTR 0136 00370000 * RFY 0137 00371000 * (GPR01P) UNRSTD; 0137 00372000 * CALL BLSCANAL; /* PERFORM ERROR ANALYSIS */ 00373000 L @15,@CV00257 0138 00374000 BALR @14,@15 0138 00375000 * RFY 0139 00376000 * (GPR15F) RSTD; 0139 00377000 * SUBCODE=GPR15F; /* SAVE RETURN CODE FOR TEST */ 00378000 ST GPR15F,SUBCODE 0140 00379000 * RFY 0141 00380000 * (GPR15F) UNRSTD; 0141 00381000 * IF SUBCODE^=F0C THEN /* TEST FOR SUBROUTINE ERROR */ 00382000 L @10,SUBCODE 0142 00383000 LTR @10,@10 0142 00384000 BZ @RF00142 0142 00385000 * DO; /* ERROR ANALYSIS FAILED */ 00386000 * RETCODE=SUBCODE; /* MARK ERROR TO CALLER */ 00387000 ST @10,RETCODE 0144 00388000 * IF SUBCODE^=SEVERE THEN/* TEST FOR OTHER THAN GETMAIN 00389000 * ERROR */ 00390000 C @10,@CF00539 0145 00391000 BE @RF00145 0145 00392000 * DO; /* OTHER ERROR ANALYSIS ERROR */ 00393000 * DO; /* BLSDMSG (ZZ2,NOMSG,DMCBMSG,0) 00394000 * ROUTE(TERM) */ 00395000 * CALL BLSDMSG0(ZZ2,NOMSG,DMCBMSG,0,'00010000'B,0); 00396000 MVC @AL00001+4(20),@AL00148 0148 00397000 L @10,DMCBTVP(,DMCBPTR) 0148 00398000 ST @10,@AL00001 0148 00399000 LA @10,DMCBMSG(,DMCBPTR) 0148 00400000 ST @10,@AL00001+8 0148 00401000 L @15,DMCBMSG0(,DMCBPTR) 0148 00402000 LA @01,@AL00001 0148 00403000 BALR @14,@15 0148 00404000 * /* BUILD MESSAGE */ 00405000 * END; /* BLSDMSG (ZZ2,NOMSG,DMCBMSG,0) 00406000 * ROUTE(TERM) OUTPUT MESSAGE 0149 00407000 * LIST */ 00408000 * DO; /* ABEND(F133C) DUMP USER */ 00409000 * RESPECIFY 0151 00410000 * (GPR01F) RESTRICTED; 0151 00411000 * GPR01F=(F133C)&'00000FFF'X;/* COMP CODE IN BITS 00412000 * 20-31 */ 00413000 LA GPR01F,133 0152 00414000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS 00415000 * FLAG */ 00416000 O GPR01F,@CF00602 0153 00417000 * SVC(13); /* ISSUE ABEND SVC */ 00418000 SVC 13 0154 00419000 * RESPECIFY 0155 00420000 * (GPR01F) UNRESTRICTED; 0155 00421000 * END; /* ABEND(F133C) DUMP USER SVC99 00422000 * ERROR ANALYSIS FAILED */ 00423000 * END; /* OTHER ERROR ANALYSIS ERROR */ 00424000 * END; /* ERROR ANALYSIS FAILED */ 00425000 * ELSE 0159 00426000 * DO; /* ERROR ANALYSIS OK */ 00427000 B @RC00142 0159 00428000 @RF00142 DS 0H 0160 00429000 * IF DMCBSUBC=F0C THEN/* TEST FOR SVC 99 WARNING 0160 00430000 * CONDITION */ 00431000 L @10,DMCBSUBC(,DMCBPTR) 0160 00432000 LTR @10,@10 0160 00433000 BNZ @RF00160 0160 00434000 * RETCODE=WARNING; 0161 00435000 MVC RETCODE(4),@CF00041 0161 00436000 * ELSE 0162 00437000 * RETCODE=ERROR; 0162 00438000 B @RC00160 0162 00439000 @RF00160 MVC RETCODE(4),@CF00048 0162 00440000 * END; /* ERROR ANALYSIS OK */ 00441000 @RC00160 DS 0H 0164 00442000 * END; /* DYNAMIC FREE FUNCTION FAILED */ 00443000 @RC00142 DS 0H 0165 00444000 * END; /* OK SO FAR */ 00445000 * 0165 00446000 @RF00130 DS 0H 0166 00447000 * /*****************************************************************/ 00448000 * /* */ 00449000 * /* FREE COMPLETE, RETURN TO CALLER */ 00450000 * /* */ 00451000 * /*****************************************************************/ 00452000 * 0166 00453000 * RETURN CODE(RETCODE); 0166 00454000 @RF00102 L @10,RETCODE 0166 00455000 L @13,4(,@13) 0166 00456000 L @00,@SIZDATD 0166 00457000 LR @01,@11 0166 00458000 BLSCFREF R,LV=(0),A=(1) 00459000 LR @15,@10 0166 00460000 L @14,12(,@13) 0166 00461000 LM @00,@12,20(@13) 0166 00462000 BR @14 0166 00463000 EJECT 00464000 * 0167 00465000 * /*****************************************************************/ 00466000 * /* */ 00467000 * /* PROCEDURE TO PROCESS THE DISPOSITION PARAMETER */ 00468000 * /* */ 00469000 * /*****************************************************************/ 00470000 * 0167 00471000 *DISPPROC: 0167 00472000 * PROCEDURE; /* DISP PARM PROCESSING */ 00473000 DISPPROC STM @14,@04,@SA00002 0167 00474000 STM @06,@12,@SA00002+28 0167 00475000 * IF ALPRB4F1^=F0C THEN /* TEST FOR IMMEDIATE TEXT UNIT 00476000 * KEY VALUE */ 00477000 CLI ALPRB4F1(ALBAS),0 0168 00478000 BE @RF00168 0168 00479000 * DMCBODIS=ALPRB4F1; /* SET OVERRIDE DISPOSITION */ 00480000 IC @10,ALPRB4F1(,ALBAS) 0169 00481000 STC @10,DMCBODIS(,DMCBPTR) 0169 00482000 * ELSE 0170 00483000 * DO; /* GET OVERRIDE DISPOSITION FROM 00484000 * INDIRECT PARM FIELD */ 00485000 B @RC00168 0170 00486000 @RF00168 DS 0H 0171 00487000 * ALBAS=ALBAS+F4C; /* BUMP PLIST BASE TO PARM VALUE 00488000 * ADDRESS */ 00489000 AL ALBAS,@CF00041 0171 00490000 * IF ALPTC1^=LBLNKC THEN /* TEST FOR NON-NULL PARM VALUE */ 00491000 L @10,ALPTR(,ALBAS) 0172 00492000 CLI ALPTC1(@10),C' ' 0172 00493000 BE @RF00172 0172 00494000 * DO; /* NON-NULL PARM VALUE FIELD, 0173 00495000 * OBTAIN TEXT UNIT PARM VALUE */ 00496000 * CALL MATCH(RDISPP,LENGTH(DISPSTR),DISPSTR,FTMP8);/* GET 00497000 * TU PARM */ 00498000 ST @10,@AL00001 0174 00499000 LA @10,@CF00651 0174 00500000 ST @10,@AL00001+4 0174 00501000 LA @10,DISPSTR 0174 00502000 ST @10,@AL00001+8 0174 00503000 LA @10,FTMP8 0174 00504000 ST @10,@AL00001+12 0174 00505000 LA @01,@AL00001 0174 00506000 BAL @14,MATCH 0174 00507000 * IF FTMP8^=F0C THEN /* TEST FOR VALID PARM VALUE */ 00508000 CLI FTMP8,0 0175 00509000 BE @RF00175 0175 00510000 * DMCBODIS=FTMP8; /* SET OVERRIDE DISPOSITION */ 00511000 IC @10,FTMP8 0176 00512000 STC @10,DMCBODIS(,DMCBPTR) 0176 00513000 * ELSE 0177 00514000 * DO; /* INVALID PARM VALUE */ 00515000 B @RC00175 0177 00516000 @RF00175 DS 0H 0178 00517000 * ALSW=ON; /* TERMINATE LIST PROCESSING */ 00518000 OI ALSW,B'10000000' 0178 00519000 * RETCODE=ERROR; /* MARK ERROR */ 00520000 LA @10,8 0179 00521000 ST @10,RETCODE 0179 00522000 * DO; /* BLSDMSG 0180 00523000 * (ZZ2,F3118C,DMCBMSG,BLSDMSGS) 00524000 * INSERT(DISPKY,MODNAME,DISPKY,R 00525000 * DISPP) */ 00526000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT 0181 00527000 * INSERT */ 00528000 LA @15,IOPTLIST+12 0181 00529000 ST @15,IOPTLIST 0181 00530000 * IOPTLIST(2)=ADDR(DISPKY);/* INSERT NAME POINTER */ 00531000 LA @15,@CC00582 0182 00532000 ST @15,IOPTLIST+4 0182 00533000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 00534000 SLR @14,@14 0183 00535000 ST @14,IOPTLIST+8 0183 00536000 * RFY 0184 00537000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 0184 00538000 * 1-2 */ 00539000 * I015F=LENGTH(DISPKY);/* INSERT LENGTH */ 00540000 LA @09,4 0185 00541000 LA @08,IOPTLIST+8 0185 00542000 STH @09,I015F(,@08) 0185 00543000 * IOPTLIST(4)=ADDR(IOPTLIST(7));/* CHAIN TO NEXT 0186 00544000 * INSERT */ 00545000 LA @08,IOPTLIST+24 0186 00546000 ST @08,IOPTLIST+12 0186 00547000 * IOPTLIST(5)=ADDR(MODNAME);/* INSERT NAME POINTER */ 00548000 LA @08,MODNAME 0187 00549000 ST @08,IOPTLIST+16 0187 00550000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 00551000 ST @14,IOPTLIST+20 0188 00552000 * RFY 0189 00553000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 0189 00554000 * 1-2 */ 00555000 * I015F=LENGTH(MODNAME);/* INSERT LENGTH */ 00556000 LA @08,IOPTLIST+20 0190 00557000 STH @10,I015F(,@08) 0190 00558000 * IOPTLIST(7)=ADDR(IOPTLIST(10));/* CHAIN TO NEXT 0191 00559000 * INSERT */ 00560000 LA @10,IOPTLIST+36 0191 00561000 ST @10,IOPTLIST+24 0191 00562000 * IOPTLIST(8)=ADDR(DISPKY);/* INSERT NAME POINTER */ 00563000 ST @15,IOPTLIST+28 0192 00564000 * IOPTLIST(9)=0; /* ZERO RESERVED FIELD */ 00565000 ST @14,IOPTLIST+32 0193 00566000 * RFY 0194 00567000 * I015F BASED(ADDR(IOPTLIST(9)));/* ACCESS BYTES 0194 00568000 * 1-2 */ 00569000 * I015F=LENGTH(DISPKY);/* INSERT LENGTH */ 00570000 LA @10,IOPTLIST+32 0195 00571000 STH @09,I015F(,@10) 0195 00572000 * IOPTLIST(10)=0; /* LAST INSERT */ 00573000 ST @14,IOPTLIST+36 0196 00574000 * IOPTLIST(11)=ADDR(RDISPP);/* INSERT NAME POINTER */ 00575000 L @10,ALPTR(,ALBAS) 0197 00576000 ST @10,IOPTLIST+40 0197 00577000 * IOPTLIST(12)=0; /* ZERO RESERVED FIELD */ 00578000 ST @14,IOPTLIST+44 0198 00579000 * RFY 0199 00580000 * I015F BASED(ADDR(IOPTLIST(12)));/* ACCESS BYTES 00581000 * 1-2 */ 00582000 * I015F=LENGTH(RDISPP);/* INSERT LENGTH */ 00583000 LA @10,IOPTLIST+44 0200 00584000 MVC I015F(2,@10),@CH00083 0200 00585000 * CALL BLSDMSG0(ZZ2,F3118C,DMCBMSG,BLSDMSGS,'00000000'B 00586000 * ,ADDR(IOPTLIST));/* BUILD MESSAGE */ 00587000 L @10,DMCBTVP(,DMCBPTR) 0201 00588000 ST @10,@AL00001 0201 00589000 LA @10,@CF00559 0201 00590000 ST @10,@AL00001+4 0201 00591000 LA @10,DMCBMSG(,DMCBPTR) 0201 00592000 ST @10,@AL00001+8 0201 00593000 L @10,DMCBMSGS(,DMCBPTR) 0201 00594000 ST @10,@AL00001+12 0201 00595000 LA @10,@CB00599 0201 00596000 ST @10,@AL00001+16 0201 00597000 LA @10,IOPTLIST 0201 00598000 ST @10,@AFTEMPS 0201 00599000 LA @10,@AFTEMPS 0201 00600000 ST @10,@AL00001+20 0201 00601000 L @15,DMCBMSG0(,DMCBPTR) 0201 00602000 LA @01,@AL00001 0201 00603000 BALR @14,@15 0201 00604000 * END; /* BLSDMSG 0202 00605000 * (ZZ2,F3118C,DMCBMSG,BLSDMSGS) 00606000 * INSERT(DISPKY,MODNAME,DISPKY,R 00607000 * DISPP) ISSUE ERROR MESSAGE */ 00608000 * DO; /* ABEND(110) DUMP USER */ 00609000 * RESPECIFY 0204 00610000 * (GPR01F) RESTRICTED; 0204 00611000 * GPR01F=(110)&'00000FFF'X;/* COMP CODE IN BITS 20-31*/ 00612000 LA GPR01F,110 0205 00613000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS 0206 00614000 * FLAG */ 00615000 O GPR01F,@CF00602 0206 00616000 * SVC(13); /* ISSUE ABEND SVC */ 00617000 SVC 13 0207 00618000 * RESPECIFY 0208 00619000 * (GPR01F) UNRESTRICTED; 0208 00620000 * END; /* ABEND(110) DUMP USER INTERNAL 00621000 * ERROR */ 00622000 * END; /* INVALID PARM VALUE */ 00623000 * END; /* NON-NULL PARM VALUE FIELD, 0211 00624000 * OBTAIN TEXT UNIT PARM VALUE */ 00625000 * END; /* GET OVERRIDE DISPOSITION FROM 00626000 * INDIRECT PARM FIELD */ 00627000 * END DISPPROC; 0213 00628000 @EL00002 DS 0H 0213 00629000 @EF00002 DS 0H 0213 00630000 @ER00002 LM @14,@04,@SA00002 0213 00631000 LM @06,@12,@SA00002+28 0213 00632000 BR @14 0213 00633000 EJECT 00634000 * 0214 00635000 * /*****************************************************************/ 00636000 * /* */ 00637000 * /* PROCEDURE TO MATCH A VARIABLE LENGTH FIELD VALUE WITH A LIST */ 00638000 * /* OF VALID VALUES AND RETURN A ONE BYTE TEXT UNIT PARAMETER */ 00639000 * /* VALUE */ 00640000 * /* */ 00641000 * /*****************************************************************/ 00642000 * 0214 00643000 *MATCH: 0214 00644000 * PROCEDURE(MATFLD,MATSTRL,MATSTR,MATVAL); 0214 00645000 MATCH STM @14,@12,12(@13) 0214 00646000 MVC @PC00003(16),0(@01) 0214 00647000 * DCL 0215 00648000 * MATFLD CHAR(*), /* PARAMETER FIELD VALUE TO BE 0215 00649000 * EXAMINED */ 00650000 * MATSTRL BIN(31), /* LENGTH OF VALID VALUE STRING */ 00651000 * MATSTR CHAR(*), /* TEXT OF VALID VALUE STRING */ 00652000 * MATVAL CHAR(1), /* TEXT UNIT PARAMETER VALUE 0215 00653000 * RETURNED */ 00654000 * MATLEN BIN(31), /* LOCAL COPY OF MATSTRL */ 00655000 * MATSW BIT(1), /* 1 IF MATCH FOUND */ 00656000 * MATSK BIT(1), /* 1 IF NO MATCH WITH CURRENT 0215 00657000 * VALID VALUE */ 00658000 * MATI BIN(31), /* VALID VALUE STRING INDEX */ 00659000 * MATJ BIN(31), /* PARM FIELD VALUE INDEX */ 00660000 * MATHEX0 BIT(8) CONSTANT('00'X),/* LITERAL HEX 0 */ 00661000 * MATSTARC CHAR(1) CONSTANT('*');/* LITERAL '*' */ 00662000 SPACE 1 00663000 * MATVAL=MATHEX0; /* INIT RETURN VALUE TO NOT FOUND*/ 00664000 L @10,@PC00003+12 0216 00665000 MVI MATVAL(@10),X'00' 0216 00666000 * MATLEN=MATSTRL; /* MAKE LOCAL COPY OF STRING 0217 00667000 * LENGTH */ 00668000 L @10,@PC00003+4 0217 00669000 L MATLEN,MATSTRL(,@10) 0217 00670000 * MATSW=OFF; /* INIT MATCH FOUND SWITCH */ 00671000 NI MATSW,B'01111111' 0218 00672000 * MATSK=OFF; /* INIT CURRENT NO MATCH SWITCH */ 00673000 NI MATSK,B'01111111' 0219 00674000 * MATJ=F1C; /* INIT PARM FIELD INDEX */ 00675000 LA @10,1 0220 00676000 LR MATJ,@10 0220 00677000 * DO MATI=F1C TO MATLEN WHILE MATSW=OFF;/* SCAN VALID VALUE STRING */ 00678000 LR MATI,@10 0221 00679000 B @DE00221 0221 00680000 @DL00221 TM MATSW,B'10000000' 0221 00681000 BNZ @DC00221 0221 00682000 * IF MATSW=OFF THEN /* TEST THAT CURRENT VALID VALUE 00683000 * STRING MATCHES */ 00684000 TM MATSW,B'10000000' 0222 00685000 BNZ @RF00222 0222 00686000 * DO; /* CURRENT VALID VALUE STRING 0223 00687000 * MATCHES SO FAR */ 00688000 * IF MATSTR(MATI)=MATSTARC THEN/* TEST VALID VALUE DELIMITER */ 00689000 L @10,@PC00003+8 0224 00690000 LR @05,@10 0224 00691000 ALR @05,MATI 0224 00692000 BCTR @05,0 0224 00693000 CLI MATSTR(@05),C'*' 0224 00694000 BNE @RF00224 0224 00695000 * DO; /* MATCH FOUND */ 00696000 * MATSW=ON; /* PARM FIELD AND VALID VALUE 0226 00697000 * MATCH */ 00698000 OI MATSW,B'10000000' 0226 00699000 * MATI=MATI+F1C; /* BUMP VALID VALUE STRING TO 0227 00700000 * RETURN VALUE */ 00701000 AL MATI,@CF00050 0227 00702000 * MATVAL=MATSTR(MATI); /* RETURN TEXT UNIT PARAMETER 0228 00703000 * VALUE */ 00704000 L @05,@PC00003+12 0228 00705000 ALR @10,MATI 0228 00706000 BCTR @10,0 0228 00707000 MVC MATVAL(1,@05),MATSTR(@10) 0228 00708000 * END; /* MATCH FOUND */ 00709000 * ELSE 0230 00710000 * DO; /* MATCH NOT FOUND */ 00711000 B @RC00224 0230 00712000 @RF00224 DS 0H 0231 00713000 * IF MATFLD(MATJ)=MATSTR(MATI) THEN/* TEST BYTE FOR MATCH*/ 00714000 L @10,@PC00003 0231 00715000 L @05,@PC00003+8 0231 00716000 ALR @10,MATJ 0231 00717000 BCTR @10,0 0231 00718000 ALR @05,MATI 0231 00719000 BCTR @05,0 0231 00720000 CLC MATFLD(1,@10),MATSTR(@05) 0231 00721000 BNE @RF00231 0231 00722000 * DO; /* BYTES MATCH */ 00723000 * MATJ=MATJ+F1C; /* BUMP PARM FIELD INDEX TO NEXT 00724000 * BYTE */ 00725000 AL MATJ,@CF00050 0233 00726000 * END; /* BYTES MATCH */ 00727000 * ELSE 0235 00728000 * DO; /* BYTES DO NOT MATCH */ 00729000 B @RC00231 0235 00730000 @RF00231 DS 0H 0236 00731000 * MATSK=ON; /* CURRENT VALID VALUE DOES NOT 00732000 * MATCH */ 00733000 OI MATSK,B'10000000' 0236 00734000 * MATJ=F1C; /* RESET THE PARMFIELD INDEX FOR 00735000 * NEXT MATCH TEST */ 00736000 LA MATJ,1 0237 00737000 * END; /* BYTES DO NOT MATCH */ 00738000 * END; /* MATCH NOT FOUND */ 00739000 @RC00231 DS 0H 0240 00740000 * END; /* CURRENT VALID VALUE STRING 0240 00741000 * MATCHES SO FAR */ 00742000 @RC00224 DS 0H 0241 00743000 * IF MATSK=ON& /* TEST FOR CURRENT VALID VALUE 00744000 * DOES NOT MATCH */ 00745000 * MATSTR(MATI)=MATSTARC THEN/* AND FOR VALID VALUE DELIMETER */ 00746000 @RF00222 TM MATSK,B'10000000' 0241 00747000 BNO @RF00241 0241 00748000 L @10,@PC00003+8 0241 00749000 ALR @10,MATI 0241 00750000 BCTR @10,0 0241 00751000 CLI MATSTR(@10),C'*' 0241 00752000 BNE @RF00241 0241 00753000 * DO; /* END OF CURRENT VALUE, SET UP 00754000 * TO TEST NEXT VALUE */ 00755000 * MATI=MATI+F1C; /* SKIP INDEX OVER RETURN VALUE */ 00756000 AL MATI,@CF00050 0243 00757000 * MATSK=OFF; /* STOP SKIPPING OVER NO MATCH 0244 00758000 * VALUE */ 00759000 NI MATSK,B'01111111' 0244 00760000 * END; /* END OF CURRENT VALUE, SET UP 00761000 * TO TEST NEXT VALUE */ 00762000 * END; /* SCAN VALID VALUE STRING */ 00763000 @RF00241 AL MATI,@CF00050 0246 00764000 @DE00221 CR MATI,MATLEN 0246 00765000 BNH @DL00221 0246 00766000 @DC00221 DS 0H 0247 00767000 * END MATCH; /* END PROCEDURE */ 00768000 @EL00003 DS 0H 0247 00769000 @EF00003 DS 0H 0247 00770000 @ER00003 LM @14,@12,12(@13) 0247 00771000 BR @14 0247 00772000 EJECT 00773000 * 0248 00774000 * /*****************************************************************/ 00775000 * /* */ 00776000 * /* END OF EXECUTABLE PROCEDURE STATEMENTS */ 00777000 * /* */ 00778000 * /*****************************************************************/ 00779000 * 0248 00780000 * DECLARE /* GENERAL PURPOSE REGISTERS */ 00781000 * GPR01F FIXED(31) REG(1), 0248 00782000 * GPR15F FIXED(31) REG(15), 0248 00783000 * GPR01P PTR(31) REG(1); 0248 00784000 * DECLARE /* COMMON VARIABLES */ 00785000 * I256C CHAR(256) BASED, 0249 00786000 * I031F FIXED(31) BASED, 0249 00787000 * I031P PTR(31) BASED, 0249 00788000 * I015F FIXED(15) BASED, 0249 00789000 * I015P PTR(15) BASED, 0249 00790000 * I008P PTR(8) BASED, 0249 00791000 * I001C CHAR(1) BASED; 0249 00792000 * DECLARE 0250 00793000 * IOPTLIST(12) PTR(31) BDY(WORD);/* OPTION LIST ARRAY */ 00794000 * DCL 0251 00795000 * 1 DASPATCH LOCAL BDY(DWORD), /* PATCH AREA */ 00796000 * 2 DASPATA(DASPATLN) PTR INIT((DASPATLN)0); 0251 00797000 * GEN DATA DEFS(HEXTBL); 0252 00798000 * END BLSCFDYN 0253 00799000 * 0253 00800000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 00801000 */*%INCLUDE SYSLIB (IEFZB4D0) */ 00802000 */*%INCLUDE SYSLIB (IEFZB4D2) */ 00803000 * 0253 00804000 * ; 0253 00805000 @EL00001 L @13,4(,@13) 0253 00806000 @EF00001 L @00,@SIZDATD 0253 00807000 LR @01,@11 0253 00808000 BLSCFREF R,LV=(0),A=(1) 00809000 @ER00001 LM @14,@12,12(@13) 0253 00810000 BR @14 0253 00811000 @DATA DS 0H 00812000 @CH00076 DC H'2' 00813000 @CH00083 DC H'7' 00814000 DS 0F 00815000 @AL00148 DC A(@CF00561) LIST WITH 5 ARGUMENT(S) 00816000 DS F 00817000 DC A(@CF00183) 00818000 DC A(@CB00608) 00819000 DC A(@CF00183) 00820000 @DATD DSECT 00821000 DS 0F 00822000 @SA00001 DS 18F 00823000 @PC00001 DS 2F 00824000 @SA00002 DS 14F 00825000 @PC00003 DS 4F 00826000 @AL00001 DS 6A 00827000 @AFTEMPS DS 2F 00828000 BLSCFDYN CSECT 00829000 DS 0F 00830000 @CF00183 DC F'0' 00831000 @CF00050 DC F'1' 00832000 @CF00041 DC F'4' 00833000 @CF00052 DC F'5' 00834000 @CF00048 DC F'8' 00835000 @CH00048 EQU @CF00048+2 00836000 @CF00539 DC F'12' 00837000 @CF00549 DC F'14' 00838000 @CF00651 DC F'30' 00839000 @CF00564 DC F'80' 00840000 @CF00557 DC F'3117' 00841000 @CF00559 DC F'3118' 00842000 @CF00658 DC F'-4' 00843000 @CF00561 DC F'-1' 00844000 @CF00602 DC XL4'80000000' 00845000 @CF00659 DC XL4'0000FFFF' 00846000 @DATD DSECT 00847000 DS 0D 00848000 S99RBPTR DS AL4 00849000 ORG S99RBPTR 00850000 S99RBPND DS BL1 00851000 ORG S99RBPTR+4 00852000 FTMP8 DS FL1 00853000 ORG FTMP8 00854000 BTMP8 DS BL1 00855000 ORG FTMP8+1 00856000 DS CL3 00857000 S99RB DS CL20 00858000 ORG S99RB 00859000 S99RBLN DS CL1 00860000 S99VERB DS CL1 00861000 S99FLAG1 DS CL2 00862000 ORG S99FLAG1 00863000 S99FLG11 DS CL1 00864000 ORG S99FLG11 00865000 S99ONCNV DS BL1 00866000 S99NOCNV EQU S99FLG11+0 00867000 S99NOMNT EQU S99FLG11+0 00868000 S99JBSYS EQU S99FLG11+0 00869000 ORG S99FLAG1+1 00870000 S99FLG12 DS CL1 00871000 ORG S99RB+4 00872000 S99RSC DS CL4 00873000 ORG S99RSC 00874000 S99ERROR DS CL2 00875000 S99INFO DS CL2 00876000 ORG S99RB+8 00877000 S99TXTPP DS AL4 00878000 S99RSV01 DS FL4 00879000 S99FLAG2 DS CL4 00880000 ORG S99FLAG2 00881000 S99FLG21 DS CL1 00882000 ORG S99FLG21 00883000 S99WTVOL DS BL1 00884000 S99WTDSN EQU S99FLG21+0 00885000 S99NORES EQU S99FLG21+0 00886000 S99WTUNT EQU S99FLG21+0 00887000 S99OFFLN EQU S99FLG21+0 00888000 S99TIONQ EQU S99FLG21+0 00889000 S99CATLG EQU S99FLG21+0 00890000 S99MOUNT EQU S99FLG21+0 00891000 ORG S99FLAG2+1 00892000 S99FLG22 DS CL1 00893000 ORG S99FLG22 00894000 S99UDEVT DS BL1 00895000 S99PCINT EQU S99FLG22+0 00896000 ORG S99FLAG2+2 00897000 S99FLG23 DS CL1 00898000 S99FLG24 DS CL1 00899000 ORG S99RB+20 00900000 TUL DS CL80 00901000 ORG TUL 00902000 TUPL DS 4A 00903000 TUS DS CL64 00904000 ORG TUL+80 00905000 ALSW DS BL1 00906000 DS CL3 00907000 CHSTR8 DS CL8 00908000 ORG CHSTR8 00909000 @NM00005 DS CL3 00910000 CHSTR847 DS CL4 00911000 ORG CHSTR847 00912000 @NM00006 DS CL2 00913000 CHSTR867 DS CL2 00914000 ORG CHSTR8+7 00915000 CHSTR88 DS CL1 00916000 ORG CHSTR8+8 00917000 CTEMP DS CL9 00918000 ORG CTEMP 00919000 @NM00007 DS CL5 00920000 CTEMP63 DS CL3 00921000 ORG CTEMP63 00922000 @NM00008 DS CL1 00923000 CTEMP72 DS CL2 00924000 ORG CTEMP+9 00925000 DS CL3 00926000 MODSTAT DS CL16 00927000 ORG MODSTAT 00928000 MODNAME DS CL8 00929000 RETCODE DS FL4 00930000 SUBCODE DS FL4 00931000 ORG MODSTAT+16 00932000 MATSW DS BL1 00933000 MATSK DS BL1 00934000 DS CL2 00935000 IOPTLIST DS 12A 00936000 BLSCFDYN CSECT 00937000 DS 0F 00938000 @SIZDATD DC AL1(0) 00939000 DC AL3(@ENDDATD-@DATD) 00940000 @CV00257 DC V(BLSCANAL) 00941000 DS 0D 00942000 @CC00584 DC C'BLSCFDYN' 00943000 @CC00582 DC C'DISP' 00944000 @CB00306 DC X'0001' 00945000 @CB00314 DC X'0005' 00946000 @CB00318 DC X'0007' 00947000 @CB00599 DC B'00000000' 00948000 @CB00608 DC B'00010000' 00949000 DISPSTR DS CL30 00950000 ORG DISPSTR 00951000 DISPA DC CL8'UNCATLG*' 00952000 DISPB DC X'01' 00953000 DISPC DC CL6'CATLG*' 00954000 DISPD DC X'02' 00955000 DISPE DC CL7'DELETE*' 00956000 DISPF DC X'04' 00957000 DISPG DC CL5'KEEP*' 00958000 DISPH DC X'08' 00959000 ORG DISPSTR+30 00960000 DS CL6 00961000 DASPATCH DS CL256 00962000 ORG DASPATCH 00963000 DASPATA DC 64A(0) 00964000 ORG DASPATCH+256 00965000 BLSCFDYN CSECT 00966000 * /* 00967000 HEXTBL EQU *-240 00968000 DC CL16'0123456789ABCDEF' 00969000 @DATD DSECT 00970000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 00971000 @ENDDATD EQU * 00972000 BLSCFDYN CSECT 00973000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 00974000 @01 EQU 01 00975000 @02 EQU 02 00976000 @03 EQU 03 00977000 @04 EQU 04 00978000 @05 EQU 05 00979000 @06 EQU 06 00980000 @07 EQU 07 00981000 @08 EQU 08 00982000 @09 EQU 09 00983000 @10 EQU 10 00984000 @11 EQU 11 00985000 @12 EQU 12 00986000 @13 EQU 13 00987000 @14 EQU 14 00988000 @15 EQU 15 00989000 MATJ EQU @03 00990000 MATI EQU @02 00991000 MATLEN EQU @04 00992000 ALOPT EQU @02 00993000 S99TUBAS EQU @03 00994000 S99TUPLX EQU @06 00995000 S99TUPLM EQU @07 00996000 ALBAS EQU @05 00997000 S99TUFP EQU @02 00998000 DMCBPTR EQU @04 00999000 GPR01F EQU @01 01000000 GPR01P EQU @01 01001000 GPR15F EQU @15 01002000 DMCB EQU 0 01003000 DMCBTVP EQU DMCB+8 01004000 DMCBFTY EQU DMCB+20 01005000 DMCBVSF EQU DMCBFTY 01006000 DMCBOPN EQU DMCB+21 01007000 DMCBRMOD EQU DMCB+23 01008000 DMCBOUT EQU DMCBRMOD 01009000 DMCBOPTS EQU DMCB+24 01010000 DMCBGKY EQU DMCBOPTS 01011000 DMCBMFLG EQU DMCB+28 01012000 DMCBBUFP EQU DMCB+32 01013000 DMCBKEYP EQU DMCB+44 01014000 DMCBMSG EQU DMCB+52 01015000 DMCBRI EQU DMCB+64 01016000 DMCBMSG0 EQU DMCB+68 01017000 DMCBMSGS EQU DMCB+72 01018000 DMCBFRE EQU DMCB+88 01019000 DMCBEOB EQU DMCB+92 01020000 DMCBACBE EQU DMCB+124 01021000 DMCBDDNM EQU DMCB+260 01022000 DMCBDISP EQU DMCB+367 01023000 DMCBODIS EQU DMCB+368 01024000 DMCBSPEC EQU DMCB+380 01025000 DMCBDRBP EQU DMCB+400 01026000 DMCBSUBC EQU DMCB+404 01027000 DMCBIRSC EQU DMCB+408 01028000 DMCBAMS EQU DMCB+416 01029000 DMCBAUDT EQU DMCB+568 01030000 DMCBLSCP EQU DMCBAUDT+16 01031000 S99TUPL EQU 0 01032000 S99TUPTR EQU S99TUPL 01033000 S99TUPLN EQU S99TUPTR 01034000 S99TUP EQU 0 01035000 S99TUNIT EQU 0 01036000 S99TUKEY EQU S99TUNIT 01037000 S99TUNUM EQU S99TUNIT+2 01038000 S99TUENT EQU S99TUNIT+4 01039000 S99TULNG EQU S99TUENT 01040000 S99TUPAR EQU S99TUENT+2 01041000 S99TUFLD EQU 0 01042000 BLSDMSGS EQU 0 01043000 BLSDMSG0 EQU 0 01044000 ZZ2 EQU 0 01045000 ALPTR EQU 0 01046000 ALOP EQU ALPTR 01047000 ALVL EQU ALOP 01048000 ALPRB4C1 EQU ALPTR+3 01049000 ALPRB4F1 EQU ALPRB4C1 01050000 ALPTF31 EQU 0 01051000 ALPTB2C3 EQU ALPTF31+1 01052000 ALPTB3C2 EQU ALPTB2C3+1 01053000 ALPTC1 EQU 0 01054000 RDISPP EQU 0 01055000 I015F EQU 0 01056000 ALPTCVL EQU 0 01057000 DMCBDMGR EQU 0 01058000 DMCBRQC EQU 0 01059000 I001C EQU 0 01060000 I008P EQU 0 01061000 I015P EQU 0 01062000 I031F EQU 0 01063000 I031P EQU 0 01064000 I256C EQU 0 01065000 DMCBPARM EQU 0 01066000 PLIST EQU 0 01067000 MATFLD EQU 0 01068000 MATSTRL EQU 0 01069000 MATSTR EQU 0 01070000 MATVAL EQU 0 01071000 DMCBVSM EQU DMCBAMS 01072000 DMCBQSM EQU DMCBAMS 01073000 AGO .@UNREFD START UNREFERENCED COMPONENTS 01074000 DMCBRES7 EQU DMCBQSM+96 01075000 DMCBDCB EQU DMCBQSM 01076000 DMCBACB EQU DMCBVSM+76 01077000 DMCBRPL EQU DMCBVSM 01078000 ALPTB4C1 EQU ALPTB3C2+1 01079000 @NM00004 EQU ALPTB3C2 01080000 @NM00003 EQU ALPTB2C3 01081000 @NM00002 EQU ALPTF31 01082000 @NM00001 EQU ALPTR+1 01083000 S99TUPRM EQU S99TUFLD+2 01084000 S99TULEN EQU S99TUFLD 01085000 S99TUPND EQU S99TUP 01086000 DMCBWRK EQU DMCB+648 01087000 DMCBRES8 EQU DMCB+640 01088000 DMCBMODN EQU DMCB+632 01089000 DMCBCARY EQU DMCBAUDT+20 01090000 DMCBCLC EQU DMCBAUDT+12 01091000 DMCBOPC EQU DMCBAUDT+8 01092000 DMCBFRC EQU DMCBAUDT+4 01093000 DMCBALC EQU DMCBAUDT 01094000 DMCBFR EQU DMCB+412 01095000 DMCBRES6 EQU DMCB+410 01096000 DMCBRSZM EQU DMCB+398 01097000 DMCBRSZA EQU DMCB+396 01098000 DMCBCISZ EQU DMCB+394 01099000 DMCBDCBL EQU DMCB+392 01100000 DMCBDCLR EQU DMCB+390 01101000 DMCBDCFM EQU DMCB+389 01102000 DMCBRES5 EQU DMCB+388 01103000 DMCBLBRT EQU DMCB+386 01104000 DMCBLBSQ EQU DMCB+384 01105000 DMCBLBPS EQU DMCB+383 01106000 DMCBLBTY EQU DMCB+382 01107000 DMCBRES4 EQU DMCB+381 01108000 DMCBSPRS EQU DMCBSPEC 01109000 DMCBSPRN EQU DMCBSPEC 01110000 DMCBSPCT EQU DMCBSPEC 01111000 DMCBSPRL EQU DMCBSPEC 01112000 DMCBSPSE EQU DMCB+376 01113000 DMCBSPPR EQU DMCB+372 01114000 DMCBSPTY EQU DMCB+369 01115000 DMCBSTAT EQU DMCB+366 01116000 DMCBRES3 EQU DMCB+364 01117000 DMCBMEMB EQU DMCB+356 01118000 DMCBMODL EQU DMCB+348 01119000 DMCBRES9 EQU DMCB+340 01120000 DMCBPID EQU DMCB+332 01121000 DMCBTYPE EQU DMCB+328 01122000 DMCBDSN EQU DMCB+284 01123000 DMCBUNIT EQU DMCB+276 01124000 DMCBDSOR EQU DMCB+274 01125000 DMCBVOL EQU DMCB+268 01126000 DMCBSYNM EQU DMCB+132 01127000 DMCBRPLF EQU DMCB+128 01128000 DMCBDCBE EQU DMCBACBE 01129000 DMCBARC EQU DMCB+120 01130000 DMCBCPC EQU DMCB+116 01131000 DMCBRET EQU DMCB+112 01132000 DMCBSTL EQU DMCB+96 01133000 DMCBRES2 EQU DMCB+85 01134000 DMCBSPID EQU DMCB+84 01135000 DMCBRESC EQU DMCB+80 01136000 DMCBZZ1P EQU DMCB+76 01137000 DMCBRRL EQU DMCB+60 01138000 DMCBRBA EQU DMCB+56 01139000 DMCBKEYL EQU DMCB+48 01140000 DMCBKPC EQU DMCBKEYP 01141000 DMCBORL EQU DMCB+40 01142000 DMCBBLEN EQU DMCB+36 01143000 DMCBBFPC EQU DMCBBUFP 01144000 DMCBRES1 EQU DMCB+31 01145000 DMCBACCM EQU DMCB+30 01146000 DMCBREJ EQU DMCB+29 01147000 DMCBRESB EQU DMCBMFLG 01148000 DMCBFMOD EQU DMCBMFLG 01149000 DMCBLOPT EQU DMCB+27 01150000 DMCBLRM EQU DMCB+26 01151000 DMCBLRQ EQU DMCB+25 01152000 DMCBOPRS EQU DMCBOPTS 01153000 DMCBLRD EQU DMCBOPTS 01154000 DMCBBWD EQU DMCBOPTS 01155000 DMCBUPD EQU DMCBOPTS 01156000 DMCBAPX EQU DMCBOPTS 01157000 DMCBRNO EQU DMCBGKY 01158000 DMCBKYD EQU DMCBOPTS 01159000 DMCBRMRS EQU DMCBRMOD 01160000 DMCBRM5 EQU DMCBRMOD 01161000 DMCBRM6 EQU DMCBRMOD 01162000 DMCBTMP EQU DMCBOUT 01163000 DMCBRQST EQU DMCB+22 01164000 DMCBRESA EQU DMCBOPN 01165000 DMCBSOUT EQU DMCBOPN 01166000 DMCBSIN EQU DMCBOPN 01167000 DMCBKSF EQU DMCBFTY 01168000 DMCBFTRS EQU DMCBFTY 01169000 DMCBSHF EQU DMCBFTY 01170000 DMCBIRL EQU DMCB+16 01171000 DMCBRTC EQU DMCB+12 01172000 DMCBNEXT EQU DMCB+4 01173000 DMCBID EQU DMCB 01174000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 01175000 @RF00145 EQU @RC00142 01176000 @RC00168 EQU @EL00002 01177000 @RF00172 EQU @EL00002 01178000 @RC00175 EQU @EL00002 01179000 @ENDDATA EQU * 01180000 END BLSCFDYN,(C'PLS1918',0701,78062) 01181000