PC-9821 PCI搭載機種 で UMB/拡張ROM エリアをRAM化する
C0000-CFFFFをRAM化する C000RAM1.SYS
Copyright(C) 2018 まりも (DOSsoft)
PC-9800シリーズでは C0000-CFFFFの領域は拡張ROMのために空けられており、仕様上はRAMが存在しないこととなっています。しかし80386頃以降の機種ではこれらの領域の裏に隠れたメモリが存在しています。本ツールではそれのRAMを表に出すことによって、これらの領域をUMBとして活用できます。
C0000-CFFFFの領域はとくに拡張ROMが存在しなければ通常は仮想86 EMM386でUMB化して使いますが、本ツールでRAM化したあとに、UMB拡張を行うデバイスドライバを導入することによって、「リアルモードでUMB」が使えるというわけです。また、4ページ(64KB)固定ながらリアルモードでEMSとして使える可能性があります(ただしこれには専用のEMMドライバを作成する必要があります)。
本ツールでは非常に機種依存性が強いRAM化の部分を行います。実際の活用にあたっては、他の方の作品であるUMB拡張ツールやEMMツールを使用して下さい。
config.sysの先頭のほうに記述してください。少なくともHIMEM.SYSより前です。リブートツールHSBとの前後関係はどちらがよいかよくわかっていません。
UMB拡張ツールドライバはいろいろあると思いますから適当なものを探してみてください。その一つとして、 EMUMBというものをとりあげて説明します。⇒入手先(vector.co.jp)
EMUMBには複数のドライバファイルがありますが、HIMEM.SYS機能非内蔵版を使い、
device=EMUMB386.SYS /Ec000-cfff
のように有効な範囲を指定して下さい。また記述位置は C000RAM1.SYSより後、HIMEM.SYSより前とします。
リアルモードUMBを実現する場合のconfig.sys記述例(あくまで一例)
device = C000RAM1.SYS
device = EMUMB386.SYS /Ec000-cfff
device = HIMEM.SYS /TESTMEM:OFF
なおE800RAM1.SYS と C000RAM1.SYSの記述順序の制約は全くありません。それぞれ独立に使用できます。ただしいずれもHIMEM.SYSより前に置いてください。
対象機種はPCIバス搭載機種です。広範に対応しますが、次の機種には対応していません。
× PC-9821 Xa初代,Xt初代,Xf, St15,St20, SV-98など
UMBを目的とするわけですから、使用できるDOSのバージョンは 5.0A以上です。
グラフィックカードを増設している場合、そのブートROMが実行される/されないにかかわらず、C0000〜のROM域に現れることがあります。オンボードのCirrus LogicやTridentのそれがDOSアプリケーションで使われる場合は、本ツールは使用できない可能性があります(メモリマップトI/Oの機能があるため)。しかし全く検証はしていません。
C0000〜CFFFの64KBをページ切り替えのできないLIM EMSとして利用できるEMMドライバは、存在するかどうかわかりません。4ページしかEMMを使わないアプリケーションでは有用かもしれませんが、存在しないように思います。
RAM化はリアルモードのDOS起動で意味があるのであって、EMM386を使うのであればその機能でUMBにできるので、本ツールのC000RAM1.SYSはそもそも必要ではありません。config.sysに記述しておくとC0000〜の内容としては値00のメモリが存在することとなり、EMM386からはUMBとして使用できないと判断されてしまう場合があります。EMM386を使用する場合は本ツールをconfig.sysの記述から外すほうがよいでしょう。
ソースコードは別のツールE800RAMを参照してください。source.lzhというファイルがそれです。E800RAM1.SYSのソースですが、C000RAM1を作るに必要な情報は書かれていますので、読み替えて利用して下さい。
このプログラムはフリーソフトウェアです。自由に使用してよい代わりにサポートのようなものはありません。直接・間接的に、このプログラムの運用の結果に何があっても、作者は一切責任をとることはないものとします。著作権は作者が保持しています。著作権侵害のないようにお使いください。他のサイトへの無断転載は認めません。連絡先メールアドレスは、トップページに記載されています。
2018.10.1 1.00版 新規作成