DATA

AMODE"31" または AMODE"64" プログラムによって渡されたデータ部項目へのポインターに対する AMODE"24" または AMODE"31" プログラムからのアクセスをそれぞれ有効にします。

構文:

 >>-.---.--------DATA--"format"-------------><  
    +-/-+ 

パラメーター:

format
データ部のロード方法:
24
データ部を「below-the-line」でロードします。
31
データ部を「above-the-line」でロードします。
64
データ部を「above-the-bar」でロードします。

プロパティ:

デフォルト: AMODE"31" が設定されている場合は DATA"31"。AMODE"64" が設定されている場合は DATA "64"。
段階: 構文チェック
$SET: 最初の行

依存関係:

AMODE"31" により、DATA"31" が設定されます。AMODE"64" により、DATA"64" が設定されます。

説明:

DATA 指令を使用すると、AMODE"31" または AMODE"64" プログラムを使用してコンパイルされたプログラムのデータ部をロードする場所を制御できます。

COBOL ランタイム システムは、AMODE 指令でコンパイルされたプログラムをロードすると、プログラムのデータ部をメインフレーム ポインター マネージャー (MFPM) に「above-the-line」、「below-the-line」、または「above-the-bar」として登録します。AMODE"31" を指定した場合は「above-the-line」として登録され、AMODE"24" を指定した場合は「below-the-line」として登録され、AMODE"64" を指定した場合は「above-the-bar」として登録されます。その後に AMODE プログラムによって実行されるすべての POINTER 変数の操作で、MFPM から割り当てられたメインフレーム アドレスが使用されます。

AMODE"31" でコンパイルされたプログラムのデータ部の項目を扱う POINTER 変数が AMODE"24" プログラムに渡されなければ、AMODE"31" でコンパイルされたプログラムと AMODE"24" でコンパイルされたプログラムが同じ実行単位に含まれていても問題ありません。同様に、AMODE"64" でコンパイルされたプログラムのデータ部の項目を扱う POINTER 変数が AMODE"31" プログラムに渡されなければ、AMODE"64" でコンパイルされたプログラムと AMODE"31" でコンパイルされたプログラムが同じ実行単位に含まれていても問題ありません。

ただし、そのような POINTER が渡されると、エラー 114 のほか、予期しない実行動作が発生することもあります。

メインフレームの VS COBOL II および Enterprise COBOL for z/OS コンパイラには、AMODE"31" プログラムのデータ部の場所を制御する DATA コンパイラ オプションがあります。同様に、Enterprise COBOL 6.3 for z/OS コンパイラには、AMODE 64 COBOL プログラムで指令に続く作業場所節内のデータ項目の場所を指定できる DATA 指令があります。

デフォルトでは、AMODE"31" プログラムに対しては DATA"31"、AMODE"64" プログラムに対しては DATA"64" が設定され、それぞれ 16MB 行または 2GB 境界よりも上にデータ部が割り当てられます。AMODE"31" を使用してコンパイルされたプログラムから AMODE"24" にデータを渡す必要がある場合は、DATA"24" を指定することで 16MB 行よりも下にデータ部を割り当てることができます。同様に、AMODE"64" を使用してコンパイルされたプログラムから AMODE"31" にデータを渡す必要がある場合やその逆の場合は、DATA"31" を指定することで 2GB 境界よりも下に AMODE"64" プログラムのデータ部を割り当てることができます。DATA(24|31) および LP(32|64) コンパイラ オプションと DATA 指令、および混合 AMODE アプリケーションの詳細については、『VS COBOL II Application Guide』および『Enterprise COBOL for z/OS, v6.3 Programming Guide』を参照してください。

AMODE"31" で DATA"24" を指定するとデータ部を 16MB 行よりも下にロードでき、AMODE"64" で DATA"31" を指定するとデータ部を 2GB 境界よりも下にロードできます。

DATA 指令は AMODE"24" では使用できません。

AMODE"64" プログラムは 64 ビットのランタイム環境でのみサポートされるため、AMODE"64" プログラムを呼び出すか AMODE"64" プログラムから呼び出される AMODE"31" プログラムは P64 指令を使用してコンパイルする必要があります。現在、AMODE"64" プログラムと AMODE"31" プログラムの間の呼び出しは、.NET/JVM COBOL 64 ビット ランタイム環境ではサポートされていません。

DATA 指令は、ポインター項目が固有マシン形式であると想定される Micro Focus のライブラリ ルーチンや外部 API を呼び出すプログラムには使用できません。