CSECTs are restricted to 16MB only if you generate traditional OBJ
object files, because its length and address fields are 3 bytes long.
As Peter said, the total length in a single assembly will be less
than 16M.

*BUT* if you specify the NOTHREAD option you can have as many very
larget CSECTs as you like:

*PROCESS NOTHREAD
A  START 0
   DS    4095XL4096
B  CSECT
   DS    4095XL4096
C  CSECT
   DS    4095XL4096
D  CSECT
   DS    4095XL4096
   END

The NOTHREAD option also helps in debugging multi-CSECT assemblies
because each CSECT's origin is zero, so you don't have to subtract
the non-zero origin(s) HLASM generates if the (default) THREAD
option is specified.

John Ehrman
    (------------------ Referenced Note Follows --------------------)
Date:    Sun, 7 Jun 2009 09:16:40 -0400
From:    Peter Relson <rel...@us.ibm.com>

<...>
>By experiment, I discover that HLASM won't let me create a CSECT
>16MiB.  It won't let me create a program with multiple CSECTs
>totalling >16 MiB(?!)

The binder has a restriction of (on the order or) 2G. Obviously HLASM
cannot possibly restrict you from combining multiple CSECTs into anything
you want, but the binder can. HLASM could have a restriction such as 16M
on the cumulative size of CSECTs within a single assemly unit (I have no
idea if that is the case) It is the case that a load module cannot exceed
16M. But a program object can. The load module restriction is due to
limitations in the PDS directory entry.

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

Reply via email to