PROGRAM-MODE=24 (default)
DBL evaluates these operands as follows:
The load unit is loaded below 16 Mb.
External references are resolved only with CSECTs or ENTRYs located below 16 Mb.
24-bit addressing mode is set.
Loading of the load unit is aborted with an error message if it contains a CSECT with the AMODE 31 attribute.
PROGRAM-MODE=ANY
Each module of the load unit can be loaded above or below 16 Mb. The load address is dependent on the RMODE attributes of the CSECTs contained in the module.
If the module contains a number of CSECTs, DBL defines a (pseudo-)RMODE that is derived from the RMODE attributes of the individual CSECTs as follows:
The module is assigned the attribute pseudo-RMODE ANY only if all CSECTs contained in it have the RMODE ANY attribute.
If at least one CSECT has the attribute RMODE 24, the module also is assigned the attribute pseudo-RMODE 24.
If AMODE-CHECK=*ADVANCED is specified, the AMODE attribute of the load unit is also used to determine the (pseudo-)RMODE and load address of the load unit.
When AMODE-CHECK=*STD the load address is determined by the (pseudo-)RMODE as follows:
(Pseudo-)RMODE | |
24 | All load unit modules are loaded below the 16 MB boundary |
ANY | All load unit modules are loaded above the 16 MB boundary |
When AMODE ANY is set, the addressing mode is determined by the location of the entry point. If this is below 16 Mb, 24-bit addressing mode is set; if it is above 16 Mb, 31-bit addressing mode is set.
With AMODE-CHECK=*ADVANCED, the following applies:
If after the first module of the load unit has been loaded 24 was determined as AMODE attribute, all other modules of the load unit are loaded below 16 Mb.