I'll admit that I have never found my way to this section of this book 
before. It's not something I would have approved.

>AsaAmode64CallerAmode31 
>(etc)

I'm afraid that those names were not supposed to be in the book.
They are not provided as assembler equates in any IBM-supplied macro.

The intent was for the table to be description and value, not "constant 
name" and value. And it applies to more than ATTACH.

It should be something like this 

In AMODE 64, ATTACH(X), LINK(X), SYNCH(X), and XCTL(X) provide control to 
the target routine with register 15 (R15) containing the "OR" value of 
x'00000000FFFFF000' with the addressing-mode values as shown in the table 
below; it does not contain the module entry point address as it did in 
AMODE 31. 

Table 21. Register 15 Contents on Entry in AMODE=64 
Macro issuer's addressing-mode  R15 Contains x'00000000FFFFF000' "OR'd" 
with
31                                    X'00000002'
64                              X'00000004'

(and the BASSM line with FFFFF001 really does not apply, since there is no 
relative-branch BASSM.)

It is only when dealing with parameters that the invoker's AMODE is 
typically relevant.

The general rule is that an AMODE 64 target should not expect that 
register 15 contains a value that can be used as an address.

Peter Relson
z/OS Core Technology Design

Reply via email to