Bob Rutledge wrote >In order to have BASSM switch to 64-bit addressing, R15 (in >your example) >must be (arithmetically) odd; bit 63 must be 1.
Can I replace LLGTR R15,R15 with OILL R15,X'0001' . . Thanks ---------- Original Message ---------- From: Bob Rutledge <[email protected]> To: [email protected] Subject: Re: LOADING An AMODE64 Program Date: Sat, 8 Aug 2015 12:11:12 -0400 On 8/8/2015 10:29 AM, [email protected] wrote: > I want to load a program that has AMODE 64 from a Program with AMODE 31. > . > . I looked at David Bonds Share Session 8158 - August. 2003 > 64-Bit z/OS Assembler Coding. > . > It was very informative. > . > . > So I issue a Load for PROG64 which has AMODE 64, from a program with AMODE 31. > * > LARL R2,PROG64$ > LOAD EPLOC=(R2) ISSUE LOAD > STM R15,R1,SVLOADZ SAVE REGISTERS FROM LOAD ST > R0,PROD64@ STOR MODULE ADDRESS > . > . > At a Latter Time,I want to invoke this module passing a structure whose > address is in Register 1, using the following instructions. > * > LARL R1,STRUCT31 31 Bit Structure > L R15,PROG64@ Get Target Routine Address from Load > LLGTR R15,R15 Ensure R15 Has a Good Address > BASSM R14,R15 Call PROG64 in AMODE 64 > . > * > *31 Bit Storage > DS 0D > PROG64$ DC CL8'PROG64 ' > PROG64@ DC A(0) > * > STRUCT31 DS CL256 > . > . > Are the above sequence of instructions correct ? > Do I need to issue LLGTR ? > What am I mis understanding to accomplish this ? In order to have BASSM switch to 64-bit addressing, R15 (in your example) must be (arithmetically) odd; bit 63 must be 1. Bob
