複数パーツ・プログラム・オブジェクト

変更の始まり特定の場合、バインダーは複数のセグメントに渡るプログラム・オブジェクトを作成します。 このタイプのモジュールをロードする場合、各セグメントは異なるロード・ポイントを持ちます。 バインダーは、現在はクラスの RMODE およびロード時間 (初期または据え置き) を基準にしてモジュールをセグメントに分割しています。すべての入力が、従来のオブジェクト・モジュール (XOBJ や GOFF ではない) またはロード・モジュールからである場合、複数パーツ・モジュールは RMODE(SPLIT) が指定された場合のみ作成されます。アセンブラー CATTR サポートを使用してユーザー定義のテキスト・クラス (GOFF オブジェクト・フォーマットでのみサポート) を作成する場合、あるいはコンパイラーによる GOFF または XOBJ オブジェクト・モジュールが入力データの一部である場合、B_TEXT 以外のテキスト・クラス も作成可能です。これらの追加の初期ロード・テキスト・クラスの RMODE を使用して、これらの各クラスを 2 つ以下のセグメントに割り当てます。さらに、C_WSA のような据え置きのロード・クラスは、別々のセグメントに配置されます。 セグメントの分割を無効にする外部のバインダーはありません。 複数パーツのモジュールには、一定の制限が適用されます。変更の終わり

高水準アセンブラーの機能を使用する場合、あるいはバインダー RMODE(SPLIT) オプションを使用 して複数パーツのプログラム・オブジェクトを作成する場合には、一定の制限があります。
  • モジュールが指示されたロード (LOAD の送出側がモジュールをロードするストレージを用意して いる) のターゲットである場合、2 つのクラス・セグメントは連結され、単一の単位として ストレージにロードされます。
  • すべてのエントリー・ポイント (基本および代替) は、同じクラスで定義する必要があります。
  • プログラムのパーツが 16 MB より上にある場合は、モジュール全体が AMODE(31) で実行できること、 または 16 MB 境界の反対側のセクション間のリンケージでは、BASSM または同等の命令を使用して、 必要な場合には強制的に AMODE 切り替えができることを確認しておく必要があります。
  • バインダー・オプション HOBSET によって、 ターゲットのアドレッシング・モードに応じて V タイプ・アドレス定数の上位ビットが設定されます。
  • オーバーレイ形式は複数パーツのプログラム・オブジェクトとは互換性がありません。

複数パーツのプログラム・オブジェクトが、指示されたロード を介して、 またはバインダーによって次々とロードされる場合は、ロードされる全クラスの中で最小 の RMODE 値に従って、すべてのテキスト・クラスが連続したストレージのロケーションにロード されます。