This document contains rules for address mode selection that apply when dynamically reloadable 3GL programs are called in a Natural application.
The following topics are covered:
Whether a dynamically reloadable 3GL program is loaded above or below
the 16 MB line depends on the keyword parameter PROGMOD
for macro BS2STUB
.
Parameter | Explanation |
---|---|
PROGMOD=ANY |
The program is loaded above or below the 16 MB line.
This depends on the application's address mode and on the possible
existence of |
PROGMOD=24 |
The 3GL program is always loaded below the 16 MB line. |
Whether the Natural user thread is created above or below the 16 MB line
depends on the keyword parameters NUAADDR
for macro
NATUTM
and on REQMLOC
for the macros
NAMTIAM
and NAMBS2
.
The following paragraphs give you an overview of which address mode is used in which generation configuration to call dynamically reloadable 3GL programs.
Calling of 3GL programs without using the ILCS or CRTE interface
Calling of UTM partial programs which are not 31-bit enabled from Natural/UTM driver via PEND PR
'ILCS=YES'
or 'ILCS=CRTE'
Case | The application was generated with | The 3GL program is called with |
---|---|---|
1 | PARMOD=31 or PARMOD=(31,ABOVE) |
AMODE=31 |
2 | PARMOD=24 |
AMODE=24 |
'ILCS=NO'
Case | The application was generated with | The 3GL program is called with | |
---|---|---|---|
1 | PARMOD=31
The Natural user thread is located above the 16 MB line and the 3GL program is loaded above or below the 16 MB line. |
AMODE=31 |
|
2 | PARMOD=31
The Natural user thread and the 3GL program are located below the 16 MB line. |
AMODE=24 |
|
3 | PARMOD=(31,ABOVE)
The Natural user thread is located above the 16 MB line and the 3GL program is loaded above or below the 16 MB line. |
AMODE=31 |
|
4 | PARMOD=(31,ABOVE)
The Natural user thread is located below the 16 MB line and the 3GL program is loaded below the 16 MB line. |
AMODE=24 |
|
1. | The module BS2GLUE must be located in the same
library as the loaded 3GL program, or the load module library for module BS2GLUE must be defined as BLSLIB in the
STARTJOB .
|
||
2. | If such a configuration exists in the case of a Natural/UTM
application, the keyword parameter KB has to be defined
as KB=NO .
|
||
5 | A Natural/UTM application was
generated using PARMOD=31 .
The Natural user thread is located below or above the 16 MB line
and keyword parameter |
AMODE=31 |
The application was generated using PARMOD=31
and the
keyword parameter SWAMODE
for macro NATUM
is defined as SWAMODE=YES
:
Prior to each calling of the UTM KDCS interface, Natural switches back to the 24-bit address mode, and when control is returned to the UTM driver, a switch-back occurs to the 31-bit address mode.