Paul Gilmartin's notion that "HLASM won't let" him create "a program" more than 
16 megabytes in size is a vile canard.  

 

The HLASM is guiltless in this matter.  It is the Linkage Editor that 
interdicts load modules that are more than sixteen megabytes in size.  
(Moreover, this is not hot news; it is one of the notorious limitations of the 
Linkage Editor.)

 

To get something bigger one must use the Binder to make a program object, which 
must be resident in a PDSE.  (They too are or were limited in size, notionally 
to one gigabyte.)

 

GOFF, which Edward Jaffe has already mentioned, is the key to this and much 
else.  In particular, the two GOFF options:

 

o EXECUTABLE, may be branched to, and

 

o NOTEXECUTABLE. may not be branched to, contains only data,

 

must be understood.  (This unfortunate terminology needs some getting used to.  
Historically linkage-editor output that was not executable was defective; here 
this is not the case.)  

 

Moving now to matters of opinion, I cannot imagine a sane use for an EXECUTABLE 
object that is more than 2 gigabytes or indeed 16 megabytes in size.  (I can  
imagine uses for a a bound-together set of tables that is more than 16 
megabytes in size, but that is a different matter.)

 

The question where such an object may be put, above or below the line, or above 
or below the bar, needs to be distinguished carefully from how big it is and 
from its addressing mode.

 

In the limit there are, of course, interactions: a program object larger than 
16 megabytes cannot be placed below the line since there are only 2^24 = 16 
megabytes (not all of which are available) there.  

 

Or again, the bar is at two gigabytes.  If the current restriction were relaxed 
to make the construction of a program object larger than one gigabyte by the 
Binder possible, it would still not be possible to load, say, a two-gigabyte 
program object below the bar because it would not fit there (leaving any room 
the the nucleus).

 

These things conceded, the interesting questions are different ones.  
Currently, for example, AMODE64 addressing is entirely possible below the bar 
(or indeed below the line).  It is done constantly.  

 

Two important operations are not, however, yet feasible.

 

First, the direct loading of something above the bar is still infeasible.  One 
must first load that something below the bar (or read it into storage below the 
bar), after which one can move it above the bar, using AMODE64 code located 
below the bar to do so.

 

Second, one cannot execute an EXECUTABLE program object of any size above the 
bar.

 

z/OS 1.11 will relax the first of these constraints, but it will apparently 
leave the the second intact.


John Gilmore Ashland, MA 01721-1817 USA



_________________________________________________________________
Lauren found her dream laptop. Find the PC that’s right for you.
http://www.microsoft.com/windows/choosepc/?ocid=ftp_val_wl_290
----------------------------------------------------------------------
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