AHA-1030P/B,PC-9801-100 のBIOSの高速化(RAMに移動)
A1030RAM version 2.20
Copyright(C)2023 まりも
1.[目的]
PCIバスのない時代のCPU 386-486時代のPC-9821の上で SCSI のBIOSの動作を高速化するツールとして、SCSI_RAM というものをこれまでに公開しました。しかしROMをRAMに移し替えて高速化できるのはDC000h番地からの4KB部分に限られており、AHA-1030P/B,PC-9801-100 (長いので以下100ボードと略記)のように12KBないし16KBもあるSCSI BIOSでは効果が限定的でした。
そこで、あまり使うことのないN88-BASICの格納されているE8000hからの16KBの本体内蔵RAMに 100ボードのBIOSを移動してみようというのが、本プログラムです。メインメモリと同等のアクセス速度があり、16KB全域での高速化が期待できます。仮想86モードではなくリアルモードで物理アドレスとして存在するRAMに移動します。唯一の問題は、ROM BASICやDISK BASICが呼び出す機能全般が使えなくなるということだけです。もともとここを仮想86EMM(EMM386など)でUMBとして使っていた人にはとくに問題はないでしょう。
2.使用法
ファイルは A1030RAM.COM(E8000に移動)とA1030_CC.COM(CC000hに移動)の2つがあります。両者とも、DOSの実行プログラムとしても、IPLwareアプリケーションとしても使うことができます。DOSのプログラムとして実行の場合はコマンドラインから
A1030RAM
と打ちます。IPLwareの場合は、別途IPLwareをダウンロードしておき、
IPLware A1030RAM.COM
とコマンドラインに打ちます。詳しくはIPLwareの説明書も参照してください。どちらも実行時点から100ボードのROMはE8000hまたはCC000hのRAMに展開されますが、PCIバス搭載機種ではROMと同じ物理アドレスにRAMが存在するので、それを活用します。つまりE8000hやCC000hには移動せず、もとのアドレスがDC000hであればそのままとなります。Pentium PRO/II/IIIのいわゆる P6CPU搭載機(PC-9821 mate-R)においては、BIOSのエリアがキャッシュ不可が起動時デフォルトとなっており、効果があまり出ません。そこで本ツールではキャッシュ可の属性に変更します。またVLSI supercore 59xチップセット(いわゆるWildCat)の機種においてもキャッシュ可に変更し、パフォーマンスを向上させます。
3.注意点
■ PCI機とそうでない機種の違い
使用法のところにも明記したように、PCIバス搭載でない80386-i486-Pentium機(換装ではなく元のCPU基準で)では、100ボードのBIOSがどこのアドレスにあってもE8000hに移動しますが、PCIバス搭載機では元のアドレスのままですのでご注意ください。PCIバス搭載機でもE8000hに移動させ元のアドレスのROMを見えないようにすることは可能でしたが、多くの場合仮想86 EMMが提供するUMB(Uper Memory Block)の機能が思うように働かないので(例えば移動先のE8000hを勝手にUMBにしようとしてハングアップするなど)、アドレスを変更するメリットがないと判断しています。
PCIバス搭載でない機種ではE8000hまたはCC000hにSCSI BIOSを移動しますが、元のアドレスにあったBIOS ROMはそのまま残ります。これを消し去る手段はリアルモードのときにはありません。いっぽう当該のアドレスを仮想86 EMMのUMBに割り当てることはできます。そのためには、A1030RAMはIPLwareで実行し、先にSCSI BIOSをRAMに移動済みの状態にする必要があります。
■ A030RAMではBASICは使用できなくなる
PCIバスを搭載しない機種においては、本ツール実行後、N88 ROM BASIC, N88 DISK BASICは使用できなくなります(MS-DOS版は使用可能な模様)。またBASICの ROMを用いたグラフィックルーチンを使っているソフトウェアも実行できなくなります。しかしPCIバス搭載機ではE8000hを使わないので、この制約はありません。
■ A1030_CCではオンボードのSOUND BIOSは使用できなくなる
対象機ではサウンドBIOSはRAMで出現しており、そこにSCSI BIOSを上書きしますので、サウンドBIOSは使用できなくなります。もともとサウンドBIOSは存在しない機種ではこの限りではありませんが、A1030_CCではEMSが使用できなくなる点は同じです。
■ 連続適用可能
A1030RAMを実行後にA1030_CC を実行するようなことはバージョン2.20より可能としていますが、もとあったBASICやSOUND BIOS を元通りにする機能は設けてありませんので、SCSI BIOSの移動先を変更する意味はとくにないはずです。
■ 対応可能な機種
PCIバス搭載機でもPC-9821Cf,Xf,Bf,Stには本ツールは適用できません。H98シリーズやEPSON製98互換機機にも一切適用できません。SCSIボード一般に適用できるわけではなく、100ボード専用です。
100ボードのBIOSはハイレゾリューションモードでは起動できませんので、本ツールもハイレゾリューションモードでは実行しないようになっています。
■ 同類のツールとの併用
本ツールはROMにあるものをRAMに移動させる機能だけしかありません。容量上限を拡張したい場合は、ROMのアプリケーション "A1030ROM" のほうをお使い下さい。なお 100ボードにROMに "A1030ROM" が適用済みの場合でも、本ツールは併用でき、P6 CPU搭載機やVLSI 59xチップセット機ではさらにパフォーマンスが向上します。
SCSI_RAMとの併用は禁忌です。とくに本ツールのあとSCSI_RAMを実行してはいけません。逆の場合は本ツールが有効でE8000hにBIOSが移動します。PCIバス搭載機ではSCSI_RAMは何もしないので、IPLware内に並存させてもとくに問題はありません。
■ 仮想86のUMBの使用
100ボードのBIOSをE8000hに移動している場合、ここはEMM386などがデフォルトでUMBに割り当てようとします。したがってオプションを記述してUMBに割り当てないようにしてください。EMM386の場合/EN=E800-EBFF を追加します。LEMMの場合 /UE[^89AB] とします。BIOSがもとあったところは逆に強制的にUMBに割り当ててください。
■ 参考ソースファイル
ソースファイルも公開されています。なお、このソースファイルは、そのままアセンブルして動作可能になるようなものではありません。一部のインクルードファイルが添付されていませんのでご注意ください。
4. お約束
このソフトウェアは、フリーソフトウェアです。コピーすることは自由です。但し使用するためには下記のことに十分留意して下さい。
プログラムは、ある程度のテストを経て公開していますが、動作が完璧に行なわれるということを、作者は保証するものではありません。IPLにユーザがプログラムを組み込んだことによる、ハードディスク起動不能などのトラブルの責任は一切追いません。
システムが起動しなくなったことにや、それに付随した逸失利益、精神的損害について、IPLwareの作者である私は、一切責任は負わないものとします。これらの点を了承できない方には、使用(ソースファイル含む)を認めません。
このソフトウェアを、不特定多数のダウンロードできる場所へ転載することは、禁止とします。
まりも (連絡先メールアドレスはホームページ上で)
5.改版履歴
日付 版 内容 2023- 2- 1 2.00 新規(2004年頃に 1.00版を公開していたソフトの後継) 2023- 2- 4 2.10 初代BX/BAやそれ以前の機種でソフトリブートできない問題に対応 2023- 2- 5 2.20 連続で実行可能に改良、CC00に移動させるA1030_CC.COMを追加