I'm basing everything I'm doing on the Principles of Operations manual (POM). The Z/Architecture is the final authority for any program even MVS. The linkage for PC instructions are handled by the linkage stack which fully supports 128 bit PSW and 64 bit registers. If it didn't, nothing that I'm doing would work. I've had STORAGE abends (B78 etc) and they get communicated to my RTM exit and the exit handles the 64 bit retry by retrying into a 31 bit stub that BSMs to the actual retry. It's important that I mention that even in PC calls, I insure that all parameters are below the bar. And if a problem ever did occur, I would simply start relocating PC calls below the bar as well. This methodology works for BLDL so I can't see why it wouldn't work for STORAGE. I've been running RMODE64 since shortly after 1.13 became available without incident related to RMODE64 except program bugs. All of this probably works because the RMODe64 programs define a 31 bit RTM exit and 31 bit retries.
I understand your objection to LOAD with ADDR=. The fact that the code is not identified can be problematic. But the nucleus solves this problem by using load tables (CVT, SVT, SFT, etc) and provides a service, NUCLKUP. I have simply adopted that methodology; a load table with a RESOLVE command that is also PC intelligent. It's not difficult to extract the LTOR and resolve the entry tables. The POM describes the architecture very thoroughly. I actually don't use ADDR64=. During server initialization, I have to load the code to verify whether or not the code has changed. Since all of the code is self-relocating (no ESDs or RLDs), if it has changed, I simply MVCL it into the common memory object. At the end of initialization, I also DAT protect the code area so that essentially, except for the fact that it can't be identified, it's just like an LPA above the bar. If there were a way to identify RMODE64 code, I would use it. Kenneth -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Peter Relson Sent: Thursday, July 11, 2013 6:28 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Dynamic LPA Services RMODE64: Perhaps you are not aware that z/OS provides support for RMODE 64 routines only when they call no system services. If that was your case, then great. But apparently it isn't since you mentioned STORAGE and ESTAEX and CSVQUERY which certainly do not document that they support RMODE 64 invocation. You are taking a risk. Is it worth it? Presumably you are using LOAD with ADDR64 rather than LOAD with ADDR. Perhaps I misread your original post, but I thought it said LOAD with ADDR. I still fully stand by the statement that lOAD with ADDR= to common storage should not be used for programs any longer. LOAD with ADDR64, it is true, has no dynamic LPA equivalent so to the extent you have a routine that properly qualifies, there can be benefit. 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 ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN