>IARST64 will mess up the first half of the register if do not use 
regs=save. 

It will mess up a lot more than that. As documented,
When control returns to the caller, the 64-bit GPRs contain: 
...
2-12 
Unchanged if REGS=SAVE was specified, used as work registers by the system 
if REGS=USE was specified. 

>Must have 144 byte savearea to use regs=save. 
That is documented: 
REGS=SAVE 
    indicates to save and preserve the contents of
    64-bit GPRs 2 - 12 starting at offset 40 in a 
    144 byte area pointed to by register 13.      

However, the input registers section is incorrect/incomplete. It says 
"none" but should mention reg 13 must be set when REGS=SAVE. I will get 
that fixed.

>The REASON code returned is not valid if RC=0.
This is true for most z/OS services.

>To use LINKX and other macros make sure SYSSTATE AMODE64= is correct 
>for calling program. It will create AD (address double word) variables 
>for the parameter addresses in AMODE64=YES. 

That is not fully correct. SYSSTATE AMODE64 relates only to the invoker. 
But it does play into the default.
This is why there are PLIST8 and PLIST4 keywords on LINKX. PLIST8 
indicates that parameter list slot is 8-bytes.
It is the caller's requirement to have the parameters set up the way the 
callee needs.


Peter Relson
z/OS Core Technology Design

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to