TITLE 'BLSFUD00-WRITE A RECORD TO THE DSD DATA BASE *00001000 ' 00002000 * /* CHANGE ACTIVITY */ 00003000 * THIS MODULE IS WRITTEN FOR @G57LPRM 00004000 BLSFUD00 CSECT , 01S0002 00005000 @MAINENT DS 0H 01S0002 00006000 USING *,@15 01S0002 00007000 B @PROLOG 01S0002 00008000 DC AL1(16) 01S0002 00009000 DC C'BLSFUD00 78.065' 01S0002 00010000 DROP @15 00011000 @PROLOG STM @14,@12,12(@13) 01S0002 00012000 BALR @12,0 01S0002 00013000 @PSTART DS 0H 01S0002 00014000 USING @PSTART,@12 01S0002 00015000 L @00,@SIZDATD 01S0002 00016000 BLSUALLS R,LV=(0) 00017000 LR @11,@01 01S0002 00018000 USING @DATD,@11 01S0002 00019000 ST @13,@SA00001+4 01S0002 00020000 LM @00,@01,20(@13) 01S0002 00021000 ST @11,8(,@13) 01S0002 00022000 LR @13,@11 01S0002 00023000 MVC @PC00001(12),0(@01) 01S0002 00024000 * 01S0130 00025000 */* *********************************************************** */ 00026000 */* */ 00027000 */* START OF DEFAULT PROCESSING */ 00028000 */* */ 00029000 */* *********************************************************** */ 00030000 * 01S0130 00031000 * ZZ2PTR=ADDR(ZZ2CB); /* GET TASK VARIABLE ADDR */ 00032000 L ZZ2PTR,@PC00001 01S0130 00033000 * RETC=ZERO; /* INITIALIZE THE RETC */ 00034000 SLR RETC,RETC 01S0131 00035000 * FLAG1=FLAG1&&FLAG1; /* INITIALIZE THE FLAG INDICATORS*/ 00036000 XC FLAG1(1),FLAG1 01S0132 00037000 * ERRORRC=ERRORRC&&ERRORRC; /* INITIALIZE ERROR INDICATORS */ 00038000 XC ERRORRC(24),ERRORRC 01S0133 00039000 */* *********************************************************** */ 00040000 */* */ 00041000 */* START OF MODULE PROCESSING */ 00042000 */* */ 00043000 */* *********************************************************** */ 00044000 * 01S0134 00045000 * DMCBPTR=ZZ1DSDP; /* COPY THE DMCB */ 00046000 * 01S0134 00047000 L @10,ZZ2ZZ1P(,ZZ2PTR) 01S0134 00048000 L DMCBPTR,ZZ1DSDP(,@10) 01S0134 00049000 * /*****************************************************************/ 00050000 * /* */ 00051000 * /* OPEN THE DSD DATA BASE */ 00052000 * /* */ 00053000 * /*****************************************************************/ 00054000 * 01S0135 00055000 * CALL OPENREC; /* OPEN DSD DATA BASE */ 00056000 BAL @14,OPENREC 01S0135 00057000 * IF RETCODE=ZERO THEN /* OPEN OK? */ 00058000 LTR RETCODE,RETCODE 01S0136 00059000 BNZ @RF00136 01S0136 00060000 * DO; /* YES, CONTINUE WITH READ */ 00061000 * 01S0137 00062000 * /*************************************************************/ 00063000 * /* */ 00064000 * /* READ THE RECORD FOR UPDATE */ 00065000 * /* */ 00066000 * /*************************************************************/ 00067000 * 01S0138 00068000 * CALL READREC; /* READ A RECORD */ 00069000 BAL @14,READREC 01S0138 00070000 * IF RETCODE=ZERO THEN /* READ OK ? */ 00071000 LTR RETCODE,RETCODE 01S0139 00072000 BNZ @RF00139 01S0139 00073000 * DO; /* YES, WRITE IT */ 00074000 * 01S0140 00075000 * /*********************************************************/ 00076000 * /* */ 00077000 * /* WRITE THE RECORD */ 00078000 * /* */ 00079000 * /*********************************************************/ 00080000 * 01S0141 00081000 * CALL WRITEREC; /* WRITE THE RECORD */ 00082000 BAL @14,WRITEREC 01S0141 00083000 * IF RETCODE=ZERO THEN /* IS WRITE SUCCESSFUL? */ 00084000 LTR RETCODE,RETCODE 01S0142 00085000 BNZ @RF00142 01S0142 00086000 * DO; /* YES, CLOSE THE DATA SET */ 00087000 * 01S0143 00088000 * /*****************************************************/ 00089000 * /* */ 00090000 * /* CLOSE THE DSD DATA BASE */ 00091000 * /* */ 00092000 * /*****************************************************/ 00093000 * 01S0144 00094000 * CALL CLOSEREC; /* CLOSE IT */ 00095000 BAL @14,CLOSEREC 01S0144 00096000 * IF RETCODE=ZERO THEN/* IS CLOSE SUCCESSFUL? */ 00097000 LTR RETCODE,RETCODE 01S0145 00098000 BNZ @RF00145 01S0145 00099000 * RETC=ZERO; /* YES, GOOD WRITE */ 00100000 SLR RETC,RETC 01S0146 00101000 * ELSE /* NO, TERMINATE THE SUBCOMMAND */ 00102000 * RETC=TWELVE; 01S0147 00103000 B @RC00145 01S0147 00104000 @RF00145 LA RETC,12 01S0147 00105000 * END; /* END OF CLOSE DATA */ 00106000 * ELSE /* NO */ 00107000 * DO; /* ERROR ON WRITE */ 00108000 B @RC00142 01S0149 00109000 @RF00142 DS 0H 01S0150 00110000 * IF OPENFLG='1'B THEN/* HAS DATA SET BEEN OPEN? */ 00111000 TM OPENFLG,B'10000000' 01S0150 00112000 BNO @RF00150 01S0150 00113000 * DO; /* CLOSE MUST BE DONE */ 00114000 * 01S0151 00115000 * /*************************************************/ 00116000 * /* */ 00117000 * /* CLOSE OF DATA SET REQUIRED */ 00118000 * /* */ 00119000 * /*************************************************/ 00120000 * 01S0152 00121000 * CALL CLOSEREC; /* ATTEMPT TO CLOSE THE DATA SET */ 00122000 BAL @14,CLOSEREC 01S0152 00123000 * END; /* END OF CLOSE MUST BE DONE 00124000 * WRITE */ 00125000 * RETC=TWELVE; /* REQ TERMINATION */ 00126000 @RF00150 LA RETC,12 01S0154 00127000 * END; /* END OF ERROR ON WRITE */ 00128000 * END; /* END OF WRITE IT */ 00129000 * ELSE /* NO, ERROR ON READ */ 00130000 * DO; /* ERROR ON READ */ 00131000 B @RC00139 01S0157 00132000 @RF00139 DS 0H 01S0158 00133000 * IF OPENFLG='1'B THEN /* HAS DATA SET BEEN OPEN? */ 00134000 TM OPENFLG,B'10000000' 01S0158 00135000 BNO @RF00158 01S0158 00136000 * DO; /* CLOSE MUST BE DONE */ 00137000 * 01S0159 00138000 * /*****************************************************/ 00139000 * /* */ 00140000 * /* CLOSE OF DATA SET REQUIRED */ 00141000 * /* */ 00142000 * /*****************************************************/ 00143000 * 01S0160 00144000 * CALL CLOSEREC; /* ATTEMPT TO CLOSE THE DATA SET */ 00145000 BAL @14,CLOSEREC 01S0160 00146000 * END; /* END OF CLOSE MUST BE DONE READ*/ 00147000 * RETC=TWELVE; /* REQUEST TERMINATION */ 00148000 @RF00158 LA RETC,12 01S0162 00149000 * END; /* END OF ERROR ON READ */ 00150000 * END; /* END OF CONTINUE WITH READ */ 00151000 * ELSE /* NO, OPEN ERROR PROCESS */ 00152000 * RETC=TWELVE; /* REQ TERMINATION OF SUBCOMMAND */ 00153000 B @RC00136 01S0165 00154000 @RF00136 LA RETC,12 01S0165 00155000 * RETURN CODE(RETC); /* RETURN TO CALLER */ 00156000 @RC00136 L @13,4(,@13) 01S0166 00157000 L @00,@SIZDATD 01S0166 00158000 LR @01,@11 01S0166 00159000 BLSUFRES R,LV=(0),A=(1) 00160000 LR @15,@02 01S0166 00161000 L @14,12(,@13) 01S0166 00162000 LM @00,@12,20(@13) 01S0166 00163000 BR @14 01S0166 00164000 EJECT 00165000 *OPENREC: 01S0167 00166000 * PROCEDURE; /* OPEN DATA SET FOR UPDATE */ 00167000 OPENREC STM @14,@06,@SA00002 01S0167 00168000 STM @08,@12,@SA00002+36 01S0167 00169000 * RETCODE=ZERO; /* INIT THE INTERNAL RETURN CODE */ 00170000 * 01S0168 00171000 SLR RETCODE,RETCODE 01S0168 00172000 * /*****************************************************************/ 00173000 * /* */ 00174000 * /* OPEN THE DSD DATA BASE */ 00175000 * /* */ 00176000 * /*****************************************************************/ 00177000 * 01S0169 00178000 * DO; /* BLSOPEN(DMCBPTR)OUTPUT */ 00179000 * RFY 01S0170 00180000 * GPR01P RSTD; 01S0170 00181000 * GPR01P=DMCBPTR; /* ADDRESS DMCB */ 00182000 LR GPR01P,DMCBPTR 01S0171 00183000 * RFY 01S0172 00184000 * DMCB BASED(GPR01P); 01S0172 00185000 * IF((GPR01P&'FFFFFFF8'X)=GPR01P)&DMCBID='DMCB'/* VALID DMCB ? */ 00186000 * THEN 01S0173 00187000 LR @10,GPR01P 01S0173 00188000 N @10,@CF01000 01S0173 00189000 CLR @10,GPR01P 01S0173 00190000 BNE @RF00173 01S0173 00191000 CLC DMCBID(4,GPR01P),@CC01001 01S0173 00192000 BNE @RF00173 01S0173 00193000 * DO; 01S0174 00194000 * DMCBRQST=DMCBOPR; /* INDICATE OPEN REQUEST */ 00195000 MVI DMCBRQST(GPR01P),X'01' 01S0175 00196000 * DMCBOUT='1'B; /* INDICATE OPEN FOR OUTPUR */ 00197000 OI DMCBOUT(GPR01P),B'10000000' 01S0176 00198000 * CALL DMCBRI->DMCBDMGR; /* CALL BLSCRQST */ 00199000 L @15,DMCBRI(,GPR01P) 01S0177 00200000 BALR @14,@15 01S0177 00201000 * END; 01S0178 00202000 * ELSE 01S0179 00203000 * DO; 01S0179 00204000 B @RC00173 01S0179 00205000 @RF00173 DS 0H 01S0180 00206000 * RFY 01S0180 00207000 * (GPR00F, 01S0180 00208000 * GPR15F) RSTD; 01S0180 00209000 * GPR00F=0; /* INDICATE NO MESSAGE CHAIN */ 00210000 SLR GPR00F,GPR00F 01S0181 00211000 * GPR15F=16; /* INDICATE INVALID DMCB */ 00212000 LA GPR15F,16 01S0182 00213000 * RFY 01S0183 00214000 * (GPR00F, 01S0183 00215000 * GPR15F); 01S0183 00216000 * END; 01S0184 00217000 * RFY 01S0185 00218000 * DMCB; 01S0185 00219000 @RC00173 DS 0H 01S0186 00220000 * RFY 01S0186 00221000 * GPR01P; 01S0186 00222000 * END; /* BLSOPEN(DMCBPTR)OUTPUT OPEN 00223000 * DSD DATA BASE */ 00224000 * RESPECIFY 01S0188 00225000 * RF RESTRICTED; /* SAVE REG 15 */ 00226000 * IF RF=ZERO THEN /* OPEN OK? */ 00227000 SLR @14,@14 01S0189 00228000 CR RF,@14 01S0189 00229000 BNE @RF00189 01S0189 00230000 * DO; /* YES, CONTINUE WITH READ */ 00231000 * 01S0190 00232000 * /*************************************************************/ 00233000 * /* */ 00234000 * /* OPEN IS SUCCESSFUL */ 00235000 * /* */ 00236000 * /*************************************************************/ 00237000 * 01S0191 00238000 * OPENFLG='1'B; /* OPEN SUCCESSFUL */ 00239000 OI OPENFLG,B'10000000' 01S0191 00240000 * IF DMCBMSG^=ZERO THEN /* IS MESSAGE QUEUED? */ 00241000 CL @14,DMCBMSG(,DMCBPTR) 01S0192 00242000 BE @RF00192 01S0192 00243000 * CALL MSGPURGE; /* PURGE MSG QUEUE */ 00244000 BAL @14,MSGPURGE 01S0193 00245000 * RETCODE=ZERO; /* INDICATE OK TO USER */ 00246000 @RF00192 SLR RETCODE,RETCODE 01S0194 00247000 * END; /* END OF CONTINUE WITH READ */ 00248000 * ELSE /* NO, OPEN ERROR PROCESS */ 00249000 * IF RF=TWELVE| /* IS IT DMCB UNRECOVERABLE? */ 00250000 * RF=SIXTEEN THEN /* IS DMCB INVALID? */ 00251000 B @RC00189 01S0196 00252000 @RF00189 C RF,@CF00035 01S0196 00253000 BE @RT00196 01S0196 00254000 C RF,@CF00057 01S0196 00255000 BNE @RF00196 01S0196 00256000 @RT00196 DS 0H 01S0197 00257000 * DO; /* YES, DMCB UNRECOVERABLE */ 00258000 * OPENERR=RF; /* SAVE RETURN CODE */ 00259000 ST RF,OPENERR 01S0198 00260000 * RESPECIFY 01S0199 00261000 * R0 RESTRICTED; /* SAVE REG 0 */ 00262000 * 01S0199 00263000 * /***********************************************************/ 00264000 * /* */ 00265000 * /* SEND MESSAGE - LOGIC ERROR IN BLSFUD00, DMCB FOR DSD */ 00266000 * /* INVALID */ 00267000 * /* */ 00268000 * /***********************************************************/ 00269000 * 01S0200 00270000 * MSGPTR=R0; /* SAVE MSG QUEUE PTR */ 00271000 ST R0,MSGPTR 01S0200 00272000 * DO; /* BLSDMSG 01S0201 00273000 * (ZZ2,04052,MSGPTR,BLSDMSGS) 00274000 * LIFO ROUTE(TERM) */ 00275000 * CALL BLSDMSG0(ZZ2,04052,MSGPTR,BLSDMSGS,'10010000'B,0);/* 00276000 * BUILD MESSAGE */ 00277000 ST ZZ2PTR,@AL00001 01S0202 00278000 LA @14,@CF01005 01S0202 00279000 ST @14,@AL00001+4 01S0202 00280000 LA @14,MSGPTR 01S0202 00281000 ST @14,@AL00001+8 01S0202 00282000 L @01,ZZ2MSGSP(,ZZ2PTR) 01S0202 00283000 ST @01,@AL00001+12 01S0202 00284000 LA @14,@CB01006 01S0202 00285000 ST @14,@AL00001+16 01S0202 00286000 LA @14,@CF00051 01S0202 00287000 ST @14,@AL00001+20 01S0202 00288000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0202 00289000 LA @01,@AL00001 01S0202 00290000 BALR @14,@15 01S0202 00291000 * END; /* BLSDMSG 01S0203 00292000 * (ZZ2,04052,MSGPTR,BLSDMSGS) 00293000 * LIFO ROUTE(TERM) */ 00294000 * RESPECIFY 01S0204 00295000 * R0 UNRESTRICTED; /* GIVE REG 0 BACK */ 00296000 * 01S0204 00297000 * /***********************************************************/ 00298000 * /* */ 00299000 * /* ABEND TO CORRECT THE INVALID DMCB */ 00300000 * /* */ 00301000 * /***********************************************************/ 00302000 * 01S0205 00303000 * DO; /* ABEND(113) DUMP USER */ 00304000 * RESPECIFY 01S0206 00305000 * (GPR01F) RESTRICTED; 01S0206 00306000 * GPR01F=(113)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 00307000 LA GPR01F,113 01S0207 00308000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 00309000 O GPR01F,@CF00066 01S0208 00310000 * SVC(13); /* ISSUE ABEND SVC */ 00311000 SVC 13 01S0209 00312000 * RESPECIFY 01S0210 00313000 * (GPR01F) UNRESTRICTED; 01S0210 00314000 * END; /* ABEND(113) DUMP USER ABEND FOR 00315000 * TEST */ 00316000 * END; /* END DMCB UNRECOVERABLE */ 00317000 * ELSE /* NO, DMCB IS RECOVERABLE */ 00318000 * DO; /* ERROR WHILE OPEN */ 00319000 B @RC00196 01S0213 00320000 @RF00196 DS 0H 01S0214 00321000 * OPENERR=RF; /* SAVE ERROR RETURN CODE */ 00322000 ST RF,OPENERR 01S0214 00323000 * IF RF=FOUR THEN /* USER REQUESTED TERMINATION */ 00324000 C RF,@CF00043 01S0215 00325000 BNE @RF00215 01S0215 00326000 * DO; /* BLSDMSG 01S0216 00327000 * (ZZ2,04082,DMCBMSG,BLSDMSGS) 00328000 * LIFO ROUTE(TERM) */ 00329000 * CALL BLSDMSG0(ZZ2,04082,DMCBMSG,BLSDMSGS,'10010000'B,0); 00330000 ST ZZ2PTR,@AL00001 01S0217 00331000 LA @14,@CF01011 01S0217 00332000 ST @14,@AL00001+4 01S0217 00333000 LA @14,DMCBMSG(,DMCBPTR) 01S0217 00334000 ST @14,@AL00001+8 01S0217 00335000 L @14,ZZ2MSGSP(,ZZ2PTR) 01S0217 00336000 ST @14,@AL00001+12 01S0217 00337000 LA @14,@CB01006 01S0217 00338000 ST @14,@AL00001+16 01S0217 00339000 LA @14,@CF00051 01S0217 00340000 ST @14,@AL00001+20 01S0217 00341000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0217 00342000 LA @01,@AL00001 01S0217 00343000 BALR @14,@15 01S0217 00344000 * /* BUILD MESSAGE */ 00345000 * END; /* BLSDMSG 01S0218 00346000 * (ZZ2,04082,DMCBMSG,BLSDMSGS) 00347000 * LIFO ROUTE(TERM) */ 00348000 * ELSE /* RETCODE OTHER THAN RETCODE 00349000 * FOUR */ 00350000 * DO; /* BLSDMSG 01S0219 00351000 * (ZZ2,04052,DMCBMSG,BLSDMSGS) 00352000 * LIFO ROUTE(TERM) */ 00353000 B @RC00215 01S0219 00354000 @RF00215 DS 0H 01S0220 00355000 * CALL BLSDMSG0(ZZ2,04052,DMCBMSG,BLSDMSGS,'10010000'B,0); 00356000 ST ZZ2PTR,@AL00001 01S0220 00357000 LA @14,@CF01005 01S0220 00358000 ST @14,@AL00001+4 01S0220 00359000 LA @14,DMCBMSG(,DMCBPTR) 01S0220 00360000 ST @14,@AL00001+8 01S0220 00361000 L @14,ZZ2MSGSP(,ZZ2PTR) 01S0220 00362000 ST @14,@AL00001+12 01S0220 00363000 LA @14,@CB01006 01S0220 00364000 ST @14,@AL00001+16 01S0220 00365000 LA @14,@CF00051 01S0220 00366000 ST @14,@AL00001+20 01S0220 00367000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0220 00368000 LA @01,@AL00001 01S0220 00369000 BALR @14,@15 01S0220 00370000 * /* BUILD MESSAGE */ 00371000 * END; /* BLSDMSG 01S0221 00372000 * (ZZ2,04052,DMCBMSG,BLSDMSGS) 00373000 * LIFO ROUTE(TERM) */ 00374000 * RETCODE=TWELVE; /* REQ TERMINATION OF SUBCOMMAND */ 00375000 @RC00215 LA RETCODE,12 01S0222 00376000 * END; /* END ERROR WHILE OPEN */ 00377000 * RESPECIFY 01S0224 00378000 * RF UNRESTRICTED; /* RETURN REG 15 */ 00379000 * RETURN; /* RETURN TO CALLER */ 00380000 @EL00002 DS 0H 01S0225 00381000 @EF00002 DS 0H 01S0225 00382000 @ER00002 LM @14,@06,@SA00002 01S0225 00383000 LM @08,@12,@SA00002+36 01S0225 00384000 BR @14 01S0225 00385000 * END OPENREC; /* END OF OPEN PROCEDURE */ 00386000 B @EL00002 01S0226 00387000 EJECT 00388000 *READREC: 01S0227 00389000 * PROCEDURE; /* READ A RECORD */ 00390000 * 01S0227 00391000 READREC STM @14,@06,@SA00003 01S0227 00392000 STM @08,@12,@SA00003+36 01S0227 00393000 * /*****************************************************************/ 00394000 * /* */ 00395000 * /* READ A RECORD FOR UPDATE FROM DATA BASE */ 00396000 * /* */ 00397000 * /*****************************************************************/ 00398000 * 01S0228 00399000 * RETCODE=ZERO; /* INITIALIZE THE RETURN CODE */ 00400000 SLR RETCODE,RETCODE 01S0228 00401000 * RESPECIFY 01S0229 00402000 * (R0, 01S0229 00403000 * R1) RESTRICTED; /* SAVE REGS FOR GETMAIN */ 00404000 * 01S0229 00405000 * /*****************************************************************/ 00406000 * /* */ 00407000 * /* OBTAIN AREA FOR READ REQUEST */ 00408000 * /* */ 00409000 * /*****************************************************************/ 00410000 * 01S0230 00411000 * DO; /* GETMAIN (R) 01S0230 00412000 * LV(DSDRECL)SP(ZZZSPEXC) */ 00413000 * RESPECIFY 01S0231 00414000 * (GPR01F, 01S0231 00415000 * GPR00F) RESTRICTED; 01S0231 00416000 * GPR00F=DSDRECL; /* LENGTH REQUESTED */ 00417000 L @10,@PC00001+8 01S0232 00418000 L GPR00F,DSDRECL(,@10) 01S0232 00419000 * GPR01F=ZZZSPEXC; /* SP IN REG 1 */ 00420000 LA GPR01F,1 01S0233 00421000 * GEN(SLL GPR01F,24) 01S0234 00422000 * NODEFS NOREFS NOSETS NOEXIT NOFLOWS SEQFLOW; 01S0234 00423000 SLL GPR01F,24 00424000 * GPR00F=GPR00F|GPR01F; /* SP IN HIGH BYTE */ 00425000 OR GPR00F,GPR01F 01S0235 00426000 * GPR01F=-1; /* INDICATE A GETMAIN REQUEST */ 00427000 SLR GPR01F,GPR01F 01S0236 00428000 BCTR GPR01F,0 01S0236 00429000 * SVC(10); /* R-FORM OF GETMAIN */ 00430000 SVC 10 01S0237 00431000 * RESPECIFY 01S0238 00432000 * (GPR01F, 01S0238 00433000 * GPR00F) UNRESTRICTED; 01S0238 00434000 * END; /* GETMAIN (R) 01S0239 00435000 * LV(DSDRECL)SP(ZZZSPEXC) GET 00436000 * AREA FOR RECORD */ 00437000 * READPTR=R1; /* GET THE ADDRESS OF THE AREA */ 00438000 LR READPTR,R1 01S0240 00439000 * RESPECIFY 01S0241 00440000 * (R0, 01S0241 00441000 * R1) UNRESTRICTED; /* FREE THE REGS */ 00442000 * 01S0241 00443000 * /*****************************************************************/ 00444000 * /* */ 00445000 * /* READ THE RECORD FOR UPDATE */ 00446000 * /* */ 00447000 * /*****************************************************************/ 00448000 * 01S0242 00449000 */* BLSGET (DMCBPTR) UPD AREAL(READPTR)AREALEN(DSDRECL)KEYEQ ARG(DSDKEY 00450000 *ARGLEN(LENGTH(DSDKEY)) */ 00451000 * 01S0242 00452000 * DO; /* BLSGET (DMCBPTR) UPD AREAL(REA 00453000 * DPTR)AREALEN(DSDRECL)KEYEQ ARG 00454000 * (DSDKEY)ARGLEN(LENGTH(DSDKEY))*/ 00455000 * RFY 01S0243 00456000 * GPR01P RSTD; 01S0243 00457000 * GPR01P=DMCBPTR; /* ADDRESS DMCB */ 00458000 LR GPR01P,DMCBPTR 01S0244 00459000 * RFY 01S0245 00460000 * DMCB BASED(GPR01P); 01S0245 00461000 * IF((GPR01P&'FFFFFFF8'X)=GPR01P)&DMCBID='DMCB'/* VALID DMCB ? */ 00462000 * THEN 01S0246 00463000 LR @10,GPR01P 01S0246 00464000 N @10,@CF01000 01S0246 00465000 CLR @10,GPR01P 01S0246 00466000 BNE @RF00246 01S0246 00467000 CLC DMCBID(4,GPR01P),@CC01001 01S0246 00468000 BNE @RF00246 01S0246 00469000 * DO; 01S0247 00470000 * DMCBBUFP=READPTR&'7FFFFFFF'X;/* PLACE BUFFER ADDRESS IN 00471000 * DMCB */ 00472000 L @10,@CF01016 01S0248 00473000 LR @09,READPTR 01S0248 00474000 NR @09,@10 01S0248 00475000 ST @09,DMCBBUFP(,GPR01P) 01S0248 00476000 * DMCBBLEN=DSDRECL&'7FFFFFFF'X;/* PLACE BUFFER LENGTH IN DMCB*/ 00477000 L @09,@PC00001+8 01S0249 00478000 N @10,DSDRECL(,@09) 01S0249 00479000 ST @10,DMCBBLEN(,GPR01P) 01S0249 00480000 * DMCBKEYP=ADDR(DSDKEY); /* PLACE KEY ADDRESS IN DMCB */ 00481000 L @10,@PC00001+4 01S0250 00482000 ST @10,DMCBKEYP(,GPR01P) 01S0250 00483000 * DMCBKEYL=(LENGTH(DSDKEY))&'7FFFFFFF'X;/* PLACE KEY LENGTH 00484000 * IN DMCB */ 00485000 MVC DMCBKEYL(4,GPR01P),@CF00127 01S0251 00486000 * DMCBKYD='1'B; /* INDICATE KEYED ACCESS */ 00487000 * DMCBAPX='0'B; /* INDICATE EXACT KEY MATCH */ 00488000 * DMCBGKY='0'B; /* INDICATE FULL KEY SEARCH */ 00489000 * DMCBUPD='1'B; /* INDICATE UPDATE OPTION */ 00490000 OI DMCBKYD(GPR01P),B'10010000' 01S0255 00491000 NI DMCBAPX(GPR01P),B'10011111' 01S0255 00492000 * DMCBRQST=DMCBGER; /* INDICATE GET REQUEST */ 00493000 MVI DMCBRQST(GPR01P),X'04' 01S0256 00494000 * CALL DMCBRI->DMCBDMGR; /* CALL BLSCRQST */ 00495000 L @15,DMCBRI(,GPR01P) 01S0257 00496000 BALR @14,@15 01S0257 00497000 * END; 01S0258 00498000 * ELSE 01S0259 00499000 * DO; 01S0259 00500000 B @RC00246 01S0259 00501000 @RF00246 DS 0H 01S0260 00502000 * RFY 01S0260 00503000 * (GPR00F, 01S0260 00504000 * GPR15F) RSTD; 01S0260 00505000 * GPR00F=0; /* INDICATE NO MESSAGE CHAIN */ 00506000 SLR GPR00F,GPR00F 01S0261 00507000 * GPR15F=16; /* INDICATE INVALID DMCB */ 00508000 LA GPR15F,16 01S0262 00509000 * RFY 01S0263 00510000 * (GPR00F, 01S0263 00511000 * GPR15F); 01S0263 00512000 * END; 01S0264 00513000 * RFY 01S0265 00514000 * DMCB; 01S0265 00515000 @RC00246 DS 0H 01S0266 00516000 * RFY 01S0266 00517000 * GPR01P; 01S0266 00518000 * END; /* BLSGET (DMCBPTR) UPD AREAL(REA 00519000 * DPTR)AREALEN(DSDRECL)KEYEQ ARG 00520000 * (DSDKEY)ARGLEN(LENGTH(DSDKEY))*/ 00521000 * RESPECIFY 01S0268 00522000 * RF RESTRICTED; /* SAVE REG 15 */ 00523000 * IF RF=ZERO| /* READ SUCCESSFUL? */ 00524000 * RF=EIGHT THEN /* OR NOT FOUND? */ 00525000 LTR RF,RF 01S0269 00526000 BZ @RT00269 01S0269 00527000 C RF,@CF00054 01S0269 00528000 BNE @RF00269 01S0269 00529000 @RT00269 DS 0H 01S0270 00530000 * DO; /* YES, READ AS EXPECTED */ 00531000 * READFLG='1'B; /* SET THE READ SUCCESSFUL ON */ 00532000 OI READFLG,B'01000000' 01S0271 00533000 * IF RF=EIGHT THEN /* REC NOT FOUND? */ 00534000 C RF,@CF00054 01S0272 00535000 BNE @RF00272 01S0272 00536000 * DMCBUPD='0'B; /* UPDATE NOT NEEDED TURN OFF */ 00537000 NI DMCBUPD(DMCBPTR),B'11101111' 01S0273 00538000 * IF DMCBMSG^=ZERO THEN /* ARE THERE ANY MSG QUEUED ? */ 00539000 @RF00272 L @14,DMCBMSG(,DMCBPTR) 01S0274 00540000 LTR @14,@14 01S0274 00541000 BZ @RF00274 01S0274 00542000 * CALL MSGPURGE; /* PURSE THE MESSAGE QUEUE */ 00543000 BAL @14,MSGPURGE 01S0275 00544000 * RETCODE=ZERO; /* NO ERRORS ON READ */ 00545000 @RF00274 SLR RETCODE,RETCODE 01S0276 00546000 * END; /* END OF READ AS EXPECTED */ 00547000 * ELSE /* NO READ NOT SUCCESSFUL */ 00548000 * DO; /* READ ERROR PROCESSING */ 00549000 * 01S0278 00550000 B @RC00269 01S0278 00551000 @RF00269 DS 0H 01S0279 00552000 * /*************************************************************/ 00553000 * /* */ 00554000 * /* PUT OUT ERROR WHILE READING DSD DATA BASE */ 00555000 * /* */ 00556000 * /*************************************************************/ 00557000 * 01S0279 00558000 * RESPECIFY 01S0279 00559000 * R0 RESTRICTED; /* SAVE R0 */ 00560000 * MSGPTR=R0; /* SAVE THE POINTER */ 00561000 ST R0,MSGPTR 01S0280 00562000 * RESPECIFY 01S0281 00563000 * R0 UNRESTRICTED; /* FREE R0 */ 00564000 * READERR=RF; /* TRACK THE ERROR RC */ 00565000 ST RF,READERR 01S0282 00566000 * DO; /* BLSDMSG 01S0283 00567000 * (ZZ2,04053,MSGPTR,BLSDMSGS) 00568000 * LIFO ROUTE(TERM) */ 00569000 * CALL BLSDMSG0(ZZ2,04053,MSGPTR,BLSDMSGS,'10010000'B,0);/* 00570000 * BUILD MESSAGE */ 00571000 ST ZZ2PTR,@AL00001 01S0284 00572000 LA @14,@CF01017 01S0284 00573000 ST @14,@AL00001+4 01S0284 00574000 LA @14,MSGPTR 01S0284 00575000 ST @14,@AL00001+8 01S0284 00576000 L @14,ZZ2MSGSP(,ZZ2PTR) 01S0284 00577000 ST @14,@AL00001+12 01S0284 00578000 LA @14,@CB01006 01S0284 00579000 ST @14,@AL00001+16 01S0284 00580000 LA @14,@CF00051 01S0284 00581000 ST @14,@AL00001+20 01S0284 00582000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0284 00583000 LA @01,@AL00001 01S0284 00584000 BALR @14,@15 01S0284 00585000 * END; /* BLSDMSG 01S0285 00586000 * (ZZ2,04053,MSGPTR,BLSDMSGS) 00587000 * LIFO ROUTE(TERM) */ 00588000 * IF RF^=SIXTEEN THEN /* DMCB BAD? */ 00589000 C RF,@CF00057 01S0286 00590000 BE @RF00286 01S0286 00591000 * DMCBMSG=ZERO; /* NO, ZERO MSG FIELD */ 00592000 SLR @14,@14 01S0287 00593000 ST @14,DMCBMSG(,DMCBPTR) 01S0287 00594000 * RESPECIFY 01S0288 00595000 * RF UNRESTRICTED; /* FINISHED WITH REG 15 */ 00596000 @RF00286 DS 0H 01S0289 00597000 * DO; /* ABEND(115) DUMP USER */ 00598000 * RESPECIFY 01S0290 00599000 * (GPR01F) RESTRICTED; 01S0290 00600000 * GPR01F=(115)&'00000FFF'X; /* COMP CODE IN BITS 20-31 */ 00601000 LA GPR01F,115 01S0291 00602000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 00603000 O GPR01F,@CF00066 01S0292 00604000 * SVC(13); /* ISSUE ABEND SVC */ 00605000 SVC 13 01S0293 00606000 * RESPECIFY 01S0294 00607000 * (GPR01F) UNRESTRICTED; 01S0294 00608000 * END; /* ABEND(115) DUMP USER ABEND AT 00609000 * THIS TIME */ 00610000 * END; /* END OF READ ERROR PROCESSING */ 00611000 * 01S0296 00612000 * /*****************************************************************/ 00613000 * /* */ 00614000 * /* FREE THE AREA OBTAINED FOR READ BUFFER */ 00615000 * /* */ 00616000 * /*****************************************************************/ 00617000 * 01S0297 00618000 * RESPECIFY 01S0297 00619000 * (R0, 01S0297 00620000 * R1) RESTRICTED; /* SAVE REGS FOR GETMAIN */ 00621000 * 01S0297 00622000 @RC00269 DS 0H 01S0298 00623000 * /*****************************************************************/ 00624000 * /* */ 00625000 * /* FREE AREA FOR READ REQUEST */ 00626000 * /* */ 00627000 * /*****************************************************************/ 00628000 * 01S0298 00629000 * DO; /* FREEMAIN(R) LV(DSDRECL)SP(ZZZS 00630000 * PEXC)A(RECAREA) */ 00631000 * RESPECIFY 01S0299 00632000 * (GPR01F, 01S0299 00633000 * GPR00F) RESTRICTED; 01S0299 00634000 * GPR00F=DSDRECL; /* LENGTH REQUESTED */ 00635000 L @10,@PC00001+8 01S0300 00636000 L GPR00F,DSDRECL(,@10) 01S0300 00637000 * GPR01F=ZZZSPEXC; /* SP IN REG 1 */ 00638000 LA GPR01F,1 01S0301 00639000 * GEN(SLL GPR01F,24) 01S0302 00640000 * NODEFS NOREFS NOSETS NOEXIT NOFLOWS SEQFLOW; 01S0302 00641000 SLL GPR01F,24 00642000 * GPR00F=GPR00F|GPR01F; /* SP IN HI BYTE */ 00643000 OR GPR00F,GPR01F 01S0303 00644000 * GPR01F=ADDR(RECAREA); /* SET REGISTER ONE */ 00645000 LR GPR01F,READPTR 01S0304 00646000 * SVC(10); /* R-FORM OF GETMAIN */ 00647000 SVC 10 01S0305 00648000 * RESPECIFY 01S0306 00649000 * (GPR01F, 01S0306 00650000 * GPR00F) UNRESTRICTED; 01S0306 00651000 * END; /* FREEMAIN(R) LV(DSDRECL)SP(ZZZS 00652000 * PEXC)A(RECAREA) FREE THE AREA */ 00653000 * RESPECIFY 01S0308 00654000 * (R0, 01S0308 00655000 * R1) UNRESTRICTED; /* FREE THE REGS */ 00656000 * RETURN; /* RETURN TO CALLER */ 00657000 @EL00003 DS 0H 01S0309 00658000 @EF00003 DS 0H 01S0309 00659000 @ER00003 LM @14,@06,@SA00003 01S0309 00660000 LM @08,@12,@SA00003+36 01S0309 00661000 BR @14 01S0309 00662000 * END READREC; /* END OF READ REC PROC */ 00663000 EJECT 00664000 *WRITEREC: 01S0311 00665000 * PROCEDURE; /* WRITE RECORD */ 00666000 * 01S0311 00667000 WRITEREC STM @14,@06,@SA00004 01S0311 00668000 STM @08,@12,@SA00004+36 01S0311 00669000 * /*****************************************************************/ 00670000 * /* */ 00671000 * /* WRITE THE RECORD TO THE DSD DATA BASE */ 00672000 * /* */ 00673000 * /*****************************************************************/ 00674000 * 01S0312 00675000 * RETCODE=ZERO; 01S0312 00676000 * 01S0312 00677000 SLR RETCODE,RETCODE 01S0312 00678000 */* BLSPUT (DMCBPTR) AREA(DSDREC)AREALEN(DSDRECL)RECLEN(DSDRECL) */ 00679000 * 01S0313 00680000 * DO; /* BLSPUT (DMCBPTR) AREA(DSDREC)A 00681000 * REALEN(DSDRECL)RECLEN(DSDRECL)*/ 00682000 * RFY 01S0314 00683000 * GPR01P RSTD; 01S0314 00684000 * GPR01P=DMCBPTR; /* ADDRESS DMCB */ 00685000 LR GPR01P,DMCBPTR 01S0315 00686000 * RFY 01S0316 00687000 * DMCB BASED(GPR01P); 01S0316 00688000 * IF((GPR01P&'FFFFFFF8'X)=GPR01P)&DMCBID='DMCB'/* VALID DMCB ? */ 00689000 * THEN 01S0317 00690000 LR @10,GPR01P 01S0317 00691000 N @10,@CF01000 01S0317 00692000 CLR @10,GPR01P 01S0317 00693000 BNE @RF00317 01S0317 00694000 CLC DMCBID(4,GPR01P),@CC01001 01S0317 00695000 BNE @RF00317 01S0317 00696000 * DO; 01S0318 00697000 * DMCBBUFP=ADDR(DSDREC); /* PLACE BUFFER ADDRESS IN DMCB */ 00698000 L @10,@PC00001+4 01S0319 00699000 ST @10,DMCBBUFP(,GPR01P) 01S0319 00700000 * DMCBBLEN=DSDRECL&'7FFFFFFF'X;/* PLACE BUFFER LENGTH IN DMCB*/ 00701000 L @10,@PC00001+8 01S0320 00702000 L @10,DSDRECL(,@10) 01S0320 00703000 N @10,@CF01016 01S0320 00704000 ST @10,DMCBBLEN(,GPR01P) 01S0320 00705000 * DMCBORL=(DSDRECL)&'7FFFFFFF'X;/* PLACE RECORD LENGTH IN 00706000 * DMCB */ 00707000 ST @10,DMCBORL(,GPR01P) 01S0321 00708000 * DMCBRQST=DMCBPUR; /* INDICATE PUT REQUEST */ 00709000 MVI DMCBRQST(GPR01P),X'05' 01S0322 00710000 * CALL DMCBRI->DMCBDMGR; /* CALL BLSCRQST */ 00711000 L @15,DMCBRI(,GPR01P) 01S0323 00712000 BALR @14,@15 01S0323 00713000 * END; 01S0324 00714000 * ELSE 01S0325 00715000 * DO; 01S0325 00716000 B @RC00317 01S0325 00717000 @RF00317 DS 0H 01S0326 00718000 * RFY 01S0326 00719000 * (GPR00F, 01S0326 00720000 * GPR15F) RSTD; 01S0326 00721000 * GPR00F=0; /* INDICATE NO MESSAGE CHAIN */ 00722000 SLR GPR00F,GPR00F 01S0327 00723000 * GPR15F=16; /* INDICATE INVALID DMCB */ 00724000 LA GPR15F,16 01S0328 00725000 * RFY 01S0329 00726000 * (GPR00F, 01S0329 00727000 * GPR15F); 01S0329 00728000 * END; 01S0330 00729000 * RFY 01S0331 00730000 * DMCB; 01S0331 00731000 @RC00317 DS 0H 01S0332 00732000 * RFY 01S0332 00733000 * GPR01P; 01S0332 00734000 * END; /* BLSPUT (DMCBPTR) AREA(DSDREC)A 00735000 * REALEN(DSDRECL)RECLEN(DSDRECL)*/ 00736000 * RESPECIFY 01S0334 00737000 * RF RESTRICTED; /* RESTRICT REG 15 */ 00738000 * IF RF=ZERO THEN /* WAS WRITE SUCCESSFUL? */ 00739000 SLR @14,@14 01S0335 00740000 CR RF,@14 01S0335 00741000 BNE @RF00335 01S0335 00742000 * DO; /* YES, WRITE SUCCESSFUL */ 00743000 * WRITEFLG='1'B; /* WRITE SUCCESSFUL */ 00744000 OI WRITEFLG,B'00100000' 01S0337 00745000 * IF DMCBMSG^=ZERO THEN /* IS THERE A MESSAGE QUEUE ? */ 00746000 CL @14,DMCBMSG(,DMCBPTR) 01S0338 00747000 BE @RF00338 01S0338 00748000 * CALL MSGPURGE; /* PURGE THE QUEUE */ 00749000 BAL @14,MSGPURGE 01S0339 00750000 * RETCODE=ZERO; /* SUCCESS WRITE */ 00751000 @RF00338 SLR RETCODE,RETCODE 01S0340 00752000 * END; /* END OF WRITE SUCCESSFUL */ 00753000 * ELSE /* NO, ERROR DURING WRITE */ 00754000 * IF RF=FOUR| /* INVALID REQUEST? */ 00755000 * RF=EIGHT THEN /* DUPLICATE KEY */ 00756000 B @RC00335 01S0342 00757000 @RF00335 C RF,@CF00043 01S0342 00758000 BE @RT00342 01S0342 00759000 C RF,@CF00054 01S0342 00760000 BNE @RF00342 01S0342 00761000 @RT00342 DS 0H 01S0343 00762000 * DO; /* ERROR INVALID OR DUP KEY REQ */ 00763000 * WRITERR=RF; /* SAVE ERROR RETURN CODE */ 00764000 ST RF,WRITERR 01S0344 00765000 * ERRDMCB=DMCBPTR; /* POINTER TO DMCB IN ERROR */ 00766000 * 01S0345 00767000 ST DMCBPTR,ERRDMCB 01S0345 00768000 * /***********************************************************/ 00769000 * /* */ 00770000 * /* SEND MESSAGE- LOGIC ERROR IN BLSFUD00, INVALID WRITE */ 00771000 * /* REQUEST */ 00772000 * /* */ 00773000 * /***********************************************************/ 00774000 * 01S0346 00775000 * DO; /* BLSDMSG 01S0346 00776000 * (ZZ2,04054,DMCBMSG,BLSDMSGS) 00777000 * LIFO ROUTE(TERM) */ 00778000 * CALL BLSDMSG0(ZZ2,04054,DMCBMSG,BLSDMSGS,'10010000'B,0); 00779000 ST ZZ2PTR,@AL00001 01S0347 00780000 LA @14,@CF01023 01S0347 00781000 ST @14,@AL00001+4 01S0347 00782000 LA @14,DMCBMSG(,DMCBPTR) 01S0347 00783000 ST @14,@AL00001+8 01S0347 00784000 L @14,ZZ2MSGSP(,ZZ2PTR) 01S0347 00785000 ST @14,@AL00001+12 01S0347 00786000 LA @14,@CB01006 01S0347 00787000 ST @14,@AL00001+16 01S0347 00788000 LA @14,@CF00051 01S0347 00789000 ST @14,@AL00001+20 01S0347 00790000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0347 00791000 LA @01,@AL00001 01S0347 00792000 BALR @14,@15 01S0347 00793000 * /* BUILD MESSAGE */ 00794000 * END; /* BLSDMSG 01S0348 00795000 * (ZZ2,04054,DMCBMSG,BLSDMSGS) 00796000 * LIFO ROUTE(TERM) */ 00797000 * DO; /* ABEND(116) DUMP USER */ 00798000 * RESPECIFY 01S0350 00799000 * (GPR01F) RESTRICTED; 01S0350 00800000 * GPR01F=(116)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 00801000 LA GPR01F,116 01S0351 00802000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 00803000 O GPR01F,@CF00066 01S0352 00804000 * SVC(13); /* ISSUE ABEND SVC */ 00805000 SVC 13 01S0353 00806000 * RESPECIFY 01S0354 00807000 * (GPR01F) UNRESTRICTED; 01S0354 00808000 * END; /* ABEND(116) DUMP USER ABEND */ 00809000 * END; /* END OF ERROR INVALID OR DUP 00810000 * KEY REQ */ 00811000 * ELSE /* NO NOT INVALID OR DUP KEY REQ */ 00812000 * IF RF=TWELVE THEN /* WAS IT PERMANENT ERROR? */ 00813000 B @RC00342 01S0357 00814000 @RF00342 C RF,@CF00035 01S0357 00815000 BNE @RF00357 01S0357 00816000 * DO; /* YES, PERM ERROR */ 00817000 * WRITERR=RF; /* SAVE ERROR RETURN CODE */ 00818000 * 01S0359 00819000 ST RF,WRITERR 01S0359 00820000 * /*********************************************************/ 00821000 * /* */ 00822000 * /* SEND MESSAGE- PERMANENT ERROR WHILE WRITING DSD RECORD*/ 00823000 * /* */ 00824000 * /*********************************************************/ 00825000 * 01S0360 00826000 * DO; /* BLSDMSG 01S0360 00827000 * (ZZ2,04054,DMCBMSG,BLSDMSGS) 00828000 * LIFO ROUTE(TERM) */ 00829000 * CALL BLSDMSG0(ZZ2,04054,DMCBMSG,BLSDMSGS,'10010000'B,0); 00830000 ST ZZ2PTR,@AL00001 01S0361 00831000 LA @14,@CF01023 01S0361 00832000 ST @14,@AL00001+4 01S0361 00833000 LA @14,DMCBMSG(,DMCBPTR) 01S0361 00834000 ST @14,@AL00001+8 01S0361 00835000 L @14,ZZ2MSGSP(,ZZ2PTR) 01S0361 00836000 ST @14,@AL00001+12 01S0361 00837000 LA @14,@CB01006 01S0361 00838000 ST @14,@AL00001+16 01S0361 00839000 LA @14,@CF00051 01S0361 00840000 ST @14,@AL00001+20 01S0361 00841000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0361 00842000 LA @01,@AL00001 01S0361 00843000 BALR @14,@15 01S0361 00844000 * /* BUILD MESSAGE */ 00845000 * END; /* BLSDMSG 01S0362 00846000 * (ZZ2,04054,DMCBMSG,BLSDMSGS) 00847000 * LIFO ROUTE(TERM) */ 00848000 * DO; /* ABEND(117) DUMP USER */ 00849000 * RESPECIFY 01S0364 00850000 * (GPR01F) RESTRICTED; 01S0364 00851000 * GPR01F=(117)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 00852000 LA GPR01F,117 01S0365 00853000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 00854000 O GPR01F,@CF00066 01S0366 00855000 * SVC(13); /* ISSUE ABEND SVC */ 00856000 SVC 13 01S0367 00857000 * RESPECIFY 01S0368 00858000 * (GPR01F) UNRESTRICTED; 01S0368 00859000 * END; /* ABEND(117) DUMP USER ABEND */ 00860000 * END; /* END PERM ERROR */ 00861000 * ELSE /* INVALID DMCB - MUST ABEND */ 00862000 * DO; /* INVALID DMCB */ 00863000 B @RC00357 01S0371 00864000 @RF00357 DS 0H 01S0372 00865000 * WRITERR=RF; /* SAVE THE RETURN CODE */ 00866000 ST RF,WRITERR 01S0372 00867000 * ERRDMCB=DMCBPTR; /* INDICATE ERROR DMCB POINTER */ 00868000 ST DMCBPTR,ERRDMCB 01S0373 00869000 * DO; /* ABEND(118) DUMP USER */ 00870000 * RESPECIFY 01S0375 00871000 * (GPR01F) RESTRICTED; 01S0375 00872000 * GPR01F=(118)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 00873000 LA GPR01F,118 01S0376 00874000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 00875000 O GPR01F,@CF00066 01S0377 00876000 * SVC(13); /* ISSUE ABEND SVC */ 00877000 SVC 13 01S0378 00878000 * RESPECIFY 01S0379 00879000 * (GPR01F) UNRESTRICTED; 01S0379 00880000 * END; /* ABEND(118) DUMP USER ABEND THE 00881000 * USER */ 00882000 * END; /* END OF INVALID DMCB */ 00883000 * RESPECIFY 01S0382 00884000 * RF UNRESTRICTED; /* RELEASE REG 15 */ 00885000 * RETURN; /* RETURN */ 00886000 @EL00004 DS 0H 01S0383 00887000 @EF00004 DS 0H 01S0383 00888000 @ER00004 LM @14,@06,@SA00004 01S0383 00889000 LM @08,@12,@SA00004+36 01S0383 00890000 BR @14 01S0383 00891000 * END WRITEREC; /* END OF WRITE RECORD */ 00892000 B @EL00004 01S0384 00893000 EJECT 00894000 *CLOSEREC: 01S0385 00895000 * PROCEDURE; /* CLOSE THE DATA SET */ 00896000 CLOSEREC STM @14,@06,@SA00005 01S0385 00897000 STM @08,@12,@SA00005+36 01S0385 00898000 * DO; /* BLSCLOSE(DMCBPTR) */ 00899000 * RFY 01S0387 00900000 * GPR01P RSTD; 01S0387 00901000 * GPR01P=DMCBPTR; /* ADDRESS THE DMCB */ 00902000 LR GPR01P,DMCBPTR 01S0388 00903000 * RFY 01S0389 00904000 * DMCB BASED(GPR01P); 01S0389 00905000 * IF((GPR01P&'FFFFFFF8'X)=GPR01P)&DMCBID='DMCB'/* VALID DMCB ? */ 00906000 * THEN 01S0390 00907000 LR @10,GPR01P 01S0390 00908000 N @10,@CF01000 01S0390 00909000 CLR @10,GPR01P 01S0390 00910000 BNE @RF00390 01S0390 00911000 CLC DMCBID(4,GPR01P),@CC01001 01S0390 00912000 BNE @RF00390 01S0390 00913000 * DO; 01S0391 00914000 * DMCBRQST=DMCBCLR; /* INDICATE CLOSE REQUEST */ 00915000 MVI DMCBRQST(GPR01P),X'02' 01S0392 00916000 * DMCBTMP='0'B; /* INDICATE NON TEMP CLOSE */ 00917000 * DMCBRM6='0'B; /* INDICATE */ 00918000 * DMCBRM5='0'B; /* DISP OPTION */ 00919000 NI DMCBTMP(GPR01P),B'00011111' 01S0395 00920000 * CALL DMCBRI->DMCBDMGR; /* CALL BLSCRQST */ 00921000 L @15,DMCBRI(,GPR01P) 01S0396 00922000 BALR @14,@15 01S0396 00923000 * END; 01S0397 00924000 * ELSE 01S0398 00925000 * DO; 01S0398 00926000 B @RC00390 01S0398 00927000 @RF00390 DS 0H 01S0399 00928000 * RFY 01S0399 00929000 * (GPR00F, 01S0399 00930000 * GPR15F) RSTD; 01S0399 00931000 * GPR00F=0; /* INDICATE NO MESSAGE CHAIN */ 00932000 SLR GPR00F,GPR00F 01S0400 00933000 * GPR15F=16; /* INDICATE INVALID DMCB */ 00934000 LA GPR15F,16 01S0401 00935000 * RFY 01S0402 00936000 * (GPR00F, 01S0402 00937000 * GPR15F); 01S0402 00938000 * END; 01S0403 00939000 * RFY 01S0404 00940000 * DMCB; 01S0404 00941000 @RC00390 DS 0H 01S0405 00942000 * RFY 01S0405 00943000 * GPR01P; 01S0405 00944000 * END; /* BLSCLOSE(DMCBPTR) CLOSE THE 00945000 * DATA SET */ 00946000 * RESPECIFY 01S0407 00947000 * RF RESTRICTED; /* RESTRICT REG 15 */ 00948000 * IF RF=ZERO THEN /* IS THE CLOSE SUCCESSFUL ? */ 00949000 SLR @14,@14 01S0408 00950000 CR RF,@14 01S0408 00951000 BNE @RF00408 01S0408 00952000 * DO; /* YES, FINISH CLOSE */ 00953000 * CLOSEFLG='1'B; /* CLOSE SUCCESSFUL */ 00954000 OI CLOSEFLG,B'00010000' 01S0410 00955000 * IF DMCBMSG^=ZERO THEN /* IS THERE MSG QUEUED? */ 00956000 CL @14,DMCBMSG(,DMCBPTR) 01S0411 00957000 BE @RF00411 01S0411 00958000 * CALL MSGPURGE; /* YES, PURGE THE QUEUE */ 00959000 BAL @14,MSGPURGE 01S0412 00960000 * RETCODE=ZERO; /* CLOSE SUCCESSFUL */ 00961000 @RF00411 SLR RETCODE,RETCODE 01S0413 00962000 * END; /* END OF FINISH CLOSE */ 00963000 * ELSE /* NO, ERROR ON CLOSE */ 00964000 * IF RF=FOUR THEN /* IS IT PERMANENT ERROR? */ 00965000 B @RC00408 01S0415 00966000 @RF00408 C RF,@CF00043 01S0415 00967000 BNE @RF00415 01S0415 00968000 * DO; /* YES, PERM ERROR ON CLOSE */ 00969000 * CLOSERR=RF; /* SAVE THE ERROR RETURN CODE */ 00970000 * 01S0417 00971000 ST RF,CLOSERR 01S0417 00972000 * /***********************************************************/ 00973000 * /* */ 00974000 * /* SEND MESSAGE - PERMANENT ERROR CLOSING DSD DATA BASE */ 00975000 * /* */ 00976000 * /***********************************************************/ 00977000 * 01S0418 00978000 * DO; /* BLSDMSG 01S0418 00979000 * (ZZ2,04055,DMCBMSG,BLSDMSGS) 00980000 * LIFO ROUTE(TERM) */ 00981000 * CALL BLSDMSG0(ZZ2,04055,DMCBMSG,BLSDMSGS,'10010000'B,0); 00982000 ST ZZ2PTR,@AL00001 01S0419 00983000 LA @14,@CF01031 01S0419 00984000 ST @14,@AL00001+4 01S0419 00985000 LA @14,DMCBMSG(,DMCBPTR) 01S0419 00986000 ST @14,@AL00001+8 01S0419 00987000 L @14,ZZ2MSGSP(,ZZ2PTR) 01S0419 00988000 ST @14,@AL00001+12 01S0419 00989000 LA @14,@CB01006 01S0419 00990000 ST @14,@AL00001+16 01S0419 00991000 LA @14,@CF00051 01S0419 00992000 ST @14,@AL00001+20 01S0419 00993000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0419 00994000 LA @01,@AL00001 01S0419 00995000 BALR @14,@15 01S0419 00996000 * /* BUILD MESSAGE */ 00997000 * END; /* BLSDMSG 01S0420 00998000 * (ZZ2,04055,DMCBMSG,BLSDMSGS) 00999000 * LIFO ROUTE(TERM) */ 01000000 * 01S0420 01001000 * /***********************************************************/ 01002000 * /* */ 01003000 * /* PERMANENT ERROR ON CLOSE - ABEND TO CAUSE CLEANUP */ 01004000 * /* */ 01005000 * /***********************************************************/ 01006000 * 01S0421 01007000 * DO; /* ABEND(119) DUMP USER */ 01008000 * RESPECIFY 01S0422 01009000 * (GPR01F) RESTRICTED; 01S0422 01010000 * GPR01F=(119)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 01011000 LA GPR01F,119 01S0423 01012000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 01013000 O GPR01F,@CF00066 01S0424 01014000 * SVC(13); /* ISSUE ABEND SVC */ 01015000 SVC 13 01S0425 01016000 * RESPECIFY 01S0426 01017000 * (GPR01F) UNRESTRICTED; 01S0426 01018000 * END; /* ABEND(119) DUMP USER YES, 01019000 * ABEND WITH ERROR */ 01020000 * END; /* END OF PERM ERROR ON CLOSE */ 01021000 * ELSE /* NO, LOGIC ERROR */ 01022000 * DO; /* LOGIC ERROR */ 01023000 * 01S0429 01024000 B @RC00415 01S0429 01025000 @RF00415 DS 0H 01S0430 01026000 * /***********************************************************/ 01027000 * /* */ 01028000 * /* SEND MSG - LOGIC ERROR IN BLSFUD00, DMCB INVALID */ 01029000 * /* */ 01030000 * /***********************************************************/ 01031000 * 01S0430 01032000 * CLOSERR=RF; /* SAVE THE ERROR RETURN CODE */ 01033000 ST RF,CLOSERR 01S0430 01034000 * ERRDMCB=DMCBPTR; /* SAVE ERROR DMCB PTR */ 01035000 ST DMCBPTR,ERRDMCB 01S0431 01036000 * RESPECIFY 01S0432 01037000 * R0 RESTRICTED; /* SAVE R0 */ 01038000 * MSGPTR=R0; /* OBTAIN MSG CHAIN PTR */ 01039000 ST R0,MSGPTR 01S0433 01040000 * RESPECIFY 01S0434 01041000 * R0 UNRESTRICTED; /* RELEASE REG 0 */ 01042000 * DO; /* BLSDMSG 01S0435 01043000 * (ZZ2,04055,MSGPTR,BLSDMSGS) 01044000 * LIFO ROUTE(TERM) */ 01045000 * CALL BLSDMSG0(ZZ2,04055,MSGPTR,BLSDMSGS,'10010000'B,0);/* 01046000 * BUILD MESSAGE */ 01047000 ST ZZ2PTR,@AL00001 01S0436 01048000 LA @14,@CF01031 01S0436 01049000 ST @14,@AL00001+4 01S0436 01050000 LA @14,MSGPTR 01S0436 01051000 ST @14,@AL00001+8 01S0436 01052000 L @14,ZZ2MSGSP(,ZZ2PTR) 01S0436 01053000 ST @14,@AL00001+12 01S0436 01054000 LA @14,@CB01006 01S0436 01055000 ST @14,@AL00001+16 01S0436 01056000 LA @14,@CF00051 01S0436 01057000 ST @14,@AL00001+20 01S0436 01058000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0436 01059000 LA @01,@AL00001 01S0436 01060000 BALR @14,@15 01S0436 01061000 * END; /* BLSDMSG 01S0437 01062000 * (ZZ2,04055,MSGPTR,BLSDMSGS) 01063000 * LIFO ROUTE(TERM) */ 01064000 * 01S0437 01065000 * /***********************************************************/ 01066000 * /* */ 01067000 * /* LOGIC ERROR ABEND TO CAUSE CLEANUP AND REFRESH */ 01068000 * /* */ 01069000 * /***********************************************************/ 01070000 * 01S0438 01071000 * IF RF^=SIXTEEN THEN /* DCMB BAD? */ 01072000 C RF,@CF00057 01S0438 01073000 BE @RF00438 01S0438 01074000 * DMCBMSG=ZERO; /* NO , ZERO MSG FIELD */ 01075000 SLR @14,@14 01S0439 01076000 ST @14,DMCBMSG(,DMCBPTR) 01S0439 01077000 * DO; /* ABEND(120) DUMP USER */ 01078000 @RF00438 DS 0H 01S0441 01079000 * RESPECIFY 01S0441 01080000 * (GPR01F) RESTRICTED; 01S0441 01081000 * GPR01F=(120)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 01082000 LA GPR01F,120 01S0442 01083000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 01084000 O GPR01F,@CF00066 01S0443 01085000 * SVC(13); /* ISSUE ABEND SVC */ 01086000 SVC 13 01S0444 01087000 * RESPECIFY 01S0445 01088000 * (GPR01F) UNRESTRICTED; 01S0445 01089000 * END; /* ABEND(120) DUMP USER YES, 01090000 * ABEND NOW */ 01091000 * END; /* END OF LOGIC ERROR */ 01092000 * RESPECIFY 01S0448 01093000 * RF UNRESTRICTED; /* UNRSTRT REG 15 */ 01094000 * END CLOSEREC; /* END OF CLOSE PROCEDURE */ 01095000 @EL00005 DS 0H 01S0449 01096000 @EF00005 DS 0H 01S0449 01097000 @ER00005 LM @14,@06,@SA00005 01S0449 01098000 LM @08,@12,@SA00005+36 01S0449 01099000 BR @14 01S0449 01100000 EJECT 01101000 *MSGPURGE: 01S0450 01102000 * PROCEDURE; /* PURSE MESSAGES FROM QUEUE */ 01103000 * 01S0450 01104000 MSGPURGE STM @14,@12,@SA00006 01S0450 01105000 * /*****************************************************************/ 01106000 * /* */ 01107000 * /* PURGE AND FREE MESSAGE AREAS THAT DO NOT NEED TO BE SENT TO */ 01108000 * /* TERMINAL */ 01109000 * /* */ 01110000 * /*****************************************************************/ 01111000 * 01S0451 01112000 * DO; /* YES, FREE THE AREAS, THE MSGS 01113000 * WILL NOT BE PUT OUT */ 01114000 * DO; /* BLSDMSG 01S0452 01115000 * (ZZ2,MONE,DMCBMSG,BLSDMSGS) */ 01116000 * CALL BLSDMSG0(ZZ2,MONE,DMCBMSG,BLSDMSGS,'00000000'B,0);/* 01117000 * BUILD MESSAGE */ 01118000 ST ZZ2PTR,@AL00001 01S0453 01119000 LA @10,@CF00968 01S0453 01120000 ST @10,@AL00001+4 01S0453 01121000 LA @10,DMCBMSG(,DMCBPTR) 01S0453 01122000 ST @10,@AL00001+8 01S0453 01123000 L @10,ZZ2MSGSP(,ZZ2PTR) 01S0453 01124000 ST @10,@AL00001+12 01S0453 01125000 LA @10,@CB01037 01S0453 01126000 ST @10,@AL00001+16 01S0453 01127000 LA @10,@CF00051 01S0453 01128000 ST @10,@AL00001+20 01S0453 01129000 L @15,ZZ2MSG0P(,ZZ2PTR) 01S0453 01130000 LA @01,@AL00001 01S0453 01131000 BALR @14,@15 01S0453 01132000 * END; /* BLSDMSG 01S0454 01133000 * (ZZ2,MONE,DMCBMSG,BLSDMSGS) 01134000 * PURGE MSGS */ 01135000 * END; 01S0455 01136000 * END MSGPURGE; /* END OF MSG PURGE */ 01137000 @EL00006 DS 0H 01S0456 01138000 @EF00006 DS 0H 01S0456 01139000 @ER00006 LM @14,@12,@SA00006 01S0456 01140000 BR @14 01S0456 01141000 */*BLSUPEND--MVS IPCS MODULE */ 01142000 * 01S0457 01143000 * DECLARE /* GENERAL PURPOSE REGISTERS */ 01144000 * GPR00F FIXED(31) REG(0), 01S0457 01145000 * GPR01F FIXED(31) REG(1), 01S0457 01146000 * GPR15F FIXED(31) REG(15), 01S0457 01147000 * GPR01P PTR(31) REG(1); 01S0457 01148000 * DECLARE /* COMMON VARIABLES */ 01149000 * I256C CHAR(256) BASED, 01S0458 01150000 * I031F FIXED(31) BASED, 01S0458 01151000 * I031P PTR(31) BASED, 01S0458 01152000 * I015F FIXED(15) BASED, 01S0458 01153000 * I015P PTR(15) BASED, 01S0458 01154000 * I008P PTR(8) BASED, 01S0458 01155000 * I001C CHAR(1) BASED; 01S0458 01156000 * GENERATE NODEFS NOREFS DATA; 01S0459 01157000 * END /* BLRPEND END OF PROCESSING */ 01158000 * 01S0460 01159000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 01160000 */*%INCLUDE SYSLIB (BLSDSD ) */ 01161000 */*%INCLUDE SYSLIB (BLSDMSGD) */ 01162000 */*%INCLUDE SYSLIB (BLSUZZZ ) */ 01163000 */*%INCLUDE SYSLIB (BLRFULL ) */ 01164000 */*%INCLUDE SYSLIB (IKJCPPL ) */ 01165000 */*%INCLUDE SYSLIB (IKJPSCB ) */ 01166000 */*%INCLUDE SYSLIB (IKJECT ) */ 01167000 */*%INCLUDE SYSLIB (IKJUPT ) */ 01168000 */*%INCLUDE SYSLIB (BLSUSERV) */ 01169000 */*%INCLUDE SYSLIB (BLRSERV ) */ 01170000 */*%INCLUDE SYSLIB (BLRSERVD) */ 01171000 */*%INCLUDE SYSLIB (BLSDSERV) */ 01172000 * 01S0460 01173000 * ; 01S0460 01174000 @EL00001 L @13,4(,@13) 01S0460 01175000 @EF00001 L @00,@SIZDATD 01S0460 01176000 LR @01,@11 01S0460 01177000 BLSUFRES R,LV=(0),A=(1) 01178000 @ER00001 LM @14,@12,12(@13) 01S0460 01179000 BR @14 01S0460 01180000 @DATA DS 0H 01181000 @DATD DSECT 01182000 DS 0F 01183000 @SA00001 DS 18F 01184000 @PC00001 DS 3F 01185000 @SA00002 DS 14F 01186000 @SA00003 DS 14F 01187000 @SA00004 DS 14F 01188000 @SA00005 DS 14F 01189000 @SA00006 DS 15F 01190000 @AL00001 DS 6A 01191000 BLSFUD00 CSECT 01192000 DS 0F 01193000 @CF00051 DC F'0' 01194000 @CF00043 DC F'4' 01195000 @CF00054 DC F'8' 01196000 @CF00035 DC F'12' 01197000 @CF00057 DC F'16' 01198000 @CF00127 DC F'61' 01199000 @CF01005 DC F'4052' 01200000 @CF01017 DC F'4053' 01201000 @CF01023 DC F'4054' 01202000 @CF01031 DC F'4055' 01203000 @CF01011 DC F'4082' 01204000 @CF00968 DC F'-1' 01205000 @CF00066 DC XL4'80000000' 01206000 @CF01000 DC XL4'FFFFFFF8' 01207000 @CF01016 DC XL4'7FFFFFFF' 01208000 @DATD DSECT 01209000 DS 0D 01210000 MSGPTR DS A 01211000 ERRORRC DS CL24 01212000 ORG ERRORRC 01213000 ERRDMCB DS FL4 01214000 OPENERR DS FL4 01215000 READERR DS FL4 01216000 WRITERR DS FL4 01217000 CLOSERR DS FL4 01218000 FREEERR DS FL4 01219000 ORG ERRORRC+24 01220000 FLAG1 DS CL1 01221000 ORG FLAG1 01222000 OPENFLG DS BL1 01223000 READFLG EQU FLAG1+0 01224000 WRITEFLG EQU FLAG1+0 01225000 CLOSEFLG EQU FLAG1+0 01226000 ORG FLAG1+1 01227000 BLSFUD00 CSECT 01228000 DS 0F 01229000 @SIZDATD DC AL1(0) 01230000 DC AL3(@ENDDATD-@DATD) 01231000 DS 0D 01232000 @CC01001 DC C'DMCB' 01233000 @CB01006 DC B'10010000' 01234000 @CB01037 DC B'00000000' 01235000 @DATD DSECT 01236000 SPACE 2 01237000 *********************************************************************** 01238000 * THE FOLLOWING AREA, BLRPATCH, IS RESERVED FOR PATCH APPLICATION * 01239000 * TO OBTAIN PATCH ROOM IN THE @DATD AUTOMATIC STORAGE AREA, MODIFY * 01240000 * CONSTANT @SIZDATD TO REFLECT THE DESIRED @DATD SIZE * 01241000 *********************************************************************** 01242000 SPACE 01243000 BLSFUD00 CSECT 01244000 ORG 01245000 DS 0D 01246000 BLRPATCH DC CL8'ZAPAREA',(((*-BLSFUD00+19)/20+7)/8)CL8'BLSFUD00' 01247000 @DATD DSECT 01248000 SPACE 2 01249000 *********************************************************************** 01250000 * ALIGN END OF DATA ON A DOUBLEWORD BOUNDARY * 01251000 *********************************************************************** 01252000 SPACE 01253000 DS 0D 01254000 @DATD DSECT 01255000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 01256000 @ENDDATD EQU * 01257000 BLSFUD00 CSECT 01258000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 01259000 @01 EQU 01 01260000 @02 EQU 02 01261000 @03 EQU 03 01262000 @04 EQU 04 01263000 @05 EQU 05 01264000 @06 EQU 06 01265000 @07 EQU 07 01266000 @08 EQU 08 01267000 @09 EQU 09 01268000 @10 EQU 10 01269000 @11 EQU 11 01270000 @12 EQU 12 01271000 @13 EQU 13 01272000 @14 EQU 14 01273000 @15 EQU 15 01274000 READPTR EQU @08 01275000 RETCODE EQU @07 01276000 RETC EQU @02 01277000 ZZ2PTR EQU @05 01278000 DMCBPTR EQU @06 01279000 R0 EQU @00 01280000 R1 EQU @01 01281000 R2 EQU @02 01282000 R3 EQU @03 01283000 R4 EQU @04 01284000 R5 EQU @05 01285000 R9 EQU @09 01286000 RB EQU @11 01287000 RD EQU @13 01288000 RE EQU @14 01289000 RF EQU @15 01290000 GPR01P EQU @01 01291000 GPR00F EQU @00 01292000 GPR15F EQU @15 01293000 GPR01F EQU @01 01294000 RA EQU @10 01295000 RC EQU @12 01296000 R6 EQU @06 01297000 R7 EQU @07 01298000 R8 EQU @08 01299000 DSDREC EQU 0 01300000 DSDKEY EQU DSDREC 01301000 DSDKGRP EQU DSDKEY 01302000 DSDKDSNM EQU DSDKGRP+1 01303000 DSDKBSID EQU DSDKEY+53 01304000 DSDKPID EQU DSDKBSID 01305000 DSDINFO EQU DSDREC+64 01306000 MSGDENT EQU 0 01307000 MSGDPRF EQU MSGDENT 01308000 MSGDWRT EQU MSGDENT+8 01309000 MSGDMOV EQU MSGDWRT+4 01310000 MSGWENT EQU 0 01311000 MSGWMOV EQU MSGWENT+4 01312000 DMCB EQU 0 01313000 DMCBID EQU DMCB 01314000 DMCBFTY EQU DMCB+20 01315000 DMCBOPN EQU DMCB+21 01316000 DMCBRQST EQU DMCB+22 01317000 DMCBRMOD EQU DMCB+23 01318000 DMCBOUT EQU DMCBRMOD 01319000 DMCBTMP EQU DMCBOUT 01320000 DMCBRM6 EQU DMCBRMOD 01321000 DMCBRM5 EQU DMCBRMOD 01322000 DMCBOPTS EQU DMCB+24 01323000 DMCBKYD EQU DMCBOPTS 01324000 DMCBGKY EQU DMCBOPTS 01325000 DMCBAPX EQU DMCBOPTS 01326000 DMCBUPD EQU DMCBOPTS 01327000 DMCBMFLG EQU DMCB+28 01328000 DMCBBUFP EQU DMCB+32 01329000 DMCBBLEN EQU DMCB+36 01330000 DMCBORL EQU DMCB+40 01331000 DMCBKEYP EQU DMCB+44 01332000 DMCBKEYL EQU DMCB+48 01333000 DMCBMSG EQU DMCB+52 01334000 DMCBRI EQU DMCB+64 01335000 DMCBACBE EQU DMCB+124 01336000 DMCBSPEC EQU DMCB+380 01337000 DMCBAMS EQU DMCB+416 01338000 DMCBAUDT EQU DMCB+568 01339000 DMCBLSCP EQU DMCBAUDT+16 01340000 DMCBDMGR EQU 0 01341000 ZZ1 EQU 0 01342000 ZZ1DSDP EQU ZZ1+44 01343000 ZZ1ATTN EQU ZZ1+360 01344000 ZZ1EVE EQU ZZ1ATTN+4 01345000 ZZ1F EQU ZZ1+368 01346000 ZZ1N EQU ZZ1+1116 01347000 ZZ2 EQU 0 01348000 ZZ2AMD EQU ZZ2 01349000 @NM00013 EQU ZZ2AMD+7 01350000 ZZ2PRT EQU ZZ2+138 01351000 ZZ2PRTT EQU ZZ2PRT+4 01352000 ZZ2PRTT1 EQU ZZ2PRTT+1 01353000 ZZ2A EQU ZZ2+272 01354000 ZZ2AF EQU ZZ2A+16 01355000 ZZ2APID EQU ZZ2A+64 01356000 ZZ2AD EQU ZZ2A+74 01357000 ZZ2ADD EQU ZZ2AD 01358000 ZZ2ADDT EQU ZZ2ADD+2 01359000 ZZ2ADM EQU ZZ2AD+46 01360000 ZZ2ADMT EQU ZZ2ADM+2 01361000 ZZ2ADP EQU ZZ2AD+56 01362000 ZZ2ADPT EQU ZZ2ADP+2 01363000 ZZ2AQAS EQU ZZ2A+144 01364000 ZZ2AQD EQU ZZ2A+160 01365000 ZZ2AQDT EQU ZZ2AQD+10 01366000 ZZ2AQDF EQU ZZ2AQD+52 01367000 ZZ2STG EQU ZZ2+960 01368000 ZZ2ALLOP EQU ZZ2+992 01369000 ZZ2FREEP EQU ZZ2+996 01370000 ZZ2FF19P EQU ZZ2+1000 01371000 ZZ2FRE1P EQU ZZ2+1004 01372000 ZZ2FF18P EQU ZZ2+1008 01373000 ZZ2DYNAP EQU ZZ2+1012 01374000 ZZ2ZZ2CP EQU ZZ2+1016 01375000 ZZ2ZZ2DP EQU ZZ2+1020 01376000 ZZ2STAIP EQU ZZ2+1024 01377000 ZZ2FF02P EQU ZZ2+1028 01378000 ZZ2GETLP EQU ZZ2+1032 01379000 ZZ2PARSP EQU ZZ2+1036 01380000 ZZ2PTGTP EQU ZZ2+1040 01381000 ZZ2PUTLP EQU ZZ2+1044 01382000 ZZ2SCANP EQU ZZ2+1048 01383000 ZZ2STCKP EQU ZZ2+1052 01384000 ZZ2ALOCP EQU ZZ2+1056 01385000 ZZ2MSGSP EQU ZZ2+1060 01386000 ZZ2TRMOP EQU ZZ2+1064 01387000 ZZ2TRMVP EQU ZZ2+1068 01388000 ZZ2MSG0P EQU ZZ2+1076 01389000 ZZ2PUTNP EQU ZZ2+1084 01390000 ZZ2TRMNP EQU ZZ2+1088 01391000 ZZ2ENQ0P EQU ZZ2+1092 01392000 ZZ2ADSDP EQU ZZ2+1096 01393000 ZZ2APDRP EQU ZZ2+1100 01394000 ZZ2FDSDP EQU ZZ2+1104 01395000 ZZ2FPDRP EQU ZZ2+1108 01396000 ZZ2ZZ1P EQU ZZ2+1264 01397000 ZZ2DVTP EQU ZZ2+1276 01398000 ZZ2BVTP EQU ZZ2+1280 01399000 ZZ2CPPL EQU ZZ2+1292 01400000 ZZ2CPPLC EQU ZZ2CPPL 01401000 ZZ2ITR EQU ZZ2+2840 01402000 ZZ2ITRE EQU ZZ2ITR+16 01403000 ZZ2ITSE EQU ZZ2+2864 01404000 ZZ2ES EQU ZZ2+2872 01405000 ZZ2AMDX EQU ZZ2+7160 01406000 ZZ2AXO EQU ZZ2+7934 01407000 ZZ2AXOT EQU ZZ2AXO+2 01408000 CMD EQU 0 01409000 CMDT EQU CMD+4 01410000 PSCB EQU 0 01411000 PSCBATR1 EQU PSCB+16 01412000 ECT EQU 0 01413000 ECTSWS EQU ECT+28 01414000 ECTSWS2 EQU ECT+40 01415000 ECTSWS21 EQU ECTSWS2 01416000 UPT EQU 0 01417000 UPTSWS EQU UPT+12 01418000 SA EQU 0 01419000 SA1 EQU SA 01420000 SAR EQU SA+12 01421000 BVT EQU 0 01422000 BVTPUTLP EQU BVT+4 01423000 BVTPUTOP EQU BVT+12 01424000 BVTPUTTP EQU BVT+16 01425000 BVTPUTVP EQU BVT+20 01426000 BVTPUTAP EQU BVT+24 01427000 BVTPRTTP EQU BVT+28 01428000 BVTPRTAP EQU BVT+32 01429000 BVTPUTDP EQU BVT+36 01430000 BVTMONP EQU BVT+40 01431000 BVTMON2P EQU BVT+44 01432000 BVTVSARP EQU BVT+48 01433000 BVTVSENP EQU BVT+64 01434000 BVTVSERP EQU BVT+68 01435000 BVTVSGEP EQU BVT+72 01436000 BVTVSGUP EQU BVT+76 01437000 BVTVSPOP EQU BVT+80 01438000 BVTVSPUP EQU BVT+84 01439000 BVTMPKNP EQU BVT+104 01440000 BVTMONLP EQU BVT+108 01441000 BVTPUTCP EQU BVT+132 01442000 BVTMPK1P EQU BVT+136 01443000 BVTZZ2RP EQU BVT+140 01444000 BVTPGMRP EQU BVT+144 01445000 BVTMONAP EQU BVT+148 01446000 BVTBLDDP EQU BVT+152 01447000 BVTBLDLP EQU BVT+156 01448000 BVTPGMCP EQU BVT+160 01449000 BVTPGMDP EQU BVT+164 01450000 BVTPGMLP EQU BVT+168 01451000 BVTMONCP EQU BVT+180 01452000 BVTMONDP EQU BVT+184 01453000 BVTMONTP EQU BVT+188 01454000 BVTPARIP EQU BVT+192 01455000 BVTPARUP EQU BVT+196 01456000 BVTPRTNP EQU BVT+204 01457000 BVTVSCRP EQU BVT+208 01458000 BVTVSMRP EQU BVT+212 01459000 BVTMONXP EQU BVT+216 01460000 BVTTRMAP EQU BVT+228 01461000 BLSDMSGS EQU 0 01462000 BLSDMSG0 EQU 0 01463000 DVT EQU 0 01464000 DVTDEQPP EQU DVT+8 01465000 DVTENQPP EQU DVT+12 01466000 DVTAUTHP EQU DVT+20 01467000 DVTLPCLP EQU DVT+24 01468000 DVTBP00P EQU DVT+28 01469000 DVTCN00P EQU DVT+32 01470000 DVTDF00P EQU DVT+36 01471000 DVTDS00P EQU DVT+44 01472000 DVTFL00P EQU DVT+48 01473000 DVTFP00P EQU DVT+52 01474000 DVTGD00P EQU DVT+56 01475000 DVTGG00P EQU DVT+60 01476000 DVTGP00P EQU DVT+64 01477000 DVTND00P EQU DVT+68 01478000 DVTND01P EQU DVT+72 01479000 DVTOD00P EQU DVT+76 01480000 DVTPS00P EQU DVT+80 01481000 DVTSD00P EQU DVT+84 01482000 DVTSL00P EQU DVT+88 01483000 DVTTL00P EQU DVT+92 01484000 DVTUP00P EQU DVT+100 01485000 DVTLP00P EQU DVT+104 01486000 DVTLALLP EQU DVT+108 01487000 DVTLPFMP EQU DVT+112 01488000 DVTCLOSP EQU DVT+116 01489000 DVTOPENP EQU DVT+120 01490000 DVTPERAP EQU DVT+124 01491000 DVTDALLP EQU DVT+128 01492000 RECAREA EQU 0 01493000 BLSCALOC EQU 0 01494000 BLSDADSD EQU 0 01495000 BLSDAPDR EQU 0 01496000 BLSDDEQP EQU 0 01497000 BLSDENQP EQU 0 01498000 BLSDENQ0 EQU 0 01499000 BLSDFDSD EQU 0 01500000 BLSDFPDR EQU 0 01501000 BLSEAUTH EQU 0 01502000 BLSELPCL EQU 0 01503000 BLSELPFM EQU 0 01504000 BLSFBP00 EQU 0 01505000 BLSFCLOS EQU 0 01506000 BLSFCN00 EQU 0 01507000 BLSFDALL EQU 0 01508000 BLSFDF00 EQU 0 01509000 BLSFDS00 EQU 0 01510000 BLSFFL00 EQU 0 01511000 BLSFFP00 EQU 0 01512000 BLSFGD00 EQU 0 01513000 BLSFGG00 EQU 0 01514000 BLSFGP00 EQU 0 01515000 BLSFLALL EQU 0 01516000 BLSFLP00 EQU 0 01517000 BLSFND00 EQU 0 01518000 BLSFND01 EQU 0 01519000 BLSFOD00 EQU 0 01520000 BLSFOPEN EQU 0 01521000 BLSFPERA EQU 0 01522000 BLSFPS00 EQU 0 01523000 BLSFSD00 EQU 0 01524000 BLSFSL00 EQU 0 01525000 BLSFTL00 EQU 0 01526000 BLSFUP00 EQU 0 01527000 BLSUALLO EQU 0 01528000 BLSUBLDD EQU 0 01529000 BLSUBLDL EQU 0 01530000 BLSUDYNA EQU 0 01531000 BLSUFREE EQU 0 01532000 BLSUFRE1 EQU 0 01533000 BLSUMON EQU 0 01534000 BLSUMONA EQU 0 01535000 BLSUMONC EQU 0 01536000 BLSUMOND EQU 0 01537000 BLSUMONL EQU 0 01538000 BLSUMONT EQU 0 01539000 BLSUMONX EQU 0 01540000 BLSUMON2 EQU 0 01541000 BLSUMPKN EQU 0 01542000 BLSUMPK1 EQU 0 01543000 BLSUPARI EQU 0 01544000 BLSUPARU EQU 0 01545000 BLSUPGMC EQU 0 01546000 BLSUPGMD EQU 0 01547000 BLSUPGML EQU 0 01548000 BLSUPGMR EQU 0 01549000 BLSUPRTA EQU 0 01550000 BLSUPRTN EQU 0 01551000 BLSUPRTT EQU 0 01552000 BLSUPUTA EQU 0 01553000 BLSUPUTC EQU 0 01554000 BLSUPUTD EQU 0 01555000 BLSUPUTL EQU 0 01556000 BLSUPUTN EQU 0 01557000 BLSUPUTO EQU 0 01558000 BLSUPUTT EQU 0 01559000 BLSUPUTV EQU 0 01560000 BLSUSTAI EQU 0 01561000 BLSUTRMA EQU 0 01562000 BLSUTRMN EQU 0 01563000 BLSUTRMO EQU 0 01564000 BLSUTRMV EQU 0 01565000 BLSUVSAR EQU 0 01566000 BLSUVSCR EQU 0 01567000 BLSUVSEN EQU 0 01568000 BLSUVSER EQU 0 01569000 BLSUVSGE EQU 0 01570000 BLSUVSGU EQU 0 01571000 BLSUVSMR EQU 0 01572000 BLSUVSPO EQU 0 01573000 BLSUVSPU EQU 0 01574000 BLSUZZ2C EQU 0 01575000 BLSUZZ2D EQU 0 01576000 BLSUZZ2R EQU 0 01577000 DMCBRQC EQU 0 01578000 IKJEFF02 EQU 0 01579000 IKJEFF18 EQU 0 01580000 IKJEFF19 EQU 0 01581000 IKJGETL EQU 0 01582000 IKJPARS EQU 0 01583000 IKJPTGT EQU 0 01584000 IKJPUTL EQU 0 01585000 IKJSCAN EQU 0 01586000 IKJSTCK EQU 0 01587000 I001C EQU 0 01588000 I008P EQU 0 01589000 I015F EQU 0 01590000 I015P EQU 0 01591000 I031F EQU 0 01592000 I031P EQU 0 01593000 I256C EQU 0 01594000 ZZ2CB EQU 0 01595000 ADSDREC EQU 0 01596000 DSDRECL EQU 0 01597000 DSDBASRC EQU DSDINFO 01598000 DSDDSATR EQU DSDBASRC+8 01599000 DSDPRASR EQU DSDINFO 01600000 DMCBVSM EQU DMCBAMS 01601000 DMCBQSM EQU DMCBAMS 01602000 CPPL EQU ZZ2CPPL 01603000 CPPLUPT EQU CPPL+4 01604000 CPPLPSCB EQU CPPL+8 01605000 CPPLECT EQU CPPL+12 01606000 * START UNREFERENCED COMPONENTS 01607000 CPPLCBUF EQU CPPL 01608000 DMCBRES7 EQU DMCBQSM+96 01609000 DMCBDCB EQU DMCBQSM 01610000 DMCBACB EQU DMCBVSM+76 01611000 DMCBRPL EQU DMCBVSM 01612000 DSDPRSQN EQU DSDPRASR 01613000 DSDBRES1 EQU DSDBASRC+76 01614000 DSDDESC EQU DSDBASRC+16 01615000 DSDSLOWN EQU DSDDSATR 01616000 DSDDSNTY EQU DSDBASRC 01617000 DVT99999 EQU DVT+256 01618000 DVT0064P EQU DVT+252 01619000 DVT0063P EQU DVT+248 01620000 DVT0062P EQU DVT+244 01621000 DVT0061P EQU DVT+240 01622000 DVT0060P EQU DVT+236 01623000 DVT0059P EQU DVT+232 01624000 DVT0058P EQU DVT+228 01625000 DVT0057P EQU DVT+224 01626000 DVT0056P EQU DVT+220 01627000 DVT0055P EQU DVT+216 01628000 DVT0054P EQU DVT+212 01629000 DVT0053P EQU DVT+208 01630000 DVT0052P EQU DVT+204 01631000 DVT0051P EQU DVT+200 01632000 DVT0050P EQU DVT+196 01633000 DVT0049P EQU DVT+192 01634000 DVT0048P EQU DVT+188 01635000 DVT0047P EQU DVT+184 01636000 DVT0046P EQU DVT+180 01637000 DVT0045P EQU DVT+176 01638000 DVT0044P EQU DVT+172 01639000 DVT0043P EQU DVT+168 01640000 DVT0042P EQU DVT+164 01641000 DVT0041P EQU DVT+160 01642000 DVT0040P EQU DVT+156 01643000 DVT0039P EQU DVT+152 01644000 DVT0038P EQU DVT+148 01645000 DVT0037P EQU DVT+144 01646000 DVT0036P EQU DVT+140 01647000 DVT0035P EQU DVT+136 01648000 DVT0034P EQU DVT+132 01649000 DVTUD00P EQU DVT+96 01650000 DVT0011P EQU DVT+40 01651000 DVT0005P EQU DVT+16 01652000 DVT0002P EQU DVT+4 01653000 DVT0001P EQU DVT 01654000 BVT99999 EQU BVT+256 01655000 BVT0064P EQU BVT+252 01656000 BVT0063P EQU BVT+248 01657000 BVT0062P EQU BVT+244 01658000 BVT0061P EQU BVT+240 01659000 BVT0060P EQU BVT+236 01660000 BVT0059P EQU BVT+232 01661000 BVT0057P EQU BVT+224 01662000 BVT0056P EQU BVT+220 01663000 BVTSTBLP EQU BVT+200 01664000 BVT0045P EQU BVT+176 01665000 BVT0044P EQU BVT+172 01666000 BVT0033P EQU BVT+128 01667000 BVT0032P EQU BVT+124 01668000 BVT0031P EQU BVT+120 01669000 BVT0030P EQU BVT+116 01670000 BVT0029P EQU BVT+112 01671000 BVT0026P EQU BVT+100 01672000 BVT0025P EQU BVT+96 01673000 BVT0024P EQU BVT+92 01674000 BVT0023P EQU BVT+88 01675000 BVT0016P EQU BVT+60 01676000 BVT0015P EQU BVT+56 01677000 BVT0014P EQU BVT+52 01678000 BVT0003P EQU BVT+8 01679000 BVT0001P EQU BVT 01680000 SA99 EQU SA+72 01681000 SARC EQU SAR+56 01682000 SARB EQU SAR+52 01683000 SARA EQU SAR+48 01684000 SAR9 EQU SAR+44 01685000 SAR8 EQU SAR+40 01686000 SAR7 EQU SAR+36 01687000 SAR6 EQU SAR+32 01688000 SAR5 EQU SAR+28 01689000 SAR4 EQU SAR+24 01690000 SAR3 EQU SAR+20 01691000 SAR2 EQU SAR+16 01692000 SAR1 EQU SAR+12 01693000 SAR0 EQU SAR+8 01694000 SARF EQU SAR+4 01695000 SARE EQU SAR 01696000 SAFWD EQU SA+8 01697000 SABAK EQU SA+4 01698000 SA1L EQU SA1+1 01699000 SA1P EQU SA1 01700000 UPTPREFL EQU UPT+23 01701000 UPTPREFX EQU UPT+16 01702000 @NM00068 EQU UPT+15 01703000 UPTLDEL EQU UPT+14 01704000 UPTCDEL EQU UPT+13 01705000 UPTWTP EQU UPTSWS 01706000 UPTMODE EQU UPTSWS 01707000 UPTALD EQU UPTSWS 01708000 UPTPAUS EQU UPTSWS 01709000 UPTNCOM EQU UPTSWS 01710000 UPTMID EQU UPTSWS 01711000 UPTNPRM EQU UPTSWS 01712000 UPTRCVR EQU UPTSWS 01713000 UPTUSER EQU UPT+2 01714000 @NM00067 EQU UPT 01715000 @NM00066 EQU ECT+52 01716000 @NM00065 EQU ECT+48 01717000 @NM00064 EQU ECT+44 01718000 @NM00063 EQU ECTSWS2+1 01719000 @NM00062 EQU ECTSWS21 01720000 ECTTABND EQU ECTSWS21 01721000 ECTDEFCS EQU ECTSWS21 01722000 ECTBKPB EQU ECT+36 01723000 ECTUSER EQU ECT+32 01724000 ECTDDNUM EQU ECT+29 01725000 ECTATTN EQU ECTSWS 01726000 ECTBKGRD EQU ECTSWS 01727000 ECTNNOT EQU ECTSWS 01728000 ECTNMAL EQU ECTSWS 01729000 ECTLOGF EQU ECTSWS 01730000 ECTATRM EQU ECTSWS 01731000 @NM00061 EQU ECTSWS 01732000 ECTNOPD EQU ECTSWS 01733000 ECTSCMD EQU ECT+20 01734000 ECTPCMD EQU ECT+12 01735000 ECTSMSG EQU ECT+9 01736000 ECTMSGF EQU ECT+8 01737000 ECTIOWA EQU ECT+4 01738000 ECTRTCD EQU ECT+1 01739000 ECTRCDF EQU ECT 01740000 PSCBU EQU PSCB+64 01741000 PSCBRSZ EQU PSCB+60 01742000 PSCBLINE EQU PSCB+59 01743000 PSCBCHAR EQU PSCB+58 01744000 PSCBUPTL EQU PSCB+56 01745000 PSCBUPT EQU PSCB+52 01746000 PSCBRLGB EQU PSCB+48 01747000 PSCBDEST EQU PSCB+40 01748000 @NM00060 EQU PSCB+36 01749000 @NM00059 EQU PSCB+32 01750000 @NM00058 EQU PSCB+28 01751000 PSCBLTI2 EQU PSCB+24 01752000 PSCBLTIM EQU PSCB+20 01753000 PSCBATR2 EQU PSCB+18 01754000 @NM00057 EQU PSCBATR1 01755000 @NM00056 EQU PSCBATR1 01756000 @NM00055 EQU PSCBATR1 01757000 PSCBATTN EQU PSCBATR1 01758000 PSCBVMNT EQU PSCBATR1 01759000 PSCBJCL EQU PSCBATR1 01760000 PSCBACCT EQU PSCBATR1 01761000 PSCBCTRL EQU PSCBATR1 01762000 PSCBGPNM EQU PSCB+8 01763000 PSCBUSRL EQU PSCB+7 01764000 PSCBUSER EQU PSCB 01765000 CMDT1 EQU CMDT 01766000 CMDO EQU CMD+2 01767000 CMDL EQU CMD 01768000 ZZ299999 EQU ZZ2+8192 01769000 ZZ2AXOT1 EQU ZZ2AXOT 01770000 ZZ2AXOL EQU ZZ2AXO 01771000 @NM00054 EQU ZZ2+7288 01772000 @NM00053 EQU ZZ2AMDX+4 01773000 ZZ2AMDXC EQU ZZ2AMDX 01774000 ZZ2HSD EQU ZZ2+3056 01775000 @NM00052 EQU ZZ2ES 01776000 @NM00051 EQU ZZ2+2868 01777000 ZZ2ITSEC EQU ZZ2ITSE+1 01778000 @NM00050 EQU ZZ2ITSE 01779000 ZZ2ITSEP EQU ZZ2ITSE 01780000 ZZ2ITSEW EQU ZZ2ITSE 01781000 @NM00049 EQU ZZ2ITR+20 01782000 ZZ2ITREC EQU ZZ2ITRE+1 01783000 @NM00048 EQU ZZ2ITRE 01784000 ZZ2ITREP EQU ZZ2ITRE 01785000 ZZ2ITREW EQU ZZ2ITRE 01786000 @NM00047 EQU ZZ2ITR+9 01787000 ZZ2ITRRC EQU ZZ2ITR+8 01788000 ZZ2ITR2P EQU ZZ2ITR+4 01789000 ZZ2ITRPP EQU ZZ2ITR 01790000 @NM00046 EQU ZZ2+1544 01791000 ZZ2PGM EQU ZZ2+1536 01792000 @NM00045 EQU ZZ2+1526 01793000 ZZ2CW EQU ZZ2+1524 01794000 @NM00044 EQU ZZ2+1504 01795000 @NM00043 EQU ZZ2+1352 01796000 ZZ2FFSYP EQU ZZ2+1348 01797000 ZZ2SASYP EQU ZZ2+1344 01798000 ZZ2RDSYP EQU ZZ2+1340 01799000 ZZ2RASYP EQU ZZ2+1336 01800000 ZZ2PHSYP EQU ZZ2+1332 01801000 ZZ2ESSYP EQU ZZ2+1328 01802000 ZZ200SYP EQU ZZ2+1324 01803000 ZZ2SCWP EQU ZZ2+1320 01804000 ZZ2TTLP EQU ZZ2+1316 01805000 ZZ2LOADP EQU ZZ2+1312 01806000 ZZ2VRESP EQU ZZ2+1308 01807000 ZZ2CPPLE EQU ZZ2CPPL+12 01808000 ZZ2CPPLP EQU ZZ2CPPL+8 01809000 ZZ2CPPLU EQU ZZ2CPPL+4 01810000 ZZ2VRSAP EQU ZZ2+1288 01811000 ZZ2RVTP EQU ZZ2+1284 01812000 @NM00042 EQU ZZ2+1272 01813000 @NM00041 EQU ZZ2+1268 01814000 ZZ2RPLP EQU ZZ2+1260 01815000 ZZ2TCBP EQU ZZ2+1256 01816000 @NM00040 EQU ZZ2+1252 01817000 ZZ2ZZ2P EQU ZZ2+1248 01818000 @NM00039 EQU ZZ2+1112 01819000 @NM00038 EQU ZZ2+1080 01820000 ZZ2FT25P EQU ZZ2+1072 01821000 @NM00037 EQU ZZ2+976 01822000 ZZ2TOD EQU ZZ2+968 01823000 ZZ2STGN EQU ZZ2STG+4 01824000 ZZ2STGP EQU ZZ2STG 01825000 @NM00036 EQU ZZ2+952 01826000 ZZ2SCMDE EQU ZZ2+944 01827000 ZZ2SCMDN EQU ZZ2+936 01828000 ZZ2IDENT EQU ZZ2+928 01829000 ZZ2A9999 EQU ZZ2A+656 01830000 @NM00035 EQU ZZ2A+224 01831000 @NM00034 EQU ZZ2A+220 01832000 ZZ2AQD99 EQU ZZ2AQD+60 01833000 @NM00033 EQU ZZ2AQD+56 01834000 @NM00032 EQU ZZ2AQDF 01835000 ZZ2AQDFA EQU ZZ2AQDF 01836000 ZZ2AQDIL EQU ZZ2AQD+48 01837000 ZZ2AQDIM EQU ZZ2AQD+44 01838000 ZZ2AQDT9 EQU ZZ2AQDT+34 01839000 ZZ2AQDTE EQU ZZ2AQDT+33 01840000 ZZ2AQDTD EQU ZZ2AQDT+2 01841000 @NM00031 EQU ZZ2AQDT+1 01842000 ZZ2AQDTY EQU ZZ2AQDT 01843000 ZZ2AQDT0 EQU ZZ2AQDT 01844000 ZZ2AQDLB EQU ZZ2AQD+9 01845000 ZZ2AQDOB EQU ZZ2AQD+8 01846000 ZZ2AQDLE EQU ZZ2AQD+4 01847000 ZZ2AQDOF EQU ZZ2AQD 01848000 ZZ2AQD00 EQU ZZ2AQD 01849000 ZZ2AQAS9 EQU ZZ2AQAS+16 01850000 @NM00030 EQU ZZ2AQAS+12 01851000 ZZ2AQAS2 EQU ZZ2AQAS+8 01852000 ZZ2AQAS1 EQU ZZ2AQAS+4 01853000 @NM00029 EQU ZZ2AQAS+2 01854000 ZZ2AQAST EQU ZZ2AQAS 01855000 ZZ2AQAS0 EQU ZZ2AQAS 01856000 ZZ2AZZ6P EQU ZZ2A+140 01857000 ZZ2ADPTA EQU ZZ2ADPT 01858000 ZZ2ADPL EQU ZZ2ADP 01859000 ZZ2ADMTA EQU ZZ2ADMT 01860000 ZZ2ADML EQU ZZ2ADM 01861000 ZZ2ADDTA EQU ZZ2ADDT 01862000 ZZ2ADDL EQU ZZ2ADD 01863000 @NM00028 EQU ZZ2A+72 01864000 ZZ2APIDB EQU ZZ2APID+3 01865000 ZZ2APIDA EQU ZZ2APID 01866000 @NM00027 EQU ZZ2A+24 01867000 @NM00026 EQU ZZ2AF+5 01868000 ZZ2AFX EQU ZZ2AF+5 01869000 @NM00025 EQU ZZ2AF+3 01870000 ZZ2AFS EQU ZZ2AF+2 01871000 ZZ2AFD EQU ZZ2AF+2 01872000 ZZ2AFQ EQU ZZ2AF+2 01873000 ZZ2AF$ EQU ZZ2AF+2 01874000 @NM00024 EQU ZZ2AF+2 01875000 ZZ2AFM EQU ZZ2AF+2 01876000 @NM00023 EQU ZZ2AF+2 01877000 @NM00022 EQU ZZ2AF+1 01878000 ZZ2AFV EQU ZZ2AF+1 01879000 @NM00021 EQU ZZ2AF+1 01880000 ZZ2AFC EQU ZZ2AF+1 01881000 @NM00020 EQU ZZ2AF 01882000 ZZ2AFFS EQU ZZ2AF 01883000 ZZ2AFT EQU ZZ2AF 01884000 ZZ2AFP EQU ZZ2AF 01885000 @NM00019 EQU ZZ2A+8 01886000 ZZ2ALINE EQU ZZ2A+4 01887000 @NM00018 EQU ZZ2A+3 01888000 ZZ2ASE EQU ZZ2A+2 01889000 ZZ2ACH EQU ZZ2A 01890000 @NM00017 EQU ZZ2+264 01891000 @NM00016 EQU ZZ2+263 01892000 ZZ2PRTT0 EQU ZZ2PRTT 01893000 ZZ2PRTO EQU ZZ2PRT+2 01894000 ZZ2PRTL EQU ZZ2PRT 01895000 @NM00015 EQU ZZ2AMD+56 01896000 ZZ2AMDXP EQU ZZ2AMD+52 01897000 ZZ2AMDD EQU ZZ2AMD+48 01898000 ZZ2AMDL EQU ZZ2AMD+44 01899000 ZZ2AMDU EQU ZZ2AMD+28 01900000 ZZ2AMDF EQU ZZ2AMD+24 01901000 ZZ2AMDS EQU ZZ2AMD+20 01902000 ZZ2AMDC EQU ZZ2AMD+16 01903000 ZZ2AMDP EQU ZZ2AMD+12 01904000 ZZ2AMDB EQU ZZ2AMD+8 01905000 @NM00014 EQU @NM00013 01906000 ZZ2AMD2 EQU @NM00013 01907000 ZZ2AMD1 EQU @NM00013 01908000 ZZ2AMD0 EQU ZZ2AMD+6 01909000 ZZ2AMDA EQU ZZ2AMD+4 01910000 ZZ2AMDT EQU ZZ2AMD 01911000 ZZ199999 EQU ZZ1+3072 01912000 @NM00012 EQU ZZ1+2160 01913000 ZZ1TRTAS EQU ZZ1+1904 01914000 ZZ1TRUPC EQU ZZ1+1648 01915000 ZZ1TRCTX EQU ZZ1+1392 01916000 ZZ1NASID EQU ZZ1N+274 01917000 ZZ1NSTRL EQU ZZ1N+272 01918000 ZZ1NOFF EQU ZZ1N+268 01919000 ZZ1NBDY EQU ZZ1N+264 01920000 ZZ1NADE EQU ZZ1N+260 01921000 ZZ1NADB EQU ZZ1N+256 01922000 ZZ1NSTR EQU ZZ1N 01923000 @NM00011 EQU ZZ1+1080 01924000 ZZ1TREBC EQU ZZ1+824 01925000 ZZ1TRHEX EQU ZZ1+568 01926000 @NM00010 EQU ZZ1+377 01927000 ZZ1USTAE EQU ZZ1+376 01928000 @NM00009 EQU ZZ1F+1 01929000 @NM00008 EQU ZZ1F 01930000 ZZ1FM EQU ZZ1F 01931000 ZZ1FX EQU ZZ1F 01932000 ZZ1FU EQU ZZ1F 01933000 ZZ1EVEC EQU ZZ1EVE+1 01934000 @NM00007 EQU ZZ1EVE 01935000 ZZ1EVEP EQU ZZ1EVE 01936000 ZZ1EVEW EQU ZZ1EVE 01937000 ZZ1ACMP EQU ZZ1ATTN 01938000 @NM00006 EQU ZZ1+144 01939000 ZZ1FPP EQU ZZ1+140 01940000 ZZ1ZZ6P EQU ZZ1+136 01941000 @NM00005 EQU ZZ1+84 01942000 ZZ1PLINE EQU ZZ1+80 01943000 ZZ1PGSZ EQU ZZ1+76 01944000 ZZ1PCNT EQU ZZ1+72 01945000 @NM00004 EQU ZZ1+68 01946000 ZZ1TPAGE EQU ZZ1+64 01947000 ZZ1TLINE EQU ZZ1+60 01948000 @NM00003 EQU ZZ1+52 01949000 ZZ1DMCBP EQU ZZ1+48 01950000 ZZ1PDRP EQU ZZ1+40 01951000 ZZ1ZZ2P EQU ZZ1+36 01952000 ZZ1327WP EQU ZZ1+32 01953000 ZZ1ACBP EQU ZZ1+28 01954000 @NM00002 EQU ZZ1+24 01955000 ZZ1PDCBP EQU ZZ1+20 01956000 ZZ1BLRBL EQU ZZ1+16 01957000 @NM00001 EQU ZZ1+12 01958000 ZZ1PNULL EQU ZZ1+8 01959000 ZZ1NULL EQU ZZ1+4 01960000 ZZ1IDE EQU ZZ1 01961000 DMCBWRK EQU DMCB+648 01962000 DMCBRES8 EQU DMCB+640 01963000 DMCBMODN EQU DMCB+632 01964000 DMCBCARY EQU DMCBAUDT+20 01965000 DMCBCLC EQU DMCBAUDT+12 01966000 DMCBOPC EQU DMCBAUDT+8 01967000 DMCBFRC EQU DMCBAUDT+4 01968000 DMCBALC EQU DMCBAUDT 01969000 DMCBFR EQU DMCB+412 01970000 DMCBRES6 EQU DMCB+410 01971000 DMCBIRSC EQU DMCB+408 01972000 DMCBSUBC EQU DMCB+404 01973000 DMCBDRBP EQU DMCB+400 01974000 DMCBRSZM EQU DMCB+398 01975000 DMCBRSZA EQU DMCB+396 01976000 DMCBCISZ EQU DMCB+394 01977000 DMCBDCBL EQU DMCB+392 01978000 DMCBDCLR EQU DMCB+390 01979000 DMCBDCFM EQU DMCB+389 01980000 DMCBRES5 EQU DMCB+388 01981000 DMCBLBRT EQU DMCB+386 01982000 DMCBLBSQ EQU DMCB+384 01983000 DMCBLBPS EQU DMCB+383 01984000 DMCBLBTY EQU DMCB+382 01985000 DMCBRES4 EQU DMCB+381 01986000 DMCBSPRS EQU DMCBSPEC 01987000 DMCBSPRN EQU DMCBSPEC 01988000 DMCBSPCT EQU DMCBSPEC 01989000 DMCBSPRL EQU DMCBSPEC 01990000 DMCBSPSE EQU DMCB+376 01991000 DMCBSPPR EQU DMCB+372 01992000 DMCBSPTY EQU DMCB+369 01993000 DMCBODIS EQU DMCB+368 01994000 DMCBDISP EQU DMCB+367 01995000 DMCBSTAT EQU DMCB+366 01996000 DMCBRES3 EQU DMCB+364 01997000 DMCBMEMB EQU DMCB+356 01998000 DMCBMODL EQU DMCB+348 01999000 DMCBRES9 EQU DMCB+340 02000000 DMCBPID EQU DMCB+332 02001000 DMCBTYPE EQU DMCB+328 02002000 DMCBDSN EQU DMCB+284 02003000 DMCBUNIT EQU DMCB+276 02004000 DMCBDSOR EQU DMCB+274 02005000 DMCBVOL EQU DMCB+268 02006000 DMCBDDNM EQU DMCB+260 02007000 DMCBSYNM EQU DMCB+132 02008000 DMCBRPLF EQU DMCB+128 02009000 DMCBDCBE EQU DMCBACBE 02010000 DMCBARC EQU DMCB+120 02011000 DMCBCPC EQU DMCB+116 02012000 DMCBRET EQU DMCB+112 02013000 DMCBSTL EQU DMCB+96 02014000 DMCBEOB EQU DMCB+92 02015000 DMCBFRE EQU DMCB+88 02016000 DMCBRES2 EQU DMCB+85 02017000 DMCBSPID EQU DMCB+84 02018000 DMCBRESC EQU DMCB+80 02019000 DMCBZZ1P EQU DMCB+76 02020000 DMCBMSGS EQU DMCB+72 02021000 DMCBMSG0 EQU DMCB+68 02022000 DMCBRRL EQU DMCB+60 02023000 DMCBRBA EQU DMCB+56 02024000 DMCBKPC EQU DMCBKEYP 02025000 DMCBBFPC EQU DMCBBUFP 02026000 DMCBRES1 EQU DMCB+31 02027000 DMCBACCM EQU DMCB+30 02028000 DMCBREJ EQU DMCB+29 02029000 DMCBRESB EQU DMCBMFLG 02030000 DMCBFMOD EQU DMCBMFLG 02031000 DMCBLOPT EQU DMCB+27 02032000 DMCBLRM EQU DMCB+26 02033000 DMCBLRQ EQU DMCB+25 02034000 DMCBOPRS EQU DMCBOPTS 02035000 DMCBLRD EQU DMCBOPTS 02036000 DMCBBWD EQU DMCBOPTS 02037000 DMCBRNO EQU DMCBGKY 02038000 DMCBRMRS EQU DMCBRMOD 02039000 DMCBRESA EQU DMCBOPN 02040000 DMCBSOUT EQU DMCBOPN 02041000 DMCBSIN EQU DMCBOPN 02042000 DMCBVSF EQU DMCBFTY 02043000 DMCBKSF EQU DMCBFTY 02044000 DMCBFTRS EQU DMCBFTY 02045000 DMCBSHF EQU DMCBFTY 02046000 DMCBIRL EQU DMCB+16 02047000 DMCBRTC EQU DMCB+12 02048000 DMCBTVP EQU DMCB+8 02049000 DMCBNEXT EQU DMCB+4 02050000 MSGWTXT EQU MSGWMOV+4 02051000 MSGWPAD EQU MSGWMOV+2 02052000 MSGWLEN EQU MSGWMOV 02053000 MSGWNXT EQU MSGWENT 02054000 MSGDTXT EQU MSGDMOV+4 02055000 MSGDPAD EQU MSGDMOV+2 02056000 MSGDLEN EQU MSGDMOV 02057000 MSGDNXT EQU MSGDWRT 02058000 MSGDBAK EQU MSGDPRF+4 02059000 MSGDFLEN EQU MSGDPRF+1 02060000 MSGDSPID EQU MSGDPRF 02061000 DSDRES1 EQU DSDREC+61 02062000 DSDKPNUM EQU DSDKPID+3 02063000 DSDKPREF EQU DSDKPID 02064000 DSDKMEMN EQU DSDKDSNM+44 02065000 DSDKDSN EQU DSDKDSNM 02066000 DSDKTYP EQU DSDKGRP 02067000 * END UNREFERENCED COMPONENTS 02068000 @RC00139 EQU @RC00136 02069000 @RC00196 EQU @EL00002 02070000 @RC00189 EQU @EL00002 02071000 @RC00357 EQU @EL00004 02072000 @RC00342 EQU @EL00004 02073000 @RC00335 EQU @EL00004 02074000 @RC00415 EQU @EL00005 02075000 @RC00408 EQU @EL00005 02076000 @RC00142 EQU @RC00139 02077000 @RC00145 EQU @RC00142 02078000 @ENDDATA EQU * 02079000 END BLSFUD00,(C'PLS2209',0701,78065) 02080000