言語環境プログラムの環境で、PL/I ルーチンを呼び出すアセンブラー・プログラム は、言語環境プログラムによって定義される呼び出し規則に準拠している必要があります。 例えば、レジスター 13 が保管域を指していること、 保管域の反復チェーニングが正しく行われていること、 保管域の最初のワードが 0 であることなどが必要です。 詳細は、「z/OS 言語環境プログラム プログラミング・ガイド」を参照してください。
OS PL/I メインプログラムがアセンブラー・プログラムから呼び出される場合、 アセンブラー・プログラムを変換して、言語環境プログラム準拠のアセンブラーを使用する には、OS PL/I プログラムを OPTIONS(MAIN) を指定せずに再コンパイルするか、 または、エントリー・ポイント受取制御が PL/I プログラムの 本当のエントリー・ポイントになるようにする必要があります。 どちらの場合にも、呼び出し先の PL/I プログラムはサブルーチンとして扱われます。 両方の場合とも、呼び出し先のプログラムは同じ言語環境プログラムの別プログラムの下で 実行されます。この別プログラムでは、アセンブラー・プログラムがメインプログラムで、 呼び出し先の PL/I プログラムがサブルーチンです。
言語環境プログラムに準拠するアセンブラーのメインプログラムは、言語環境プログラム PL/I 固有の ランタイム環境が初期化されるようにするために OS PL/I サブルーチンを呼び出す 場合、言語環境プログラムのPL/I for MVS & VM のシグニチャー CSECT である CEESG010 を明示的にインクルードする 必要があります。 言語環境プログラム準拠のアセンブラーが OS PL/I サブルーチンに 制御を渡すには、次の 3 つの方法があります。
アセンブラーからの LINK の条件処理動作が明確に定義されました。 詳細は、「z/OS 言語環境プログラム プログラミング・ガイド」を参照してください。