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

Reply via email to