EXEC CICS 文が含まれるアセンブラのコピーブックやマクロをコンパイルすると、エラー ASMCM0060S (不定長の操作コード) が発生します。これは、ファイル拡張子が .CAP ではなく .MLC の場合に生じます。
これらの拡張子の場合、EXEC CICS 文が、コピーブックまたはマクロのコンパイル前に前処理されていないためにこのエラーが発生します。アセンブラ・コンパイラは、EXEC 文をマクロとして解釈しようとします。
このため、上記の ASMCM0060S エラーが発生します。
EXEC CICS 文が含まれるアセンブラ・モジュールのファイル拡張子が .CAP の場合、アセンブラは、アセンブルの前にアセンブラ CICS プリプロセッサを実行するため、エラーは生じません。
拡張子が .MLC のアセンブラ・ファイルでアセンブラ CICS プリプロセッサを実行するように、Enterprise Developer を設定することもできます。このためには、次の追加ステップを実行します。
- プログラム名を右クリックして、ポップアップ・メニューでモジュールの [Build Settings] をクリックします。
- [Preproc] タブで次のビルド設定を指定して、[OK] をクリックします。
- [EXEC CICS] がオンになっていることを確認します。
- [More] をクリックします。
- 必要に応じて、使用するアセンブラ・モジュールの [Insert standard prolog macros (DFHEIENT, DFHEIEND & DFHEISTG)] および [Insert standard epilog macro (DFHEIRET)] をオンまたはオフにします。例えば、モジュールで EXEC CICS 互換 PROLOG をコード化している場合、アセンブラ CICS プリプロセッサで PROLOG を挿入する必要はありません。
.
- [Close] をクリックします。
- モジュールをコンパイルします。
コンパイルすると、loadlib\<program name>.bal (マクロが展開されたプリプロセッサ出力) およびloadlib\<program name>.pac (マクロが展開されないプリプロセッサ出力) が作成されます。
- loadlib\program name.pac を copylib\program name.cpy に適宜コピーします。
-
これで、コンパイルしてもエラーが発生しません。
注:個別の
Enterprise Developer プロジェクトを作成して、EXEC CICS 文が含まれるアセンブラのコピーブックやマクロを処理することをお奨めします。これにより、特殊な処理が必要なプロジェクトと他のプロジェクトを区別できます。