Yes, but note: If the loaded program is _marked_ AMODE 64, the LOAD service will do all that stuff for you and return the 64-bit address in R0.

Bob

On 8/8/2015 5:53 PM, esst...@juno.com wrote:
Thanks Again
SO the sequenec of Instructions should look like this.

LARL  R1,STRUCT31    31 Bit Structure
L     R15,PROG64@    Get Target Routine Address from Load
LLGTR R15,R15        Ensure R15 Has a Good Address
OILL  R15,X'0001'    Ensure bit 63 is 1
BASSM R14,R15        Call PROG64 in AMODE 64

*
*31 Bit Storage
          DS   0D
PROG64$  DC   CL8'PROG64  '
PROG64@  DC   A(0)
*
STRUCT31 DS   CL256
.


---------- Original Message ----------
From: Bob Rutledge <deerh...@ix.netcom.com>
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: LOADING An AMODE64 Program
Date: Sat, 8 Aug 2015 16:54:10 -0400

Since LLGTR supplies 33 zero-bits at the high-order end and that OILL supplies a
one-bit at the low-order end, I'd say no.  Add, not replace.

Bob

On 8/8/2015 4:17 PM, esst...@juno.com wrote:
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 <deerh...@ix.netcom.com>
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: LOADING An AMODE64 Program
Date: Sat, 8 Aug 2015 12:11:12 -0400

On 8/8/2015 10:29 AM, esst...@juno.com 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