Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Resolving external references above 16 Mb

In BLSSERV up to and including V2.4A the following rules apply for resolving external references:

  1. PROGRAM-MODE=24 in the load command or
    PROGMOD=24 in the BIND macro:

    External references are exclusively resolved with symbols which are loaded below 16 Mb.

  2. PROGRAM-MODE=*ANY in the load command or
    PROGMOD=ANY in the BIND macro:

    External references are resolved with symbols which are loaded below or above 16 Mb.

If a load unit is loaded with PROGRAM-MODE=*ANY (or PROGMOD=ANY), external references can also be resolved in accordance with these rules with symbols which are loaded above 16 Mb. However, if this load unit has to run in AMODE 24 (for example because of the caller’s AMODE attribut), this results in errors.

To prevent such inconsistencies, additional AMODE checks can be performed when loading with BLSSERV V2.5A or higher. The AMODE-CHECK operand in the START-/LOAD-EXECUTABLE-PROGRAM command (or AMODCHK in the BIND macro) is used to control whether these additional checks are made.

When AMODE-CHECK=*STD (default value), the behavior when loading and resolving external references is compatible with the earlier versions of BLSSERV. BLSSERV decides whether or not external references with modules above 16 Mb can be resolved on the basis of the PROGRAM-MODE operand, the pseudo-RMODE of the loaded objects and the AMODE attribute of the calling program.
This can result in errors occurring like those described above.

When AMODE-CHECK=*ADVANCED, the AMODE attribute of the load unit is also taken into account to decide whether external references can also be resolved with modulesabove 16 Mb. Thus if a load unit receives an AMODE attribute of 24 after its first module has been loaded, the rest of the load unit must be loaded below 16 Mb and external references of this load unit are only satisfied with symbols which can be loaded below
16 Mb.