The ICM zeroes the authorization code, leaving the length in doublewords. A simple XC 0(256,R8),0(R80 is all you need to clear it.
There's lots of dead or inefficient code, but what's the error? I'd like to see the STORAGE expansions. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר ________________________________________ From: IBM Mainframe Discussion List <[email protected]> on behalf of Steve Beaver <[email protected]> Sent: Thursday, June 19, 2025 3:40 PM To: [email protected] <[email protected]> Subject: Re: error in post logon exit IKJEFD3 878-18 from MSTJCL External Message: Use Caution Second - What are you doing with this instruction? ICM R1,B'1000',=X'00' It makes no sense Steve -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Steve Beaver Sent: Thursday, June 19, 2025 2:37 PM To: [email protected] Subject: Re: error in post logon exit IKJEFD3 878-18 from MSTJCL LA R1,256 INITLOOP DS 0H MVI 0(R8),X'80' INITIALIZE TO DO NOT INTERCEPT LA R8,1(,R8) NEXT BYTE BCT R1,INITLOOP LOOP BACK First lets clean this above mess up to the following (this is much faster) * MVI 0(R8),X'80' INITIALIZE TO DO NOT INTERCEPT MVC 1(255,R8),0(R8) Steve -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Joseph Reichman Sent: Wednesday, June 18, 2025 10:23 PM To: [email protected] Subject: Re: error in post logon exit IKJEFD3 878-18 from MSTJCL Ok Jon tell me where I made an error thanks IKJEFLD3 CSECT IKJEFLD3 AMODE 31 IKJEFLD3 RMODE ANY YREGS XLNK EQU R14 AR0 EQU 0 AR1 EQU 1 AR2 EQU 2 AR3 EQU 3 AR4 EQU 4 AR5 EQU 5 AR6 EQU 6 AR7 EQU 7 AR8 EQU 8 AR9 EQU 9 AR10 EQU 10 AR11 EQU 11 AR12 EQU 12 AR13 EQU 13 AR14 EQU 14 AR15 EQU 15 STM R14,R12,12(R13) LR R3,R15 USING IKJEFLD3,R3 LA R0,WS_LEN LR R11,R1 USING PARMLIST,R11 STORAGE OBTAIN,LENGTH=(0),ADDR=(R12),SP=0 LR R14,R13 LR R13,R12 ST R14,4(R13) d ===> Scroll ===> CSR USING WS_DSECT,R13 L R6,0(R11) USING PARMENT,R6 XR R2,R2 TSOIDLP DS 0H CLC PARMKEY,=F'0' BE BUMP CLC PARMKEY,=F'2' FIRST ONE IS TSO ID BE GETTSO BUMP DS 0H L R2,PARMLEN LA R6,8(R2,R6) B TSOIDLP GETTSO DS 0H L R2,PARMADR XR R7,R7 ICM R7,B'0011',0(R2) POINT TO TSO ID LA R7,0(R7,R2) MVC TSOID,0(R7) * * IPK , GET PSW PROTECT KEY ST R2,STORKEY SAVE PK IN R11 SPKA 0 LOAD EP=TPUT ICM R1,B'1000',=X'00' LR R10,R0 * SLL R1,3 LENGTH OF MODULE LR R9,R1 USING PSA,0 L R2,PSATOLD USING TCB,R2 L R2,TCBJSTCB * L R2,TCBBACK * LA R0,264 STORAGE OBTAIN,LENGTH=(0),ADDR=(R5),BNDRY=DBLWD,SP=253,TCBADDRX =(R2) ST R5,SP253 * STORAGE OBTAIN,LENGTH=(R9),ADDR=(R5),BNDRY=DBLWD,SP=253,LOC=24X ,TCBADDR=(R2) ST R5,BELOW L R4,SP253 LA R5,264 XR R14,R14 LA R14,=X'00' XR R15,R15 MVCL R4,R14 * * * MOVE CODE * L R4,BELOW LR R5,R9 LR R14,R10 LR R15,R5 MVCL R4,R14 * L R5,SP253 * DELETE EP=TPUTT * L R4,BELOW ST R4,0(R5) * MVI 4(R5),X'C0' * LA R8,8(R5) * LA R1,256 INITLOOP DS 0H MVI 0(R8),X'80' INITIALIZE TO DO NOT INTERCEPT LA R8,1(,R8) NEXT BYTE BCT R1,INITLOOP LOOP BACK * LA R8,8(R5) MVI 93(R8),X'00' * * ST R5,TCBSVCA2 STORE SCREEN TABLE ADDRESS INTO TCB OI TCBFLGS7,TCBSVCS+TCBSVCSP * L R10,STORKEY SPKA 0(R10) * LA R0,WS_LEN LR R12,R13 L R13,4(,R13) STORAGE RELEASE,LENGTH=(0),ADDR=(R12),SP=0 LM R14,R12,12(R13) XR R15,R15 BR R14 PARMENT DSECT PARMKEY DS F * PARAMETER KEY PARMLEN DS F * PARAMETER LENGTH PARMADR DS A * PARAMETER ADDRESS COPY DBGRLIT WS_DSECT DSECT DS 18F TSOID DS XL5 SP253 DS F BELOW DS F STORKEY DS F DBGRBUF DS XL(DIE_LEN) WS_LEN EQU *-WS_DSECT DBGRPY IKJPTP IKJTCB DSECT=YES,LIST=NO IHARB IHAPSA CVT LIST=YES,DSECT=YES END -----Original Message----- From: IBM Mainframe Discussion List <[email protected]> On Behalf Of Jon Perryman Sent: Wednesday, June 18, 2025 9:33 PM To: [email protected] Subject: Re: error in post logon exit IKJEFD3 878-18 from MSTJCL On Wed, 18 Jun 2025 18:27:59 -0400, Joseph Reichman <[email protected]> wrote: >I copied the basic code from xephon > >In that code there was a storage obtain and release sp=0 local storage When you say "release sp=0", then you are saying free the entire subpool and ADDR= & LENGTH= were not specified on the STORAGE RELEASE. Because it was XEPHON, that ADDR= was specified. If you don't believe me about S0C4 suppression, then issue SLIP SET,ID=S0C4TEST,COMP=0C4,MATCHLIM=5,ACTION=NONE,END and it should only take a couple of minutes on an active system to trip 5 times but without a visible S0C4 abend. I'm telling you the STORAGE RELEASE has a bad address. Without more information, we can't be helpful. My recommendation is to set a SLIP COMP=878,ACTION=SVCD and look at the dump. Your code changed something incorrectly. IKJEFLD3 is an exit that is called by TSO and TSO did not like something your code changed. For us to help, providing source code is the only option left. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
