For non-executable, RMODE is what you want, not AMODE. AMODE applies only 
to code running in the module that identifies the AMODE.  And of course 
there is no such code in a non-executable module. So RMODE 64 would be the 
"right thing".

But the binder does not support RMODE 64 at this point. It will some day.

I get 
IEW2618I 4B40 RMODE 64 ESD ATTRIBUTES HAVE BEEN CHANGED TO RMODE ANY. 

I don't know the reason that the assembler (and binder) have historically 
chosen not to flag "short" adcon's.
This is demonstrable with a module that is "RMODE 31" but has DC 
AL3(theMod).

TEST     CSECT 
TEST     RMODE 31 
         DC  AL3(TEST)
         END 

Certainly an option could be added to do this sort of validation. A 
customer requirement for such a thing would always be helpful (perhaps 
this is one already, I have no idea).

And I will re-iterate: LOAD with ADDR (or ADDR64) ignores the RMODE and 
assumes the user knows what they're doing.
That is where my caution came from. The module would be RMODE 31 (so a 
4-byte relocatable adcon is nominally fine) but would not survive if 
placed above 2G it relied upon that adcon. 

Peter Relson
z/OS Core Technology Design

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to