Well, if you are sure that you know the callers that the only choice is BASSM, BSM(????) or BA(L/S)R I would suggest making a standard of how the routine is called.
Have you considered the effect of being invoked via BALR in 24 bit mode? On Tue, 11 Aug 2020 13:57:23 -0400 Tony Thigpen <t...@vse2pdf.com> wrote: :>I came across the following code today. The program can either be called :>by JCL or from either an HLL or assembler program. While I included some :>extra code for clarity, the code I am asking for comments on is the code :>that 'fixes' R14 so that a BSM can be used instead of a BR. I just :>thought I would ask what others think about this method. :> :>XXXXXXXX CSECT :>XXXXXXXX AMODE ANY :>XXXXXXXX RMODE 24 SOME IBM CODE IN HERE MAY REQUIRE R24 :> USING XXXXXXXX,R15 :> B COPYRGHTEND :>...... :>COPYRGHTEND DS 0D :> STM R14,R12,12(R13) SAVE CALLERS REGISTERS :> BCTR R14,0 BACKUP TO CALLING INST :> BCTR R14,0 . :> CLI 0(R14),X'0C' BASSM? :> BE R14_OK :> CLI 0(R14),X'0D' BSM? :> BE R14_OK :> L R14,12(,R13) GET ORG R14 :> LA R14,0(,R14) CLEAR HI BIT/BYTE :> BSM R14,0 ADD PROPER AMODE :> ST R14,12(,R13) SET R14 FOR RETURN BY BSM :>R14_OK DS 0H :> DROP R15 :> LA R1,SAVEAREA :> ST R1,8(,R13) FORWARD POINTER :> ST R13,4(,R1) BACKWARD POINTER :> LR R13,R1 ESTABLISH PERM R13 AREA :> L R1,4(,R13) GET BACK ORG R0 & R1 :> LM R0,R1,20(R1) FROM ORG SAVEAREA :>* :> LA R8,0(,R15) ESTABLISH ADDRESSABILITY :> LA R15,1 . :> LA R10,4095(R15,R8) . :> USING XXXXXXXX,R8,R10 . :> :>The return code is: :>RETURNR15 DS 0H :> L R1,4(,R13) GET CALLER SAVE AREA ADDRESS :> ST R15,16(,R1) SAVE RETURN CODE :> LM R14,R12,12(R13) RESTORE REGISTERS :> BSM 0,R14 GO BACK :> :>Tony Thigpen -- Binyamin Dissen <bdis...@dissensoftware.com> http://www.dissensoftware.com Director, Dissen Software, Bar & Grill - Israel Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies.