It is my recollection that RMODEX=64TRUE was introduced to inform the binder to 
override its default processing which determines the RMODE of a class (e.g., of 
a load module) based on the lowest common denominator of the RMODEs it finds 
defined (such as associated with each CSECT). 
Before RMODE 64 was supported, the assembler allowed RMODE 64 and, according to 
previous posts, metal C used it (this usage was pretty dumb, IMO). 
The binder explicitly treated that RMODE 64 attribute as RMODE ANY (there's 
even a message).Thus the effective lowest common denominator when all CSECTs 
had RMODE 64 was RMODE ANY.
It would have been dangerously incompatible, when RMODE 64 was supported, to 
honor, all of a sudden, the attribute that had been previously treated in a 
different fashion. That could easily have broken many programs.
RMODEX=64TRUE says "trust me, I know what I'm doing with the RMODE 64 
attribute, so if you see RMODE 64 then treat it as RMODE 64". As a result, when 
all CSECTs have RMODE 64, and RMODEX=64TRUE is in effect, the result is RMODE 
64.
The RMODE=64 parameter option is a different matter entirely. That can be 
viewed as saying "I don't care what the CSECTs say, trust me, make this module 
RMODE 64" so you're already taking responsibility for any error you might have 
introduced within the CSECTs.
Peter Relson

----------------------------------------------------------------------
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