I learned some more information:
• MVC does not work. Implications: Can only use instructions that are
modal or have G on them (I wasn't sure so I tested it).
• IARST64 will mess up the first half of the register if do no use
regs=save. It uses R12. Use regs=save
• Must have 144 byte savearea to use regs=save. The REASON code returned
is not valid if RC=0.
• 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. (Scott: This may answer your questions
about the parms passed).
I have an interesting problem. I put a DC X'00' instruction as the very first
instruction in my AMODE 64 program. It abended as expected but look at R15!
+TEST64 CSECT
+TEST64 AMODE 64
+TEST64 RMODE 24
DC x'00'
SYSTEM COMPLETION CODE=0C1 REASON CODE=00000001
TIME=11.02.25 SEQ=57325 CPU=0000 ASID=001B
PSW AT TIME OF ERROR 078D0001 8000771A ILC 2 INTC 01
ACTIVE LOAD MODULE ADDRESS=00007718 OFFSET=00000002
NAME=TEST642
DATA AT PSW 00007714 - 00000000 0000EBEC D0180024
GR 0: FD000008 1: 00006FF8
2: 00000040 3: 007D99D4
4: 007D99B0 5: 007FF350
6: 007CAFE0 7: FD000000
8: 007FCD48 9: 007D3CC8
A: 00000000 B: 007FF350
C: 832A7CDA D: 00006F60
E: 00FDD9E0 F: FFFFF002
Of course I use R15 as a base register on entry... Anyone have any ideas?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN