.-SIZE(MAX)---------------------------.
>>-+-------------------------------------+---------------------><
'-SIZE(-+-integerK----------------+-)-'
+-integerM----------------+
+-MAX,ABOVE---------------+
+-MAX-integerK-+--------+-+
| '-,ABOVE-' |
'-MAX-integerM-+--------+-'
'-,ABOVE-'
You use the SIZE option to specify the amount of virtual storage
available to the assembler to perform an in-storage assembly.
- Default
- SIZE(MAX)
- Abbreviation
- SZ
- Restrictions
- You cannot specify this option on *PROCESS statements.
- integerK
- Specifies the amount of virtual storage in 1024-byte (1 KB)
increments.
The minimum acceptable value is 200 KB (refer to Note 2).
- integerM
- Specifies the amount of virtual storage in 1048576-byte (1 MB)
increments.
The minimum acceptable value is 1 MB.
- MAX
- Specifies that the assembler requests all the available space
(refer to Note 3) in the user region (z/OS), or
virtual machine (CMS) or in the partition GETVIS (z/VSE).
- MAX-integerK
- Specifies that the assembler requests all the available space
(refer to Note 3) in the user region (z/OS), virtual
machine (CMS) or partition GETVIS (z/VSE) less the amount of integerK
of storage (1 KB equals 1024 bytes).
The minimum acceptable integerK
value is 1 KB.
- MAX-integerM
- Specifies that the assembler requests all the available space
(refer to Note 3) in the user region (z/OS), or
virtual machine (CMS) less the amount of integerK of storage
(1 MB equals 1048756 bytes).
The minimum acceptable integerM value
is 1 MB.
Note: - The maximum storage value you can specify might not be available
in the user region (z/OS), virtual machine (CMS), or in the partition
GETVIS (z/VSE), after storage has been allocated by the operating
system for I/O buffers, and so on.
- The minimum amount of working storage required by the
assembler is 200 KB or 10 times the work data set block size, whichever
is greater.
- When you specify the MAX suboption, the assembler releases
128 KB back to the user region (z/OS), virtual machine (CMS), or the
partition GETVIS (z/VSE), for system usage. When you specify the
MAX suboption, there might not be enough storage remaining in the
user region (z/OS), virtual machine (CMS), or the partition GETVIS
(z/VSE), to load any exits you specify, or any external functions
you use in your assembly or for operating system functions that might
be required during the assembly. If the assembly does fail due to
a lack of storage, then use MAX-integerK or MAX-integerM
to ensure that there is sufficient free storage during the assembly
for any of these functions.
- The assembler loads user I/O exits before it obtains the working
storage. If the user exit obtains storage, then it reduces the amount
available for the assembler.
- The assembler loads external function routines after it obtains
working storage. If you use external functions in your program, you
should reduce the value you specify in the SIZE option, to allow storage
space for the external function modules, and any storage they might
acquire.
- With High Level Assembler R6, the ABOVE operand is obsolete.
It is documented here for compatibility. The assembler ignores this
operand and always attempts to obtain the storage specified by the
SIZE option from above the 16 MB line. If storage above the 16 MB
line is not available, the assembler attempts to obtain the storage
from below the 16 MB line.
High Level Assembler acquires the amount of storage you specify
in the SIZE option from the user region (z/OS), virtual machine (CMS),
or partition GETVIS (z/VSE). The assembler only requires a work data
set when it has insufficient virtual storage to perform an in-storage
assembly. An in-storage assembly normally reduces the elapsed time
needed to complete the assembly.
The statistics in the Diagnostic Cross Reference and Assembler
Summary section of the assembly listing shows the amount of storage
the assembler allocated and the amount of storage the assembler used.
Specify a large enough value on the SIZE option to allow the assembler
to perform an in-storage assembly, otherwise you must provide a work
data set.
To reduce the amount of storage required by the assembly you can
disable some of the cross-reference sections of the assembler listing,
for example you can specify NOMXREF, NORXREF, or NOXREF. Additionally
if ADATA is not required then it should be disabled by specifying
NOADATA. Enabling of ADATA processing causes most of the cross-reference
processing to be done, even though the sections are not output to
the assembler listing.