TITLE 'EP=BLSCANLE -- IPCS DAS DATA ACCESS ERROR ANALYZER INTE*00001000 ERFACE ' 00002000 * /* CHANGE ACTIVITY 00003000 * THIS MODULE IS WRITTEN FOR @G57LPSR 00004000 BLSCANLE CSECT , 0002 00005000 @MAINENT DS 0H 0002 00006000 USING *,@15 0002 00007000 B @PROLOG 0002 00008000 DC AL1(16) 0002 00009000 DC C'BLSCANLE 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(4),0(@01) 0002 00024000 * 0030 00025000 * /*****************************************************************/ 00026000 * /* */ 00027000 * /* INITIALIZE MODULE STATUS */ 00028000 * /* */ 00029000 * /*****************************************************************/ 00030000 * 0030 00031000 * DMCBPTR=ADDR(DMCBPARM); /* BASE THE DMCB */ 00032000 L DMCBPTR,@PC00001 0030 00033000 * MODNAME=LMODNMC; /* INIT THE MODULE NAME */ 00034000 MVC MODNAME(8),@CC00336 0031 00035000 * RETCODE=F0C; /* INIT THE MODULE RETURN CODE */ 00036000 SLR @10,@10 0032 00037000 ST @10,RETCODE 0032 00038000 * SUBCODE=F0C; /* INIT THE SUBROUTINE RETURN 0033 00039000 * CODE */ 00040000 ST @10,SUBCODE 0033 00041000 * IF DMCBLSCP=ADDR(DMCBCARY(F1C)) THEN/* IS WITHIN THE BOUNDS OF 00043000 * THE AUDIT TRAIL LIST */ 00044000 L @10,DMCBLSCP(,DMCBPTR) 0034 00045000 LA @05,DMCBCARY+40(,DMCBPTR) 0034 00046000 CR @10,@05 0034 00047000 BNL @RF00034 0034 00048000 LA @05,DMCBCARY(,DMCBPTR) 0034 00049000 CR @10,@05 0034 00050000 BL @RF00034 0034 00051000 * DMCBLSCP=DMCBLSCP+F4C; /* BUMP THE PTR TO NEXT SLOT */ 00052000 AL @10,@CF00039 0035 00053000 ST @10,DMCBLSCP(,DMCBPTR) 0035 00054000 * ELSE 0036 00055000 * DMCBLSCP=ADDR(DMCBCARY(F1C)); /* ELSE SET PTR TO FIRST SLOT */ 00056000 B @RC00034 0036 00057000 @RF00034 LA @10,DMCBCARY(,DMCBPTR) 0036 00058000 ST @10,DMCBLSCP(,DMCBPTR) 0036 00059000 * RFY 0037 00060000 * GPR13P RSTD; 0037 00061000 @RC00034 DS 0H 0038 00062000 * DMCBRQC=CSAVR14; /* REMEMBER WHERE CALLED FROM */ 00063000 L @10,DMCBLSCP(,DMCBPTR) 0038 00064000 L @05,MSAVHSA(,GPR13P) 0038 00065000 L @05,CSAVR14(,@05) 0038 00066000 ST @05,DMCBRQC(,@10) 0038 00067000 * RFY 0039 00068000 * GPR13P UNRSTD; 0039 00069000 * 0039 00070000 * /*****************************************************************/ 00071000 * /* */ 00072000 * /* INITIALIZE COMMON MESSAGE INSERTS */ 00073000 * /* */ 00074000 * /*****************************************************************/ 00075000 * 0040 00076000 * IF DMCBRQST>=DMCBOPR&DMCBRQST<=DMCBPOR THEN/* TEST FOR VALID 0040 00077000 * REQUEST CODE CODE */ 00078000 CLI DMCBRQST(DMCBPTR),1 0040 00079000 BL @RF00040 0040 00080000 CLI DMCBRQST(DMCBPTR),8 0040 00081000 BH @RF00040 0040 00082000 * OPCODE=OPNAME(DMCBRQST); /* FILL IN REQUEST NAME */ 00083000 SLR @10,@10 0041 00084000 IC @10,DMCBRQST(,DMCBPTR) 0041 00085000 MH @10,@CH00050 0041 00086000 LA @05,OPNAME-5(@10) 0041 00087000 MVC OPCODE(5),0(@05) 0041 00088000 * ELSE 0042 00089000 * DO; /* INVALID REQUEST CODE */ 00090000 B @RC00040 0042 00091000 @RF00040 DS 0H 0043 00092000 * CHSTR87=DMCBRQST; /* GET DATA ACCESS VERB FIELD */ 00093000 IC @10,DMCBRQST(,DMCBPTR) 0043 00094000 STC @10,CHSTR87 0043 00095000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00096000 MVI CHSTR88,X'0F' 0044 00097000 * UNPK(CTEMP,CHSTR8); 0045 00098000 UNPK CTEMP(9),CHSTR8(8) 0045 00099000 * TR(CTEMP,HEXTBL); 0046 00100000 TR CTEMP(9),HEXTBL 0046 00101000 * OPCODE=CTEMP78; /* STORE THE VERB */ 00102000 MVI OPCODE+2,C' ' 0047 00103000 MVC OPCODE+3(2),OPCODE+2 0047 00104000 MVC OPCODE(2),CTEMP78 0047 00105000 * END; /* INVALID REQUEST CODE */ 00106000 * CHSTR847=DMCBRTC; /* DAS RETURN CODE */ 00107000 @RC00040 MVC CHSTR847(4),DMCBRTC(DMCBPTR) 0049 00108000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00109000 MVI CHSTR88,X'0F' 0050 00110000 * UNPK(CTEMP,CHSTR8); 0051 00111000 UNPK CTEMP(9),CHSTR8(8) 0051 00112000 * TR(CTEMP,HEXTBL); 0052 00113000 TR CTEMP(9),HEXTBL 0052 00114000 * RCODE=CTEMP78; /* SAVE THE RETURN CODE */ 00115000 MVC RCODE(2),CTEMP78 0053 00116000 * CHSTR847=DMCBREJ; /* DAS REJECT CODE */ 00117000 SLR @10,@10 0054 00118000 IC @10,DMCBREJ(,DMCBPTR) 0054 00119000 STCM @10,15,CHSTR847 0054 00120000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00121000 MVI CHSTR88,X'0F' 0055 00122000 * UNPK(CTEMP,CHSTR8); 0056 00123000 UNPK CTEMP(9),CHSTR8(8) 0056 00124000 * TR(CTEMP,HEXTBL); 0057 00125000 TR CTEMP(9),HEXTBL 0057 00126000 * REJCODE=CTEMP78; /* SAVE THE REJECT CODE */ 00127000 MVC REJCODE(2),CTEMP78 0058 00128000 EJECT 00129000 * 0059 00130000 * /*****************************************************************/ 00131000 * /* */ 00132000 * /* DO ERROR ANALYSIS */ 00133000 * /* */ 00134000 * /*****************************************************************/ 00135000 * 0059 00136000 * IF DMCBVSF=ON THEN /* TEST FOR VSAM DATA SET */ 00137000 TM DMCBVSF(DMCBPTR),B'00000001' 0059 00138000 BNO @RF00059 0059 00139000 * DO; /* VSAM DATA SET */ 00140000 * CALL VSAM; /* DO ERROR ANALYSIS FOR VSAM 0061 00141000 * DATA SET */ 00142000 BAL @14,VSAM 0061 00143000 * END; /* VSAM DATA SET */ 00144000 * ELSE 0063 00145000 * DO; /* NON-VSAM DATA SET */ 00146000 B @RC00059 0063 00147000 @RF00059 DS 0H 0064 00148000 * CALL NONVSAM; /* ERROR ANALYSIS FOR NON-VSAM DS*/ 00149000 BAL @14,NONVSAM 0064 00150000 * END; /* NON-VSAM DATA SET */ 00151000 * 0065 00152000 * /*****************************************************************/ 00153000 * /* */ 00154000 * /* ANALYSIS COMPLETE, RETURN TO CALLER */ 00155000 * /* */ 00156000 * /*****************************************************************/ 00157000 * 0066 00158000 * RETURN CODE(RETCODE); 0066 00159000 @RC00059 L @10,RETCODE 0066 00160000 L @13,4(,@13) 0066 00161000 L @00,@SIZDATD 0066 00162000 LR @01,@11 0066 00163000 BLSCFREF R,LV=(0),A=(1) 00164000 LR @15,@10 0066 00165000 L @14,12(,@13) 0066 00166000 LM @00,@12,20(@13) 0066 00167000 BR @14 0066 00168000 EJECT 00169000 * 0067 00170000 * /*****************************************************************/ 00171000 * /* */ 00172000 * /* PROCEDURE TO DO ERROR ANALYSIS FOR VSAM DATA SET TYPE */ 00173000 * /* */ 00174000 * /*****************************************************************/ 00175000 * 0067 00176000 *VSAM: 0067 00177000 * PROCEDURE; /* DO ERROR ANALYSIS FOR VSAM 0067 00178000 * DATA SET TYPE */ 00179000 * 0067 00180000 VSAM STM @14,@12,@SA00002 0067 00181000 * /*****************************************************************/ 00182000 * /* */ 00183000 * /* ISSUE THE IPCS VSAM BASIC DATA ACCESS ERROR MESSAGE */ 00184000 * /* */ 00185000 * /*****************************************************************/ 00186000 * 0068 00187000 * CHSTR847=DMCBSUBC; /* VSAM RETURN CODE */ 00188000 MVC CHSTR847(4),DMCBSUBC(DMCBPTR) 0068 00189000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00190000 MVI CHSTR88,X'0F' 0069 00191000 * UNPK(CTEMP,CHSTR8); 0070 00192000 UNPK CTEMP(9),CHSTR8(8) 0070 00193000 * TR(CTEMP,HEXTBL); 0071 00194000 TR CTEMP(9),HEXTBL 0071 00195000 * SUBRCOD=CTEMP78; /* SAVE THE RETURN CODE */ 00196000 MVC SUBRCOD(2),CTEMP78 0072 00197000 * IF DMCBRQST=DMCBOPR| /* TEST FOR OPEN REQUEST */ 00198000 * DMCBRQST=DMCBCLR THEN /* OR CLOSE REQUEST */ 00199000 CLI DMCBRQST(DMCBPTR),1 0073 00200000 BE @RT00073 0073 00201000 CLI DMCBRQST(DMCBPTR),2 0073 00202000 BNE @RF00073 0073 00203000 @RT00073 DS 0H 0074 00204000 * CHSTR847=DMCBACBE; /* ACBERFLG FIELD AFTER OPEN/CLSE*/ 00205000 MVC CHSTR847(4),DMCBACBE(DMCBPTR) 0074 00206000 * ELSE 0075 00207000 * CHSTR847=DMCBRPLF; /* RPL FDBK FIELD AFTER BAD VSAM 00208000 * REQUEST */ 00209000 B @RC00073 0075 00210000 @RF00073 MVC CHSTR847(4),DMCBRPLF(DMCBPTR) 0075 00211000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00212000 @RC00073 MVI CHSTR88,X'0F' 0076 00213000 * UNPK(CTEMP,CHSTR8); 0077 00214000 UNPK CTEMP(9),CHSTR8(8) 0077 00215000 * TR(CTEMP,HEXTBL); 0078 00216000 TR CTEMP(9),HEXTBL 0078 00217000 * DO; /* BLSDMSG 0079 00218000 * (ZZ2,F3114C,DMCBMSG,BLSDMSGS) 00219000 * INSERT(DMCBDDNM,OPCODE,RCODE,R 00220000 * EJCODE,SUBRCOD,CTEMP18,DMCBDSN 00221000 * ) */ 00222000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT INSERT */ 00223000 LA @10,IOPTLIST+12 0080 00224000 ST @10,IOPTLIST 0080 00225000 * IOPTLIST(2)=ADDR(DMCBDDNM); /* INSERT NAME POINTER */ 00226000 LA @10,DMCBDDNM(,DMCBPTR) 0081 00227000 ST @10,IOPTLIST+4 0081 00228000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 00229000 SLR @10,@10 0082 00230000 ST @10,IOPTLIST+8 0082 00231000 * RFY 0083 00232000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 1-2 */ 00233000 * I015F=LENGTH(DMCBDDNM); /* INSERT LENGTH */ 00234000 LA @05,8 0084 00235000 LA @15,IOPTLIST+8 0084 00236000 STH @05,I015F(,@15) 0084 00237000 * IOPTLIST(4)=ADDR(IOPTLIST(7));/* CHAIN TO NEXT INSERT */ 00238000 LA @15,IOPTLIST+24 0085 00239000 ST @15,IOPTLIST+12 0085 00240000 * IOPTLIST(5)=ADDR(OPCODE); /* INSERT NAME POINTER */ 00241000 LA @15,OPCODE 0086 00242000 ST @15,IOPTLIST+16 0086 00243000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 00244000 ST @10,IOPTLIST+20 0087 00245000 * RFY 0088 00246000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 1-2 */ 00247000 * I015F=LENGTH(OPCODE); /* INSERT LENGTH */ 00248000 LA @15,IOPTLIST+20 0089 00249000 MVC I015F(2,@15),@CH00050 0089 00250000 * IOPTLIST(7)=ADDR(IOPTLIST(10));/* CHAIN TO NEXT INSERT */ 00251000 LA @15,IOPTLIST+36 0090 00252000 ST @15,IOPTLIST+24 0090 00253000 * IOPTLIST(8)=ADDR(RCODE); /* INSERT NAME POINTER */ 00254000 LA @15,RCODE 0091 00255000 ST @15,IOPTLIST+28 0091 00256000 * IOPTLIST(9)=0; /* ZERO RESERVED FIELD */ 00257000 ST @10,IOPTLIST+32 0092 00258000 * RFY 0093 00259000 * I015F BASED(ADDR(IOPTLIST(9)));/* ACCESS BYTES 1-2 */ 00260000 * I015F=LENGTH(RCODE); /* INSERT LENGTH */ 00261000 LA @15,2 0094 00262000 LA @14,IOPTLIST+32 0094 00263000 STH @15,I015F(,@14) 0094 00264000 * IOPTLIST(10)=ADDR(IOPTLIST(13));/* CHAIN TO NEXT INSERT */ 00265000 LA @14,IOPTLIST+48 0095 00266000 ST @14,IOPTLIST+36 0095 00267000 * IOPTLIST(11)=ADDR(REJCODE); /* INSERT NAME POINTER */ 00268000 LA @14,REJCODE 0096 00269000 ST @14,IOPTLIST+40 0096 00270000 * IOPTLIST(12)=0; /* ZERO RESERVED FIELD */ 00271000 ST @10,IOPTLIST+44 0097 00272000 * RFY 0098 00273000 * I015F BASED(ADDR(IOPTLIST(12)));/* ACCESS BYTES 1-2 */ 00274000 * I015F=LENGTH(REJCODE); /* INSERT LENGTH */ 00275000 LA @14,IOPTLIST+44 0099 00276000 STH @15,I015F(,@14) 0099 00277000 * IOPTLIST(13)=ADDR(IOPTLIST(16));/* CHAIN TO NEXT INSERT */ 00278000 LA @14,IOPTLIST+60 0100 00279000 ST @14,IOPTLIST+48 0100 00280000 * IOPTLIST(14)=ADDR(SUBRCOD); /* INSERT NAME POINTER */ 00281000 LA @14,SUBRCOD 0101 00282000 ST @14,IOPTLIST+52 0101 00283000 * IOPTLIST(15)=0; /* ZERO RESERVED FIELD */ 00284000 ST @10,IOPTLIST+56 0102 00285000 * RFY 0103 00286000 * I015F BASED(ADDR(IOPTLIST(15)));/* ACCESS BYTES 1-2 */ 00287000 * I015F=LENGTH(SUBRCOD); /* INSERT LENGTH */ 00288000 LA @14,IOPTLIST+56 0104 00289000 STH @15,I015F(,@14) 0104 00290000 * IOPTLIST(16)=ADDR(IOPTLIST(19));/* CHAIN TO NEXT INSERT */ 00291000 LA @15,IOPTLIST+72 0105 00292000 ST @15,IOPTLIST+60 0105 00293000 * IOPTLIST(17)=ADDR(CTEMP18); /* INSERT NAME POINTER */ 00294000 LA @15,CTEMP18 0106 00295000 ST @15,IOPTLIST+64 0106 00296000 * IOPTLIST(18)=0; /* ZERO RESERVED FIELD */ 00297000 ST @10,IOPTLIST+68 0107 00298000 * RFY 0108 00299000 * I015F BASED(ADDR(IOPTLIST(18)));/* ACCESS BYTES 1-2 */ 00300000 * I015F=LENGTH(CTEMP18); /* INSERT LENGTH */ 00301000 LA @15,IOPTLIST+68 0109 00302000 STH @05,I015F(,@15) 0109 00303000 * IOPTLIST(19)=0; /* LAST INSERT */ 00304000 ST @10,IOPTLIST+72 0110 00305000 * IOPTLIST(20)=ADDR(DMCBDSN); /* INSERT NAME POINTER */ 00306000 LA @05,DMCBDSN(,DMCBPTR) 0111 00307000 ST @05,IOPTLIST+76 0111 00308000 * IOPTLIST(21)=0; /* ZERO RESERVED FIELD */ 00309000 ST @10,IOPTLIST+80 0112 00310000 * RFY 0113 00311000 * I015F BASED(ADDR(IOPTLIST(21)));/* ACCESS BYTES 1-2 */ 00312000 * I015F=LENGTH(DMCBDSN); /* INSERT LENGTH */ 00313000 LA @10,IOPTLIST+80 0114 00314000 MVC I015F(2,@10),@CH00121 0114 00315000 * CALL BLSDMSG0(ZZ2,F3114C,DMCBMSG,BLSDMSGS,'00000000'B,ADDR( 0115 00316000 * IOPTLIST)); /* BUILD MESSAGE */ 00317000 L @10,DMCBTVP(,DMCBPTR) 0115 00318000 ST @10,@AL00001 0115 00319000 LA @10,@CF00310 0115 00320000 ST @10,@AL00001+4 0115 00321000 LA @10,DMCBMSG(,DMCBPTR) 0115 00322000 ST @10,@AL00001+8 0115 00323000 L @10,DMCBMSGS(,DMCBPTR) 0115 00324000 ST @10,@AL00001+12 0115 00325000 LA @10,@CB00378 0115 00326000 ST @10,@AL00001+16 0115 00327000 LA @10,IOPTLIST 0115 00328000 ST @10,@AFTEMPS 0115 00329000 LA @10,@AFTEMPS 0115 00330000 ST @10,@AL00001+20 0115 00331000 L @15,DMCBMSG0(,DMCBPTR) 0115 00332000 LA @01,@AL00001 0115 00333000 BALR @14,@15 0115 00334000 * END; /* BLSDMSG 0116 00335000 * (ZZ2,F3114C,DMCBMSG,BLSDMSGS) 00336000 * INSERT(DMCBDDNM,OPCODE,RCODE,R 00337000 * EJCODE,SUBRCOD,CTEMP18,DMCBDSN 00338000 * ) */ 00339000 */* BUILD ERROR MESSAGE */ 00340000 * 0117 00341000 * CALL VSAMFAIL; /* ISSUE THE VSAM FAILURE MESSAGE*/ 00342000 BAL @14,VSAMFAIL 0117 00343000 * END VSAM; /* DO ERROR ANALYSIS FOR VSAM 0118 00344000 * DATA SET TYPE */ 00345000 @EL00002 DS 0H 0118 00346000 @EF00002 DS 0H 0118 00347000 @ER00002 LM @14,@12,@SA00002 0118 00348000 BR @14 0118 00349000 EJECT 00350000 * 0119 00351000 * /*****************************************************************/ 00352000 * /* */ 00353000 * /* PROCEDURE TO ISSUE THE VSAM FAILURE MESSAGE */ 00354000 * /* */ 00355000 * /*****************************************************************/ 00356000 * 0119 00357000 *VSAMFAIL: 0119 00358000 * PROCEDURE; 0119 00359000 * 0119 00360000 VSAMFAIL STM @14,@12,@SA00003 0119 00361000 * /*****************************************************************/ 00362000 * /* */ 00363000 * /* INITIALIZE THE VSAMFAIL PARAMETER LIST */ 00364000 * /* */ 00365000 * /*****************************************************************/ 00366000 * 0120 00367000 * GFPARMS=GFPARMS&&GFPARMS; /* ZERO THE PARM LIST */ 00368000 XC GFPARMS(44),GFPARMS 0120 00369000 * IF DMCBRQST=DMCBOPR THEN /* TEST FOR OPEN REQUEST */ 00370000 CLI DMCBRQST(DMCBPTR),1 0121 00371000 BNE @RF00121 0121 00372000 * GFCALLID=GFOPEN; /* OPEN REQUEST */ 00373000 MVC GFCALLID(2),@CH00057 0122 00374000 * ELSE 0123 00375000 * IF DMCBRQST=DMCBCLR THEN /* TEST FOR CLOSE REQUEST */ 00376000 B @RC00121 0123 00377000 @RF00121 CLI DMCBRQST(DMCBPTR),2 0123 00378000 BNE @RF00123 0123 00379000 * GFCALLID=GFCLOSE; /* CLOSE REQUEST */ 00380000 MVC GFCALLID(2),@CH00074 0124 00381000 * ELSE 0125 00382000 * IF DMCBRQST=DMCBGER THEN /* TEST FOR GET REQUEST */ 00383000 B @RC00123 0125 00384000 @RF00123 CLI DMCBRQST(DMCBPTR),4 0125 00385000 BNE @RF00125 0125 00386000 * GFCALLID=GFGET; /* GET REQUEST */ 00387000 MVC GFCALLID(2),@CH00050 0126 00388000 * ELSE 0127 00389000 * IF DMCBRQST=DMCBPUR THEN /* TEST FOR PUT REQUEST */ 00390000 B @RC00125 0127 00391000 @RF00125 CLI DMCBRQST(DMCBPTR),5 0127 00392000 BNE @RF00127 0127 00393000 * GFCALLID=GFPUT; /* PUT REQUEST */ 00394000 MVC GFCALLID(2),@CH00046 0128 00395000 * ELSE 0129 00396000 * IF DMCBRQST=DMCBERR THEN/* TEST FOR ERASE REQUEST */ 00397000 B @RC00127 0129 00398000 @RF00127 CLI DMCBRQST(DMCBPTR),6 0129 00399000 BNE @RF00129 0129 00400000 * GFCALLID=GFERASE; /* ERASE REQUEST */ 00401000 MVC GFCALLID(2),@CH00039 0130 00402000 * ELSE 0131 00403000 * IF DMCBRQST=DMCBENR THEN/* TEST FOR ENDREQ REQUEST */ 00404000 B @RC00129 0131 00405000 @RF00129 CLI DMCBRQST(DMCBPTR),7 0131 00406000 BNE @RF00131 0131 00407000 * GFCALLID=GFENDREQ; /* ENDREQ REQUEST */ 00408000 MVC GFCALLID(2),@CH00103 0132 00409000 * ELSE 0133 00410000 * IF DMCBRQST=DMCBPOR THEN/* TEST FOR POINT REQUEST */ 00411000 B @RC00131 0133 00412000 @RF00131 CLI DMCBRQST(DMCBPTR),8 0133 00413000 BNE @RF00133 0133 00414000 * GFCALLID=GFPOINT; /* POINT REQUEST */ 00415000 MVC GFCALLID(2),@CH00081 0134 00416000 * IF GFCALLID^=0 THEN /* TEST FOR VALID VSAM OPCODE */ 00417000 @RF00133 DS 0H 0135 00418000 @RC00131 DS 0H 0135 00419000 @RC00129 DS 0H 0135 00420000 @RC00127 DS 0H 0135 00421000 @RC00125 DS 0H 0135 00422000 @RC00123 DS 0H 0135 00423000 @RC00121 LH @10,GFCALLID 0135 00424000 LTR @10,@10 0135 00425000 BZ @RF00135 0135 00426000 * DO; /* VALID VSAM OPCODE */ 00427000 * IF GFCALLID=GFOPEN|GFCALLID=GFCLOSE THEN/* TEST FOR OPEN OR 00428000 * CLOSE */ 00429000 C @10,@CF00057 0137 00430000 BE @RT00137 0137 00431000 C @10,@CF00074 0137 00432000 BNE @RF00137 0137 00433000 @RT00137 DS 0H 0138 00434000 * GFCBPTR=ADDR(DMCBACB); /* SET ACB POINTER IN PLIST FOR 00435000 * OPEN/CLOSE */ 00436000 LA @10,DMCBACB(,DMCBPTR) 0138 00437000 ST @10,GFCBPTR 0138 00438000 * ELSE 0139 00439000 * GFCBPTR=ADDR(DMCBRPL); /* SET RPL POINTER FOR ALL OTHERS*/ 00440000 B @RC00137 0139 00441000 @RF00137 LA @10,DMCBRPL(,DMCBPTR) 0139 00442000 ST @10,GFCBPTR 0139 00443000 * GFRCODE=DMCBSUBC; /* VSAM RETURN CODE */ 00444000 @RC00137 L @10,DMCBSUBC(,DMCBPTR) 0140 00445000 ST @10,GFRCODE 0140 00446000 * GF02PTR=ADDR(BLSCANLI); /* SET MESSAGE WRITER EP TO IPCS 00447000 * DDM MESSAGE WRITER INTERCEPT 00448000 * MODULE */ 00449000 L @10,@CV00237 0141 00450000 ST @10,GF02PTR 0141 00451000 * GFSUBSYS=OFF; /* NOT SUBSYSTEM ERROR TO BE 0142 00452000 * ANALYZED */ 00453000 * GFKEYN08=OFF; /* GFKEYN08 CONTROLS THE ISSUANCE 00454000 * OF A MODESET. SINCE THE 0143 00455000 * MESSAGE WRITER WILL NOT ISSUE 00456000 * A PUTLINE AND A PROGRAM NAME 00457000 * IS SUPPLIED, THE MODESET IS 0143 00458000 * NOT NEEDED TO ACCESS THE TSO 00459000 * CPPL AND THE GFCPPLP FIELD MAY 00460000 * BE USED TO PASS THE ADDRESS OF 00461000 * THE DMCB TO THE BLSCANLI 0143 00462000 * MODULE */ 00463000 * GFWTPSW=OFF; /* IKJEFF19 MUST THINK THAT IT IS 00464000 * ISSUING A PUTLINE OR IT WILL 00465000 * NOT COPY THE CONTENTS OF 0144 00466000 * GFCPPLP INTO THE MESSAGE 0144 00467000 * WRITER PARAMETER LIST. GFCPPLP 00468000 * CONTAINS THE ADDRESS OF THE 0144 00469000 * DMCB FOR USE BY BLSCANLI. IT 00470000 * WILL ZERO THE MTCPPLP FIELD 0144 00471000 * AND TURN ON THE MTWTPSW BEFORE 00472000 * PASSING THE MESSAGE PLIST TO 00473000 * IJKEFF02 */ 00474000 NI GFSUBSYS,B'00011111' 0144 00475000 * GFCPPLP=ADDR(DMCB); /* GET DMCB ADDRESS TO BLSCANLI. 00476000 * VSAMFAIL PASSES THIS TO THE 0145 00477000 * MESSAGE PLIST IF GFWTPSW IS 0145 00478000 * OFF */ 00479000 ST DMCBPTR,GFCPPLP 0145 00480000 * GFECBP=F0C; /* MESSAGE WRITER ECB LIST 0146 00481000 * POINTER */ 00482000 SLR @10,@10 0146 00483000 ST @10,GFECBP 0146 00484000 * GFPGMNL=LENGTH(DMCBMODN); /* A PROGRAM NAME MUST BE 0147 00485000 * SUPPLIED TO PREVENT IKJEFF19 00486000 * FROM USING THE VALUE IN 0147 00487000 * GFCPPLP AS A POINTER TO THE 0147 00488000 * TSO CPPL TO OBTAIN A PROGRAM 00489000 * NAME */ 00490000 MVC GFPGMNL(2),@CH00046 0147 00491000 * GFPGMNP=ADDR(DMCBMODN); /* ERROR MODULE NAME */ 00492000 LA @10,DMCBMODN(,DMCBPTR) 0148 00493000 ST @10,GFPGMNP 0148 00494000 * GFDSNLEN=LENGTH(DMCBDSN); /* DATA SET NAME LENGTH */ 00495000 MVC GFDSNLEN(2),@CH00121 0149 00496000 * GFDSNP=ADDR(DMCBDSN); /* DATA SET NAME POINTER */ 00497000 * 0150 00498000 LA @10,DMCBDSN(,DMCBPTR) 0150 00499000 ST @10,GFDSNP 0150 00500000 * /*************************************************************/ 00501000 * /* */ 00502000 * /* DO VSAM ERROR ANALYSIS USING THE VSAMFAIL MODULE */ 00503000 * /* */ 00504000 * /*************************************************************/ 00505000 * 0151 00506000 * CALL INVVSAMF; /* INVOKE IKJEFF19 TO DO VSAM 0151 00507000 * ERROR ANALYSIS */ 00508000 BAL @14,INVVSAMF 0151 00509000 * END; /* VALID VSAM OPCODE */ 00510000 * END VSAMFAIL; /* ISSUE VSAM FAILURE MESSAGE */ 00511000 @EL00003 DS 0H 0153 00512000 @EF00003 DS 0H 0153 00513000 @ER00003 LM @14,@12,@SA00003 0153 00514000 BR @14 0153 00515000 EJECT 00516000 * 0154 00517000 * /*****************************************************************/ 00518000 * /* */ 00519000 * /* PROCEDURE TO INVOKE IKJEFF19 TO DO VSAM ERROR ANALYSIS */ 00520000 * /* */ 00521000 * /*****************************************************************/ 00522000 * 0154 00523000 *INVVSAMF: 0154 00524000 * PROCEDURE; /* INVOKE IKJEFF19 TO DO VSAM 0154 00525000 * ERROR ANALYSIS */ 00526000 INVVSAMF STM @14,@12,@SA00004 0154 00527000 * GEN FLOWS(LINKERR); 0155 00528000 * /* TELL COMPILER ABOUT 00529000 * ERRET(LINKERR) IN LINK MACRO 00530000 * DO; /* LINK EP(LINKNAME) 0156 00531000 * PARAM(GFPARMS) ERRET(LINKERR) */ 00532000 * I00601='00'X; /* EP/DE FLAG */ 00533000 MVI I00601,X'00' 0157 00534000 * I00602=ADDR(LINKNAME); /* ADDR OF EP/DE */ 00535000 LA @10,@CC00334 0158 00536000 STCM @10,7,I00602 0158 00537000 * I00604=0; /* DCB PTR */ 00538000 SLR @10,@10 0159 00539000 STCM @10,7,I00604 0159 00540000 * I00603='80'X; /* ERRET FLAG */ 00541000 MVI I00603,X'80' 0160 00542000 * I00605=ADDR(LINKERR); /* ERRET PTR */ 00543000 LA @10,LINKERR 0161 00544000 ST @10,I00605 0161 00545000 * IOPTLIST(1)=ADDR(GFPARMS); /* ADDR OF PROB PROG PARM */ 00546000 LA @10,GFPARMS 0162 00547000 ST @10,IOPTLIST 0162 00548000 * IOPTLIST(1)=IOPTLIST(1)|'80000000'X;/* SET VL BIT */ 00549000 O @10,@CF00297 0163 00550000 ST @10,IOPTLIST 0163 00551000 * RESPECIFY 0164 00552000 * (GPR01P) RESTRICTED; 0164 00553000 * GPR01P=ADDR(IOPTLIST); /* ADDR OF OPTLIST */ 00554000 LA GPR01P,IOPTLIST 0165 00555000 * RESPECIFY 0166 00556000 * (GPR15P) RESTRICTED; 0166 00557000 * GPR15P=ADDR(I006); /* ADDR OF LINK LIST */ 00558000 LA GPR15P,I006 0167 00559000 * SVC(6); /* ISSUE LINK SVC */ 00560000 SVC 6 0168 00561000 * RESPECIFY 0169 00562000 * (GPR01P) UNRESTRICTED; 0169 00563000 * RESPECIFY 0170 00564000 * (GPR15P) UNRESTRICTED; 0170 00565000 * END; /* LINK EP(LINKNAME) 0171 00566000 * PARAM(GFPARMS) ERRET(LINKERR) 00567000 * DO VSAM ERROR ANALYSIS */ 00568000 * RFY 0172 00569000 * GPR15F RSTD; 0172 00570000 * SUBCODE=GPR15F; /* SAVE THE RETURN CODE */ 00571000 ST GPR15F,SUBCODE 0173 00572000 * RFY 0174 00573000 * GPR15F UNRSTD; 0174 00574000 * IF SUBCODE^=0 THEN /* TEST FOR IKJEFF19 ERROR */ 00575000 L @10,SUBCODE 0175 00576000 LTR @10,@10 0175 00577000 BZ @RF00175 0175 00578000 * DO; /* IKJEFF19 ERROR */ 00579000 * RETCODE=ERROR; /* FORCE ERROR TO CALLER */ 00580000 MVC RETCODE(4),@CF00046 0177 00581000 * END; /* IKJEFF19 ERROR */ 00582000 * RETURN; 0179 00583000 @EL00004 DS 0H 0179 00584000 @EF00004 DS 0H 0179 00585000 @ER00004 LM @14,@12,@SA00004 0179 00586000 BR @14 0179 00587000 EJECT 00588000 * 0180 00589000 */* START OF SPECIFICATIONS*******************************************/ 00590000 */* */ 00591000 */* MODULE NAME: LINKERR (BLSCLKR) */ 00592000 */* */ 00593000 */* DESCRIPTIVE NAME: IPCS DAS LINK SVC ERROR RETURN ROUTINE */ 00594000 */* */ 00595000 */* COPYRIGHT: NONE */ 00596000 */* */ 00597000 */* STATUS: SU57 RELEASE 1, LEVEL 0 */ 00598000 */* */ 00599000 */* FUNCTION: */ 00600000 */* PROVIDE INCLUDED CODE FOR A LINK SVC ERROR RETURN THAT */ 00601000 */* PRODUCES MESSAGE BLS03110 AND HOOKS IT TO THE DMCBMSG */ 00602000 */* MESSAGE CHAIN ANCHOR. */ 00603000 */* */ 00604000 */* NOTES: */ 00605000 */* */ 00606000 */* DEPENDENCIES: */ 00607000 */* THE FOLLOWING SYMBOLS MUST BE DEFINED IN THE ENCLOSING */ 00608000 */* PROCEDURE: */ 00609000 */* RETCODE */ 00610000 */* SUBCODE */ 00611000 */* ERROR */ 00612000 */* GPR01F */ 00613000 */* GPR15F */ 00614000 */* ABENDC */ 00615000 */* REASON */ 00616000 */* RESULT */ 00617000 */* MODNAME */ 00618000 */* LINKNAME */ 00619000 */* CHSTR88 */ 00620000 */* CHSTR847 */ 00621000 */* CTEMP */ 00622000 */* CTEMP18 */ 00623000 */* HEXTBL */ 00624000 */* HEX0FC */ 00625000 */* F3110C */ 00626000 */* */ 00627000 */* RESTRICTIONS: NONE */ 00628000 */* */ 00629000 */* REGISTER CONVENTIONS: */ 00630000 */* GPR01F - (1) */ 00631000 */* GPR15F - (15) */ 00632000 */* */ 00633000 */* PATCH LABEL: N/A */ 00634000 */* */ 00635000 */* SERIALIZATION REQUIREMENTS: NONE */ 00636000 */* */ 00637000 */* MODULE TYPE: INCLUDED EXECUTABLE CODE */ 00638000 */* */ 00639000 */* PROCESSOR: PLS/2 */ 00640000 */* */ 00641000 */* MODULE SIZE: N/A */ 00642000 */* */ 00643000 */* ATTRIBUTES: */ 00644000 */* EXECUTABLE PROBLEM STATE REENTRANT */ 00645000 */* */ 00646000 */* ENTRY POINT: LINKERR */ 00647000 */* */ 00648000 */* PURPOSE: SEE FUNCTION */ 00649000 */* */ 00650000 */* LINKAGE: */ 00651000 */* R01 LOADED WITH ABEND CODE */ 00652000 */* R15 LOADED WITH ABEND REASON CODE */ 00653000 */* */ 00654000 */* METHOD OF ACCESS: SYSTEM LINK SVC ERRET */ 00655000 */* */ 00656000 */* INPUT: SEE LINKAGE */ 00657000 */* */ 00658000 */* OUTPUT: */ 00659000 */* MESSAGE BLS03110 CHAINED FROM DMCBMSG IN IPCS DM/PM FORMAT. */ 00660000 */* THE OUTPUT MESSAGE LIST FORMAT IS DESCRIBED IN THE BLSDMSG0 */ 00661000 */* MODULE DESCRIPTION. */ 00662000 */* */ 00663000 */* EXIT-NORMAL: RETURN TO LINK SVC */ 00664000 */* RETCODE = 8 MESSAGE BLS03110 IS ISSUED. */ 00665000 */* */ 00666000 */* EXIT-ERROR: NONE */ 00667000 */* */ 00668000 */* EXTERNAL REFERENCES: */ 00669000 */* */ 00670000 */* ROUTINES: */ 00671000 */* BLSDMSG0 IPCS DM/PM MESSAGE TEXT BUILD FUNCTION */ 00672000 */* */ 00673000 */* DATA AREAS: SEE SYMBOLS DEFINED UNDER DEPENDENCIES */ 00674000 */* */ 00675000 */* CONTROL BLOCKS: DMCB R,W */ 00676000 */* BLSDMSGS R */ 00677000 */* ZZ2 R */ 00678000 */* */ 00679000 */* TABLES/WORKAREAS: NONE */ 00680000 */* */ 00681000 */* MACROS: BLSDMSG */ 00682000 */* */ 00683000 */* CHANGE ACTIVITY: */ 00684000 */* THIS MODULE IS WRITTEN FOR @G57LPSR. */ 00685000 */* */ 00686000 */* MESSAGES ISSUED: */ 00687000 */* BLS03110I LINK SVC TO LINKNAME FROM MODNAME FAILED. */ 00688000 */* ABEND CODE=XXXXXXXX, REASON CODE=YYYYYYYY */ 00689000 */* */ 00690000 */* ABEND CODES: NONE */ 00691000 */* */ 00692000 */* DATA SETS ACCESSED: NONE */ 00693000 */* */ 00694000 */*** END OF SPECIFICATIONS*******************************************/ 00695000 * 0180 00696000 *LINKERR: 0180 00697000 * RFY 0180 00698000 * (GPR01F, 0180 00699000 * GPR15F) RSTD; 0180 00700000 LINKERR DS 0H 0181 00701000 * ABENDC=GPR01F; /* SAVE THE ABEND CODE */ 00702000 LR ABENDC,GPR01F 0181 00703000 * REASON=GPR15F; /* SAVE THE ABEND REASON CODE */ 00704000 LR REASON,GPR15F 0182 00705000 * RFY 0183 00706000 * (GPR01F, 0183 00707000 * GPR15F) UNRSTD; 0183 00708000 * CHSTR847=ABENDC; /* GET ABEND CODE FIELD */ 00709000 STCM ABENDC,15,CHSTR847 0184 00710000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00711000 MVI CHSTR88,X'0F' 0185 00712000 * UNPK(CTEMP,CHSTR8); 0186 00713000 UNPK CTEMP(9),CHSTR8(8) 0186 00714000 * TR(CTEMP,HEXTBL); 0187 00715000 TR CTEMP(9),HEXTBL 0187 00716000 * RESULT=CTEMP18; /* STORE THE RESULT */ 00717000 MVC RESULT(8),CTEMP18 0188 00718000 * CHSTR847=REASON; /* GET REASON CODE FIELD */ 00719000 STCM REASON,15,CHSTR847 0189 00720000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00721000 MVI CHSTR88,X'0F' 0190 00722000 * UNPK(CTEMP,CHSTR8); 0191 00723000 UNPK CTEMP(9),CHSTR8(8) 0191 00724000 * TR(CTEMP,HEXTBL); 0192 00725000 TR CTEMP(9),HEXTBL 0192 00726000 * DO; /* BLSDMSG 0193 00727000 * (ZZ2,F3110C,DMCBMSG,BLSDMSGS) 00728000 * INSERT(LINKNAME,MODNAME,RESULT 00729000 * ,CTEMP18) */ 00730000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT INSERT */ 00731000 LA @10,IOPTLIST+12 0194 00732000 ST @10,IOPTLIST 0194 00733000 * IOPTLIST(2)=ADDR(LINKNAME); /* INSERT NAME POINTER */ 00734000 LA @10,@CC00334 0195 00735000 ST @10,IOPTLIST+4 0195 00736000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 00737000 SLR @10,@10 0196 00738000 ST @10,IOPTLIST+8 0196 00739000 * RFY 0197 00740000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 1-2 */ 00741000 * I015F=LENGTH(LINKNAME); /* INSERT LENGTH */ 00742000 LA @05,8 0198 00743000 LA @15,IOPTLIST+8 0198 00744000 STH @05,I015F(,@15) 0198 00745000 * IOPTLIST(4)=ADDR(IOPTLIST(7));/* CHAIN TO NEXT INSERT */ 00746000 LA @15,IOPTLIST+24 0199 00747000 ST @15,IOPTLIST+12 0199 00748000 * IOPTLIST(5)=ADDR(MODNAME); /* INSERT NAME POINTER */ 00749000 LA @15,MODNAME 0200 00750000 ST @15,IOPTLIST+16 0200 00751000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 00752000 ST @10,IOPTLIST+20 0201 00753000 * RFY 0202 00754000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 1-2 */ 00755000 * I015F=LENGTH(MODNAME); /* INSERT LENGTH */ 00756000 LA @15,IOPTLIST+20 0203 00757000 STH @05,I015F(,@15) 0203 00758000 * IOPTLIST(7)=ADDR(IOPTLIST(10));/* CHAIN TO NEXT INSERT */ 00759000 LA @15,IOPTLIST+36 0204 00760000 ST @15,IOPTLIST+24 0204 00761000 * IOPTLIST(8)=ADDR(RESULT); /* INSERT NAME POINTER */ 00762000 LA @15,RESULT 0205 00763000 ST @15,IOPTLIST+28 0205 00764000 * IOPTLIST(9)=0; /* ZERO RESERVED FIELD */ 00765000 ST @10,IOPTLIST+32 0206 00766000 * RFY 0207 00767000 * I015F BASED(ADDR(IOPTLIST(9)));/* ACCESS BYTES 1-2 */ 00768000 * I015F=LENGTH(RESULT); /* INSERT LENGTH */ 00769000 LA @15,IOPTLIST+32 0208 00770000 STH @05,I015F(,@15) 0208 00771000 * IOPTLIST(10)=0; /* LAST INSERT */ 00772000 ST @10,IOPTLIST+36 0209 00773000 * IOPTLIST(11)=ADDR(CTEMP18); /* INSERT NAME POINTER */ 00774000 LA @15,CTEMP18 0210 00775000 ST @15,IOPTLIST+40 0210 00776000 * IOPTLIST(12)=0; /* ZERO RESERVED FIELD */ 00777000 ST @10,IOPTLIST+44 0211 00778000 * RFY 0212 00779000 * I015F BASED(ADDR(IOPTLIST(12)));/* ACCESS BYTES 1-2 */ 00780000 * I015F=LENGTH(CTEMP18); /* INSERT LENGTH */ 00781000 LA @10,IOPTLIST+44 0213 00782000 STH @05,I015F(,@10) 0213 00783000 * CALL BLSDMSG0(ZZ2,F3110C,DMCBMSG,BLSDMSGS,'00000000'B,ADDR( 0214 00784000 * IOPTLIST)); /* BUILD MESSAGE */ 00785000 L @10,DMCBTVP(,DMCBPTR) 0214 00786000 ST @10,@AL00001 0214 00787000 LA @10,@CF00308 0214 00788000 ST @10,@AL00001+4 0214 00789000 LA @10,DMCBMSG(,DMCBPTR) 0214 00790000 ST @10,@AL00001+8 0214 00791000 L @10,DMCBMSGS(,DMCBPTR) 0214 00792000 ST @10,@AL00001+12 0214 00793000 LA @10,@CB00378 0214 00794000 ST @10,@AL00001+16 0214 00795000 LA @10,IOPTLIST 0214 00796000 ST @10,@AFTEMPS+4 0214 00797000 LA @10,@AFTEMPS+4 0214 00798000 ST @10,@AL00001+20 0214 00799000 L @15,DMCBMSG0(,DMCBPTR) 0214 00800000 LA @01,@AL00001 0214 00801000 BALR @14,@15 0214 00802000 * END; /* BLSDMSG 0215 00803000 * (ZZ2,F3110C,DMCBMSG,BLSDMSGS) 00804000 * INSERT(LINKNAME,MODNAME,RESULT 00805000 * ,CTEMP18) BUILD LINK SVC ERROR 00806000 * MESSAGE */ 00807000 * RETCODE=ERROR; /* MARK ERROR TO CALLER */ 00808000 MVC RETCODE(4),@CF00046 0216 00809000 * END INVVSAMF; /* INVOKE IKJEFF19 TO DO VSAM 0217 00810000 * ERROR ANALYSIS */ 00811000 B @EL00004 0217 00812000 EJECT 00813000 * 0218 00814000 * /*****************************************************************/ 00815000 * /* */ 00816000 * /* PROCEDURE TO DO ERROR ANALYSIS FOR NON-VSAM DATA SET */ 00817000 * /* */ 00818000 * /*****************************************************************/ 00819000 * 0218 00820000 *NONVSAM: 0218 00821000 * PROCEDURE; /* DO ERROR ANALYSIS FOR NON-VSAM 00822000 * DATA SET */ 00823000 * 0218 00824000 NONVSAM STM @14,@12,@SA00005 0218 00825000 * /*****************************************************************/ 00826000 * /* */ 00827000 * /* ISSUE THE IPCS NON-VSAM BASIC DATA ACCESS ERROR MESSAGE */ 00828000 * /* */ 00829000 * /*****************************************************************/ 00830000 * 0219 00831000 * CHSTR847=DMCBCPC; /* I/O OP ABEND CODE */ 00832000 MVC CHSTR847(4),DMCBCPC(DMCBPTR) 0219 00833000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00834000 MVI CHSTR88,X'0F' 0220 00835000 * UNPK(CTEMP,CHSTR8); 0221 00836000 UNPK CTEMP(9),CHSTR8(8) 0221 00837000 * TR(CTEMP,HEXTBL); 0222 00838000 TR CTEMP(9),HEXTBL 0222 00839000 * RESULT=CTEMP18; /* SAVE THE ABEND CODE */ 00840000 MVC RESULT(8),CTEMP18 0223 00841000 * CHSTR847=DMCBDCBE; /* I/O OP ABEND REASON CODE */ 00842000 MVC CHSTR847(4),DMCBDCBE(DMCBPTR) 0224 00843000 * CHSTR88=LHEX0FC; /* TRANSLATE IT TO PRINTABLE HEX */ 00844000 MVI CHSTR88,X'0F' 0225 00845000 * UNPK(CTEMP,CHSTR8); 0226 00846000 UNPK CTEMP(9),CHSTR8(8) 0226 00847000 * TR(CTEMP,HEXTBL); 0227 00848000 TR CTEMP(9),HEXTBL 0227 00849000 * DO; /* BLSDMSG 0228 00850000 * (ZZ2,F3116C,DMCBMSG,BLSDMSGS) 00851000 * INSERT(DMCBDDNM,OPCODE,RCODE,R 00852000 * EJCODE,RESULT,CTEMP18,DMCBDSN)*/ 00853000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT INSERT */ 00854000 LA @10,IOPTLIST+12 0229 00855000 ST @10,IOPTLIST 0229 00856000 * IOPTLIST(2)=ADDR(DMCBDDNM); /* INSERT NAME POINTER */ 00857000 LA @10,DMCBDDNM(,DMCBPTR) 0230 00858000 ST @10,IOPTLIST+4 0230 00859000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 00860000 SLR @10,@10 0231 00861000 ST @10,IOPTLIST+8 0231 00862000 * RFY 0232 00863000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 1-2 */ 00864000 * I015F=LENGTH(DMCBDDNM); /* INSERT LENGTH */ 00865000 LA @05,8 0233 00866000 LA @15,IOPTLIST+8 0233 00867000 STH @05,I015F(,@15) 0233 00868000 * IOPTLIST(4)=ADDR(IOPTLIST(7));/* CHAIN TO NEXT INSERT */ 00869000 LA @15,IOPTLIST+24 0234 00870000 ST @15,IOPTLIST+12 0234 00871000 * IOPTLIST(5)=ADDR(OPCODE); /* INSERT NAME POINTER */ 00872000 LA @15,OPCODE 0235 00873000 ST @15,IOPTLIST+16 0235 00874000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 00875000 ST @10,IOPTLIST+20 0236 00876000 * RFY 0237 00877000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 1-2 */ 00878000 * I015F=LENGTH(OPCODE); /* INSERT LENGTH */ 00879000 LA @15,IOPTLIST+20 0238 00880000 MVC I015F(2,@15),@CH00050 0238 00881000 * IOPTLIST(7)=ADDR(IOPTLIST(10));/* CHAIN TO NEXT INSERT */ 00882000 LA @15,IOPTLIST+36 0239 00883000 ST @15,IOPTLIST+24 0239 00884000 * IOPTLIST(8)=ADDR(RCODE); /* INSERT NAME POINTER */ 00885000 LA @15,RCODE 0240 00886000 ST @15,IOPTLIST+28 0240 00887000 * IOPTLIST(9)=0; /* ZERO RESERVED FIELD */ 00888000 ST @10,IOPTLIST+32 0241 00889000 * RFY 0242 00890000 * I015F BASED(ADDR(IOPTLIST(9)));/* ACCESS BYTES 1-2 */ 00891000 * I015F=LENGTH(RCODE); /* INSERT LENGTH */ 00892000 LA @15,2 0243 00893000 LA @14,IOPTLIST+32 0243 00894000 STH @15,I015F(,@14) 0243 00895000 * IOPTLIST(10)=ADDR(IOPTLIST(13));/* CHAIN TO NEXT INSERT */ 00896000 LA @14,IOPTLIST+48 0244 00897000 ST @14,IOPTLIST+36 0244 00898000 * IOPTLIST(11)=ADDR(REJCODE); /* INSERT NAME POINTER */ 00899000 LA @14,REJCODE 0245 00900000 ST @14,IOPTLIST+40 0245 00901000 * IOPTLIST(12)=0; /* ZERO RESERVED FIELD */ 00902000 ST @10,IOPTLIST+44 0246 00903000 * RFY 0247 00904000 * I015F BASED(ADDR(IOPTLIST(12)));/* ACCESS BYTES 1-2 */ 00905000 * I015F=LENGTH(REJCODE); /* INSERT LENGTH */ 00906000 LA @14,IOPTLIST+44 0248 00907000 STH @15,I015F(,@14) 0248 00908000 * IOPTLIST(13)=ADDR(IOPTLIST(16));/* CHAIN TO NEXT INSERT */ 00909000 LA @15,IOPTLIST+60 0249 00910000 ST @15,IOPTLIST+48 0249 00911000 * IOPTLIST(14)=ADDR(RESULT); /* INSERT NAME POINTER */ 00912000 LA @15,RESULT 0250 00913000 ST @15,IOPTLIST+52 0250 00914000 * IOPTLIST(15)=0; /* ZERO RESERVED FIELD */ 00915000 ST @10,IOPTLIST+56 0251 00916000 * RFY 0252 00917000 * I015F BASED(ADDR(IOPTLIST(15)));/* ACCESS BYTES 1-2 */ 00918000 * I015F=LENGTH(RESULT); /* INSERT LENGTH */ 00919000 LA @15,IOPTLIST+56 0253 00920000 STH @05,I015F(,@15) 0253 00921000 * IOPTLIST(16)=ADDR(IOPTLIST(19));/* CHAIN TO NEXT INSERT */ 00922000 LA @15,IOPTLIST+72 0254 00923000 ST @15,IOPTLIST+60 0254 00924000 * IOPTLIST(17)=ADDR(CTEMP18); /* INSERT NAME POINTER */ 00925000 LA @15,CTEMP18 0255 00926000 ST @15,IOPTLIST+64 0255 00927000 * IOPTLIST(18)=0; /* ZERO RESERVED FIELD */ 00928000 ST @10,IOPTLIST+68 0256 00929000 * RFY 0257 00930000 * I015F BASED(ADDR(IOPTLIST(18)));/* ACCESS BYTES 1-2 */ 00931000 * I015F=LENGTH(CTEMP18); /* INSERT LENGTH */ 00932000 LA @15,IOPTLIST+68 0258 00933000 STH @05,I015F(,@15) 0258 00934000 * IOPTLIST(19)=0; /* LAST INSERT */ 00935000 ST @10,IOPTLIST+72 0259 00936000 * IOPTLIST(20)=ADDR(DMCBDSN); /* INSERT NAME POINTER */ 00937000 LA @05,DMCBDSN(,DMCBPTR) 0260 00938000 ST @05,IOPTLIST+76 0260 00939000 * IOPTLIST(21)=0; /* ZERO RESERVED FIELD */ 00940000 ST @10,IOPTLIST+80 0261 00941000 * RFY 0262 00942000 * I015F BASED(ADDR(IOPTLIST(21)));/* ACCESS BYTES 1-2 */ 00943000 * I015F=LENGTH(DMCBDSN); /* INSERT LENGTH */ 00944000 LA @10,IOPTLIST+80 0263 00945000 MVC I015F(2,@10),@CH00121 0263 00946000 * CALL BLSDMSG0(ZZ2,F3116C,DMCBMSG,BLSDMSGS,'00000000'B,ADDR( 0264 00947000 * IOPTLIST)); /* BUILD MESSAGE */ 00948000 L @10,DMCBTVP(,DMCBPTR) 0264 00949000 ST @10,@AL00001 0264 00950000 LA @10,@CF00314 0264 00951000 ST @10,@AL00001+4 0264 00952000 LA @10,DMCBMSG(,DMCBPTR) 0264 00953000 ST @10,@AL00001+8 0264 00954000 L @10,DMCBMSGS(,DMCBPTR) 0264 00955000 ST @10,@AL00001+12 0264 00956000 LA @10,@CB00378 0264 00957000 ST @10,@AL00001+16 0264 00958000 LA @10,IOPTLIST 0264 00959000 ST @10,@AFTEMPS+8 0264 00960000 LA @10,@AFTEMPS+8 0264 00961000 ST @10,@AL00001+20 0264 00962000 L @15,DMCBMSG0(,DMCBPTR) 0264 00963000 LA @01,@AL00001 0264 00964000 BALR @14,@15 0264 00965000 * END; /* BLSDMSG 0265 00966000 * (ZZ2,F3116C,DMCBMSG,BLSDMSGS) 00967000 * INSERT(DMCBDDNM,OPCODE,RCODE,R 00968000 * EJCODE,RESULT,CTEMP18,DMCBDSN)*/ 00969000 */* BUILD ERROR MESSAGE */ 00970000 * 0266 00971000 * IF DMCBRQST=DMCBOPR|DMCBRQST=DMCBCLR THEN/* TEST FOR OPEN OR 0266 00972000 * CLOSE */ 00973000 CLI DMCBRQST(DMCBPTR),1 0266 00974000 BE @RT00266 0266 00975000 CLI DMCBRQST(DMCBPTR),2 0266 00976000 BNE @RF00266 0266 00977000 @RT00266 DS 0H 0267 00978000 * DO; /* NON-VSAM OPEN OR CLOSE */ 00979000 * END; /* NON-VSAM OPEN OR CLOSE */ 00980000 * ELSE 0269 00981000 * DO; /* NON-VSAM DATA OPERATION */ 00982000 B @RC00266 0269 00983000 @RF00266 DS 0H 0270 00984000 * IF DMCBRTC=12 THEN /* TEST FOR SYNAD ERROR */ 00985000 CLC DMCBRTC(4,DMCBPTR),@CF00244 0270 00986000 BNE @RF00270 0270 00987000 * DO; /* ISSUE SYNAD ERROR MESSAGE */ 00988000 * CALL SYNADERR; /* ISSUE THE SYNAD ERROR MESSAGE */ 00989000 BAL @14,SYNADERR 0272 00990000 * END; /* ISSUE SYNAD ERROR MESSAGE */ 00991000 * END; /* NON-VSAM DATA OPERATION */ 00992000 * END NONVSAM; 0275 00993000 @EL00005 DS 0H 0275 00994000 @EF00005 DS 0H 0275 00995000 @ER00005 LM @14,@12,@SA00005 0275 00996000 BR @14 0275 00997000 EJECT 00998000 * 0276 00999000 * /*****************************************************************/ 01000000 * /* */ 01001000 * /* PROCEDURE TO ISSUE THE NON-VSAM SYNAD ERROR MESSAGE */ 01002000 * /* */ 01003000 * /*****************************************************************/ 01004000 * 0276 01005000 *SYNADERR: 0276 01006000 * PROCEDURE; 0276 01007000 * 0276 01008000 SYNADERR STM @14,@12,@SA00006 0276 01009000 * /*****************************************************************/ 01010000 * /* */ 01011000 * /* SYNAD MESSAGE FOR UNIT RECORD DEVICE TYPE */ 01012000 * /* */ 01013000 * /*****************************************************************/ 01014000 * 0277 01015000 * IF SYNDDVTY=LURC THEN /* TEST FOR UNIT RECORD ERROR */ 01016000 CLC SYNDDVTY(2,DMCBPTR),@CC00332 0277 01017000 BNE @RF00277 0277 01018000 * DO; /* HANDLE UNIT RECORD CASE */ 01019000 * DO; /* BLSDMSG 0279 01020000 * (ZZ2,F3115C,DMCBMSG,BLSDMSGS) 01021000 * INSERT(DMCBDSN,LNAC,SYNDSTEP,S 01022000 * YNDUA,SYNDDVTY,SYNDDDNM,SYNDOP 01023000 * N,SYNDERDS,SYNDDACM,LNAC) */ 01024000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT INSERT */ 01025000 LA @10,IOPTLIST+12 0280 01026000 ST @10,IOPTLIST 0280 01027000 * IOPTLIST(2)=ADDR(DMCBDSN);/* INSERT NAME POINTER */ 01028000 LA @10,DMCBDSN(,DMCBPTR) 0281 01029000 ST @10,IOPTLIST+4 0281 01030000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 01031000 SLR @10,@10 0282 01032000 ST @10,IOPTLIST+8 0282 01033000 * RFY 0283 01034000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 1-2 */ 01035000 * I015F=LENGTH(DMCBDSN); /* INSERT LENGTH */ 01036000 LA @05,IOPTLIST+8 0284 01037000 MVC I015F(2,@05),@CH00121 0284 01038000 * IOPTLIST(4)=ADDR(IOPTLIST(7));/* CHAIN TO NEXT INSERT */ 01039000 LA @05,IOPTLIST+24 0285 01040000 ST @05,IOPTLIST+12 0285 01041000 * IOPTLIST(5)=ADDR(LNAC); /* INSERT NAME POINTER */ 01042000 LA @05,@CC00326 0286 01043000 ST @05,IOPTLIST+16 0286 01044000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 01045000 ST @10,IOPTLIST+20 0287 01046000 * RFY 0288 01047000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 1-2 */ 01048000 * I015F=LENGTH(LNAC); /* INSERT LENGTH */ 01049000 LA @15,3 0289 01050000 LA @14,IOPTLIST+20 0289 01051000 STH @15,I015F(,@14) 0289 01052000 * IOPTLIST(7)=ADDR(IOPTLIST(10));/* CHAIN TO NEXT INSERT */ 01053000 LA @14,IOPTLIST+36 0290 01054000 ST @14,IOPTLIST+24 0290 01055000 * IOPTLIST(8)=ADDR(SYNDSTEP);/* INSERT NAME POINTER */ 01056000 LA @14,SYNDSTEP(,DMCBPTR) 0291 01057000 ST @14,IOPTLIST+28 0291 01058000 * IOPTLIST(9)=0; /* ZERO RESERVED FIELD */ 01059000 ST @10,IOPTLIST+32 0292 01060000 * RFY 0293 01061000 * I015F BASED(ADDR(IOPTLIST(9)));/* ACCESS BYTES 1-2 */ 01062000 * I015F=LENGTH(SYNDSTEP); /* INSERT LENGTH */ 01063000 LA @14,8 0294 01064000 LA @09,IOPTLIST+32 0294 01065000 STH @14,I015F(,@09) 0294 01066000 * IOPTLIST(10)=ADDR(IOPTLIST(13));/* CHAIN TO NEXT INSERT */ 01067000 LA @09,IOPTLIST+48 0295 01068000 ST @09,IOPTLIST+36 0295 01069000 * IOPTLIST(11)=ADDR(SYNDUA);/* INSERT NAME POINTER */ 01070000 LA @09,SYNDUA(,DMCBPTR) 0296 01071000 ST @09,IOPTLIST+40 0296 01072000 * IOPTLIST(12)=0; /* ZERO RESERVED FIELD */ 01073000 ST @10,IOPTLIST+44 0297 01074000 * RFY 0298 01075000 * I015F BASED(ADDR(IOPTLIST(12)));/* ACCESS BYTES 1-2 */ 01076000 * I015F=LENGTH(SYNDUA); /* INSERT LENGTH */ 01077000 LA @09,IOPTLIST+44 0299 01078000 STH @15,I015F(,@09) 0299 01079000 * IOPTLIST(13)=ADDR(IOPTLIST(16));/* CHAIN TO NEXT INSERT */ 01080000 LA @09,IOPTLIST+60 0300 01081000 ST @09,IOPTLIST+48 0300 01082000 * IOPTLIST(14)=ADDR(SYNDDVTY);/* INSERT NAME POINTER */ 01083000 LA @09,SYNDDVTY(,DMCBPTR) 0301 01084000 ST @09,IOPTLIST+52 0301 01085000 * IOPTLIST(15)=0; /* ZERO RESERVED FIELD */ 01086000 ST @10,IOPTLIST+56 0302 01087000 * RFY 0303 01088000 * I015F BASED(ADDR(IOPTLIST(15)));/* ACCESS BYTES 1-2 */ 01089000 * I015F=LENGTH(SYNDDVTY); /* INSERT LENGTH */ 01090000 LA @09,IOPTLIST+56 0304 01091000 MVC I015F(2,@09),@CH00074 0304 01092000 * IOPTLIST(16)=ADDR(IOPTLIST(19));/* CHAIN TO NEXT INSERT */ 01093000 LA @09,IOPTLIST+72 0305 01094000 ST @09,IOPTLIST+60 0305 01095000 * IOPTLIST(17)=ADDR(SYNDDDNM);/* INSERT NAME POINTER */ 01096000 LA @09,SYNDDDNM(,DMCBPTR) 0306 01097000 ST @09,IOPTLIST+64 0306 01098000 * IOPTLIST(18)=0; /* ZERO RESERVED FIELD */ 01099000 ST @10,IOPTLIST+68 0307 01100000 * RFY 0308 01101000 * I015F BASED(ADDR(IOPTLIST(18)));/* ACCESS BYTES 1-2 */ 01102000 * I015F=LENGTH(SYNDDDNM); /* INSERT LENGTH */ 01103000 LA @09,IOPTLIST+68 0309 01104000 STH @14,I015F(,@09) 0309 01105000 * IOPTLIST(19)=ADDR(IOPTLIST(22));/* CHAIN TO NEXT INSERT */ 01106000 LA @14,IOPTLIST+84 0310 01107000 ST @14,IOPTLIST+72 0310 01108000 * IOPTLIST(20)=ADDR(SYNDOPN);/* INSERT NAME POINTER */ 01109000 LA @14,SYNDOPN(,DMCBPTR) 0311 01110000 ST @14,IOPTLIST+76 0311 01111000 * IOPTLIST(21)=0; /* ZERO RESERVED FIELD */ 01112000 ST @10,IOPTLIST+80 0312 01113000 * RFY 0313 01114000 * I015F BASED(ADDR(IOPTLIST(21)));/* ACCESS BYTES 1-2 */ 01115000 * I015F=LENGTH(SYNDOPN); /* INSERT LENGTH */ 01116000 LA @14,6 0314 01117000 LA @09,IOPTLIST+80 0314 01118000 STH @14,I015F(,@09) 0314 01119000 * IOPTLIST(22)=ADDR(IOPTLIST(25));/* CHAIN TO NEXT INSERT */ 01120000 LA @09,IOPTLIST+96 0315 01121000 ST @09,IOPTLIST+84 0315 01122000 * IOPTLIST(23)=ADDR(SYNDERDS);/* INSERT NAME POINTER */ 01123000 LA @09,SYNDERDS(,DMCBPTR) 0316 01124000 ST @09,IOPTLIST+88 0316 01125000 * IOPTLIST(24)=0; /* ZERO RESERVED FIELD */ 01126000 ST @10,IOPTLIST+92 0317 01127000 * RFY 0318 01128000 * I015F BASED(ADDR(IOPTLIST(24)));/* ACCESS BYTES 1-2 */ 01129000 * I015F=LENGTH(SYNDERDS); /* INSERT LENGTH */ 01130000 LA @09,IOPTLIST+92 0319 01131000 MVC I015F(2,@09),@CH00143 0319 01132000 * IOPTLIST(25)=ADDR(IOPTLIST(28));/* CHAIN TO NEXT INSERT */ 01133000 LA @09,IOPTLIST+108 0320 01134000 ST @09,IOPTLIST+96 0320 01135000 * IOPTLIST(26)=ADDR(SYNDDACM);/* INSERT NAME POINTER */ 01136000 LA @09,SYNDDACM(,DMCBPTR) 0321 01137000 ST @09,IOPTLIST+100 0321 01138000 * IOPTLIST(27)=0; /* ZERO RESERVED FIELD */ 01139000 ST @10,IOPTLIST+104 0322 01140000 * RFY 0323 01141000 * I015F BASED(ADDR(IOPTLIST(27)));/* ACCESS BYTES 1-2 */ 01142000 * I015F=LENGTH(SYNDDACM); /* INSERT LENGTH */ 01143000 LA @09,IOPTLIST+104 0324 01144000 STH @14,I015F(,@09) 0324 01145000 * IOPTLIST(28)=0; /* LAST INSERT */ 01146000 ST @10,IOPTLIST+108 0325 01147000 * IOPTLIST(29)=ADDR(LNAC); /* INSERT NAME POINTER */ 01148000 ST @05,IOPTLIST+112 0326 01149000 * IOPTLIST(30)=0; /* ZERO RESERVED FIELD */ 01150000 ST @10,IOPTLIST+116 0327 01151000 * RFY 0328 01152000 * I015F BASED(ADDR(IOPTLIST(30)));/* ACCESS BYTES 1-2 */ 01153000 * I015F=LENGTH(LNAC); /* INSERT LENGTH */ 01154000 LA @10,IOPTLIST+116 0329 01155000 STH @15,I015F(,@10) 0329 01156000 * CALL BLSDMSG0(ZZ2,F3115C,DMCBMSG,BLSDMSGS,'00000000'B,ADDR( 01157000 * IOPTLIST)); /* BUILD MESSAGE */ 01158000 L @10,DMCBTVP(,DMCBPTR) 0330 01159000 ST @10,@AL00001 0330 01160000 LA @10,@CF00312 0330 01161000 ST @10,@AL00001+4 0330 01162000 LA @10,DMCBMSG(,DMCBPTR) 0330 01163000 ST @10,@AL00001+8 0330 01164000 L @10,DMCBMSGS(,DMCBPTR) 0330 01165000 ST @10,@AL00001+12 0330 01166000 LA @10,@CB00378 0330 01167000 ST @10,@AL00001+16 0330 01168000 LA @10,IOPTLIST 0330 01169000 ST @10,@AFTEMPS+12 0330 01170000 LA @10,@AFTEMPS+12 0330 01171000 ST @10,@AL00001+20 0330 01172000 L @15,DMCBMSG0(,DMCBPTR) 0330 01173000 LA @01,@AL00001 0330 01174000 BALR @14,@15 0330 01175000 * END; /* BLSDMSG 0331 01176000 * (ZZ2,F3115C,DMCBMSG,BLSDMSGS) 01177000 * INSERT(DMCBDSN,LNAC,SYNDSTEP,S 01178000 * YNDUA,SYNDDVTY,SYNDDDNM,SYNDOP 01179000 * N,SYNDERDS,SYNDDACM,LNAC) 0331 01180000 * BUILD ERROR MESSAGE */ 01181000 * END; /* HANDLE UNIT RECORD CASE */ 01182000 EJECT 01183000 * 0333 01184000 * /*****************************************************************/ 01185000 * /* */ 01186000 * /* SYNAD MESSAGE FOR TAPE DEVICE TYPE */ 01187000 * /* */ 01188000 * /*****************************************************************/ 01189000 * 0333 01190000 * IF SYNDDVTY=LTAC THEN /* TEST FOR TAPE ERROR */ 01191000 @RF00277 CLC SYNDDVTY(2,DMCBPTR),@CC00330 0333 01192000 BNE @RF00333 0333 01193000 * DO; /* HANDLE TAPE DEVICE CASE */ 01194000 * DO; /* BLSDMSG 0335 01195000 * (ZZ2,F3115C,DMCBMSG,BLSDMSGS) 01196000 * INSERT(DMCBDSN,DMCBVOL,SYNDSTE 01197000 * P,SYNDUA,SYNDDVTY,SYNDDDNM,SYN 01198000 * DOPN,SYNDERDS,SYNDTACM,SYNDTBL 01199000 * K) */ 01200000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT INSERT */ 01201000 LA @10,IOPTLIST+12 0336 01202000 ST @10,IOPTLIST 0336 01203000 * IOPTLIST(2)=ADDR(DMCBDSN);/* INSERT NAME POINTER */ 01204000 LA @10,DMCBDSN(,DMCBPTR) 0337 01205000 ST @10,IOPTLIST+4 0337 01206000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 01207000 SLR @10,@10 0338 01208000 ST @10,IOPTLIST+8 0338 01209000 * RFY 0339 01210000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 1-2 */ 01211000 * I015F=LENGTH(DMCBDSN); /* INSERT LENGTH */ 01212000 LA @05,IOPTLIST+8 0340 01213000 MVC I015F(2,@05),@CH00121 0340 01214000 * IOPTLIST(4)=ADDR(IOPTLIST(7));/* CHAIN TO NEXT INSERT */ 01215000 LA @05,IOPTLIST+24 0341 01216000 ST @05,IOPTLIST+12 0341 01217000 * IOPTLIST(5)=ADDR(DMCBVOL);/* INSERT NAME POINTER */ 01218000 LA @05,DMCBVOL(,DMCBPTR) 0342 01219000 ST @05,IOPTLIST+16 0342 01220000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 01221000 ST @10,IOPTLIST+20 0343 01222000 * RFY 0344 01223000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 1-2 */ 01224000 * I015F=LENGTH(DMCBVOL); /* INSERT LENGTH */ 01225000 LA @05,6 0345 01226000 LA @15,IOPTLIST+20 0345 01227000 STH @05,I015F(,@15) 0345 01228000 * IOPTLIST(7)=ADDR(IOPTLIST(10));/* CHAIN TO NEXT INSERT */ 01229000 LA @15,IOPTLIST+36 0346 01230000 ST @15,IOPTLIST+24 0346 01231000 * IOPTLIST(8)=ADDR(SYNDSTEP);/* INSERT NAME POINTER */ 01232000 LA @15,SYNDSTEP(,DMCBPTR) 0347 01233000 ST @15,IOPTLIST+28 0347 01234000 * IOPTLIST(9)=0; /* ZERO RESERVED FIELD */ 01235000 ST @10,IOPTLIST+32 0348 01236000 * RFY 0349 01237000 * I015F BASED(ADDR(IOPTLIST(9)));/* ACCESS BYTES 1-2 */ 01238000 * I015F=LENGTH(SYNDSTEP); /* INSERT LENGTH */ 01239000 LA @15,8 0350 01240000 LA @14,IOPTLIST+32 0350 01241000 STH @15,I015F(,@14) 0350 01242000 * IOPTLIST(10)=ADDR(IOPTLIST(13));/* CHAIN TO NEXT INSERT */ 01243000 LA @14,IOPTLIST+48 0351 01244000 ST @14,IOPTLIST+36 0351 01245000 * IOPTLIST(11)=ADDR(SYNDUA);/* INSERT NAME POINTER */ 01246000 LA @14,SYNDUA(,DMCBPTR) 0352 01247000 ST @14,IOPTLIST+40 0352 01248000 * IOPTLIST(12)=0; /* ZERO RESERVED FIELD */ 01249000 ST @10,IOPTLIST+44 0353 01250000 * RFY 0354 01251000 * I015F BASED(ADDR(IOPTLIST(12)));/* ACCESS BYTES 1-2 */ 01252000 * I015F=LENGTH(SYNDUA); /* INSERT LENGTH */ 01253000 LA @14,IOPTLIST+44 0355 01254000 MVC I015F(2,@14),@CH00103 0355 01255000 * IOPTLIST(13)=ADDR(IOPTLIST(16));/* CHAIN TO NEXT INSERT */ 01256000 LA @14,IOPTLIST+60 0356 01257000 ST @14,IOPTLIST+48 0356 01258000 * IOPTLIST(14)=ADDR(SYNDDVTY);/* INSERT NAME POINTER */ 01259000 LA @14,SYNDDVTY(,DMCBPTR) 0357 01260000 ST @14,IOPTLIST+52 0357 01261000 * IOPTLIST(15)=0; /* ZERO RESERVED FIELD */ 01262000 ST @10,IOPTLIST+56 0358 01263000 * RFY 0359 01264000 * I015F BASED(ADDR(IOPTLIST(15)));/* ACCESS BYTES 1-2 */ 01265000 * I015F=LENGTH(SYNDDVTY); /* INSERT LENGTH */ 01266000 LA @14,IOPTLIST+56 0360 01267000 MVC I015F(2,@14),@CH00074 0360 01268000 * IOPTLIST(16)=ADDR(IOPTLIST(19));/* CHAIN TO NEXT INSERT */ 01269000 LA @14,IOPTLIST+72 0361 01270000 ST @14,IOPTLIST+60 0361 01271000 * IOPTLIST(17)=ADDR(SYNDDDNM);/* INSERT NAME POINTER */ 01272000 LA @14,SYNDDDNM(,DMCBPTR) 0362 01273000 ST @14,IOPTLIST+64 0362 01274000 * IOPTLIST(18)=0; /* ZERO RESERVED FIELD */ 01275000 ST @10,IOPTLIST+68 0363 01276000 * RFY 0364 01277000 * I015F BASED(ADDR(IOPTLIST(18)));/* ACCESS BYTES 1-2 */ 01278000 * I015F=LENGTH(SYNDDDNM); /* INSERT LENGTH */ 01279000 LA @14,IOPTLIST+68 0365 01280000 STH @15,I015F(,@14) 0365 01281000 * IOPTLIST(19)=ADDR(IOPTLIST(22));/* CHAIN TO NEXT INSERT */ 01282000 LA @15,IOPTLIST+84 0366 01283000 ST @15,IOPTLIST+72 0366 01284000 * IOPTLIST(20)=ADDR(SYNDOPN);/* INSERT NAME POINTER */ 01285000 LA @15,SYNDOPN(,DMCBPTR) 0367 01286000 ST @15,IOPTLIST+76 0367 01287000 * IOPTLIST(21)=0; /* ZERO RESERVED FIELD */ 01288000 ST @10,IOPTLIST+80 0368 01289000 * RFY 0369 01290000 * I015F BASED(ADDR(IOPTLIST(21)));/* ACCESS BYTES 1-2 */ 01291000 * I015F=LENGTH(SYNDOPN); /* INSERT LENGTH */ 01292000 LA @15,IOPTLIST+80 0370 01293000 STH @05,I015F(,@15) 0370 01294000 * IOPTLIST(22)=ADDR(IOPTLIST(25));/* CHAIN TO NEXT INSERT */ 01295000 LA @15,IOPTLIST+96 0371 01296000 ST @15,IOPTLIST+84 0371 01297000 * IOPTLIST(23)=ADDR(SYNDERDS);/* INSERT NAME POINTER */ 01298000 LA @15,SYNDERDS(,DMCBPTR) 0372 01299000 ST @15,IOPTLIST+88 0372 01300000 * IOPTLIST(24)=0; /* ZERO RESERVED FIELD */ 01301000 ST @10,IOPTLIST+92 0373 01302000 * RFY 0374 01303000 * I015F BASED(ADDR(IOPTLIST(24)));/* ACCESS BYTES 1-2 */ 01304000 * I015F=LENGTH(SYNDERDS); /* INSERT LENGTH */ 01305000 LA @15,IOPTLIST+92 0375 01306000 MVC I015F(2,@15),@CH00143 0375 01307000 * IOPTLIST(25)=ADDR(IOPTLIST(28));/* CHAIN TO NEXT INSERT */ 01308000 LA @15,IOPTLIST+108 0376 01309000 ST @15,IOPTLIST+96 0376 01310000 * IOPTLIST(26)=ADDR(SYNDTACM);/* INSERT NAME POINTER */ 01311000 LA @15,SYNDTACM(,DMCBPTR) 0377 01312000 ST @15,IOPTLIST+100 0377 01313000 * IOPTLIST(27)=0; /* ZERO RESERVED FIELD */ 01314000 ST @10,IOPTLIST+104 0378 01315000 * RFY 0379 01316000 * I015F BASED(ADDR(IOPTLIST(27)));/* ACCESS BYTES 1-2 */ 01317000 * I015F=LENGTH(SYNDTACM); /* INSERT LENGTH */ 01318000 LA @15,IOPTLIST+104 0380 01319000 STH @05,I015F(,@15) 0380 01320000 * IOPTLIST(28)=0; /* LAST INSERT */ 01321000 ST @10,IOPTLIST+108 0381 01322000 * IOPTLIST(29)=ADDR(SYNDTBLK);/* INSERT NAME POINTER */ 01323000 LA @05,SYNDTBLK(,DMCBPTR) 0382 01324000 ST @05,IOPTLIST+112 0382 01325000 * IOPTLIST(30)=0; /* ZERO RESERVED FIELD */ 01326000 ST @10,IOPTLIST+116 0383 01327000 * RFY 0384 01328000 * I015F BASED(ADDR(IOPTLIST(30)));/* ACCESS BYTES 1-2 */ 01329000 * I015F=LENGTH(SYNDTBLK); /* INSERT LENGTH */ 01330000 LA @10,IOPTLIST+116 0385 01331000 MVC I015F(2,@10),@CH00081 0385 01332000 * CALL BLSDMSG0(ZZ2,F3115C,DMCBMSG,BLSDMSGS,'00000000'B,ADDR( 01333000 * IOPTLIST)); /* BUILD MESSAGE */ 01334000 L @10,DMCBTVP(,DMCBPTR) 0386 01335000 ST @10,@AL00001 0386 01336000 LA @10,@CF00312 0386 01337000 ST @10,@AL00001+4 0386 01338000 LA @10,DMCBMSG(,DMCBPTR) 0386 01339000 ST @10,@AL00001+8 0386 01340000 L @10,DMCBMSGS(,DMCBPTR) 0386 01341000 ST @10,@AL00001+12 0386 01342000 LA @10,@CB00378 0386 01343000 ST @10,@AL00001+16 0386 01344000 LA @10,IOPTLIST 0386 01345000 ST @10,@AFTEMPS+12 0386 01346000 LA @10,@AFTEMPS+12 0386 01347000 ST @10,@AL00001+20 0386 01348000 L @15,DMCBMSG0(,DMCBPTR) 0386 01349000 LA @01,@AL00001 0386 01350000 BALR @14,@15 0386 01351000 * END; /* BLSDMSG 0387 01352000 * (ZZ2,F3115C,DMCBMSG,BLSDMSGS) 01353000 * INSERT(DMCBDSN,DMCBVOL,SYNDSTE 01354000 * P,SYNDUA,SYNDDVTY,SYNDDDNM,SYN 01355000 * DOPN,SYNDERDS,SYNDTACM,SYNDTBL 01356000 * K) BUILD ERROR MESSAGE */ 01357000 * END; /* HANDLE TAPE DEVICE CASE */ 01358000 EJECT 01359000 * 0389 01360000 * /*****************************************************************/ 01361000 * /* */ 01362000 * /* SYNAD MESSAGE FOR DIRECT ACCESS DEVICE TYPE */ 01363000 * /* */ 01364000 * /*****************************************************************/ 01365000 * 0389 01366000 * IF SYNDDVTY=LDAC THEN /* TEST FOR DIRECT ACCESS ERROR */ 01367000 @RF00333 CLC SYNDDVTY(2,DMCBPTR),@CC00328 0389 01368000 BNE @RF00389 0389 01369000 * DO; /* HANDLE DASD CASE */ 01370000 * DO; /* BLSDMSG 0391 01371000 * (ZZ2,F3115C,DMCBMSG,BLSDMSGS) 01372000 * INSERT(DMCBDSN,DMCBVOL,SYNDSTE 01373000 * P,SYNDUA,SYNDDVTY,SYNDDDNM,SYN 01374000 * DOPN,SYNDERDS,SYNDDACM,SYNDDAD 01375000 * R) */ 01376000 * IOPTLIST(1)=ADDR(IOPTLIST(4));/* CHAIN TO NEXT INSERT */ 01377000 LA @10,IOPTLIST+12 0392 01378000 ST @10,IOPTLIST 0392 01379000 * IOPTLIST(2)=ADDR(DMCBDSN);/* INSERT NAME POINTER */ 01380000 LA @10,DMCBDSN(,DMCBPTR) 0393 01381000 ST @10,IOPTLIST+4 0393 01382000 * IOPTLIST(3)=0; /* ZERO RESERVED FIELD */ 01383000 SLR @10,@10 0394 01384000 ST @10,IOPTLIST+8 0394 01385000 * RFY 0395 01386000 * I015F BASED(ADDR(IOPTLIST(3)));/* ACCESS BYTES 1-2 */ 01387000 * I015F=LENGTH(DMCBDSN); /* INSERT LENGTH */ 01388000 LA @05,IOPTLIST+8 0396 01389000 MVC I015F(2,@05),@CH00121 0396 01390000 * IOPTLIST(4)=ADDR(IOPTLIST(7));/* CHAIN TO NEXT INSERT */ 01391000 LA @05,IOPTLIST+24 0397 01392000 ST @05,IOPTLIST+12 0397 01393000 * IOPTLIST(5)=ADDR(DMCBVOL);/* INSERT NAME POINTER */ 01394000 LA @05,DMCBVOL(,DMCBPTR) 0398 01395000 ST @05,IOPTLIST+16 0398 01396000 * IOPTLIST(6)=0; /* ZERO RESERVED FIELD */ 01397000 ST @10,IOPTLIST+20 0399 01398000 * RFY 0400 01399000 * I015F BASED(ADDR(IOPTLIST(6)));/* ACCESS BYTES 1-2 */ 01400000 * I015F=LENGTH(DMCBVOL); /* INSERT LENGTH */ 01401000 LA @05,6 0401 01402000 LA @15,IOPTLIST+20 0401 01403000 STH @05,I015F(,@15) 0401 01404000 * IOPTLIST(7)=ADDR(IOPTLIST(10));/* CHAIN TO NEXT INSERT */ 01405000 LA @15,IOPTLIST+36 0402 01406000 ST @15,IOPTLIST+24 0402 01407000 * IOPTLIST(8)=ADDR(SYNDSTEP);/* INSERT NAME POINTER */ 01408000 LA @15,SYNDSTEP(,DMCBPTR) 0403 01409000 ST @15,IOPTLIST+28 0403 01410000 * IOPTLIST(9)=0; /* ZERO RESERVED FIELD */ 01411000 ST @10,IOPTLIST+32 0404 01412000 * RFY 0405 01413000 * I015F BASED(ADDR(IOPTLIST(9)));/* ACCESS BYTES 1-2 */ 01414000 * I015F=LENGTH(SYNDSTEP); /* INSERT LENGTH */ 01415000 LA @15,8 0406 01416000 LA @14,IOPTLIST+32 0406 01417000 STH @15,I015F(,@14) 0406 01418000 * IOPTLIST(10)=ADDR(IOPTLIST(13));/* CHAIN TO NEXT INSERT */ 01419000 LA @14,IOPTLIST+48 0407 01420000 ST @14,IOPTLIST+36 0407 01421000 * IOPTLIST(11)=ADDR(SYNDUA);/* INSERT NAME POINTER */ 01422000 LA @14,SYNDUA(,DMCBPTR) 0408 01423000 ST @14,IOPTLIST+40 0408 01424000 * IOPTLIST(12)=0; /* ZERO RESERVED FIELD */ 01425000 ST @10,IOPTLIST+44 0409 01426000 * RFY 0410 01427000 * I015F BASED(ADDR(IOPTLIST(12)));/* ACCESS BYTES 1-2 */ 01428000 * I015F=LENGTH(SYNDUA); /* INSERT LENGTH */ 01429000 LA @14,IOPTLIST+44 0411 01430000 MVC I015F(2,@14),@CH00103 0411 01431000 * IOPTLIST(13)=ADDR(IOPTLIST(16));/* CHAIN TO NEXT INSERT */ 01432000 LA @14,IOPTLIST+60 0412 01433000 ST @14,IOPTLIST+48 0412 01434000 * IOPTLIST(14)=ADDR(SYNDDVTY);/* INSERT NAME POINTER */ 01435000 LA @14,SYNDDVTY(,DMCBPTR) 0413 01436000 ST @14,IOPTLIST+52 0413 01437000 * IOPTLIST(15)=0; /* ZERO RESERVED FIELD */ 01438000 ST @10,IOPTLIST+56 0414 01439000 * RFY 0415 01440000 * I015F BASED(ADDR(IOPTLIST(15)));/* ACCESS BYTES 1-2 */ 01441000 * I015F=LENGTH(SYNDDVTY); /* INSERT LENGTH */ 01442000 LA @14,IOPTLIST+56 0416 01443000 MVC I015F(2,@14),@CH00074 0416 01444000 * IOPTLIST(16)=ADDR(IOPTLIST(19));/* CHAIN TO NEXT INSERT */ 01445000 LA @14,IOPTLIST+72 0417 01446000 ST @14,IOPTLIST+60 0417 01447000 * IOPTLIST(17)=ADDR(SYNDDDNM);/* INSERT NAME POINTER */ 01448000 LA @14,SYNDDDNM(,DMCBPTR) 0418 01449000 ST @14,IOPTLIST+64 0418 01450000 * IOPTLIST(18)=0; /* ZERO RESERVED FIELD */ 01451000 ST @10,IOPTLIST+68 0419 01452000 * RFY 0420 01453000 * I015F BASED(ADDR(IOPTLIST(18)));/* ACCESS BYTES 1-2 */ 01454000 * I015F=LENGTH(SYNDDDNM); /* INSERT LENGTH */ 01455000 LA @14,IOPTLIST+68 0421 01456000 STH @15,I015F(,@14) 0421 01457000 * IOPTLIST(19)=ADDR(IOPTLIST(22));/* CHAIN TO NEXT INSERT */ 01458000 LA @15,IOPTLIST+84 0422 01459000 ST @15,IOPTLIST+72 0422 01460000 * IOPTLIST(20)=ADDR(SYNDOPN);/* INSERT NAME POINTER */ 01461000 LA @15,SYNDOPN(,DMCBPTR) 0423 01462000 ST @15,IOPTLIST+76 0423 01463000 * IOPTLIST(21)=0; /* ZERO RESERVED FIELD */ 01464000 ST @10,IOPTLIST+80 0424 01465000 * RFY 0425 01466000 * I015F BASED(ADDR(IOPTLIST(21)));/* ACCESS BYTES 1-2 */ 01467000 * I015F=LENGTH(SYNDOPN); /* INSERT LENGTH */ 01468000 LA @15,IOPTLIST+80 0426 01469000 STH @05,I015F(,@15) 0426 01470000 * IOPTLIST(22)=ADDR(IOPTLIST(25));/* CHAIN TO NEXT INSERT */ 01471000 LA @15,IOPTLIST+96 0427 01472000 ST @15,IOPTLIST+84 0427 01473000 * IOPTLIST(23)=ADDR(SYNDERDS);/* INSERT NAME POINTER */ 01474000 LA @15,SYNDERDS(,DMCBPTR) 0428 01475000 ST @15,IOPTLIST+88 0428 01476000 * IOPTLIST(24)=0; /* ZERO RESERVED FIELD */ 01477000 ST @10,IOPTLIST+92 0429 01478000 * RFY 0430 01479000 * I015F BASED(ADDR(IOPTLIST(24)));/* ACCESS BYTES 1-2 */ 01480000 * I015F=LENGTH(SYNDERDS); /* INSERT LENGTH */ 01481000 LA @15,IOPTLIST+92 0431 01482000 MVC I015F(2,@15),@CH00143 0431 01483000 * IOPTLIST(25)=ADDR(IOPTLIST(28));/* CHAIN TO NEXT INSERT */ 01484000 LA @15,IOPTLIST+108 0432 01485000 ST @15,IOPTLIST+96 0432 01486000 * IOPTLIST(26)=ADDR(SYNDDACM);/* INSERT NAME POINTER */ 01487000 LA @15,SYNDDACM(,DMCBPTR) 0433 01488000 ST @15,IOPTLIST+100 0433 01489000 * IOPTLIST(27)=0; /* ZERO RESERVED FIELD */ 01490000 ST @10,IOPTLIST+104 0434 01491000 * RFY 0435 01492000 * I015F BASED(ADDR(IOPTLIST(27)));/* ACCESS BYTES 1-2 */ 01493000 * I015F=LENGTH(SYNDDACM); /* INSERT LENGTH */ 01494000 LA @15,IOPTLIST+104 0436 01495000 STH @05,I015F(,@15) 0436 01496000 * IOPTLIST(28)=0; /* LAST INSERT */ 01497000 ST @10,IOPTLIST+108 0437 01498000 * IOPTLIST(29)=ADDR(SYNDDADR);/* INSERT NAME POINTER */ 01499000 LA @05,SYNDDADR(,DMCBPTR) 0438 01500000 ST @05,IOPTLIST+112 0438 01501000 * IOPTLIST(30)=0; /* ZERO RESERVED FIELD */ 01502000 ST @10,IOPTLIST+116 0439 01503000 * RFY 0440 01504000 * I015F BASED(ADDR(IOPTLIST(30)));/* ACCESS BYTES 1-2 */ 01505000 * I015F=LENGTH(SYNDDADR); /* INSERT LENGTH */ 01506000 LA @10,IOPTLIST+116 0441 01507000 MVC I015F(2,@10),@CH00265 0441 01508000 * CALL BLSDMSG0(ZZ2,F3115C,DMCBMSG,BLSDMSGS,'00000000'B,ADDR( 01509000 * IOPTLIST)); /* BUILD MESSAGE */ 01510000 L @10,DMCBTVP(,DMCBPTR) 0442 01511000 ST @10,@AL00001 0442 01512000 LA @10,@CF00312 0442 01513000 ST @10,@AL00001+4 0442 01514000 LA @10,DMCBMSG(,DMCBPTR) 0442 01515000 ST @10,@AL00001+8 0442 01516000 L @10,DMCBMSGS(,DMCBPTR) 0442 01517000 ST @10,@AL00001+12 0442 01518000 LA @10,@CB00378 0442 01519000 ST @10,@AL00001+16 0442 01520000 LA @10,IOPTLIST 0442 01521000 ST @10,@AFTEMPS+12 0442 01522000 LA @10,@AFTEMPS+12 0442 01523000 ST @10,@AL00001+20 0442 01524000 L @15,DMCBMSG0(,DMCBPTR) 0442 01525000 LA @01,@AL00001 0442 01526000 BALR @14,@15 0442 01527000 * END; /* BLSDMSG 0443 01528000 * (ZZ2,F3115C,DMCBMSG,BLSDMSGS) 01529000 * INSERT(DMCBDSN,DMCBVOL,SYNDSTE 01530000 * P,SYNDUA,SYNDDVTY,SYNDDDNM,SYN 01531000 * DOPN,SYNDERDS,SYNDDACM,SYNDDAD 01532000 * R) BUILD ERROR MESSAGE */ 01533000 * END; /* HANDLE DASD CASE */ 01534000 * END SYNADERR; 0445 01535000 @EL00006 DS 0H 0445 01536000 @EF00006 DS 0H 0445 01537000 @ER00006 LM @14,@12,@SA00006 0445 01538000 BR @14 0445 01539000 EJECT 01540000 * 0446 01541000 * /*****************************************************************/ 01542000 * /* */ 01543000 * /* END OF EXECUTABLE PROCEDURE STATEMENTS */ 01544000 * /* */ 01545000 * /*****************************************************************/ 01546000 * 0446 01547000 * DECLARE /* GENERAL PURPOSE REGISTERS */ 01548000 * GPR01F FIXED(31) REG(1), 0446 01549000 * GPR15F FIXED(31) REG(15), 0446 01550000 * GPR01P PTR(31) REG(1), 0446 01551000 * GPR13P PTR(31) REG(13), 0446 01552000 * GPR15P PTR(31) REG(15); 0446 01553000 * DCL 0447 01554000 * 1 I006 DEF(ILIST), /* DEFINE LIST */ 01555000 * 2 I00601 CHAR(1), /* EP/DE FLAG */ 01556000 * 2 I00602 PTR(24), /* EP/DE PTR */ 01557000 * 2 I00603 CHAR(1), /* ERRET FLAG */ 01558000 * 2 I00604 PTR(24), /* DCB PTR */ 01559000 * 2 I00605 PTR(31); /* ERRET PTR */ 01560000 * DECLARE 0448 01561000 * ILIST CHAR(12) BDY(DWORD); /* STANDARD LIST */ 01562000 * DECLARE /* COMMON VARIABLES */ 01563000 * I256C CHAR(256) BASED, 0449 01564000 * I031F FIXED(31) BASED, 0449 01565000 * I031P PTR(31) BASED, 0449 01566000 * I015F FIXED(15) BASED, 0449 01567000 * I015P PTR(15) BASED, 0449 01568000 * I008P PTR(8) BASED, 0449 01569000 * I001C CHAR(1) BASED; 0449 01570000 * DECLARE 0450 01571000 * IOPTLIST(30) PTR(31) BDY(WORD);/* OPTION LIST ARRAY */ 01572000 * DCL 0451 01573000 * 1 DASPATCH LOCAL BDY(DWORD), /* PATCH AREA */ 01574000 * 2 DASPATA(DASPATLN) PTR INIT((DASPATLN)0); 0451 01575000 * GEN DATA DEFS(HEXTBL); 0452 01576000 * END BLSCANLE 0453 01577000 * 0453 01578000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 01579000 */*%INCLUDE SYSLIB (IKJEFFGF) */ 01580000 */*%INCLUDE SYSLIB (BLSCLKR ) */ 01581000 * 0453 01582000 * ; 0453 01583000 @EL00001 L @13,4(,@13) 0453 01584000 @EF00001 L @00,@SIZDATD 0453 01585000 LR @01,@11 0453 01586000 BLSCFREF R,LV=(0),A=(1) 01587000 @ER00001 LM @14,@12,12(@13) 0453 01588000 BR @14 0453 01589000 @DATA DS 0H 01590000 @CH00103 DC H'3' 01591000 @CH00050 DC H'5' 01592000 @CH00081 DC H'7' 01593000 @CH00265 DC H'14' 01594000 @CH00143 DC H'15' 01595000 @CH00121 DC H'44' 01596000 @DATD DSECT 01597000 DS 0F 01598000 @SA00001 DS 18F 01599000 @PC00001 DS 1F 01600000 @SA00002 DS 15F 01601000 @SA00005 DS 15F 01602000 @SA00003 DS 15F 01603000 @SA00004 DS 15F 01604000 @SA00006 DS 15F 01605000 @AL00001 DS 6A 01606000 @AFTEMPS DS 4F 01607000 BLSCANLE CSECT 01608000 DS 0F 01609000 @CF00074 DC F'2' 01610000 @CH00074 EQU @CF00074+2 01611000 @CF00039 DC F'4' 01612000 @CH00039 EQU @CF00039+2 01613000 @CF00057 DC F'6' 01614000 @CH00057 EQU @CF00057+2 01615000 @CF00046 DC F'8' 01616000 @CH00046 EQU @CF00046+2 01617000 @CF00244 DC F'12' 01618000 @CF00308 DC F'3110' 01619000 @CF00310 DC F'3114' 01620000 @CF00312 DC F'3115' 01621000 @CF00314 DC F'3116' 01622000 @CF00297 DC XL4'80000000' 01623000 @DATD DSECT 01624000 DS 0D 01625000 GFPARMS DS CL44 01626000 ORG GFPARMS 01627000 GFCBPTR DS AL4 01628000 GFRCODE DS FL4 01629000 GF02PTR DS AL4 01630000 GFCALLID DS FL2 01631000 GFBITS DS BL1 01632000 ORG GFBITS 01633000 GFKEYN08 DS BL1 01634000 GFSUBSYS EQU GFBITS+0 01635000 GFWTPSW EQU GFBITS+0 01636000 @NM00001 EQU GFBITS+0 01637000 ORG GFPARMS+15 01638000 @NM00002 DS AL1 01639000 GFCPPLP DS AL4 01640000 GFECBP DS AL4 01641000 GFDSNLEN DS FL2 01642000 GFPGMNL DS FL2 01643000 GFDSNP DS AL4 01644000 GFPGMNP DS AL4 01645000 @NM00003 DS AL4 01646000 @NM00004 DS AL4 01647000 ORG GFPARMS+44 01648000 MODSTAT DS CL16 01649000 ORG MODSTAT 01650000 MODNAME DS CL8 01651000 RETCODE DS FL4 01652000 SUBCODE DS FL4 01653000 ORG MODSTAT+16 01654000 OPCODE DS CL5 01655000 RCODE DS CL2 01656000 REJCODE DS CL2 01657000 SUBRCOD DS CL2 01658000 RESULT DS CL8 01659000 DS CL1 01660000 CHSTR8 DS CL8 01661000 ORG CHSTR8 01662000 @NM00005 DS CL3 01663000 CHSTR847 DS CL4 01664000 ORG CHSTR847 01665000 CHSTR846 DS CL3 01666000 CHSTR87 DS CL1 01667000 ORG CHSTR8+7 01668000 CHSTR88 DS CL1 01669000 ORG CHSTR8+8 01670000 CTEMP DS CL9 01671000 ORG CTEMP 01672000 CTEMP18 DS CL8 01673000 ORG CTEMP18 01674000 CTEMP14 DS CL4 01675000 CTEMP58 DS CL4 01676000 ORG CTEMP58 01677000 CTEMP56 DS CL2 01678000 CTEMP78 DS CL2 01679000 ORG CTEMP+9 01680000 DS CL7 01681000 ILIST DS CL12 01682000 IOPTLIST DS 30A 01683000 BLSCANLE CSECT 01684000 DS 0F 01685000 @SIZDATD DC AL1(0) 01686000 DC AL3(@ENDDATD-@DATD) 01687000 @CV00237 DC V(BLSCANLI) 01688000 DS 0D 01689000 @CC00334 DC C'IKJEFF19' 01690000 @CC00336 DC C'BLSCANLE' 01691000 @CC00326 DC C'N/A' 01692000 @CC00328 DC C'DA' 01693000 @CC00330 DC C'TA' 01694000 @CC00332 DC C'UR' 01695000 @CB00378 DC B'00000000' 01696000 DS CL6 01697000 DASPATCH DS CL80 01698000 ORG DASPATCH 01699000 DASPATA DC 20A(0) 01700000 ORG DASPATCH+80 01701000 OPNAME DC CL5'OPEN ' 01702000 DC CL5'CLOSE' 01703000 DC CL5'SET ' 01704000 DC CL5'GET ' 01705000 DC CL5'PUT ' 01706000 DC CL5'ERASE' 01707000 DC CL5'END ' 01708000 DC CL5'POINT' 01709000 BLSCANLE CSECT 01710000 * /* 01711000 HEXTBL EQU *-240 01712000 DC CL16'0123456789ABCDEF' 01713000 @DATD DSECT 01714000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 01715000 @ENDDATD EQU * 01716000 BLSCANLE CSECT 01717000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 01718000 @01 EQU 01 01719000 @02 EQU 02 01720000 @03 EQU 03 01721000 @04 EQU 04 01722000 @05 EQU 05 01723000 @06 EQU 06 01724000 @07 EQU 07 01725000 @08 EQU 08 01726000 @09 EQU 09 01727000 @10 EQU 10 01728000 @11 EQU 11 01729000 @12 EQU 12 01730000 @13 EQU 13 01731000 @14 EQU 14 01732000 @15 EQU 15 01733000 REASON EQU @06 01734000 ABENDC EQU @05 01735000 DMCBPTR EQU @04 01736000 GPR13P EQU @13 01737000 GPR01P EQU @01 01738000 GPR15P EQU @15 01739000 GPR15F EQU @15 01740000 GPR01F EQU @01 01741000 DMCB EQU 0 01742000 DMCBTVP EQU DMCB+8 01743000 DMCBRTC EQU DMCB+12 01744000 DMCBFTY EQU DMCB+20 01745000 DMCBVSF EQU DMCBFTY 01746000 DMCBOPN EQU DMCB+21 01747000 DMCBRQST EQU DMCB+22 01748000 DMCBRMOD EQU DMCB+23 01749000 DMCBOUT EQU DMCBRMOD 01750000 DMCBOPTS EQU DMCB+24 01751000 DMCBGKY EQU DMCBOPTS 01752000 DMCBMFLG EQU DMCB+28 01753000 DMCBREJ EQU DMCB+29 01754000 DMCBBUFP EQU DMCB+32 01755000 DMCBKEYP EQU DMCB+44 01756000 DMCBMSG EQU DMCB+52 01757000 DMCBRI EQU DMCB+64 01758000 DMCBMSG0 EQU DMCB+68 01759000 DMCBMSGS EQU DMCB+72 01760000 DMCBFRE EQU DMCB+88 01761000 DMCBEOB EQU DMCB+92 01762000 DMCBCPC EQU DMCB+116 01763000 DMCBACBE EQU DMCB+124 01764000 DMCBDCBE EQU DMCBACBE 01765000 DMCBRPLF EQU DMCB+128 01766000 DMCBSYNM EQU DMCB+132 01767000 DMCBDDNM EQU DMCB+260 01768000 DMCBVOL EQU DMCB+268 01769000 DMCBDSN EQU DMCB+284 01770000 DMCBSPEC EQU DMCB+380 01771000 DMCBSUBC EQU DMCB+404 01772000 DMCBAMS EQU DMCB+416 01773000 DMCBAUDT EQU DMCB+568 01774000 DMCBLSCP EQU DMCBAUDT+16 01775000 DMCBCARY EQU DMCBAUDT+20 01776000 DMCBMODN EQU DMCB+632 01777000 DMCBRQC EQU 0 01778000 BLSDMSGS EQU 0 01779000 BLSDMSG0 EQU 0 01780000 ZZ2 EQU 0 01781000 MSAV EQU 0 01782000 MSAVHSA EQU MSAV+4 01783000 CSAV EQU 0 01784000 CSAVR14 EQU CSAV+12 01785000 I015F EQU 0 01786000 DMCBDMGR EQU 0 01787000 I001C EQU 0 01788000 I008P EQU 0 01789000 I015P EQU 0 01790000 I031F EQU 0 01791000 I031P EQU 0 01792000 I256C EQU 0 01793000 DMCBPARM EQU 0 01794000 DMCBVSM EQU DMCBAMS 01795000 DMCBRPL EQU DMCBVSM 01796000 DMCBACB EQU DMCBVSM+76 01797000 DMCBQSM EQU DMCBAMS 01798000 SYNDMBUF EQU DMCBSYNM 01799000 SYNDSTEP EQU SYNDMBUF+59 01800000 SYNDUA EQU SYNDMBUF+68 01801000 SYNDDVTY EQU SYNDMBUF+72 01802000 SYNDDDNM EQU SYNDMBUF+75 01803000 SYNDOPN EQU SYNDMBUF+84 01804000 SYNDERDS EQU SYNDMBUF+91 01805000 SYNDDADR EQU SYNDMBUF+107 01806000 SYNDTBLK EQU SYNDDADR 01807000 SYNDTACM EQU SYNDDADR+8 01808000 SYNDDACM EQU SYNDMBUF+122 01809000 I006 EQU ILIST 01810000 I00601 EQU I006 01811000 I00602 EQU I006+1 01812000 I00603 EQU I006+4 01813000 I00604 EQU I006+5 01814000 I00605 EQU I006+8 01815000 CHSTR878 EQU CHSTR8+6 01816000 AGO .@UNREFD START UNREFERENCED COMPONENTS 01817000 SYNDP9 EQU SYNDMBUF+121 01818000 SYNDP8 EQU SYNDDADR+7 01819000 SYNDP7 EQU SYNDMBUF+106 01820000 SYNDP6 EQU SYNDMBUF+90 01821000 SYNDP5 EQU SYNDMBUF+83 01822000 SYNDP4 EQU SYNDMBUF+74 01823000 SYNDP3 EQU SYNDMBUF+71 01824000 SYNDP2 EQU SYNDMBUF+67 01825000 SYNDP1 EQU SYNDMBUF 01826000 DMCBRES7 EQU DMCBQSM+96 01827000 DMCBDCB EQU DMCBQSM 01828000 CSAVR1 EQU CSAV+24 01829000 CSAVR0 EQU CSAV+20 01830000 CSAVR15 EQU CSAV+16 01831000 CSAVPAD EQU CSAV 01832000 MSAVWD1 EQU MSAV 01833000 DMCBWRK EQU DMCB+648 01834000 DMCBRES8 EQU DMCB+640 01835000 DMCBCLC EQU DMCBAUDT+12 01836000 DMCBOPC EQU DMCBAUDT+8 01837000 DMCBFRC EQU DMCBAUDT+4 01838000 DMCBALC EQU DMCBAUDT 01839000 DMCBFR EQU DMCB+412 01840000 DMCBRES6 EQU DMCB+410 01841000 DMCBIRSC EQU DMCB+408 01842000 DMCBDRBP EQU DMCB+400 01843000 DMCBRSZM EQU DMCB+398 01844000 DMCBRSZA EQU DMCB+396 01845000 DMCBCISZ EQU DMCB+394 01846000 DMCBDCBL EQU DMCB+392 01847000 DMCBDCLR EQU DMCB+390 01848000 DMCBDCFM EQU DMCB+389 01849000 DMCBRES5 EQU DMCB+388 01850000 DMCBLBRT EQU DMCB+386 01851000 DMCBLBSQ EQU DMCB+384 01852000 DMCBLBPS EQU DMCB+383 01853000 DMCBLBTY EQU DMCB+382 01854000 DMCBRES4 EQU DMCB+381 01855000 DMCBSPRS EQU DMCBSPEC 01856000 DMCBSPRN EQU DMCBSPEC 01857000 DMCBSPCT EQU DMCBSPEC 01858000 DMCBSPRL EQU DMCBSPEC 01859000 DMCBSPSE EQU DMCB+376 01860000 DMCBSPPR EQU DMCB+372 01861000 DMCBSPTY EQU DMCB+369 01862000 DMCBODIS EQU DMCB+368 01863000 DMCBDISP EQU DMCB+367 01864000 DMCBSTAT EQU DMCB+366 01865000 DMCBRES3 EQU DMCB+364 01866000 DMCBMEMB EQU DMCB+356 01867000 DMCBMODL EQU DMCB+348 01868000 DMCBRES9 EQU DMCB+340 01869000 DMCBPID EQU DMCB+332 01870000 DMCBTYPE EQU DMCB+328 01871000 DMCBUNIT EQU DMCB+276 01872000 DMCBDSOR EQU DMCB+274 01873000 DMCBARC EQU DMCB+120 01874000 DMCBRET EQU DMCB+112 01875000 DMCBSTL EQU DMCB+96 01876000 DMCBRES2 EQU DMCB+85 01877000 DMCBSPID EQU DMCB+84 01878000 DMCBRESC EQU DMCB+80 01879000 DMCBZZ1P EQU DMCB+76 01880000 DMCBRRL EQU DMCB+60 01881000 DMCBRBA EQU DMCB+56 01882000 DMCBKEYL EQU DMCB+48 01883000 DMCBKPC EQU DMCBKEYP 01884000 DMCBORL EQU DMCB+40 01885000 DMCBBLEN EQU DMCB+36 01886000 DMCBBFPC EQU DMCBBUFP 01887000 DMCBRES1 EQU DMCB+31 01888000 DMCBACCM EQU DMCB+30 01889000 DMCBRESB EQU DMCBMFLG 01890000 DMCBFMOD EQU DMCBMFLG 01891000 DMCBLOPT EQU DMCB+27 01892000 DMCBLRM EQU DMCB+26 01893000 DMCBLRQ EQU DMCB+25 01894000 DMCBOPRS EQU DMCBOPTS 01895000 DMCBLRD EQU DMCBOPTS 01896000 DMCBBWD EQU DMCBOPTS 01897000 DMCBUPD EQU DMCBOPTS 01898000 DMCBAPX EQU DMCBOPTS 01899000 DMCBRNO EQU DMCBGKY 01900000 DMCBKYD EQU DMCBOPTS 01901000 DMCBRMRS EQU DMCBRMOD 01902000 DMCBRM5 EQU DMCBRMOD 01903000 DMCBRM6 EQU DMCBRMOD 01904000 DMCBTMP EQU DMCBOUT 01905000 DMCBRESA EQU DMCBOPN 01906000 DMCBSOUT EQU DMCBOPN 01907000 DMCBSIN EQU DMCBOPN 01908000 DMCBKSF EQU DMCBFTY 01909000 DMCBFTRS EQU DMCBFTY 01910000 DMCBSHF EQU DMCBFTY 01911000 DMCBIRL EQU DMCB+16 01912000 DMCBNEXT EQU DMCB+4 01913000 DMCBID EQU DMCB 01914000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 01915000 @RF00135 EQU @EL00003 01916000 @RF00175 EQU @EL00004 01917000 @RC00266 EQU @EL00005 01918000 @RF00270 EQU @EL00005 01919000 @RF00389 EQU @EL00006 01920000 @ENDDATA EQU * 01921000 END BLSCANLE,(C'PLS1851',0701,78062) 01922000