ALL31(ON) is only relevant for dynamic CALLs, and it is as Frank has described 
- no switching, and if you CALL an AMODE(24), dynamically, you'll likely break.

Your resultant loadmodule is less than 16MB, and, when loaded, fits within the 
available memory below the line. How close you are to exhausting that memory 
with a minor increase in storage is unknown from what you have said.

You are "getting away with it". 

The map of the loadmodule, produced by the program binder, will confirm this. 

I think if you go over 16MB the binder will complain, but it has no way of 
knowing what memory is available of the 16MB for when your program is loaded, 
so you can have a loadmodule which binders successfully, but won't fit in the 
memory available - if you have a change which adds sufficient memory.

You should be able to test this fairly easily. Find the size of the loadmodule, 
add storage so that it is close to, but not, 16MB, and try to load it.

If no other handy methods, a quick "binary chop" will get a reasonable 
"maximum" size you can load, and you can compare your actual loadmodule size to 
that, to know how much leeway you have.

If that is not enough leeway, you will have to make the assembler happy with 
31-bit addressing which will allow you to fully binder greater than 16MB with 
everything static, or go with dynamic CALLs to the assembler and have LE do its 
work, using ALL31(OFF) so you get the switching.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to