DRAMモードでシステムセグメントに割り付けられた、マッパーRAMセグメントを再利用するための手順を紹介します。DRAMモードを考慮して、以下のように拡張されています。常に、内蔵スロット上のマッパーRAMをプライマリマッパーとして選択します。DRAMモード用のセグメントとして割り付けます。DRAMモード用セグメントの前の2セグメントに割り付けます。DRAMモードであるかどうかに関わらず、実際にシステムに実装されているRAM容量をもとにして、管理するプライマリマッパーの総セグメント数を決めていることに注意して下さい。本体のRAMが256KBの場合、初期化が終わった段階では、割り付けテーブルは以下のようになります。初期化時の割り付けテーブルここで、Sとあるのは、「システムセグメントとして割り当てられている」という意味で、内訳は次のとおりです。アプリケーションが使用する。MSX-DOS2カーネルが使用する。割り当てられているが、MSX-DOS2では使用しない。この状態ではセグメント4〜9が割り付けの対象になります。DRAMモードのとき、最後の4セグメントはライトプロテクトされており、RAMとしてアクセスできないので、マッパーサポートルーチンが返す総セグメント数のうちの4セグメントは、RAMとして扱うことはできません。セグメント管理の立場からは、この4セグメントはシステムセグメントとして割り付けられており、アプリケーションに対する割り付けの対象にならないので、実質上の弊害はありません。最後の4セグメントには、システムの初期化時に、システムROMの内容がコピーされています。各セグメントにコピーされるROMの内容は以下のとおりです。ROMモードの場合には、標準的な手順の「セグメントの解放」ファンクションを使って、解放することができます。解放されたセグメントは、以降「セグメントの割り付け」ファンクションの対象になるので、RAMを有効に使うことができます。ROMモードに切り替えた際に、必要に応じて最後の4セグメントをRAMセグメントとして再利用できるような構成になっています。DRAMモードに変えることはできません。DRAMモードに変更したいときは、システムROMの内容を、表1.5で示したセグメントにコピーし、それらのセグメントをシステムセグメントとして割り付けてからにして下さい。以下で、最後の4セグメントを再利用するための、具体的な手順を説明します。DRAMモードであることを確認します。最後の4セグメントが初期化されたままの状態であり、他の目的で解放または最割り付けされていないことを確認しなければなりません。拡張BIOSの「マッパーサポートルーチンアドレスの獲得」ファンクションを使って、プライマリマッパーの総セグメント数を得ます。最後の4セグメントセグメント番号を獲得します。総セグメント数をNとすると、(N-4)〜(N-1)が解放の対象となるセグメントです。マッパーサポートルーチンのFRE_SEGファンクションを使って最後の4セグメントを解放します。この際、対象となるのはプライマリマッパーなので、Bレジスタは0です。↓プログラム例を以下に示します。この例では、エラー処理や例外状態の判別は行っていませんのでご注意下さい。RAM上になければなりません。