On 11/30/2010 7:43 PM, Gerhard Adam wrote:
How would you branch to code above the 2GB bar, since none is allowed there?

You can use an ordinary branch instruction (e.g., BASSM 14,15) to branch to code above the bar. If you're running enabled, you won't execute for long... :-D

The obvious problem being how you would even get it loaded up there.

Of course, a program can use MVCL to copy some self-relocating executable code to an area above the bar. It is also possible to load certain program objects above the bar using ordinary operating system services:

<MVS Program Management: User's Guide and Reference>
2.4.2  Residence mode
...
RMODE(64) RMODE(64) is treated as RMODE(ANY) for module loading and
          execution, with the exception of data class C_WSA64, which can
          be loaded above the 2-gigabyte bar. The map in the binder
          listing and ESD records obtained from program objects through
          the binder API (for example, by the AMBLIST service aid) will
          show the original RMODE.

          Note:  ESD records input to the binder may be marked as RMODE
                 64, but RMODE(64) cannot be specified as a binder option.
</MVS Program Management: User's Guide and Reference>

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
[email protected]
http://www.phoenixsoftware.com/

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to