SYSSTATE sets a global variable that many IBM macros refer to so they can
generate different code for AMODE 64.  For example CALL expands parameter
lists with 8-byte addresses when set.  It has effect only at assembly time,
and doesn't actually set the AMODE.  It's analogous to USING on a register
vs. loading the register.

Basically, AMODE and RMODE are load module/program object attributes.  The
assembler merely passes them through.  They control how the system loads
and invokes your module.

These are all independent, and can be manipulated to suit your needs.  As
usual, there is plenty of flexibility to do things that make no sense, so
it's appropriate to take the time to figure it all out :-).

sas

On Tue, May 5, 2015 at 10:48 AM, Brite <
[email protected]> wrote:

> Thanks everyone for all the helpful info. The program does use SAM64 to
> switch to AMODE(64) before issuing IARV64 to get storage above 2GB. And use
> SAM31 to switch back. So the attribute of load module after LNKEDT really
> doesn't matter. Is this correct? The program also use SYSSTATE AMODE64=YES
> at the beginning. Will this also override the AMODE of the load module?
>



-- 
sas

Reply via email to