* NAME: Z5010482 PRODUCT: SASC CATEGORY: SPEC SYSTEM: BiCMS * DATE: 24NOV92 STATUS: DZ+UT USAGE-ID: LIBRARY-C0482 * * Bad Zap....INDEP-compiled CICS applications may Abend ASRA in CICS/ESA * * PRE-REQUISITE: Z5010482 * * NOTE: This is a SOURCE UPDATE to the following three source files: * LCUSER MACLIB(member CONDCOPY * LCUSER MACLIB(member L$UCENV * Applying this zap takes special care. To apply follow the * below instructions. * (1) For each update file, change all occurrences of "*/" to * "./" and remove all comments before the first "./" card. * (2) Split this file into 2 update files (one for each * source file to be updated) with filetypes of UPDATE. * (3) Create temporary, sequential copies of the 2 source files. * Using XEDIT, edit the MACLIB member, turn serialization * off and save the member to the A disk. * Following are sample commands for the CONDCOPY member of * LCUSER MACLIB: * XEDIT LCUSER MACLIB (member CONDCOPY * SET SERIAL OFF * FILE = ASSEMBLE A * Do this for each source file. * (4) Using the CMS UPDATE command, apply the fix to the * sequential, renumbered copies of CONDCOPY and * L$UCENV. Following are the sample commands (the lower * case names are the names of the update files). * UPDATE CONDCOPY ASSEMBLE A condcopu (INC NOREP * UPDATE L$UCENV ASSEMBLE A l$ucenvu (INC NOREP * The output source filename will be preceded with a "$". * (5) Store the updated version of CONDCOPY (now $CONDCOPY) and * L$UCENV (now $L$UCENV) back * into the LCUSER MACLIB using the MACLIB command. The * MACLIB command insists on the filetype be COPY so the file * must be renamed. Below are sample commands. * RENAME $CONDCOPY ASSEMBLE A CONDCOPY COPY A * RENAME $L$UCENV ASSEMBLE A L$UCENV COPY A * MACLIB REP LCUSER CONDCOPY * MACLIB REP LCUSER L$UCENV * (6) Assemble L$UPREP, as directed in the source file located * in the LSU MACLIB (member L$UPREP. * The assembler option SYSPARM(CICS) must be used. * Below are sample commands. * GLOBAL MACLIB LCUSER CMSLIB OSMACRO * HASM L$UPREP (SYSPARM(CICS) * TXTLIB DEL LC370STD L$UPREP * TXTLIB ADD LC370STD L$UPREP * (7) Re-link your application before running. * NOTE: The following is a SOURCE UPDATE; to apply, you must * (1) ensure that the target source file has not been re-numbered, * (2) change all occurrences of "*/" back to "./", and * (3) remove all comments before the first "./" card, * before using the CMS UPDATE command */ * -----------------cut here------------------------------------ .29 */ * .29 */ * Updates to LCUSER MACLIB (member CONDCOPY */ * .29 */ R 00020001 00020001 $ 00023991 00003990 CONDCOPY 00020004 */ R 00110001 00110001 $ 00113991 00003990 COPY DFHPCTDS 00110004 */ * -----------------cut here------------------------------------ .29 */ * .29 */ * Updates to LCUSER MACLIB (member L$UCENV .29 */ * .29 */ D 00240018 00250018 */ I 00510022 $ 00515022 00005000 DROP R13 5.5 00500026 */ I 00520023 $ 00523023 00003000 PCTCBAR EQU R0 5.0 00520024 DROP PCTCBAR 5.5 00530024 */ I 00530016 $ 00535016 00005000 DROP TCACBAR 5.5 00550024 */ D 00550013 00590016 */ R 00660016 00750016 $ 00662006 00001990 * 5.5 00630024 * This code got real ugly when IBM moved TCATCPC for 5.5 00640024 * release 3.2 and removed TWACCOBA for release 3.3. 5.5 00650024 * The logic goes like this: 5.5 00660024 * - Find the CSA. 5.5 00670024 * - Find the user TCA from the CSA. 5.5 00680024 * - Find the system TCA from the user TCA. 5.5 00690024 * - Find the TWA address from the User TCA. 5.5 00700024 * The C Environment pointer (if any) is stored there. 5.5 00710024 * - Find the PCT entry from the system TCA. 5.5 00720024 * - Abend if the PCT has no TWA defined. 5.5 00730024 * 5.5 00740024 DFHCSAD TYPE=LOCATE,REG=R12 Find the CSA 5.0 00750024 USING DFHCSADS,R12 Establish CSA addressability 5.5 00760025 L R11,CSACDTA Point to the user TCA 5.5 00770025 USING DFHTCADS,R11 Establish user TCA addressability 5.5 00780024 L R10,TCASYAA Point to the system TCA 5.5 00790024 CLI CSACIREL,X'32' Pre-release 3.2 system? 5.5 00800024 BL PREREL32 Branch if pre-3.2 system 5.5 00810024 BE REL32 Branch if 3.2 system 5.5 00820024 * Else must be post-3.2 system 5.5 00830024 L R12,X'EC'(,R11) (tcatwaad) Find the TWA address 5.5 00840024 L R9,X'1C'(,R10) (tcatcpc) Point to PCT entry 5.5 00850024 B CHECKTWA See if we have a TWA 5.5 00860024 REL32 LA R12,X'F0'(,R11) (twacoba) Find the TWA address 5.5 00870024 L R9,X'1C'(,R10) (tcatcpc) Point to PCT entry 5.5 00880024 B CHECKTWA See if we have a TWA 5.5 00890024 PREREL32 LA R12,X'100'(,R11) (twacoba) Find the TWA address 5.5 00900024 L R9,X'14'(,R10) (tcatcpc) Point to PCT entry 5.5 00910024 N R9,=X'00FFFFFF' Clear the top byte 5.0 00920024 USING DFHPCTDS,R9 Establish PCT addressability 5.5 00930024 CHECKTWA CLC PCTTWA,=H'4' Could the TWA point to a CRAB? 5.0 00940028 BL *-* Abend if not 5.5 00950024 */ I 00760016 $ 00762016 00002000 * 5.5 00970027 * At this point R12 points to the TWA 5.5 00980027 * 5.5 00990027