TITLE 'EP=BLSCHOK -- IPCS DAS MESSAGE TO MESSAGE CHAIN ANCHOR *00001000 ' 00002000 * /* CHANGE ACTIVITY 00003000 * THIS MODULE IS WRITTEN FOR @G57LPSR 00004000 BLSCHOK CSECT , 0002 00005000 @MAINENT DS 0H 0002 00006000 USING *,@15 0002 00007000 B @PROLOG 0002 00008000 DC AL1(16) 0002 00009000 DC C'BLSCHOK 78.066' 0002 00010000 DROP @15 00011000 @PROLOG STM @14,@12,12(@13) 0002 00012000 BALR @12,0 0002 00013000 @PSTART DS 0H 0002 00014000 USING @PSTART,@12 0002 00015000 L @00,@SIZDATD 0002 00016000 BLSCGETF R,LV=(0) 00017000 LR @11,@01 0002 00018000 USING @DATD,@11 0002 00019000 ST @13,@SA00001+4 0002 00020000 LM @00,@01,20(@13) 0002 00021000 ST @11,8(,@13) 0002 00022000 LR @13,@11 0002 00023000 MVC @PC00001(12),0(@01) 0002 00024000 EJECT 00025000 * 0011 00026000 * /*****************************************************************/ 00027000 * /* */ 00028000 * /* INITIALIZE MODULE STATUS */ 00029000 * /* */ 00030000 * /*****************************************************************/ 00031000 * 0011 00032000 * DMCBPTR=ADDR(DMCBPARM); /* BASE THE DMCB */ 00033000 L DMCBPTR,@PC00001 0011 00034000 * MODNAME=LMODNMC; /* INIT THE MODULE NAME */ 00035000 MVC MODNAME(8),@CC00233 0012 00036000 * RETCODE=F0C; /* INIT THE MODULE RETURN CODE */ 00037000 * 0013 00038000 SLR @10,@10 0013 00039000 ST @10,RETCODE 0013 00040000 * /*****************************************************************/ 00041000 * /* */ 00042000 * /* APPEND MESSAGE(S) TO END OF CHAIN OR TO ANCHOR */ 00043000 * /* */ 00044000 * /*****************************************************************/ 00045000 * 0014 00046000 * IF ANCHOR=F0C THEN /* TEST FOR EMPTY MESSAGE CHAIN */ 00047000 L @15,@PC00001+4 0014 00048000 C @10,ANCHOR(,@15) 0014 00049000 BNE @RF00014 0014 00050000 * ANCHOR=MSGADR; /* NO CHAIN, HOOK MSG(S) TO ANCH */ 00051000 L @10,@PC00001+8 0015 00052000 L @10,MSGADR(,@10) 0015 00053000 ST @10,ANCHOR(,@15) 0015 00054000 * ELSE 0016 00055000 * DO; /* MESSAGES ALREADY ON CHAIN */ 00056000 B @RC00014 0016 00057000 @RF00014 DS 0H 0017 00058000 * DHEAD=ANCHOR-LENGTH(MSGDPRF);/* MSGDENT PTR FOR LIST HEAD */ 00059000 LA @10,8 0017 00060000 L @05,@PC00001+4 0017 00061000 L DHEAD,ANCHOR(,@05) 0017 00062000 SLR DHEAD,@10 0017 00063000 * DTAIL=DHEAD->MSGDBAK; /* MSGDENT PTR FOR END OF LIST */ 00064000 L DTAIL,MSGDBAK(,DHEAD) 0018 00065000 * DPTR=MSGADR-LENGTH(MSGDPRF);/* MSGDENT PTR FOR NEW MESSAGE */ 00066000 L @15,@PC00001+8 0019 00067000 L @15,MSGADR(,@15) 0019 00068000 LCR @10,@10 0019 00069000 ALR @10,@15 0019 00070000 LR DPTR,@10 0019 00071000 * DTAIL->MSGDNXT=MSGADR; /* HOOK NEW ENTRY TO PREVIOUS END*/ 00072000 ST @15,MSGDNXT(,DTAIL) 0020 00073000 * DHEAD->MSGDBAK=DPTR->MSGDBAK;/* BACKCHAIN NEW TAIL TO HEAD */ 00074000 L @10,MSGDBAK(,DPTR) 0021 00075000 ST @10,MSGDBAK(,DHEAD) 0021 00076000 * DPTR->MSGDBAK=DTAIL; /* BACKCHAIN END OF LIST TO NEW 00077000 * ENTRY */ 00078000 ST DTAIL,MSGDBAK(,DPTR) 0022 00079000 * END; /* MESSAGES ALREADY ON CHAIN */ 00080000 * RETURN CODE(RETCODE); 0024 00081000 @RC00014 L @10,RETCODE 0024 00082000 L @13,4(,@13) 0024 00083000 L @00,@SIZDATD 0024 00084000 LR @01,@11 0024 00085000 BLSCFREF R,LV=(0),A=(1) 00086000 LR @15,@10 0024 00087000 L @14,12(,@13) 0024 00088000 LM @00,@12,20(@13) 0024 00089000 BR @14 0024 00090000 EJECT 00091000 * 0025 00092000 * /*****************************************************************/ 00093000 * /* */ 00094000 * /* PROCEDURE STATEMENTS END */ 00095000 * /* */ 00096000 * /*****************************************************************/ 00097000 * 0025 00098000 * DECLARE /* COMMON VARIABLES */ 00099000 * I256C CHAR(256) BASED, 0025 00100000 * I031F FIXED(31) BASED, 0025 00101000 * I031P PTR(31) BASED, 0025 00102000 * I015F FIXED(15) BASED, 0025 00103000 * I015P PTR(15) BASED, 0025 00104000 * I008P PTR(8) BASED, 0025 00105000 * I001C CHAR(1) BASED; 0025 00106000 * DCL 0026 00107000 * 1 DASPATCH LOCAL BDY(DWORD), /* PATCH AREA */ 00108000 * 2 DASPATA(DASPATLN) PTR INIT((DASPATLN)0); 0026 00109000 * END BLSCHOK 0027 00110000 * 0027 00111000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 00112000 */*%INCLUDE SYSLIB (BLSDMSGD) */ 00113000 * 0027 00114000 * ; 0027 00115000 @DATA DS 0H 00116000 @DATD DSECT 00117000 DS 0F 00118000 @SA00001 DS 18F 00119000 @PC00001 DS 3F 00120000 BLSCHOK CSECT 00121000 DS 0F 00122000 @DATD DSECT 00123000 DS 0D 00124000 MODSTAT DS CL12 00125000 ORG MODSTAT 00126000 MODNAME DS CL8 00127000 RETCODE DS FL4 00128000 ORG MODSTAT+12 00129000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 00130000 @ENDDATD EQU * 00131000 BLSCHOK CSECT 00132000 DS 0F 00133000 @SIZDATD DC AL1(0) 00134000 DC AL3(@ENDDATD-@DATD) 00135000 DS 0D 00136000 @CC00233 DC C'BLSCHOK ' 00137000 DASPATCH DS CL80 00138000 ORG DASPATCH 00139000 DASPATA DC 20A(0) 00140000 ORG DASPATCH+80 00141000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 00142000 @01 EQU 01 00143000 @02 EQU 02 00144000 @03 EQU 03 00145000 @04 EQU 04 00146000 @05 EQU 05 00147000 @06 EQU 06 00148000 @07 EQU 07 00149000 @08 EQU 08 00150000 @09 EQU 09 00151000 @10 EQU 10 00152000 @11 EQU 11 00153000 @12 EQU 12 00154000 @13 EQU 13 00155000 @14 EQU 14 00156000 @15 EQU 15 00157000 DPTR EQU @04 00158000 DTAIL EQU @03 00159000 DHEAD EQU @02 00160000 DMCBPTR EQU @02 00161000 DMCB EQU 0 00162000 DMCBFTY EQU DMCB+20 00163000 DMCBOPN EQU DMCB+21 00164000 DMCBRMOD EQU DMCB+23 00165000 DMCBOUT EQU DMCBRMOD 00166000 DMCBOPTS EQU DMCB+24 00167000 DMCBGKY EQU DMCBOPTS 00168000 DMCBMFLG EQU DMCB+28 00169000 DMCBBUFP EQU DMCB+32 00170000 DMCBKEYP EQU DMCB+44 00171000 DMCBRI EQU DMCB+64 00172000 DMCBFRE EQU DMCB+88 00173000 DMCBEOB EQU DMCB+92 00174000 DMCBACBE EQU DMCB+124 00175000 DMCBSPEC EQU DMCB+380 00176000 DMCBAMS EQU DMCB+416 00177000 DMCBAUDT EQU DMCB+568 00178000 DMCBLSCP EQU DMCBAUDT+16 00179000 MSGDENT EQU 0 00180000 MSGDPRF EQU MSGDENT 00181000 MSGDBAK EQU MSGDPRF+4 00182000 MSGDWRT EQU MSGDENT+8 00183000 MSGDNXT EQU MSGDWRT 00184000 MSGDMOV EQU MSGDWRT+4 00185000 MSGWENT EQU 0 00186000 MSGWMOV EQU MSGWENT+4 00187000 DMCBDMGR EQU 0 00188000 DMCBRQC EQU 0 00189000 I001C EQU 0 00190000 I008P EQU 0 00191000 I015F EQU 0 00192000 I015P EQU 0 00193000 I031F EQU 0 00194000 I031P EQU 0 00195000 I256C EQU 0 00196000 DMCBPARM EQU 0 00197000 ANCHOR EQU 0 00198000 MSGADR EQU 0 00199000 DMCBVSM EQU DMCBAMS 00200000 DMCBQSM EQU DMCBAMS 00201000 AGO .@UNREFD START UNREFERENCED COMPONENTS 00202000 DMCBRES7 EQU DMCBQSM+96 00203000 DMCBDCB EQU DMCBQSM 00204000 DMCBACB EQU DMCBVSM+76 00205000 DMCBRPL EQU DMCBVSM 00206000 MSGWTXT EQU MSGWMOV+4 00207000 MSGWPAD EQU MSGWMOV+2 00208000 MSGWLEN EQU MSGWMOV 00209000 MSGWNXT EQU MSGWENT 00210000 MSGDTXT EQU MSGDMOV+4 00211000 MSGDPAD EQU MSGDMOV+2 00212000 MSGDLEN EQU MSGDMOV 00213000 MSGDFLEN EQU MSGDPRF+1 00214000 MSGDSPID EQU MSGDPRF 00215000 DMCBWRK EQU DMCB+648 00216000 DMCBRES8 EQU DMCB+640 00217000 DMCBMODN EQU DMCB+632 00218000 DMCBCARY EQU DMCBAUDT+20 00219000 DMCBCLC EQU DMCBAUDT+12 00220000 DMCBOPC EQU DMCBAUDT+8 00221000 DMCBFRC EQU DMCBAUDT+4 00222000 DMCBALC EQU DMCBAUDT 00223000 DMCBFR EQU DMCB+412 00224000 DMCBRES6 EQU DMCB+410 00225000 DMCBIRSC EQU DMCB+408 00226000 DMCBSUBC EQU DMCB+404 00227000 DMCBDRBP EQU DMCB+400 00228000 DMCBRSZM EQU DMCB+398 00229000 DMCBRSZA EQU DMCB+396 00230000 DMCBCISZ EQU DMCB+394 00231000 DMCBDCBL EQU DMCB+392 00232000 DMCBDCLR EQU DMCB+390 00233000 DMCBDCFM EQU DMCB+389 00234000 DMCBRES5 EQU DMCB+388 00235000 DMCBLBRT EQU DMCB+386 00236000 DMCBLBSQ EQU DMCB+384 00237000 DMCBLBPS EQU DMCB+383 00238000 DMCBLBTY EQU DMCB+382 00239000 DMCBRES4 EQU DMCB+381 00240000 DMCBSPRS EQU DMCBSPEC 00241000 DMCBSPRN EQU DMCBSPEC 00242000 DMCBSPCT EQU DMCBSPEC 00243000 DMCBSPRL EQU DMCBSPEC 00244000 DMCBSPSE EQU DMCB+376 00245000 DMCBSPPR EQU DMCB+372 00246000 DMCBSPTY EQU DMCB+369 00247000 DMCBODIS EQU DMCB+368 00248000 DMCBDISP EQU DMCB+367 00249000 DMCBSTAT EQU DMCB+366 00250000 DMCBRES3 EQU DMCB+364 00251000 DMCBMEMB EQU DMCB+356 00252000 DMCBMODL EQU DMCB+348 00253000 DMCBRES9 EQU DMCB+340 00254000 DMCBPID EQU DMCB+332 00255000 DMCBTYPE EQU DMCB+328 00256000 DMCBDSN EQU DMCB+284 00257000 DMCBUNIT EQU DMCB+276 00258000 DMCBDSOR EQU DMCB+274 00259000 DMCBVOL EQU DMCB+268 00260000 DMCBDDNM EQU DMCB+260 00261000 DMCBSYNM EQU DMCB+132 00262000 DMCBRPLF EQU DMCB+128 00263000 DMCBDCBE EQU DMCBACBE 00264000 DMCBARC EQU DMCB+120 00265000 DMCBCPC EQU DMCB+116 00266000 DMCBRET EQU DMCB+112 00267000 DMCBSTL EQU DMCB+96 00268000 DMCBRES2 EQU DMCB+85 00269000 DMCBSPID EQU DMCB+84 00270000 DMCBRESC EQU DMCB+80 00271000 DMCBZZ1P EQU DMCB+76 00272000 DMCBMSGS EQU DMCB+72 00273000 DMCBMSG0 EQU DMCB+68 00274000 DMCBRRL EQU DMCB+60 00275000 DMCBRBA EQU DMCB+56 00276000 DMCBMSG EQU DMCB+52 00277000 DMCBKEYL EQU DMCB+48 00278000 DMCBKPC EQU DMCBKEYP 00279000 DMCBORL EQU DMCB+40 00280000 DMCBBLEN EQU DMCB+36 00281000 DMCBBFPC EQU DMCBBUFP 00282000 DMCBRES1 EQU DMCB+31 00283000 DMCBACCM EQU DMCB+30 00284000 DMCBREJ EQU DMCB+29 00285000 DMCBRESB EQU DMCBMFLG 00286000 DMCBFMOD EQU DMCBMFLG 00287000 DMCBLOPT EQU DMCB+27 00288000 DMCBLRM EQU DMCB+26 00289000 DMCBLRQ EQU DMCB+25 00290000 DMCBOPRS EQU DMCBOPTS 00291000 DMCBLRD EQU DMCBOPTS 00292000 DMCBBWD EQU DMCBOPTS 00293000 DMCBUPD EQU DMCBOPTS 00294000 DMCBAPX EQU DMCBOPTS 00295000 DMCBRNO EQU DMCBGKY 00296000 DMCBKYD EQU DMCBOPTS 00297000 DMCBRMRS EQU DMCBRMOD 00298000 DMCBRM5 EQU DMCBRMOD 00299000 DMCBRM6 EQU DMCBRMOD 00300000 DMCBTMP EQU DMCBOUT 00301000 DMCBRQST EQU DMCB+22 00302000 DMCBRESA EQU DMCBOPN 00303000 DMCBSOUT EQU DMCBOPN 00304000 DMCBSIN EQU DMCBOPN 00305000 DMCBVSF EQU DMCBFTY 00306000 DMCBKSF EQU DMCBFTY 00307000 DMCBFTRS EQU DMCBFTY 00308000 DMCBSHF EQU DMCBFTY 00309000 DMCBIRL EQU DMCB+16 00310000 DMCBRTC EQU DMCB+12 00311000 DMCBTVP EQU DMCB+8 00312000 DMCBNEXT EQU DMCB+4 00313000 DMCBID EQU DMCB 00314000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 00315000 @ENDDATA EQU * 00316000 END BLSCHOK,(C'PLS1105',0701,78066) 00317000