EXEC CICS 文が含まれるアセンブラーのコピーブックとマクロのコンパイル

EXEC CICS 文が含まれるアセンブラーのコピーブックやマクロをコンパイルすると、エラー ASMCM0060S (不定長の操作コード) が発生します。これは、ファイル拡張子が .CAP ではなく .MLC の場合に生じます。

これらの拡張子の場合、EXEC CICS 文が、コピーブックまたはマクロのコンパイル前に前処理されていないためにこのエラーが発生します。アセンブラー コンパイラは、EXEC 文をマクロとして解釈しようとします。このため、上記の ASMCM0060S エラーが発生します。

EXEC CICS 文が含まれるアセンブラー モジュールのファイル拡張子が .CAP の場合、アセンブラーは、アセンブルの前にアセンブラー CICS プリプロセッサを実行するため、エラーは生じません。

拡張子が .MLC のアセンブラー ファイルでアセンブラー CICS プリプロセッサを実行するように、Enterprise Developer を設定することもできます。このためには、次の追加ステップを実行します。

  1. ソリューション エクスプローラーでプログラムを右クリックし、[Properties] をクリックします。
  2. [CICS Support] ページで次のビルド設定を指定して、[OK] をクリックします。
    1. [EXEC CICS] がオンになっていることを確認します。
    2. [Options] をクリックします。
    3. 必要に応じて、使用するアセンブラー モジュールの [Insert standard prolog macros (DFHEIENT, DFHEIEND & DFHEISTG)] および [Insert standard epilog macro (DFHEIRET)] をオンまたはオフにします。たとえば、モジュールで EXEC CICS 互換 PROLOG をコード化している場合、アセンブラー CICS プリプロセッサで PROLOG を挿入する必要はありません。
    4. [Close] をクリックします。
  3. モジュールをコンパイルします。ソリューション エクスプローラーでファイルを右クリックし、[Compile] をクリックします

    コンパイルすると、loadlib\<program name>.bal (マクロが展開されたプリプロセッサ出力) およびloadlib\<program name>.pac (マクロが展開されないプリプロセッサ出力) が作成されます。

  4. loadlib\<program name>.paccopylib\program name.cpy に適宜コピーします。

これで、コンパイルしてもエラーが発生しません。

注: 個別の Enterprise Developer プロジェクトを作成して、EXEC CICS 文が含まれるアセンブラーのコピーブックやマクロを処理することをお勧めします。これにより、特殊な処理が必要なプロジェクトと他のプロジェクトを区別できます。