メインフレーム形式のポインターの算術演算を実行する際のサポートを提供します。
構文:
>>-.---.-.-------AMODE--"format"---.---------><
+-/-+ +---NO--AMODE-------------+
パラメーター:
- format
- ポインターの保存形式:
- 24
- すべてのポインターを 24 ビット形式で保存します。この形式は、メインフレーム上の「境界の下位」の記憶域と互換性があります。連絡項目のアドレスがポインターによって設定された際、ポインターのトップの 8 ビット分のマスキングが外されます。つまりメインフレーム上と同様に、トップの
8 ビット分をユーザーのコードで直接操作できます。
- 31
- すべてのポインターを 31 ビット形式で保存します。この形式は、メインフレーム上の「境界の上位」の記憶域と互換性があります。連絡項目のアドレスがポインターによって設定された際、ポインターのトップの 1 ビット分のマスキングが外されます。つまりメインフレーム上と同様に、トップの
1 ビット分をユーザーのコードで直接操作できます。
- 64
- すべてのポインターを 64 ビット形式で保存します。この形式は、メインフレーム上の「境界の上位」の記憶域と互換性があります。Enterprise COBOL 6.3 for z/OS コンパイラで導入された LP(64) ココンパイラ オプションを使用して有効化されます。
プロパティ:
デフォルト: |
NOAMODE |
段階: |
構文チェック |
$SET: |
最初の行 |
依存関係:
AMODE"31" により、DATA"31" が設定されます。AMODE"64" により、DATA"64" が設定されます。AMODE"64" では、DIALECT"ENTCOBOL" と P64 の両方の指令を設定する必要があります。
説明:
一般に、本指令でコンパイルするプログラムを選択する際に発生する可能性がある問題を軽減するために、アプリケーション内のすべてのプログラムで AMODE 指令を使用し、各サブプログラムの形式に同じ値を使用することを強くお勧めします。
AMODE 指令は、ポインター項目が固有マシン形式であると想定される Micro Focus のライブラリ ルーチンや外部 API を呼び出すプログラムのほか、CBL_ALLOC_* または CBL_FREE_* のいずれかのライブラリ ルーチンを使用するサブプログラムには使用できません。また、用途が PROCEDURE-POINTER と定義された項目に対しては効果はありません。
アセンブラー プログラムを呼び出すアプリケーションをコンパイルする場合は AMODE が必須です。
メインフレームでは、Enterprise COBOL 6.3 for z/OS リリースで LP(64) コンパイラ オプションを使用した AMODE 64 のサポートが導入されています。これにより、COBOL プログラムで 64 ビットのアドレス空間に完全にアクセスできます。AMODE"64" 指令はこれをエミュレートし、64 ビットのメインフレームの POINTER 型のサポートを提供します。LP(64) コンパイラ オプションの詳細については、「Enterprise COBOL for z/OS Programming Guide」を参照してください。
AMODE"64" 指令セットでコンパイルされるプログラムには、XML GENERATE/PARSE、JSON GENERATE/PARSE、ALTER、GO TO、および DISPLAY ...UPON SYSPUNCH 文を含めることはできません。
NOAMODE が設定されている場合、POINTER 変数は実際のポインターです。ポインター項目は想定どおりに動作します。メインフレーム ポインターとの互換性はサポートされていません。