バージョン 4.2.5
 —  オペレーション  —

Natural アプリケーションでのダイナミック再ロード可能 3GL プログラムの呼び出し

このドキュメントでは、Natural アプリケーション内でダイナミック再ロード可能 3GL プログラムを呼び出すときに適用されるアドレスモードの選択ルールについて説明します。

以下のトピックについて説明します。


ストレージ割り当てルール

ダイナミック再ロード可能 3GL プログラムが 16 MB 境界より上または下のどちらにロードされるかは、BS2STUB マクロのキーワードパラメータ PROGMOD に基づきます。

パラメータ 説明
PROGMOD=ANY プログラムは 16 MB 境界より上または下にロードされます。

どちらにロードされるかは、アプリケーションのアドレスモードと、ロードされる 3GL プログラム内の AMODE または RMODE ステートメントの存在によって決まります。

PROGMOD=24 3GL プログラムは常に 16 MB 境界より下にロードされます。

Top of page

スレッド作成ルール

Natural ユーザースレッドが 16 MB 境界より上または下のどちらに作成されるかは、NATUTM マクロのキーワードパラメータ NUAADDR と、NAMTIAM および NAMBS2 マクロの REQMLOC によって決まります。

Top of page

アドレスモードの依存関係

以下に、ダイナミック再ロード可能 3GL プログラムを呼び出すための生成コンフィグレーションで使用されるアドレスモードの概要を示します。

  1. ILCS または CRTE インターフェイスを使用した 3GL プログラム呼び出し

  2. ILCS または CRTE インターフェイスを使用しない 3GL プログラム呼び出し

  3. PEND PR を使用した Natural/UTM ドライバからの 31 ビット非対応 UTM 部分プログラム呼び出し

1. ILCS または CRTE インターフェイスを使用した 3GL プログラム呼び出し

'ILCS=YES' または 'ILCS=CRTE'

事例 アプリケーション生成に使用 3GL プログラム呼び出しに使用
1 PARMOD=31 または PARMOD=(31,ABOVE) AMODE=31
2 PARMOD=24 AMODE=24

2. ILCS または CRTE インターフェイスを使用しない 3GL プログラム呼び出し

'ILCS=NO'

事例 アプリケーション生成に使用 3GL プログラム呼び出しに使用
1 PARMOD=31

Natural ユーザースレッドは 16 MB 境界より上に配置され、3GL プログラムは 16 MB 境界より上または下にロードされます。

AMODE=31
2 PARMOD=31

Natural ユーザースレッドと 3GL プログラムは 16 MB 境界より下にロードされます。

AMODE=24
3 PARMOD=(31,ABOVE)

Natural ユーザースレッドは 16 MB 境界より上に配置され、3GL プログラムは 16 MB 境界より上または下にロードされます。

AMODE=31
4 PARMOD=(31,ABOVE)

Natural ユーザースレッドは 16 MB 境界より下に配置され、3GL プログラムは 16 MB 境界より下にロードされます。

AMODE=24
1. モジュール BS2GLUE が、ロードされる 3GL プログラムと同じライブラリにある必要があります。
または、モジュール BS2GLUE のロードモジュールライブラリが、STARTJOBBLSLIB として定義されている必要があります。
2. このようなコンフィグレーションが Natural/UTM アプリケーションで存在する場合は、キーワードパラメータ KBKB=NO として定義する必要があります。
5 Natural/UTM アプリケーションが PARMOD=31 を使用して作成されました。

Natural ユーザースレッドは 16 MB 境界より上または下に配置され、NURENT マクロのキーワードパラメータ CALLM31CALLM31=YES として定義されています。

AMODE=31

3. PEND PR を使用した Natural/UTM ドライバからの 31 ビット非対応 UTM 部分プログラム呼び出し

アプリケーションは PARMOD=31 を使用して生成され、NATUM マクロのキーワードパラメータ SWAMODESWAMODE=YES として定義されています。

Natural は、UTM KDCS インターフェイスの各呼び出しの前に元の 24 ビットアドレスモードに切り替わり、制御が UTM ドライバに返されると、31 ビットアドレスモードに切り替わります。

Top of page