This document contains rules for address mode selection that apply when dynamically reloadable 3GL programs are called in a Natural application.
This section covers the following topics:
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 openUTM 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 openUTM KDCS interface, Natural switches back to the 24-bit address mode, and when control is returned to the openUTM driver, a switch-back occurs to the 31-bit address mode.