TITLE 'BLSDMSG0 - MESSAGE TEXT BUILD AND ROUTING ROUTINE *00001000 ' 00002000 * /* CHANGE ACTIVITY */ 00003000 * THIS MODULE IS WRITTEN FOR @G57LPRM 00004000 BLSDMSG0 CSECT , 0002 00005000 @MAINENT DS 0H 0002 00006000 USING *,@15 0002 00007000 B @PROLOG 0002 00008000 DC AL1(16) 0002 00009000 DC C'BLSDMSG0 78.064' 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 BLSUALLS 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(24),0(@01) 0002 00024000 * 0136 00025000 */********************************************************************/ 00026000 */* */ 00027000 */* MAINLINE */ 00028000 */* */ 00029000 */********************************************************************/ 00030000 * 0136 00031000 * ZZ2PTR=ADDR(ATV); /* INITIALIZE POINTER TO THE 0136 00032000 * ACTIVE TASK VARIABLE - THE ZZ2 00033000 * CONTROL BLOCK. */ 00034000 L ZZ2PTR,@PC00001 0136 00035000 * RETC=ZERO; /* INITIALIZE THE RETC. */ 00036000 SLR RETC,RETC 0137 00037000 * RCODE=ZERO; /* INITIALIZE REASON/RETURN CODE 00038000 * TO ZERO. */ 00039000 SLR RCODE,RCODE 0138 00040000 * IF MSGNO^=MONE /* MSGNO = -1 IS A REQUEST TO 0139 00041000 * ROUTE THE MESSAGE CHAIN ONLY, 00042000 * THERE IS NO CURRENT MESSAGE 0139 00043000 * CONSTRUCTION. */ 00044000 * THEN 0139 00045000 L @10,@PC00001+4 0139 00046000 CLC MSGNO(4,@10),@CF00168 0139 00047000 BE @RF00139 0139 00048000 * DO; 0140 00049000 * CALL LOCMSGSK; /* LOCATE THE MESSAGE SKELETON 0141 00050000 * USING MSGNO. */ 00051000 BAL @14,LOCMSGSK 0141 00052000 * IF RCODE=ZERO THEN 0142 00053000 LTR RCODE,RCODE 0142 00054000 BNZ @RF00142 0142 00055000 * CALL BUILDMSG; /* BUILD MESSAGE, INCLUDING 0143 00056000 * INSERTS, IN A TEMPORARY BUFFER*/ 00057000 BAL @14,BUILDMSG 0143 00058000 * IF RCODE=ZERO THEN 0144 00059000 @RF00142 LTR RCODE,RCODE 0144 00060000 BNZ @RF00144 0144 00061000 * CALL CHAINMSG; /* GET STORAGE FOR OUTPUT MESSAGE 00062000 * AND TRANSFER CURRENT MESSAGE 00063000 * FROM TEMPORARY BUFFER TO THIS 00064000 * ELEMENT. HANG THE ELEMENT ONTO 00065000 * THE INPUT MESSAGE CHAIN. */ 00066000 BAL @14,CHAINMSG 0145 00067000 * END; 0146 00068000 @RF00144 DS 0H 0147 00069000 * IF RCODE=ZERO /* DON'T CHECK ROUTING FLAGS 0147 00070000 * HERE. THIS ALLOWS MSGNO = -1 00071000 * AND NO ROUTING REQUESTED TO 0147 00072000 * FLUSH (FREEMAIN) ALL MESSAGES 00073000 * ON THE INPUT MESSAGE CHAIN. */ 00074000 * THEN 0147 00075000 @RF00139 LTR RCODE,RCODE 0147 00076000 BNZ @RF00147 0147 00077000 * CALL BLSDROUT; /* ROUTE THE MESSAGE CHAIN TO THE 00078000 * OUTPUT PROCESSORS. */ 00079000 BAL @14,BLSDROUT 0148 00080000 * IF RCODE=ZERO| /* IF NO ERRORS HAVE OCCURRED, 0149 00081000 * OR... */ 00082000 * (RCODE=TWELVE&ZZ1EVEP=ON) /* ...IF THE USER HAS REQUESTED 00083000 * CANCELLATION OF THE 0149 00084000 * SUBCOMMAND... */ 00085000 * THEN 0149 00086000 @RF00147 LTR RCODE,RCODE 0149 00087000 BZ @RT00149 0149 00088000 C RCODE,@CF00038 0149 00089000 BNE @RF00149 0149 00090000 L @10,ZZ2ZZ1P(,ZZ2PTR) 0149 00091000 TM ZZ1EVEP(@10),B'01000000' 0149 00092000 BNO @RF00149 0149 00093000 @RT00149 DS 0H 0150 00094000 * RETURN CODE(RCODE); /* ...THEN RETURN TO THE CALLER, */ 00095000 L @13,4(,@13) 0150 00096000 L @00,@SIZDATD 0150 00097000 LR @01,@11 0150 00098000 BLSUFRES R,LV=(0),A=(1) 00099000 LR @15,@05 0150 00100000 L @14,12(,@13) 0150 00101000 LM @00,@12,20(@13) 0150 00102000 BR @14 0150 00103000 * ELSE 0151 00104000 * DO; /* OTHERWISE, ABEND WITH RCODE AS 00105000 * THE REASON CODE IN REGISTER 15 00106000 * - USER ABEND CODE IS IN 0151 00107000 * VARIABLE DMSG0AC. */ 00108000 @RF00149 DS 0H 0152 00109000 * RESPECIFY 0152 00110000 * (R15) RESTRICTED; 0152 00111000 * R15=RCODE; 0153 00112000 LR R15,RCODE 0153 00113000 * DO; /* ABEND(DMSG0AC) DUMP USER */ 00114000 * RESPECIFY 0155 00115000 * (GPR01F) RESTRICTED; 0155 00116000 * GPR01F=(DMSG0AC)&'00000FFF'X;/* COMP CODE IN BITS 20-31 */ 00117000 LA GPR01F,105 0156 00118000 * GPR01F=GPR01F|'80000000'X;/* DUMP/STEP/DUMPOPTS FLAG */ 00119000 O GPR01F,@CF00072 0157 00120000 * SVC(13); /* ISSUE ABEND SVC */ 00121000 SVC 13 0158 00122000 * RESPECIFY 0159 00123000 * (GPR01F) UNRESTRICTED; 0159 00124000 * END; /* ABEND(DMSG0AC) DUMP USER */ 00125000 * RESPECIFY 0161 00126000 * (R15) UNRESTRICTED; 0161 00127000 * END; 0162 00128000 * 0163 00129000 */********************************************************************/ 00130000 */* */ 00131000 */* LOCATE THE MESSAGE SKELETON IN THE INPUT CSECT GIVEN */ 00132000 */* THE MESSAGE NUMBER AS THE KEY. */ 00133000 */* */ 00134000 */********************************************************************/ 00135000 * 0163 00136000 *LOCMSGSK: 0163 00137000 * PROCEDURE; 0163 00138000 B @PB00002 0163 00139000 LOCMSGSK STM @14,@03,12(@13) 0163 00140000 STM @06,@12,44(@13) 0163 00141000 * CCRITPTR=MSGCSECT; /* GET THE ADDRESS OF THE 0164 00142000 * COMPONENT CROSS REFERENCE 0164 00143000 * TABLE. */ 00144000 L @10,@PC00001+12 0164 00145000 L CCRITPTR,MSGCSECT(,@10) 0164 00146000 * TEMP=MSGNO/COMPC; /* ISOLATE THE COMPONENT CROSS 0165 00147000 * REFERENCE TABLE INDEX */ 00148000 L @10,@PC00001+4 0165 00149000 L @00,MSGNO(,@10) 0165 00150000 SRDA @00,32 0165 00151000 D @00,@CF00172 0165 00152000 LR TEMP,@01 0165 00153000 * IF TEMP>NCCRIT /* IF THIS INDEX IS GREATER THAN 00154000 * THE NUMBER OF ENTRIES IN THE 00155000 * TABLE, THEN SET THE REASON 0166 00156000 * CODE. */ 00157000 * THEN 0166 00158000 C TEMP,NCCRIT(,CCRITPTR) 0166 00159000 BNH @RF00166 0166 00160000 * RCODE=NCTE; 0167 00161000 LA RCODE,20 0167 00162000 * ELSE 0168 00163000 * DO; 0168 00164000 B @RC00166 0168 00165000 @RF00166 DS 0H 0169 00166000 * SCTPTR=SCTP(TEMP+ONE); /* GET THE ADDRESS OF THE 0169 00167000 * SUBCOMPONENT CROSS REFERENCE 00168000 * TABLE. */ 00169000 LR @10,TEMP 0169 00170000 SLA @10,2 0169 00171000 L SCTPTR,SCTP(@10,CCRITPTR) 0169 00172000 * IF SCTPTR=ZERO /* IF THIS ADDRESS IS ZERO, THEN 00173000 * THE NEEDED SUBCOMPONENT CROSS 00174000 * REFERENCE TABLE DOES NOT 0170 00175000 * EXIST. SET THE REASON CODE FOR 00176000 * THIS SITUATION. */ 00177000 * THEN 0170 00178000 LTR SCTPTR,SCTPTR 0170 00179000 BNZ @RF00170 0170 00180000 * RCODE=ZCTE; 0171 00181000 LA RCODE,24 0171 00182000 * END; 0172 00183000 @RF00170 DS 0H 0173 00184000 * IF RCODE=ZERO /* IF NO ERROR HAS OCCURRED, THEN 00185000 * ... */ 00186000 * THEN 0173 00187000 @RC00166 LTR RCODE,RCODE 0173 00188000 BNZ @RF00173 0173 00189000 * DO; 0174 00190000 * TEMP=MSGNO//COMPC; /* ISOLATE THE SUBCOMPONENT CROSS 00191000 * REFERENCE TABLE INDEX FROM THE 00192000 * INPUT MESSAGE NUMBER (THE 0175 00193000 * HUNDREDS DIGIT). */ 00194000 L @10,@PC00001+4 0175 00195000 L @00,MSGNO(,@10) 0175 00196000 SRDA @00,32 0175 00197000 D @00,@CF00172 0175 00198000 LR TEMP,@00 0175 00199000 * TEMP1=TEMP/SCOMPC; 0176 00200000 LR @00,TEMP 0176 00201000 SRDA @00,32 0176 00202000 D @00,@CF00174 0176 00203000 LR TEMP1,@01 0176 00204000 * IF TEMP1>NSCT /* IF THE SUBCOMPONENT CROSS 0177 00205000 * REFERENCE TABLE INDEX IS 0177 00206000 * GREATER THAN THE NUMBER OF 0177 00207000 * ENTRIES IN THE TABLE, THEN 0177 00208000 * THEN SET THE REASON CODE TO 0177 00209000 * INDICATE THIS FACT. */ 00210000 * THEN 0177 00211000 C TEMP1,NSCT(,SCTPTR) 0177 00212000 BNH @RF00177 0177 00213000 * RCODE=NSCTE; 0178 00214000 LA RCODE,28 0178 00215000 * ELSE 0179 00216000 * DO; 0179 00217000 B @RC00177 0179 00218000 @RF00177 DS 0H 0180 00219000 * SSCTPTR=SSCTP(TEMP1+ONE);/* OTHERWISE, GET THE ADDRESS OF 00220000 * THE SUB-SUBCOMPONENT CROSS 0180 00221000 * REFERENCE TABLE. */ 00222000 LR @10,TEMP1 0180 00223000 SLA @10,2 0180 00224000 L SSCTPTR,SSCTP(@10,SCTPTR) 0180 00225000 * IF SSCTPTR=ZERO /* IF THE ADDRESS OF THE 0181 00226000 * SUB-SUBCOMPONENT CROSS 0181 00227000 * REFERENCE TABLE IS ZERO, THEN 00228000 * THIS TABLE DOES NOT EXIST. SET 00229000 * THE REASON CODE TO INDICATE 0181 00230000 * THIS SITUATION. */ 00231000 * THEN 0181 00232000 LTR SSCTPTR,SSCTPTR 0181 00233000 BNZ @RF00181 0181 00234000 * RCODE=ZSCTE; 0182 00235000 LA RCODE,32 0182 00236000 * END; 0183 00237000 @RF00181 DS 0H 0184 00238000 * END; 0184 00239000 @RC00177 DS 0H 0185 00240000 * IF RCODE=ZERO /* IF NO ERRORS HAVE OCCURRED, 0185 00241000 * THEN... */ 00242000 * THEN 0185 00243000 @RF00173 LTR RCODE,RCODE 0185 00244000 BNZ @RF00185 0185 00245000 * DO; 0186 00246000 * TEMP1=TEMP//SCOMPC; /* EXTRACT THE SUB-SUBCOMPONENT 00247000 * CROSS REFERENCE TABLE INDEX 0187 00248000 * FROM THE INPUT MESSAGE NUMBER 00249000 * (THE LAST TWO DIGITS). */ 00250000 LR @00,TEMP 0187 00251000 SRDA @00,32 0187 00252000 D @00,@CF00174 0187 00253000 LR TEMP1,@00 0187 00254000 * IF TEMP1>NSSCT /* IF THIS INDEX IS GREATER THAN 00255000 * THE NUMBER OF ENTRIES IN THE 00256000 * TABLE, THEN SET THE REASON 0188 00257000 * CODE TO INDICATE THIS FACT. */ 00258000 * THEN 0188 00259000 C TEMP1,NSSCT(,SSCTPTR) 0188 00260000 BNH @RF00188 0188 00261000 * RCODE=NSSCTE; 0189 00262000 LA RCODE,36 0189 00263000 * ELSE 0190 00264000 * DO; 0190 00265000 B @RC00188 0190 00266000 @RF00188 DS 0H 0191 00267000 * MSGPTR=MSGP(TEMP1+ONE); /* OTHERWISE, OBTAIN THE ADDRESS 00268000 * OF THE MESSAGE SKELETON FROM 00269000 * THE SUB-SUBCOMPONENT CROSS 0191 00270000 * REFERENCE TABLE. */ 00271000 LR @10,TEMP1 0191 00272000 SLA @10,2 0191 00273000 L MSGPTR,MSGP(@10,SSCTPTR) 0191 00274000 * IF MSGPTR=ZERO /* IF THIS ADDRESS IS ZERO, THE 00275000 * THE REQUESTED MESSAGE DOES NOT 00276000 * EXIST. SET THE REASON CODE TO 00277000 * INDICATE THIS SITUATION. */ 00278000 * THEN 0192 00279000 LTR MSGPTR,MSGPTR 0192 00280000 BNZ @RF00192 0192 00281000 * RCODE=ZSSCTE; 0193 00282000 LA RCODE,40 0193 00283000 * END; 0194 00284000 * END; 0195 00285000 * END LOCMSGSK; /* RETURN THE ADDRESS OF THE 0196 00286000 * MESSAGE SKELETON OR A REASON 00287000 * CODE TO THE MAINLINE. */ 00288000 @EL00002 DS 0H 0196 00289000 @EF00002 DS 0H 0196 00290000 @ER00002 LM @14,@03,12(@13) 0196 00291000 LM @06,@12,44(@13) 0196 00292000 BR @14 0196 00293000 * 0197 00294000 */********************************************************************/ 00295000 */* */ 00296000 */* BUILD OUTPUT MESSAGE IN BUFFER USING FOUND SKELETON */ 00297000 */* AND ANY INSERTS GIVEN IN THE INPUT PARAMETERS. */ 00298000 */* */ 00299000 */********************************************************************/ 00300000 * 0197 00301000 *BUILDMSG: 0197 00302000 * PROCEDURE; /* THIS PROCEDURE IS NOT CALLED 00303000 * IF THE REASON CODE HAD BEEN 0197 00304000 * SET BY PREVIOUS PROCESSING. */ 00305000 BUILDMSG STM @14,@04,12(@13) 0197 00306000 STM @06,@08,44(@13) 0197 00307000 STM @10,@12,60(@13) 0197 00308000 * NINSREM=NMSGINS; /* INITIALIZE THE NUMBER OF 0198 00309000 * REMAINING INSERTS NEEDED BY 0198 00310000 * THE MESSAGE SKELETON WITH THE 00311000 * TOTAL NUMBER OF INSERTS NEEDED 00312000 * BY THE MESSAGE SKELETON. */ 00313000 LH NINSREM,NMSGINS(,MSGPTR) 0198 00314000 * MSGPTR=MSGPTR+LENGTH(NMSGINS)+NINSREM*LENGTH(MSGRSVD);/* BUMP THE 00315000 * MESSAGE SKELETON ADDRESS OVER 00316000 * THE HEADER DATA TO THE FIRST 00317000 * MESSAGE SEGMENT. */ 00318000 LA @10,2 0199 00319000 ALR @10,MSGPTR 0199 00320000 LR @02,NINSREM 0199 00321000 ALR @02,@02 0199 00322000 ALR @10,@02 0199 00323000 LR MSGPTR,@10 0199 00324000 * INTPTR=ADDR(BUFFER); /* INITIALIZE THE ADDRESS OF THE 00325000 * INTERNAL MESSAGE CONSTRUCTION 00326000 * AREA. */ 00327000 LA INTPTR,BUFFER 0200 00328000 * MINTPTR=INTPTR+LENGTH(BUFFER); /* ESTABLISH THE MAXIMUM ADDRESS 00329000 * THE INTPTR CAN REACH WITHOUT 00330000 * OVERRUNNING THE INTERNAL 0201 00331000 * MESSAGE CONSTRUCTION AREA. */ 00332000 LA MINTPTR,250 0201 00333000 ALR MINTPTR,INTPTR 0201 00334000 * INSPTR=INSRTPTR; /* INITIALIZE THE ADDRESS OF THE 00335000 * INSERT ELEMENT POINTER TO THE 00336000 * FIRST ELEMENT ON THE INSERT 0202 00337000 * CHAIN. IT CAN BE ZERO IF THERE 00338000 * IS NO SUCH CHAIN. */ 00339000 L @10,@PC00001+20 0202 00340000 L INSPTR,INSRTPTR(,@10) 0202 00341000 * DO WHILE NINSREM>=ZERO&RCODE=ZERO;/* DO WHILE THE MESSAGE 0203 00342000 * SKELETON STILL REQUIRES 0203 00343000 * INSERTS ... AND NO ERRORS ARE 00344000 * DETECTED ... */ 00345000 * 0203 00346000 B @DE00203 0203 00347000 @DL00203 DS 0H 0204 00348000 * /***************************************************************/ 00349000 * /* */ 00350000 * /* MOVE NEXT MESSAGE SKELETON SEGMENT */ 00351000 * /* */ 00352000 * /***************************************************************/ 00353000 * 0204 00354000 * IF LMSGTXT>ZERO /* IF THE CURRENT MESSAGE 0204 00355000 * SKELETON SEGMENT CONTAINS SOME 00356000 * TEXT, ... */ 00357000 * THEN /* THEN TRY TO MOVE IT TO THE 0204 00358000 * INTERNAL CONSTRUCTION AREA. */ 00359000 CLI LMSGTXT(MSGPTR),0 0204 00360000 BNH @RF00204 0204 00361000 * DO; 0205 00362000 * IF INTPTR+LMSGTXT<=MINTPTR/* IF THE INTERNAL MESSAGE 0206 00363000 * CONSTRUCTION AREA WON'T BE 0206 00364000 * OVERRUN, ... */ 00365000 * THEN 0206 00366000 SLR @10,@10 0206 00367000 IC @10,LMSGTXT(,MSGPTR) 0206 00368000 LR @02,INTPTR 0206 00369000 ALR @02,@10 0206 00370000 CR @02,MINTPTR 0206 00371000 BH @RF00206 0206 00372000 * DO; 0207 00373000 * INTBUF(ONE:LMSGTXT)=MSGTXT(ONE:LMSGTXT);/* ...THEN MOVE 00374000 * THE MESSAGE SKELETON SEGMENT 00375000 * TO THE INTERNAL CONSTRUCTION 00376000 * AREA. */ 00377000 LR @02,@10 0208 00378000 BCTR @02,0 0208 00379000 EX @02,@SM00903 0208 00380000 * INTPTR=INTPTR+LMSGTXT;/* ...AND UPDATE THE INTERNAL 0209 00381000 * MESSAGE CONSTRUCTION AREA 0209 00382000 * POINTER. */ 00383000 ALR INTPTR,@10 0209 00384000 * END; 0210 00385000 * ELSE 0211 00386000 * RCODE=MSTL; /* ...BUT IF OVERRUN WOULD OCCUR, 00387000 * INDICATE THIS FACT BY SETTING 00388000 * THE REASON CODE. */ 00389000 B @RC00206 0211 00390000 @RF00206 LA RCODE,44 0211 00391000 * END; 0212 00392000 @RC00206 DS 0H 0213 00393000 * IF RCODE=ZERO /* IF NO ERROR WAS DETECTED, THEN 00394000 * ... */ 00395000 * THEN 0213 00396000 @RF00204 SLR @10,@10 0213 00397000 CR RCODE,@10 0213 00398000 BNE @RF00213 0213 00399000 * DO; 0214 00400000 * MSGPTR=MSGPTR+LMSGTXT+LENGTH(LMSGTXT);/* BUMP THE MESSAGE 00401000 * SKELETON SEGMENT POINTER TO 0215 00402000 * THE NEXT SEGMENT. */ 00403000 LR @02,MSGPTR 0215 00404000 SLR @15,@15 0215 00405000 IC @15,LMSGTXT(,MSGPTR) 0215 00406000 ALR @02,@15 0215 00407000 AL @02,@CF00052 0215 00408000 LR MSGPTR,@02 0215 00409000 * NINSREM=NINSREM-ONE; /* AN INSERT WILL ALWAYS OCCUR 0216 00410000 * BETWEEN SKELETON MESSAGE 0216 00411000 * SEGMENTS. REDUCE THE NUMBER 0216 00412000 * REMAINING TO BE DONE. */ 00413000 BCTR NINSREM,0 0216 00414000 * IF NINSREM>=ZERO /* IF THE NUMBER NOW REMAINING IS 00415000 * .GE. 0, THEN THE MESSAGE 0217 00416000 * SKELETON REQUIRES ANOTHER 0217 00417000 * INSERT (THAT IS, THE LAST 0217 00418000 * MESSAGE SKELETON SEGMENT HAS 00419000 * NOT YET BEEN REACHED). */ 00420000 * THEN 0217 00421000 CR NINSREM,@10 0217 00422000 BL @RF00217 0217 00423000 * DO; 0218 00424000 * IF INSPTR=ZERO /* IF THE INSERT CHAIN POINTER IS 00425000 * ZERO, NO MORE INSERTS REMAIN 00426000 * ON THE CHAIN. INDICATE THIS 0219 00427000 * FACT VIA THE REASON CODE. */ 00428000 * THEN 0219 00429000 CR INSPTR,@10 0219 00430000 BNE @RF00219 0219 00431000 * RCODE=NOINS; 0220 00432000 LA RCODE,52 0220 00433000 * ELSE 0221 00434000 * DO; /* OTHERWISE, THERE IS ANOTHER 0221 00435000 * INSERT ON THE INPUT INSERT 0221 00436000 * CHAIN. */ 00437000 * 0221 00438000 B @RC00219 0221 00439000 @RF00219 DS 0H 0222 00440000 * /***************************************************/ 00441000 * /* */ 00442000 * /* MOVE NEXT INSERT */ 00443000 * /* */ 00444000 * /***************************************************/ 00445000 * 0222 00446000 * INSERTLN=INSTXTLN;/* SET MAXIMUM INSERT LENGTH 0222 00447000 * SIZE. */ 00448000 LH INSERTLN,INSTXTLN(,INSPTR) 0222 00449000 * IF FLAG1=OFF /* IF FLAG1 IS OFF, */ 00450000 * THEN /* THEN DELETE ALL TRAILING 0223 00451000 * BLANKS FROM THE INSERT */ 00452000 L @10,@PC00001+16 0223 00453000 TM FLAG1(@10),B'01000000' 0223 00454000 BNZ @RF00223 0223 00455000 * DO WHILE INSERTLN>ZERO&INSTXT(INSERTLN)=BLANK; 0224 00456000 B @DE00224 0224 00457000 @DL00224 DS 0H 0225 00458000 * INSERTLN=INSERTLN-ONE; 0225 00459000 BCTR INSERTLN,0 0225 00460000 * END; 0226 00461000 @DE00224 LTR INSERTLN,INSERTLN 0226 00462000 BNP @DC00224 0226 00463000 L @10,INSTXPTR(,INSPTR) 0226 00464000 ALR @10,INSERTLN 0226 00465000 BCTR @10,0 0226 00466000 CLI INSTXT(@10),C' ' 0226 00467000 BE @DL00224 0226 00468000 @DC00224 DS 0H 0227 00469000 * IF INSERTLN>ZERO THEN 0227 00470000 @RF00223 LTR INSERTLN,INSERTLN 0227 00471000 BNP @RF00227 0227 00472000 * DO; 0228 00473000 * IF INTPTR+INSERTLN<=MINTPTR/* ...IF OVERRUN 0229 00474000 * WON'T OCCUR, ... */ 00475000 * THEN 0229 00476000 LR @10,INTPTR 0229 00477000 ALR @10,INSERTLN 0229 00478000 CR @10,MINTPTR 0229 00479000 BH @RF00229 0229 00480000 * DO; 0230 00481000 * INTBUF(ONE:INSERTLN)=INSTXT(ONE:INSERTLN); 00482000 LR @10,INSERTLN 0231 00483000 BCTR @10,0 0231 00484000 L @01,INSTXPTR(,INSPTR) 0231 00485000 EX @10,@SM00905 0231 00486000 * /* ...THEN MOVE THE INSERT TEXT 00487000 * INTO THE INTERNAL MESSAGE 0232 00488000 * CONSTRUCTION AREA ... */ 00489000 * INTPTR=INTPTR+INSERTLN;/* ...AND UPDATE THE 00490000 * CURRENT POINTER INTO THE 0232 00491000 * INTERNAL MESSAGE CONSTRUCTION 00492000 * AREA. */ 00493000 ALR INTPTR,INSERTLN 0232 00494000 * END; 0233 00495000 * ELSE 0234 00496000 * RCODE=MITL; /* ELSE, IF OVERRUN OF THE 0234 00497000 * INTERNAL MESSAGE CONSTRUCTION 00498000 * AREA WOULD OCCUR, INDICATE 0234 00499000 * THIS FACT VIA THE REASON CODE */ 00500000 B @RC00229 0234 00501000 @RF00229 LA RCODE,48 0234 00502000 * END; 0235 00503000 @RC00229 DS 0H 0236 00504000 * IF RCODE=ZERO /* IF NO ERRORS HAVE OCCURRED, 0236 00505000 * THEN ... */ 00506000 * THEN 0236 00507000 @RF00227 LTR RCODE,RCODE 0236 00508000 BNZ @RF00236 0236 00509000 * INSPTR=INSCHAIN;/* ...UPDATE THE INSERT CHAIN 0237 00510000 * ELEMENT POINTER TO THE NEXT 0237 00511000 * ELEMENT ON THE CHAIN. */ 00512000 L INSPTR,INSCHAIN(,INSPTR) 0237 00513000 * END; 0238 00514000 @RF00236 DS 0H 0239 00515000 * END; 0239 00516000 @RC00219 DS 0H 0240 00517000 * END; 0240 00518000 @RF00217 DS 0H 0241 00519000 * END; 0241 00520000 @RF00213 DS 0H 0241 00521000 @DE00203 SLR @10,@10 0241 00522000 CR NINSREM,@10 0241 00523000 BL @DC00203 0241 00524000 CR RCODE,@10 0241 00525000 BE @DL00203 0241 00526000 @DC00203 DS 0H 0242 00527000 * IF RCODE=ZERO /* IF NO ERRORS HAVE OCCURRED, 0242 00528000 * THEN ... */ 00529000 * THEN 0242 00530000 SLR @10,@10 0242 00531000 CR RCODE,@10 0242 00532000 BNE @RF00242 0242 00533000 * IF INSPTR^=ZERO /* ...ALL INSERTS WHICH WERE 0243 00534000 * REQUIRED BY THE MESSAGE 0243 00535000 * SKELETON HAVE BEEN USED. IF 0243 00536000 * ADDITIONAL INSERTS STILL 0243 00537000 * REMAIN, TOO MANY WERE PROVIDED 00538000 * IN THE INPUT. INDICATE THIS 0243 00539000 * FACT VIA THE REASON CODE. */ 00540000 * THEN 0243 00541000 CR INSPTR,@10 0243 00542000 BE @RF00243 0243 00543000 * RCODE=TMINS; 0244 00544000 LA RCODE,56 0244 00545000 * ELSE 0245 00546000 * LENOMSG=INTPTR-ADDR(BUFFER);/* SET THE LENGTH OF THE TEXT TO 00547000 * BE OUTPUT TO THE AMOUNT OF 0245 00548000 * TEXT WHICH HAS BEEN ASSEMBLED 00549000 * IN THE INTERNAL MESSAGE 0245 00550000 * CONSTRUCTION AREA. */ 00551000 B @RC00243 0245 00552000 @RF00243 LA LENOMSG,BUFFER 0245 00553000 LCR LENOMSG,LENOMSG 0245 00554000 ALR LENOMSG,INTPTR 0245 00555000 * END BUILDMSG; 0246 00556000 @EL00003 DS 0H 0246 00557000 @EF00003 DS 0H 0246 00558000 @ER00003 LM @14,@04,12(@13) 0246 00559000 LM @06,@08,44(@13) 0246 00560000 LM @10,@12,60(@13) 0246 00561000 BR @14 0246 00562000 * 0247 00563000 */********************************************************************/ 00564000 */* */ 00565000 */* CONSTRUCT THE MESSAGE IN ITS OUTPUT FORMAT AND CHAIN THE */ 00566000 */* MESSAGE ONTO THE INPUT MESSAGE CHAIN, IF ANY, AS SPECIFIED */ 00567000 */* BY FLAG0. */ 00568000 */* */ 00569000 */********************************************************************/ 00570000 * 0247 00571000 *CHAINMSG: 0247 00572000 * PROCEDURE; 0247 00573000 * 0247 00574000 CHAINMSG STM @14,@04,12(@13) 0247 00575000 STM @06,@12,44(@13) 0247 00576000 * /*****************************************************************/ 00577000 * /* */ 00578000 * /* BUILD THE OUTPUT MESSAGE ELEMENT */ 00579000 * /* */ 00580000 * /*****************************************************************/ 00581000 * 0248 00582000 * SPOOL=ZZZSPEXC; /* SET THE SUBPOOL FROM WHICH TO 00583000 * OBTAIN STORAGE. */ 00584000 LA SPOOL,1 0248 00585000 * DO; /* GETMAIN (RC) LV(LENOMSG+LENGTH 00586000 * (MSGDPRF)+LENGTH(MSGDWRT)) 0249 00587000 * SP(SPOOL) RTCD(RCODE) */ 00588000 * RESPECIFY 0250 00589000 * (GPR01F, 0250 00590000 * GPR15F, 0250 00591000 * GPR00F) RESTRICTED; 0250 00592000 * GPR01F=0; /* REG 1 MUST BE ZERO */ 00593000 SLR GPR01F,GPR01F 0251 00594000 * GPR15F=0; /* RC-TYPE GETMAIN */ 00595000 SLR GPR15F,GPR15F 0252 00596000 * GPR00F=LENOMSG+LENGTH(MSGDPRF)+LENGTH(MSGDWRT);/* LENGTH 0253 00597000 * REQUESTED */ 00598000 LA GPR00F,16 0253 00599000 ALR GPR00F,LENOMSG 0253 00600000 * GPR15F=GPR15F|((SPOOL)*256); /* SP IN BYTE 2 */ 00601000 LR @14,SPOOL 0254 00602000 SLA @14,8 0254 00603000 OR GPR15F,@14 0254 00604000 * SVC(120); /* RC/RU-FORM OF GETMAIN */ 00605000 SVC 120 0255 00606000 * RCODE=GPR15F; /* SET RETURN CODE */ 00607000 LR RCODE,GPR15F 0256 00608000 * RESPECIFY 0257 00609000 * (GPR01F, 0257 00610000 * GPR15F, 0257 00611000 * GPR00F) UNRESTRICTED; 0257 00612000 * END; /* GETMAIN (RC) LV(LENOMSG+LENGTH 00613000 * (MSGDPRF)+LENGTH(MSGDWRT)) 0258 00614000 * SP(SPOOL) RTCD(RCODE) */ 00615000 * IF RCODE^=ZERO /* IF ERROR OCCURRED OBTAINING 0259 00616000 * STORAGE,... */ 00617000 * THEN 0259 00618000 LTR RCODE,RCODE 0259 00619000 BZ @RF00259 0259 00620000 * RCODE=NSTOR; /* ...INDICATE SO IN RCODE AND 0260 00621000 * BYPASS OTHER PROCESSING. */ 00622000 LA RCODE,60 0260 00623000 * ELSE 0261 00624000 * DO; /* OTHERWISE, ... */ 00625000 B @RC00259 0261 00626000 @RF00259 DS 0H 0262 00627000 * RESPECIFY 0262 00628000 * (R0, 0262 00629000 * R1) RESTRICTED; 0262 00630000 * OMSGPTR=R1; /* INITIALIZE THE OUTPUT MESSAGE 00631000 * POINTER TO THE ADDRESS OF THE 00632000 * STORAGE JUST OBTAINED. */ 00633000 LR OMSGPTR,R1 0263 00634000 * MSGDFLEN=R0; /* STORE THE LENGTH OF THE AREA 00635000 * OBTAINED INTO THE AREA. */ 00636000 STCM R0,7,MSGDFLEN(OMSGPTR) 0264 00637000 * RESPECIFY 0265 00638000 * (R0, 0265 00639000 * R1) UNRESTRICTED; 0265 00640000 * MSGDSPID=SPOOL; /* STORE THE SUBPOOL OF THE AREA 00641000 * OBTAINED INTO THE HEADER. */ 00642000 STC SPOOL,MSGDSPID(,OMSGPTR) 0266 00643000 * MSGDLEN=LENOMSG+LENGTH(MSGDMOV);/* SET THE LENGTH OF THE 0267 00644000 * OUTPUT MESSAGE EQUAL TO THE 0267 00645000 * LENGTH OF THE TEXT PLUS THE 4 00646000 * BYTE HEADER (TSO PUTLINE 0267 00647000 * MULTI-LINE FORMAT). */ 00648000 LA @10,4 0267 00649000 ALR @10,LENOMSG 0267 00650000 STH @10,MSGDLEN(,OMSGPTR) 0267 00651000 * MSGDPAD=ZERO; /* SET THE OFFSET FIELD TO ZEROS.*/ 00652000 SLR @10,@10 0268 00653000 STH @10,MSGDPAD(,OMSGPTR) 0268 00654000 * MSGDTXT(ONE:LENOMSG)=BUFFER(ONE:LENOMSG);/* MOVE IN THE 0269 00655000 * OUTPUT TEXT. */ 00656000 * 0269 00657000 LR @08,LENOMSG 0269 00658000 BCTR @08,0 0269 00659000 EX @08,@SM00907 0269 00660000 * /*************************************************************/ 00661000 * /* */ 00662000 * /* CHAIN OUTPUT MESSAGE ONTO THE INPUT MESSAGE CHAIN */ 00663000 * /* */ 00664000 * /*************************************************************/ 00665000 * 0270 00666000 * IF MSGANCHR=ZERO /* IF THE INPUT MESSAGE CHAIN IS 00667000 * EMPTY... */ 00668000 * THEN 0270 00669000 L @04,@PC00001+8 0270 00670000 C @10,MSGANCHR(,@04) 0270 00671000 BNE @RF00270 0270 00672000 * DO; /* THEN THE CURRENT MESSAGE WILL 00673000 * BE THE ONLY MESSAGE, 0271 00674000 * REGARDLESS OF LIFO OR FIFO 0271 00675000 * REQUEST. */ 00676000 * MSGANCHR=OMSGPTR+LENGTH(MSGDPRF);/* THE MESSAGE ANCHOR 0272 00677000 * POINTS TO THE FORWARD CHAIN 0272 00678000 * POINTER IN THE STRUCTURE, NOT 00679000 * TO THE START OF THE STRUCTURE 00680000 * ITSELF. */ 00681000 LA @02,8 0272 00682000 ALR @02,OMSGPTR 0272 00683000 ST @02,MSGANCHR(,@04) 0272 00684000 * MSGDNXT=ZERO; /* A ZERO FORWARD POINTER 0273 00685000 * INDICATES THIS IS THE LAST 0273 00686000 * MESSAGE ON THE CHAIN. */ 00687000 ST @10,MSGDNXT(,OMSGPTR) 0273 00688000 * MSGDBAK=OMSGPTR; /* THE BACKWARD POINTER POINTS TO 00689000 * ITSELF, AND POINTS TO THE 0274 00690000 * START OF THE STRUCTURE. */ 00691000 ST OMSGPTR,MSGDBAK(,OMSGPTR) 0274 00692000 * END; 0275 00693000 * ELSE 0276 00694000 * DO; /* ELSE THE INPUT MESSAGE CHAIN 00695000 * IS NOT EMPTY. */ 00696000 B @RC00270 0276 00697000 @RF00270 DS 0H 0277 00698000 * TOPDPTR=MSGANCHR-LENGTH(MSGDPRF);/* SET A POINTER TO THE 00699000 * START OF THE STRUCTURE OF THE 00700000 * FIRST MESSAGE ELEMENT 0277 00701000 * CURRENTLY AT THE TOP OF THE 0277 00702000 * MESSAGE CHAIN. */ 00703000 LA @10,8 0277 00704000 L @04,@PC00001+8 0277 00705000 L @15,MSGANCHR(,@04) 0277 00706000 LR TOPDPTR,@15 0277 00707000 SLR TOPDPTR,@10 0277 00708000 * IF FLAG0=ON /* DETERMINE WHETHER THE CALLER 00709000 * WANTS THE MESSAGE QUEUED LIFO 00710000 * OR FIFO ONTO THE OUTPUT 0278 00711000 * MESSAGE CHAIN. IF FLAG0 IS ON, 00712000 * THE CALLER WANTS LIFO 0278 00713000 * QUEUEING. */ 00714000 * THEN 0278 00715000 L @14,@PC00001+16 0278 00716000 TM FLAG0(@14),B'10000000' 0278 00717000 BNO @RF00278 0278 00718000 * DO; 0279 00719000 * MSGDNXT=MSGANCHR; /* CHAIN THE OUTPUT MESSAGE TO 0280 00720000 * THE CURRENT HEAD OF THE OUTPUT 00721000 * QUEUE. */ 00722000 ST @15,MSGDNXT(,OMSGPTR) 0280 00723000 * MSGANCHR=OMSGPTR+LENGTH(MSGDPRF);/* AND MAKE THE 0281 00724000 * OUTPUT MESSAGE THE CURRENT 0281 00725000 * HEAD OF THE OUTPUT QUEUE. THE 00726000 * ADDRESS POINTS TO THE FORWARD 00727000 * CHAIN FIELD IN THIS STRUCTURE, 00728000 * NOT TO THE START OF THE 0281 00729000 * STRUCTURE ITSELF. */ 00730000 ALR @10,OMSGPTR 0281 00731000 ST @10,MSGANCHR(,@04) 0281 00732000 * MSGDBAK=TOPDPTR->MSGDBAK;/* MOVE THE BACKWARD POINTER 00733000 * FROM THE OLD TOP ELEMENT TO 0282 00734000 * THE NEW TOP ELEMENT. */ 00735000 L @10,MSGDBAK(,TOPDPTR) 0282 00736000 ST @10,MSGDBAK(,OMSGPTR) 0282 00737000 * END; 0283 00738000 * ELSE 0284 00739000 * DO; /* THE CALLER WANTS FIFO 0284 00740000 * QUEUEING. */ 00741000 B @RC00278 0284 00742000 @RF00278 DS 0H 0285 00743000 * LASTDPTR=TOPDPTR->MSGDBAK;/* SET LASTDPTR TO THE 0285 00744000 * ADDRESS OF THE LAST ELEMENT 0285 00745000 * CURRENTLY ON THE MESSAGE 0285 00746000 * CHAIN. */ 00747000 L LASTDPTR,MSGDBAK(,TOPDPTR) 0285 00748000 * MSGDNXT=ZERO; /* SINCE THE OUTPUT MESSAGE WILL 00749000 * BE LAST ON THE OUTPUT MESSAGE 00750000 * CHAIN, ITS FORWARD CHAIN 0286 00751000 * POINTER WILL ALWAYS BE ZERO. */ 00752000 SLR @10,@10 0286 00753000 ST @10,MSGDNXT(,OMSGPTR) 0286 00754000 * LASTDPTR->MSGDNXT=OMSGPTR+LENGTH(MSGDPRF);/* SET THE 00755000 * FORWARD POINTER IN THE LAST 0287 00756000 * CURRENT ELEMENT ON THE MESSAGE 00757000 * CHAIN TO POINT TO THE OUTPUT 00758000 * MESSAGE BEING INSERTED ON THE 00759000 * END OF THE CHAIN. */ 00760000 LA @10,8 0287 00761000 ALR @10,OMSGPTR 0287 00762000 ST @10,MSGDNXT(,LASTDPTR) 0287 00763000 * MSGDBAK=LASTDPTR; /* SET THE BACKWARD POINTER IN 0288 00764000 * THE OUTPUT MESSAGE BEING 0288 00765000 * INSERTED ON THE END OF THE 0288 00766000 * CHAIN TO POINT TO THE OLD LAST 00767000 * ELEMENT ON THE CHAIN. */ 00768000 ST LASTDPTR,MSGDBAK(,OMSGPTR) 0288 00769000 * END; 0289 00770000 * TOPDPTR->MSGDBAK=OMSGPTR;/* SET THE BACKWARD POINTER OF 00771000 * THE OLD TOP MESSAGE ELEMENT TO 00772000 * POINT TO THE NEW OUTPUT 0290 00773000 * MESSAGE. THIS IS DONE 0290 00774000 * REGARDLESS OF WHETHER THE NEW 00775000 * OUTPUT MESSAGE WAS INSERTED AT 00776000 * THE TOP OR THE BOTTOM OF THE 00777000 * MESSAGE CHAIN. */ 00778000 @RC00278 ST OMSGPTR,MSGDBAK(,TOPDPTR) 0290 00779000 * END; 0291 00780000 * END; 0292 00781000 * END CHAINMSG; 0293 00782000 @EL00004 DS 0H 0293 00783000 @EF00004 DS 0H 0293 00784000 @ER00004 LM @14,@04,12(@13) 0293 00785000 LM @06,@12,44(@13) 0293 00786000 BR @14 0293 00787000 * 0294 00788000 * /*****************************************************************/ 00789000 * /* */ 00790000 * /* ROUTE MESSAGE CHAIN AS REQUESTED, THEN FREE THE MESSAGE CHAIN */ 00791000 * /* IF REQUESTED. */ 00792000 * /* */ 00793000 * /*****************************************************************/ 00794000 * 0294 00795000 *BLSDROUT: 0294 00796000 * PROCEDURE; 0294 00797000 BLSDROUT STM @14,@04,@SA00005 0294 00798000 STM @06,@12,@SA00005+28 0294 00799000 * TEMPTR=MSGANCHR; /* GET THE ADDRESS OF THE FIRST 00800000 * ELEMENT ON THE MESSAGE CHAIN. */ 00801000 L @10,@PC00001+8 0295 00802000 L TEMPTR,MSGANCHR(,@10) 0295 00803000 * IF TEMPTR^=ZERO /* IF THERE ARE ANY MESSAGES ON 00804000 * THE CHAIN, ... */ 00805000 * THEN 0296 00806000 LTR TEMPTR,TEMPTR 0296 00807000 BZ @RF00296 0296 00808000 * DO; 0297 00809000 * IF FLAG2=ON&FLAG3=ON /* IF BOTH ROUTING FLAGS ARE ON, 00810000 * ... */ 00811000 * THEN 0298 00812000 L @10,@PC00001+16 0298 00813000 TM FLAG2(@10),B'00110000' 0298 00814000 BNO @RF00298 0298 00815000 * DO; 0299 00816000 * CALL BLSUPUTN(ZZ2,MSGWNXT);/* ...THEN ROUTE THROUGH 0300 00817000 * BLSUPUTN FOR EITHER PRINTER OR 00818000 * TERMINAL OUTPUT. */ 00819000 ST ZZ2PTR,@AL00001 0300 00820000 ST TEMPTR,@AL00001+4 0300 00821000 L @15,ZZ2PUTNP(,ZZ2PTR) 0300 00822000 LA @01,@AL00001 0300 00823000 BALR @14,@15 0300 00824000 * RESPECIFY 0301 00825000 * (R15) RESTRICTED; 0301 00826000 * RCODE=R15; /* SAVE RETURN CODE FROM 0302 00827000 * BLSUPUTN. */ 00828000 LR RCODE,R15 0302 00829000 * RESPECIFY 0303 00830000 * (R15) UNRESTRICTED; 0303 00831000 * END; 0304 00832000 * IF FLAG2=ON&FLAG3=OFF /* IF ONLY FLAG2 IS ON, ... */ 00833000 * THEN 0305 00834000 @RF00298 L @10,@PC00001+16 0305 00835000 TM FLAG2(@10),B'00100000' 0305 00836000 BNO @RF00305 0305 00837000 TM FLAG3(@10),B'00010000' 0305 00838000 BNZ @RF00305 0305 00839000 * DO; 0306 00840000 * CALL BLSUPRTN(ZZ2,MSGWNXT);/* ...THEN ROUTE THROUGH 0307 00841000 * BLSUPRTN FOR PRINTER OUTPUT 0307 00842000 * ONLY. */ 00843000 ST ZZ2PTR,@AL00001 0307 00844000 ST TEMPTR,@AL00001+4 0307 00845000 L @10,ZZ2BVTP(,ZZ2PTR) 0307 00846000 L @15,BVTPRTNP(,@10) 0307 00847000 LA @01,@AL00001 0307 00848000 BALR @14,@15 0307 00849000 * RESPECIFY 0308 00850000 * (R15) RESTRICTED; 0308 00851000 * RCODE=R15; /* SAVE RETURN CODE FROM 0309 00852000 * BLSUPRTN. */ 00853000 LR RCODE,R15 0309 00854000 * RESPECIFY 0310 00855000 * (R15) UNRESTRICTED; 0310 00856000 * END; 0311 00857000 * IF FLAG2=OFF&FLAG3=ON /* IF ONLY FLAG3 IS ON, ... */ 00858000 * THEN 0312 00859000 @RF00305 L @10,@PC00001+16 0312 00860000 TM FLAG3(@10),B'00010000' 0312 00861000 BNO @RF00312 0312 00862000 TM FLAG2(@10),B'00100000' 0312 00863000 BNZ @RF00312 0312 00864000 * DO; 0313 00865000 * CALL BLSUTRMN(ZZ2,MSGWNXT);/* ...THEN ROUTE THROUGH 0314 00866000 * BLSUTRMN FOR TERMINAL OUTPUT 00867000 * ONLY. */ 00868000 ST ZZ2PTR,@AL00001 0314 00869000 ST TEMPTR,@AL00001+4 0314 00870000 L @15,ZZ2TRMNP(,ZZ2PTR) 0314 00871000 LA @01,@AL00001 0314 00872000 BALR @14,@15 0314 00873000 * RESPECIFY 0315 00874000 * (R15) RESTRICTED; 0315 00875000 * RCODE=R15; /* SAVE RETURN CODE FROM 0316 00876000 * BLSUTRMN. */ 00877000 LR RCODE,R15 0316 00878000 * RESPECIFY 0317 00879000 * (R15) UNRESTRICTED; 0317 00880000 * END; 0318 00881000 * IF RCODE=FOUR /* CHANGE A RETURN CODE OF 4 TO A 00882000 * RETURN CODE OF ZERO. */ 00883000 * THEN 0319 00884000 @RF00312 C RCODE,@CF00049 0319 00885000 BNE @RF00319 0319 00886000 * RCODE=ZERO; /* ZERO IMPLIES THAT THE MESSAGE 00887000 * WAS TRUNCATED WHEN BEING PUT 00888000 * OUT TO THE PRINTER. */ 00889000 SLR RCODE,RCODE 0320 00890000 * IF MSGNO=MONE /* IF EITHER "BYPASS NEW MESSAGE 00891000 * CONSTRUCTION" WAS REQUESTED, 00892000 * ... */ 00893000 * |FLAG2=ON|FLAG3=ON /* ...OR MESSAGE ROUTING WAS 0321 00894000 * REQUESTED (INDEPENDENT OF THE 00895000 * RETURN CODE RECEIVED FROM THE 00896000 * ROUTING... */ 00897000 * THEN 0321 00898000 @RF00319 L @10,@PC00001+4 0321 00899000 CLC MSGNO(4,@10),@CF00168 0321 00900000 BE @RT00321 0321 00901000 L @10,@PC00001+16 0321 00902000 TM FLAG2(@10),B'00110000' 0321 00903000 BZ @RF00321 0321 00904000 @RT00321 DS 0H 0322 00905000 * DO; /* ...THEN FREE ALL THE MESSAGES 00906000 * ON THE MESSAGE CHAIN. */ 00907000 * DO UNTIL TEMPTR=ZERO; /* TEMPTR IS ALREADY SET TO THE 00908000 * FIRST ELEMENT ON THE MESSAGE 00909000 * CHAIN, WHICH EXISTS. */ 00910000 @DL00323 DS 0H 0324 00911000 * OMSGPTR=TEMPTR-LENGTH(MSGDPRF);/* SET OMSGPTR TO POINT 00912000 * AT THE GETMAIN/FREEMAIN PREFIX 00913000 * AREA OF THE MESSAGE ELEMENT. */ 00914000 LR OMSGPTR,TEMPTR 0324 00915000 SL OMSGPTR,@CF00060 0324 00916000 * TEMPTR=MSGWNXT; /* SET TEMPTR TO THE NEXT ELEMENT 00917000 * ON THE CHAIN. */ 00918000 L TEMPTR,MSGWNXT(,TEMPTR) 0325 00919000 * DO; /* FREEMAIN(R) LV(MSGDFLEN)SP(MSG 00920000 * DSPID)A(MSGDENT) */ 00921000 * RESPECIFY 0327 00922000 * (GPR01F, 0327 00923000 * GPR00F) RESTRICTED; 0327 00924000 * GPR00F=MSGDFLEN; /* LENGTH REQUESTED */ 00925000 L GPR00F,MSGDFLEN-1(,OMSGPTR) 0328 00926000 ICM GPR00F,8,@CB00909 0328 00927000 * GPR01F=MSGDSPID; /* SP IN REG 1 */ 00928000 SLR GPR01F,GPR01F 0329 00929000 IC GPR01F,MSGDSPID(,OMSGPTR) 0329 00930000 * GEN(SLL GPR01F,24) 0330 00931000 * NODEFS NOREFS NOSETS NOEXIT NOFLOWS SEQFLOW; 0330 00932000 SLL GPR01F,24 00933000 * GPR00F=GPR00F|GPR01F;/* SP IN HI BYTE */ 00934000 OR GPR00F,GPR01F 0331 00935000 * GPR01F=ADDR(MSGDENT);/* SET REGISTER ONE */ 00936000 LR GPR01F,OMSGPTR 0332 00937000 * SVC(10); /* R-FORM OF GETMAIN */ 00938000 SVC 10 0333 00939000 * RESPECIFY 0334 00940000 * (GPR01F, 0334 00941000 * GPR00F) UNRESTRICTED; 0334 00942000 * END; /* FREEMAIN(R) LV(MSGDFLEN)SP(MSG 00943000 * DSPID)A(MSGDENT) */ 00944000 * END; 0336 00945000 @DE00323 LTR TEMPTR,TEMPTR 0336 00946000 BNZ @DL00323 0336 00947000 * MSGANCHR=TEMPTR; /* SET MSGANCHR TO ZERO. */ 00948000 L @10,@PC00001+8 0337 00949000 ST TEMPTR,MSGANCHR(,@10) 0337 00950000 * END; 0338 00951000 * END; 0339 00952000 * END BLSDROUT; 0340 00953000 @EL00005 DS 0H 0340 00954000 @EF00005 DS 0H 0340 00955000 @ER00005 LM @14,@04,@SA00005 0340 00956000 LM @06,@12,@SA00005+28 0340 00957000 BR @14 0340 00958000 @PB00005 DS 0H 0341 00959000 * 0341 00960000 */*BLSUPEND--MVS IPCS MODULE */ 00961000 * 0341 00962000 * DECLARE /* GENERAL PURPOSE REGISTERS */ 00963000 * GPR00F FIXED(31) REG(0), 0341 00964000 * GPR01F FIXED(31) REG(1), 0341 00965000 * GPR15F FIXED(31) REG(15); 0341 00966000 * DECLARE /* COMMON VARIABLES */ 00967000 * I256C CHAR(256) BASED, 0342 00968000 * I031F FIXED(31) BASED, 0342 00969000 * I031P PTR(31) BASED, 0342 00970000 * I015F FIXED(15) BASED, 0342 00971000 * I015P PTR(15) BASED, 0342 00972000 * I008P PTR(8) BASED, 0342 00973000 * I001C CHAR(1) BASED; 0342 00974000 * GENERATE NODEFS NOREFS DATA; 0343 00975000 * END /* BLRPEND END OF MODULE 0344 00976000 * BLSDMSG0. */ 00977000 * 0344 00978000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 00979000 */*%INCLUDE SYSLIB (BLSDMSGD) */ 00980000 */*%INCLUDE SYSLIB (BLSUZZZ ) */ 00981000 */*%INCLUDE SYSLIB (BLRFULL ) */ 00982000 */*%INCLUDE SYSLIB (IKJCPPL ) */ 00983000 */*%INCLUDE SYSLIB (IKJPSCB ) */ 00984000 */*%INCLUDE SYSLIB (IKJECT ) */ 00985000 */*%INCLUDE SYSLIB (IKJUPT ) */ 00986000 */*%INCLUDE SYSLIB (BLSUSERV) */ 00987000 */*%INCLUDE SYSLIB (BLRSERV ) */ 00988000 */*%INCLUDE SYSLIB (BLRSERVD) */ 00989000 */*%INCLUDE SYSLIB (BLSDSERV) */ 00990000 * 0344 00991000 * ; 0344 00992000 @EL00001 L @13,4(,@13) 0344 00993000 @EF00001 L @00,@SIZDATD 0344 00994000 LR @01,@11 0344 00995000 BLSUFRES R,LV=(0),A=(1) 00996000 @ER00001 LM @14,@12,12(@13) 0344 00997000 BR @14 0344 00998000 @DATA DS 0H 00999000 @SM00903 MVC INTBUF(0,INTPTR),MSGTXT(MSGPTR) 01000000 @SM00905 MVC INTBUF(0,INTPTR),INSTXT(@01) 01001000 @SM00907 MVC MSGDTXT(0,OMSGPTR),BUFFER 01002000 @DATD DSECT 01003000 DS 0F 01004000 @SA00001 DS 18F 01005000 @PC00001 DS 6F 01006000 @SA00005 DS 14F 01007000 @AL00001 DS 2A 01008000 BLSDMSG0 CSECT 01009000 DS 0F 01010000 @CF00052 DC F'1' 01011000 @CF00049 DC F'4' 01012000 @CF00060 DC F'8' 01013000 @CF00038 DC F'12' 01014000 @CF00174 DC F'100' 01015000 @CF00172 DC F'1000' 01016000 @CF00168 DC F'-1' 01017000 @CF00072 DC XL4'80000000' 01018000 @DATD DSECT 01019000 DS 0D 01020000 BUFFER DS CL250 01021000 BLSDMSG0 CSECT 01022000 DS 0F 01023000 @SIZDATD DC AL1(0) 01024000 DC AL3(@ENDDATD-@DATD) 01025000 DS 0D 01026000 @CB00909 DC X'00' 01027000 @DATD DSECT 01028000 SPACE 2 01029000 *********************************************************************** 01030000 * THE FOLLOWING AREA, BLRPATCH, IS RESERVED FOR PATCH APPLICATION * 01031000 * TO OBTAIN PATCH ROOM IN THE @DATD AUTOMATIC STORAGE AREA, MODIFY * 01032000 * CONSTANT @SIZDATD TO REFLECT THE DESIRED @DATD SIZE * 01033000 *********************************************************************** 01034000 SPACE 01035000 BLSDMSG0 CSECT 01036000 ORG 01037000 DS 0D 01038000 BLRPATCH DC CL8'ZAPAREA',(((*-BLSDMSG0+19)/20+7)/8)CL8'BLSDMSG0' 01039000 @DATD DSECT 01040000 SPACE 2 01041000 *********************************************************************** 01042000 * ALIGN END OF DATA ON A DOUBLEWORD BOUNDARY * 01043000 *********************************************************************** 01044000 SPACE 01045000 DS 0D 01046000 @DATD DSECT 01047000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 01048000 @ENDDATD EQU * 01049000 BLSDMSG0 CSECT 01050000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 01051000 @01 EQU 01 01052000 @02 EQU 02 01053000 @03 EQU 03 01054000 @04 EQU 04 01055000 @05 EQU 05 01056000 @06 EQU 06 01057000 @07 EQU 07 01058000 @08 EQU 08 01059000 @09 EQU 09 01060000 @10 EQU 10 01061000 @11 EQU 11 01062000 @12 EQU 12 01063000 @13 EQU 13 01064000 @14 EQU 14 01065000 @15 EQU 15 01066000 OMSGPTR EQU @03 01067000 INSPTR EQU @06 01068000 LENOMSG EQU @09 01069000 NINSREM EQU @07 01070000 MINTPTR EQU @08 01071000 INTPTR EQU @03 01072000 MSGPTR EQU @04 01073000 SSCTPTR EQU @08 01074000 SCTPTR EQU @06 01075000 CCRITPTR EQU @02 01076000 RETC EQU @02 01077000 RCODE EQU @05 01078000 SPOOL EQU @06 01079000 INSERTLN EQU @02 01080000 LASTDPTR EQU @04 01081000 TOPDPTR EQU @02 01082000 TEMPTR EQU @06 01083000 TEMP1 EQU @02 01084000 TEMP EQU @03 01085000 ZZ2PTR EQU @07 01086000 R15 EQU @15 01087000 R0 EQU @00 01088000 R1 EQU @01 01089000 R2 EQU @02 01090000 R3 EQU @03 01091000 R4 EQU @04 01092000 R5 EQU @05 01093000 R9 EQU @09 01094000 RB EQU @11 01095000 RD EQU @13 01096000 RE EQU @14 01097000 RF EQU @15 01098000 GPR01F EQU @01 01099000 GPR15F EQU @15 01100000 GPR00F EQU @00 01101000 RA EQU @10 01102000 RC EQU @12 01103000 R6 EQU @06 01104000 R7 EQU @07 01105000 R8 EQU @08 01106000 CCRIT EQU 0 01107000 NCCRIT EQU CCRIT 01108000 SCTP EQU CCRIT+4 01109000 SCT EQU 0 01110000 NSCT EQU SCT 01111000 SSCTP EQU SCT+4 01112000 SSCT EQU 0 01113000 NSSCT EQU SSCT 01114000 MSGP EQU SSCT+4 01115000 MESSAGE EQU 0 01116000 NMSGINS EQU MESSAGE 01117000 MSGRSVD EQU MESSAGE+2 01118000 MSG EQU 0 01119000 LMSGTXT EQU MSG 01120000 MSGTXT EQU MSG+1 01121000 INTBUF EQU 0 01122000 INSERT EQU 0 01123000 INSCHAIN EQU INSERT 01124000 INSTXPTR EQU INSERT+4 01125000 INSTXTLN EQU INSERT+8 01126000 INSTEXT EQU 0 01127000 INSTXT EQU INSTEXT 01128000 MSGDENT EQU 0 01129000 MSGDPRF EQU MSGDENT 01130000 MSGDSPID EQU MSGDPRF 01131000 MSGDFLEN EQU MSGDPRF+1 01132000 MSGDBAK EQU MSGDPRF+4 01133000 MSGDWRT EQU MSGDENT+8 01134000 MSGDNXT EQU MSGDWRT 01135000 MSGDMOV EQU MSGDWRT+4 01136000 MSGDLEN EQU MSGDMOV 01137000 MSGDPAD EQU MSGDMOV+2 01138000 MSGDTXT EQU MSGDMOV+4 01139000 MSGWENT EQU 0 01140000 MSGWNXT EQU MSGWENT 01141000 MSGWMOV EQU MSGWENT+4 01142000 ZZ1 EQU 0 01143000 ZZ1ATTN EQU ZZ1+360 01144000 ZZ1EVE EQU ZZ1ATTN+4 01145000 ZZ1EVEP EQU ZZ1EVE 01146000 ZZ1F EQU ZZ1+368 01147000 ZZ1N EQU ZZ1+1116 01148000 ZZ2 EQU 0 01149000 ZZ2AMD EQU ZZ2 01150000 @NM00014 EQU ZZ2AMD+7 01151000 ZZ2PRT EQU ZZ2+138 01152000 ZZ2PRTT EQU ZZ2PRT+4 01153000 ZZ2PRTT1 EQU ZZ2PRTT+1 01154000 ZZ2A EQU ZZ2+272 01155000 ZZ2AF EQU ZZ2A+16 01156000 ZZ2APID EQU ZZ2A+64 01157000 ZZ2AD EQU ZZ2A+74 01158000 ZZ2ADD EQU ZZ2AD 01159000 ZZ2ADDT EQU ZZ2ADD+2 01160000 ZZ2ADM EQU ZZ2AD+46 01161000 ZZ2ADMT EQU ZZ2ADM+2 01162000 ZZ2ADP EQU ZZ2AD+56 01163000 ZZ2ADPT EQU ZZ2ADP+2 01164000 ZZ2AQAS EQU ZZ2A+144 01165000 ZZ2AQD EQU ZZ2A+160 01166000 ZZ2AQDT EQU ZZ2AQD+10 01167000 ZZ2AQDF EQU ZZ2AQD+52 01168000 ZZ2STG EQU ZZ2+960 01169000 ZZ2ALLOP EQU ZZ2+992 01170000 ZZ2FREEP EQU ZZ2+996 01171000 ZZ2FF19P EQU ZZ2+1000 01172000 ZZ2FRE1P EQU ZZ2+1004 01173000 ZZ2FF18P EQU ZZ2+1008 01174000 ZZ2DYNAP EQU ZZ2+1012 01175000 ZZ2ZZ2CP EQU ZZ2+1016 01176000 ZZ2ZZ2DP EQU ZZ2+1020 01177000 ZZ2STAIP EQU ZZ2+1024 01178000 ZZ2FF02P EQU ZZ2+1028 01179000 ZZ2GETLP EQU ZZ2+1032 01180000 ZZ2PARSP EQU ZZ2+1036 01181000 ZZ2PTGTP EQU ZZ2+1040 01182000 ZZ2PUTLP EQU ZZ2+1044 01183000 ZZ2SCANP EQU ZZ2+1048 01184000 ZZ2STCKP EQU ZZ2+1052 01185000 ZZ2ALOCP EQU ZZ2+1056 01186000 ZZ2MSGSP EQU ZZ2+1060 01187000 ZZ2TRMOP EQU ZZ2+1064 01188000 ZZ2TRMVP EQU ZZ2+1068 01189000 ZZ2PUTNP EQU ZZ2+1084 01190000 ZZ2TRMNP EQU ZZ2+1088 01191000 ZZ2ENQ0P EQU ZZ2+1092 01192000 ZZ2ADSDP EQU ZZ2+1096 01193000 ZZ2APDRP EQU ZZ2+1100 01194000 ZZ2FDSDP EQU ZZ2+1104 01195000 ZZ2FPDRP EQU ZZ2+1108 01196000 ZZ2ZZ1P EQU ZZ2+1264 01197000 ZZ2DVTP EQU ZZ2+1276 01198000 ZZ2BVTP EQU ZZ2+1280 01199000 ZZ2CPPL EQU ZZ2+1292 01200000 ZZ2CPPLC EQU ZZ2CPPL 01201000 ZZ2ITR EQU ZZ2+2840 01202000 ZZ2ITRE EQU ZZ2ITR+16 01203000 ZZ2ITSE EQU ZZ2+2864 01204000 ZZ2ES EQU ZZ2+2872 01205000 ZZ2AMDX EQU ZZ2+7160 01206000 ZZ2AXO EQU ZZ2+7934 01207000 ZZ2AXOT EQU ZZ2AXO+2 01208000 CMD EQU 0 01209000 CMDT EQU CMD+4 01210000 PSCB EQU 0 01211000 PSCBATR1 EQU PSCB+16 01212000 ECT EQU 0 01213000 ECTSWS EQU ECT+28 01214000 ECTSWS2 EQU ECT+40 01215000 ECTSWS21 EQU ECTSWS2 01216000 UPT EQU 0 01217000 UPTSWS EQU UPT+12 01218000 SA EQU 0 01219000 SA1 EQU SA 01220000 SAR EQU SA+12 01221000 BLSUPRTN EQU 0 01222000 BLSUPUTN EQU 0 01223000 BLSUTRMN EQU 0 01224000 BVT EQU 0 01225000 BVTPUTLP EQU BVT+4 01226000 BVTPUTOP EQU BVT+12 01227000 BVTPUTTP EQU BVT+16 01228000 BVTPUTVP EQU BVT+20 01229000 BVTPUTAP EQU BVT+24 01230000 BVTPRTTP EQU BVT+28 01231000 BVTPRTAP EQU BVT+32 01232000 BVTPUTDP EQU BVT+36 01233000 BVTMONP EQU BVT+40 01234000 BVTMON2P EQU BVT+44 01235000 BVTVSARP EQU BVT+48 01236000 BVTVSENP EQU BVT+64 01237000 BVTVSERP EQU BVT+68 01238000 BVTVSGEP EQU BVT+72 01239000 BVTVSGUP EQU BVT+76 01240000 BVTVSPOP EQU BVT+80 01241000 BVTVSPUP EQU BVT+84 01242000 BVTMPKNP EQU BVT+104 01243000 BVTMONLP EQU BVT+108 01244000 BVTPUTCP EQU BVT+132 01245000 BVTMPK1P EQU BVT+136 01246000 BVTZZ2RP EQU BVT+140 01247000 BVTPGMRP EQU BVT+144 01248000 BVTMONAP EQU BVT+148 01249000 BVTBLDDP EQU BVT+152 01250000 BVTBLDLP EQU BVT+156 01251000 BVTPGMCP EQU BVT+160 01252000 BVTPGMDP EQU BVT+164 01253000 BVTPGMLP EQU BVT+168 01254000 BVTMONCP EQU BVT+180 01255000 BVTMONDP EQU BVT+184 01256000 BVTMONTP EQU BVT+188 01257000 BVTPARIP EQU BVT+192 01258000 BVTPARUP EQU BVT+196 01259000 BVTPRTNP EQU BVT+204 01260000 BVTVSCRP EQU BVT+208 01261000 BVTVSMRP EQU BVT+212 01262000 BVTMONXP EQU BVT+216 01263000 BVTTRMAP EQU BVT+228 01264000 DVT EQU 0 01265000 DVTDEQPP EQU DVT+8 01266000 DVTENQPP EQU DVT+12 01267000 DVTAUTHP EQU DVT+20 01268000 DVTLPCLP EQU DVT+24 01269000 DVTBP00P EQU DVT+28 01270000 DVTCN00P EQU DVT+32 01271000 DVTDF00P EQU DVT+36 01272000 DVTDS00P EQU DVT+44 01273000 DVTFL00P EQU DVT+48 01274000 DVTFP00P EQU DVT+52 01275000 DVTGD00P EQU DVT+56 01276000 DVTGG00P EQU DVT+60 01277000 DVTGP00P EQU DVT+64 01278000 DVTND00P EQU DVT+68 01279000 DVTND01P EQU DVT+72 01280000 DVTOD00P EQU DVT+76 01281000 DVTPS00P EQU DVT+80 01282000 DVTSD00P EQU DVT+84 01283000 DVTSL00P EQU DVT+88 01284000 DVTTL00P EQU DVT+92 01285000 DVTUD00P EQU DVT+96 01286000 DVTUP00P EQU DVT+100 01287000 DVTLP00P EQU DVT+104 01288000 DVTLALLP EQU DVT+108 01289000 DVTLPFMP EQU DVT+112 01290000 DVTCLOSP EQU DVT+116 01291000 DVTOPENP EQU DVT+120 01292000 DVTPERAP EQU DVT+124 01293000 DVTDALLP EQU DVT+128 01294000 BLSCALOC EQU 0 01295000 BLSDADSD EQU 0 01296000 BLSDAPDR EQU 0 01297000 BLSDDEQP EQU 0 01298000 BLSDENQP EQU 0 01299000 BLSDENQ0 EQU 0 01300000 BLSDFDSD EQU 0 01301000 BLSDFPDR EQU 0 01302000 BLSDMSGS EQU 0 01303000 BLSEAUTH EQU 0 01304000 BLSELPCL EQU 0 01305000 BLSELPFM EQU 0 01306000 BLSFBP00 EQU 0 01307000 BLSFCLOS EQU 0 01308000 BLSFCN00 EQU 0 01309000 BLSFDALL EQU 0 01310000 BLSFDF00 EQU 0 01311000 BLSFDS00 EQU 0 01312000 BLSFFL00 EQU 0 01313000 BLSFFP00 EQU 0 01314000 BLSFGD00 EQU 0 01315000 BLSFGG00 EQU 0 01316000 BLSFGP00 EQU 0 01317000 BLSFLALL EQU 0 01318000 BLSFLP00 EQU 0 01319000 BLSFND00 EQU 0 01320000 BLSFND01 EQU 0 01321000 BLSFOD00 EQU 0 01322000 BLSFOPEN EQU 0 01323000 BLSFPERA EQU 0 01324000 BLSFPS00 EQU 0 01325000 BLSFSD00 EQU 0 01326000 BLSFSL00 EQU 0 01327000 BLSFTL00 EQU 0 01328000 BLSFUD00 EQU 0 01329000 BLSFUP00 EQU 0 01330000 BLSUALLO EQU 0 01331000 BLSUBLDD EQU 0 01332000 BLSUBLDL EQU 0 01333000 BLSUDYNA EQU 0 01334000 BLSUFREE EQU 0 01335000 BLSUFRE1 EQU 0 01336000 BLSUMON EQU 0 01337000 BLSUMONA EQU 0 01338000 BLSUMONC EQU 0 01339000 BLSUMOND EQU 0 01340000 BLSUMONL EQU 0 01341000 BLSUMONT EQU 0 01342000 BLSUMONX EQU 0 01343000 BLSUMON2 EQU 0 01344000 BLSUMPKN EQU 0 01345000 BLSUMPK1 EQU 0 01346000 BLSUPARI EQU 0 01347000 BLSUPARU EQU 0 01348000 BLSUPGMC EQU 0 01349000 BLSUPGMD EQU 0 01350000 BLSUPGML EQU 0 01351000 BLSUPGMR EQU 0 01352000 BLSUPRTA EQU 0 01353000 BLSUPRTT EQU 0 01354000 BLSUPUTA EQU 0 01355000 BLSUPUTC EQU 0 01356000 BLSUPUTD EQU 0 01357000 BLSUPUTL EQU 0 01358000 BLSUPUTO EQU 0 01359000 BLSUPUTT EQU 0 01360000 BLSUPUTV EQU 0 01361000 BLSUSTAI EQU 0 01362000 BLSUTRMA EQU 0 01363000 BLSUTRMO EQU 0 01364000 BLSUTRMV EQU 0 01365000 BLSUVSAR EQU 0 01366000 BLSUVSCR EQU 0 01367000 BLSUVSEN EQU 0 01368000 BLSUVSER EQU 0 01369000 BLSUVSGE EQU 0 01370000 BLSUVSGU EQU 0 01371000 BLSUVSMR EQU 0 01372000 BLSUVSPO EQU 0 01373000 BLSUVSPU EQU 0 01374000 BLSUZZ2C EQU 0 01375000 BLSUZZ2D EQU 0 01376000 BLSUZZ2R EQU 0 01377000 IKJEFF02 EQU 0 01378000 IKJEFF18 EQU 0 01379000 IKJEFF19 EQU 0 01380000 IKJGETL EQU 0 01381000 IKJPARS EQU 0 01382000 IKJPTGT EQU 0 01383000 IKJPUTL EQU 0 01384000 IKJSCAN EQU 0 01385000 IKJSTCK EQU 0 01386000 I001C EQU 0 01387000 I008P EQU 0 01388000 I015F EQU 0 01389000 I015P EQU 0 01390000 I031F EQU 0 01391000 I031P EQU 0 01392000 I256C EQU 0 01393000 ATV EQU 0 01394000 MSGNO EQU 0 01395000 MSGANCHR EQU 0 01396000 MSGCSECT EQU 0 01397000 FLAG EQU 0 01398000 FLAG0 EQU FLAG 01399000 FLAG1 EQU FLAG 01400000 FLAG2 EQU FLAG 01401000 FLAG3 EQU FLAG 01402000 INSRTPTR EQU 0 01403000 CPPL EQU ZZ2CPPL 01404000 CPPLUPT EQU CPPL+4 01405000 CPPLPSCB EQU CPPL+8 01406000 CPPLECT EQU CPPL+12 01407000 * START UNREFERENCED COMPONENTS 01408000 CPPLCBUF EQU CPPL 01409000 FLAG7 EQU FLAG 01410000 FLAG6 EQU FLAG 01411000 FLAG5 EQU FLAG 01412000 FLAG4 EQU FLAG 01413000 DVT99999 EQU DVT+256 01414000 DVT0064P EQU DVT+252 01415000 DVT0063P EQU DVT+248 01416000 DVT0062P EQU DVT+244 01417000 DVT0061P EQU DVT+240 01418000 DVT0060P EQU DVT+236 01419000 DVT0059P EQU DVT+232 01420000 DVT0058P EQU DVT+228 01421000 DVT0057P EQU DVT+224 01422000 DVT0056P EQU DVT+220 01423000 DVT0055P EQU DVT+216 01424000 DVT0054P EQU DVT+212 01425000 DVT0053P EQU DVT+208 01426000 DVT0052P EQU DVT+204 01427000 DVT0051P EQU DVT+200 01428000 DVT0050P EQU DVT+196 01429000 DVT0049P EQU DVT+192 01430000 DVT0048P EQU DVT+188 01431000 DVT0047P EQU DVT+184 01432000 DVT0046P EQU DVT+180 01433000 DVT0045P EQU DVT+176 01434000 DVT0044P EQU DVT+172 01435000 DVT0043P EQU DVT+168 01436000 DVT0042P EQU DVT+164 01437000 DVT0041P EQU DVT+160 01438000 DVT0040P EQU DVT+156 01439000 DVT0039P EQU DVT+152 01440000 DVT0038P EQU DVT+148 01441000 DVT0037P EQU DVT+144 01442000 DVT0036P EQU DVT+140 01443000 DVT0035P EQU DVT+136 01444000 DVT0034P EQU DVT+132 01445000 DVT0011P EQU DVT+40 01446000 DVT0005P EQU DVT+16 01447000 DVT0002P EQU DVT+4 01448000 DVT0001P EQU DVT 01449000 BVT99999 EQU BVT+256 01450000 BVT0064P EQU BVT+252 01451000 BVT0063P EQU BVT+248 01452000 BVT0062P EQU BVT+244 01453000 BVT0061P EQU BVT+240 01454000 BVT0060P EQU BVT+236 01455000 BVT0059P EQU BVT+232 01456000 BVT0057P EQU BVT+224 01457000 BVT0056P EQU BVT+220 01458000 BVTSTBLP EQU BVT+200 01459000 BVT0045P EQU BVT+176 01460000 BVT0044P EQU BVT+172 01461000 BVT0033P EQU BVT+128 01462000 BVT0032P EQU BVT+124 01463000 BVT0031P EQU BVT+120 01464000 BVT0030P EQU BVT+116 01465000 BVT0029P EQU BVT+112 01466000 BVT0026P EQU BVT+100 01467000 BVT0025P EQU BVT+96 01468000 BVT0024P EQU BVT+92 01469000 BVT0023P EQU BVT+88 01470000 BVT0016P EQU BVT+60 01471000 BVT0015P EQU BVT+56 01472000 BVT0014P EQU BVT+52 01473000 BVT0003P EQU BVT+8 01474000 BVT0001P EQU BVT 01475000 SA99 EQU SA+72 01476000 SARC EQU SAR+56 01477000 SARB EQU SAR+52 01478000 SARA EQU SAR+48 01479000 SAR9 EQU SAR+44 01480000 SAR8 EQU SAR+40 01481000 SAR7 EQU SAR+36 01482000 SAR6 EQU SAR+32 01483000 SAR5 EQU SAR+28 01484000 SAR4 EQU SAR+24 01485000 SAR3 EQU SAR+20 01486000 SAR2 EQU SAR+16 01487000 SAR1 EQU SAR+12 01488000 SAR0 EQU SAR+8 01489000 SARF EQU SAR+4 01490000 SARE EQU SAR 01491000 SAFWD EQU SA+8 01492000 SABAK EQU SA+4 01493000 SA1L EQU SA1+1 01494000 SA1P EQU SA1 01495000 UPTPREFL EQU UPT+23 01496000 UPTPREFX EQU UPT+16 01497000 @NM00069 EQU UPT+15 01498000 UPTLDEL EQU UPT+14 01499000 UPTCDEL EQU UPT+13 01500000 UPTWTP EQU UPTSWS 01501000 UPTMODE EQU UPTSWS 01502000 UPTALD EQU UPTSWS 01503000 UPTPAUS EQU UPTSWS 01504000 UPTNCOM EQU UPTSWS 01505000 UPTMID EQU UPTSWS 01506000 UPTNPRM EQU UPTSWS 01507000 UPTRCVR EQU UPTSWS 01508000 UPTUSER EQU UPT+2 01509000 @NM00068 EQU UPT 01510000 @NM00067 EQU ECT+52 01511000 @NM00066 EQU ECT+48 01512000 @NM00065 EQU ECT+44 01513000 @NM00064 EQU ECTSWS2+1 01514000 @NM00063 EQU ECTSWS21 01515000 ECTTABND EQU ECTSWS21 01516000 ECTDEFCS EQU ECTSWS21 01517000 ECTBKPB EQU ECT+36 01518000 ECTUSER EQU ECT+32 01519000 ECTDDNUM EQU ECT+29 01520000 ECTATTN EQU ECTSWS 01521000 ECTBKGRD EQU ECTSWS 01522000 ECTNNOT EQU ECTSWS 01523000 ECTNMAL EQU ECTSWS 01524000 ECTLOGF EQU ECTSWS 01525000 ECTATRM EQU ECTSWS 01526000 @NM00062 EQU ECTSWS 01527000 ECTNOPD EQU ECTSWS 01528000 ECTSCMD EQU ECT+20 01529000 ECTPCMD EQU ECT+12 01530000 ECTSMSG EQU ECT+9 01531000 ECTMSGF EQU ECT+8 01532000 ECTIOWA EQU ECT+4 01533000 ECTRTCD EQU ECT+1 01534000 ECTRCDF EQU ECT 01535000 PSCBU EQU PSCB+64 01536000 PSCBRSZ EQU PSCB+60 01537000 PSCBLINE EQU PSCB+59 01538000 PSCBCHAR EQU PSCB+58 01539000 PSCBUPTL EQU PSCB+56 01540000 PSCBUPT EQU PSCB+52 01541000 PSCBRLGB EQU PSCB+48 01542000 PSCBDEST EQU PSCB+40 01543000 @NM00061 EQU PSCB+36 01544000 @NM00060 EQU PSCB+32 01545000 @NM00059 EQU PSCB+28 01546000 PSCBLTI2 EQU PSCB+24 01547000 PSCBLTIM EQU PSCB+20 01548000 PSCBATR2 EQU PSCB+18 01549000 @NM00058 EQU PSCBATR1 01550000 @NM00057 EQU PSCBATR1 01551000 @NM00056 EQU PSCBATR1 01552000 PSCBATTN EQU PSCBATR1 01553000 PSCBVMNT EQU PSCBATR1 01554000 PSCBJCL EQU PSCBATR1 01555000 PSCBACCT EQU PSCBATR1 01556000 PSCBCTRL EQU PSCBATR1 01557000 PSCBGPNM EQU PSCB+8 01558000 PSCBUSRL EQU PSCB+7 01559000 PSCBUSER EQU PSCB 01560000 CMDT1 EQU CMDT 01561000 CMDO EQU CMD+2 01562000 CMDL EQU CMD 01563000 ZZ299999 EQU ZZ2+8192 01564000 ZZ2AXOT1 EQU ZZ2AXOT 01565000 ZZ2AXOL EQU ZZ2AXO 01566000 @NM00055 EQU ZZ2+7288 01567000 @NM00054 EQU ZZ2AMDX+4 01568000 ZZ2AMDXC EQU ZZ2AMDX 01569000 ZZ2HSD EQU ZZ2+3056 01570000 @NM00053 EQU ZZ2ES 01571000 @NM00052 EQU ZZ2+2868 01572000 ZZ2ITSEC EQU ZZ2ITSE+1 01573000 @NM00051 EQU ZZ2ITSE 01574000 ZZ2ITSEP EQU ZZ2ITSE 01575000 ZZ2ITSEW EQU ZZ2ITSE 01576000 @NM00050 EQU ZZ2ITR+20 01577000 ZZ2ITREC EQU ZZ2ITRE+1 01578000 @NM00049 EQU ZZ2ITRE 01579000 ZZ2ITREP EQU ZZ2ITRE 01580000 ZZ2ITREW EQU ZZ2ITRE 01581000 @NM00048 EQU ZZ2ITR+9 01582000 ZZ2ITRRC EQU ZZ2ITR+8 01583000 ZZ2ITR2P EQU ZZ2ITR+4 01584000 ZZ2ITRPP EQU ZZ2ITR 01585000 @NM00047 EQU ZZ2+1544 01586000 ZZ2PGM EQU ZZ2+1536 01587000 @NM00046 EQU ZZ2+1526 01588000 ZZ2CW EQU ZZ2+1524 01589000 @NM00045 EQU ZZ2+1504 01590000 @NM00044 EQU ZZ2+1352 01591000 ZZ2FFSYP EQU ZZ2+1348 01592000 ZZ2SASYP EQU ZZ2+1344 01593000 ZZ2RDSYP EQU ZZ2+1340 01594000 ZZ2RASYP EQU ZZ2+1336 01595000 ZZ2PHSYP EQU ZZ2+1332 01596000 ZZ2ESSYP EQU ZZ2+1328 01597000 ZZ200SYP EQU ZZ2+1324 01598000 ZZ2SCWP EQU ZZ2+1320 01599000 ZZ2TTLP EQU ZZ2+1316 01600000 ZZ2LOADP EQU ZZ2+1312 01601000 ZZ2VRESP EQU ZZ2+1308 01602000 ZZ2CPPLE EQU ZZ2CPPL+12 01603000 ZZ2CPPLP EQU ZZ2CPPL+8 01604000 ZZ2CPPLU EQU ZZ2CPPL+4 01605000 ZZ2VRSAP EQU ZZ2+1288 01606000 ZZ2RVTP EQU ZZ2+1284 01607000 @NM00043 EQU ZZ2+1272 01608000 @NM00042 EQU ZZ2+1268 01609000 ZZ2RPLP EQU ZZ2+1260 01610000 ZZ2TCBP EQU ZZ2+1256 01611000 @NM00041 EQU ZZ2+1252 01612000 ZZ2ZZ2P EQU ZZ2+1248 01613000 @NM00040 EQU ZZ2+1112 01614000 @NM00039 EQU ZZ2+1080 01615000 ZZ2MSG0P EQU ZZ2+1076 01616000 ZZ2FT25P EQU ZZ2+1072 01617000 @NM00038 EQU ZZ2+976 01618000 ZZ2TOD EQU ZZ2+968 01619000 ZZ2STGN EQU ZZ2STG+4 01620000 ZZ2STGP EQU ZZ2STG 01621000 @NM00037 EQU ZZ2+952 01622000 ZZ2SCMDE EQU ZZ2+944 01623000 ZZ2SCMDN EQU ZZ2+936 01624000 ZZ2IDENT EQU ZZ2+928 01625000 ZZ2A9999 EQU ZZ2A+656 01626000 @NM00036 EQU ZZ2A+224 01627000 @NM00035 EQU ZZ2A+220 01628000 ZZ2AQD99 EQU ZZ2AQD+60 01629000 @NM00034 EQU ZZ2AQD+56 01630000 @NM00033 EQU ZZ2AQDF 01631000 ZZ2AQDFA EQU ZZ2AQDF 01632000 ZZ2AQDIL EQU ZZ2AQD+48 01633000 ZZ2AQDIM EQU ZZ2AQD+44 01634000 ZZ2AQDT9 EQU ZZ2AQDT+34 01635000 ZZ2AQDTE EQU ZZ2AQDT+33 01636000 ZZ2AQDTD EQU ZZ2AQDT+2 01637000 @NM00032 EQU ZZ2AQDT+1 01638000 ZZ2AQDTY EQU ZZ2AQDT 01639000 ZZ2AQDT0 EQU ZZ2AQDT 01640000 ZZ2AQDLB EQU ZZ2AQD+9 01641000 ZZ2AQDOB EQU ZZ2AQD+8 01642000 ZZ2AQDLE EQU ZZ2AQD+4 01643000 ZZ2AQDOF EQU ZZ2AQD 01644000 ZZ2AQD00 EQU ZZ2AQD 01645000 ZZ2AQAS9 EQU ZZ2AQAS+16 01646000 @NM00031 EQU ZZ2AQAS+12 01647000 ZZ2AQAS2 EQU ZZ2AQAS+8 01648000 ZZ2AQAS1 EQU ZZ2AQAS+4 01649000 @NM00030 EQU ZZ2AQAS+2 01650000 ZZ2AQAST EQU ZZ2AQAS 01651000 ZZ2AQAS0 EQU ZZ2AQAS 01652000 ZZ2AZZ6P EQU ZZ2A+140 01653000 ZZ2ADPTA EQU ZZ2ADPT 01654000 ZZ2ADPL EQU ZZ2ADP 01655000 ZZ2ADMTA EQU ZZ2ADMT 01656000 ZZ2ADML EQU ZZ2ADM 01657000 ZZ2ADDTA EQU ZZ2ADDT 01658000 ZZ2ADDL EQU ZZ2ADD 01659000 @NM00029 EQU ZZ2A+72 01660000 ZZ2APIDB EQU ZZ2APID+3 01661000 ZZ2APIDA EQU ZZ2APID 01662000 @NM00028 EQU ZZ2A+24 01663000 @NM00027 EQU ZZ2AF+5 01664000 ZZ2AFX EQU ZZ2AF+5 01665000 @NM00026 EQU ZZ2AF+3 01666000 ZZ2AFS EQU ZZ2AF+2 01667000 ZZ2AFD EQU ZZ2AF+2 01668000 ZZ2AFQ EQU ZZ2AF+2 01669000 ZZ2AF$ EQU ZZ2AF+2 01670000 @NM00025 EQU ZZ2AF+2 01671000 ZZ2AFM EQU ZZ2AF+2 01672000 @NM00024 EQU ZZ2AF+2 01673000 @NM00023 EQU ZZ2AF+1 01674000 ZZ2AFV EQU ZZ2AF+1 01675000 @NM00022 EQU ZZ2AF+1 01676000 ZZ2AFC EQU ZZ2AF+1 01677000 @NM00021 EQU ZZ2AF 01678000 ZZ2AFFS EQU ZZ2AF 01679000 ZZ2AFT EQU ZZ2AF 01680000 ZZ2AFP EQU ZZ2AF 01681000 @NM00020 EQU ZZ2A+8 01682000 ZZ2ALINE EQU ZZ2A+4 01683000 @NM00019 EQU ZZ2A+3 01684000 ZZ2ASE EQU ZZ2A+2 01685000 ZZ2ACH EQU ZZ2A 01686000 @NM00018 EQU ZZ2+264 01687000 @NM00017 EQU ZZ2+263 01688000 ZZ2PRTT0 EQU ZZ2PRTT 01689000 ZZ2PRTO EQU ZZ2PRT+2 01690000 ZZ2PRTL EQU ZZ2PRT 01691000 @NM00016 EQU ZZ2AMD+56 01692000 ZZ2AMDXP EQU ZZ2AMD+52 01693000 ZZ2AMDD EQU ZZ2AMD+48 01694000 ZZ2AMDL EQU ZZ2AMD+44 01695000 ZZ2AMDU EQU ZZ2AMD+28 01696000 ZZ2AMDF EQU ZZ2AMD+24 01697000 ZZ2AMDS EQU ZZ2AMD+20 01698000 ZZ2AMDC EQU ZZ2AMD+16 01699000 ZZ2AMDP EQU ZZ2AMD+12 01700000 ZZ2AMDB EQU ZZ2AMD+8 01701000 @NM00015 EQU @NM00014 01702000 ZZ2AMD2 EQU @NM00014 01703000 ZZ2AMD1 EQU @NM00014 01704000 ZZ2AMD0 EQU ZZ2AMD+6 01705000 ZZ2AMDA EQU ZZ2AMD+4 01706000 ZZ2AMDT EQU ZZ2AMD 01707000 ZZ199999 EQU ZZ1+3072 01708000 @NM00013 EQU ZZ1+2160 01709000 ZZ1TRTAS EQU ZZ1+1904 01710000 ZZ1TRUPC EQU ZZ1+1648 01711000 ZZ1TRCTX EQU ZZ1+1392 01712000 ZZ1NASID EQU ZZ1N+274 01713000 ZZ1NSTRL EQU ZZ1N+272 01714000 ZZ1NOFF EQU ZZ1N+268 01715000 ZZ1NBDY EQU ZZ1N+264 01716000 ZZ1NADE EQU ZZ1N+260 01717000 ZZ1NADB EQU ZZ1N+256 01718000 ZZ1NSTR EQU ZZ1N 01719000 @NM00012 EQU ZZ1+1080 01720000 ZZ1TREBC EQU ZZ1+824 01721000 ZZ1TRHEX EQU ZZ1+568 01722000 @NM00011 EQU ZZ1+377 01723000 ZZ1USTAE EQU ZZ1+376 01724000 @NM00010 EQU ZZ1F+1 01725000 @NM00009 EQU ZZ1F 01726000 ZZ1FM EQU ZZ1F 01727000 ZZ1FX EQU ZZ1F 01728000 ZZ1FU EQU ZZ1F 01729000 ZZ1EVEC EQU ZZ1EVE+1 01730000 @NM00008 EQU ZZ1EVE 01731000 ZZ1EVEW EQU ZZ1EVE 01732000 ZZ1ACMP EQU ZZ1ATTN 01733000 @NM00007 EQU ZZ1+144 01734000 ZZ1FPP EQU ZZ1+140 01735000 ZZ1ZZ6P EQU ZZ1+136 01736000 @NM00006 EQU ZZ1+84 01737000 ZZ1PLINE EQU ZZ1+80 01738000 ZZ1PGSZ EQU ZZ1+76 01739000 ZZ1PCNT EQU ZZ1+72 01740000 @NM00005 EQU ZZ1+68 01741000 ZZ1TPAGE EQU ZZ1+64 01742000 ZZ1TLINE EQU ZZ1+60 01743000 @NM00004 EQU ZZ1+52 01744000 ZZ1DMCBP EQU ZZ1+48 01745000 ZZ1DSDP EQU ZZ1+44 01746000 ZZ1PDRP EQU ZZ1+40 01747000 ZZ1ZZ2P EQU ZZ1+36 01748000 ZZ1327WP EQU ZZ1+32 01749000 ZZ1ACBP EQU ZZ1+28 01750000 @NM00003 EQU ZZ1+24 01751000 ZZ1PDCBP EQU ZZ1+20 01752000 ZZ1BLRBL EQU ZZ1+16 01753000 @NM00002 EQU ZZ1+12 01754000 ZZ1PNULL EQU ZZ1+8 01755000 ZZ1NULL EQU ZZ1+4 01756000 ZZ1IDE EQU ZZ1 01757000 MSGWTXT EQU MSGWMOV+4 01758000 MSGWPAD EQU MSGWMOV+2 01759000 MSGWLEN EQU MSGWMOV 01760000 @NM00001 EQU INSERT+10 01761000 * END UNREFERENCED COMPONENTS 01762000 @RF00185 EQU @EL00002 01763000 @RC00188 EQU @EL00002 01764000 @RF00192 EQU @EL00002 01765000 @RC00243 EQU @EL00003 01766000 @RF00242 EQU @EL00003 01767000 @RC00259 EQU @EL00004 01768000 @RC00270 EQU @EL00004 01769000 @PB00004 EQU @PB00005 01770000 @RF00296 EQU @EL00005 01771000 @RF00321 EQU @EL00005 01772000 @PB00003 EQU @PB00004 01773000 @PB00002 EQU @PB00003 01774000 @ENDDATA EQU * 01775000 END BLSDMSG0,(C'PLS1950',0701,78064) 01776000