A more modern (over 20 years old by now?) would suggest not having a USING for your "code" at all, but rather using relative branch with one register set up to point to your static data and a USING for that. It is relatively infrequent that your static data would exceed 4K, and even if it did you could often use long-displacement instructions to access any data that is more than 4K from the beginning. In some cases you might be able to take advantage of the "immediate" instructions and not even need access to static data.
The IEABRCX macro can help in modules that want to use relative branch, particularly if they invoke system macros. Also be sure to identify the architecture level that macros are allowed to assume you are running with, via SYSSTATE ARCHLVL=. Some macro expansions might need local code register addressability, but that is usually easy to provide. Peter Relson z/OS Core Technology Design ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
