CバスボードのROMに入れて使うアプリケーションで、PC-9821Xe10/PC-9801BX4のオンボードIDEハードディスク容量上限を撤廃する

EXIDEBX4 Version 1.51

Copyright(C) 2021,24 まりも (DOSsoft)

※ パラメータ一時変更プログラムは'EXIDESW2'です

■ プログラムの目的および概要

【ROMアプリケーションです】

  PC-9821Xe10およびPC-9801BX4 のオンボードIDEのBIOSでは、4.3GBが容量の上限です。本アプリケーションは、CバスボードのROMに入れることで、RAM化されているIDE BIOSの一部を書き換え、このGB容量上限を撤廃します。利用できるCバスボードとしては、SCSIやSASIのボードがあります。

 さらに本アプリケーションは、BIOSのCHSパラメータ(*)設定ルーチンに介入して、従来とは異なるパラメータでも使用できるようになっています。(* CHSパラメータ:シリンダ、ヘッド、セクタ数のパラメータ)

 通常は4.3GB未満では8ヘッド17セクタですが、「パラメータ」の項目で述べる通り、さまざまに変更できます。変更の手段には2種類あり、ひとつはROM書き込み時のデフォルトモードの選択で、もうひとつは別途の専用フロッピーアプリケーション「EXIDESW2」で行います。後者の設定は98本体のソフトウェアディップスイッチ領域に記憶され、電源を切っても保持されます(バックアップバッテリが消耗しきって いない限り)。

■ 使用法

【ROMに書き入れる】

 ROMへの書き込みには一般にROMライタが必要です。その使用方法はROMライタ固有の事項ですので、ここでは説明できません。ROMライタが無くてもRealtek8139ネットワークカードを応用してROMに書き込む方法も私のサイトで紹介していますので、 参考にしてください。

 アーカイブを解凍すると次のファイルが作られます。
ファイル名 用途・内容
EXIDEBX4.TXT この文書
EXIDEBX4.COM ROMデータ作成用原データ(実行プログラムではありません)
SetEXIDE.EXE デフォルトモード設定変更、およびバイトROM用データ生成プログラム
SetEXIDE.TXT SetEXIDEの説明書

★ SetEXIDEというツールで、こちらの文書で説明されているように、パラメータモードを好みのものに変更し、ROMデータファイルを作成します。これは恒久的に設定されるもので、ソフトウェアスイッチが初期値に戻っても保たれます。どのモードを選んで良いかわからない場合は1か7を選んでください。 カレントディレクトリにEXIDEBX4.COMが存在する状態でSetEXIDEを実行すると、
EXIDEBX4.ROM
EXIDEBX4.R00
EXIDEBX4.R01
の3個のファイルが作られます。

 40pinの16bit(ワード)幅のROMには、EXIDEBX4.ROM を書き込んでください。8bit(バイト)ROMでも32pinの512kbit以上のROM1個から成なっている場合は、EXIDEBX4.ROM を使用して下さい。

 いっぽう、多くのCバスボードで使用されている8bit(バイト)幅の28pin ROMを2個使用した物の場合は、それぞれのROMに、EXIDEBX4.R00EXIDEBX4.R01を書き込んでください。EXIDEBX4.R00の入ったROMは偶数アドレス側ソケットに、EXIDEBX4.R01は奇数アドレス側ソケットに装着します。どちらかが偶数で他方が奇数ですので、1/2の確率でうまく行くでしょう。ROMに貼ってあったシールやソケットのシルク印刷、プリントパターンなどから判断できる場合もあります。

  SCSIボードを流用する場合、SCSI ROMのアドレスはデフォルトでDC000〜となっているかと思いますが、本アプリケーションは4KBしか使いませんので、D0000かD6000に設定するのがよいでしょう。D8000〜以上のアドレスに設定するとIDE BIOSの初期化より後の実行となるため、正常に働きません。

■ 動作

 通常は起動時にIDE関連の情報は画面に現れませんが、本アプリケーションを入れたROMボードを装着している場合、まず画面右上に本アプリケーションを入れたROMのベースアドレス(セグメント)が表示されます。続いて「IDE HDD上限拡大とCHSパラメータ変更・・・」と表示されます。

 表示を保持しておきたい場合は、メモリチェック終了後くらいからSHIFTキーを押し続けていて下さい。放すとシステム起動は続行します。

 「パラメータモード:」に続き、現在のモードの名称が表示されます。こちらはソフトウェアスイッチの設定値で、EXIDESW2で設定したとおりに変わりうるものです。 表示を保持しておきたい場合は、メモリチェック終了後くらいからSHIFTキーを押し続けていて下さい。放すとシステム起動は続行します。

 ROMアプリケーション実行後には、4.3GBの上限を超える容量のHDDを接続した場合でもハングアップしなくなります。IDE HDDのフォーマット時のパラメータがパラメータモードと適合していれば、固定ディスク起動メニューから起動可能です。もし未使用状態のディスクドライブを接続している場合はボードROMアプリケーション実行後にフォーマットしてください。それ以前にフォーマットしても無効です。

 追加機能として、CPUにAMD Am5x86を直に載せたときに、WBキャッシュが有効化となる機能を追加しています。システム起動時からFDやSCSI、X-PCM音源のDMAデータ転送が正しく行えるようになります。IPLwareアプリケーションのCPUL1WBは不要となります。

■ 注意・補足事項

 パラメータ設定プログラムはEXIDESW2となっています。従前のEXIDESW は適用できません。

 544MB未満のハードディスクについては、A-mateなどのPCI搭載以前の機種で使用していた場合、シリンダ数が本来の容量よりも少ない値で切られています(HDDのモデルごとの容量差をなくすための措置と思われます)。本アプリケーションが適用された機種にこれを接続すると、使用可能なシリンダ数が増えることになりますが、もとのA-mateなどに戻したときに容量オーバーとなり問題が生ずる可能性があります。最終シリンダまで使い切らないように注意して下さい。

 モードは本体側が記憶していることから、異なるモード下でフォーマットしてしまった複数のHDDを接続すると起動時にどちらかが不適合となり、起動や認識ができなくなりますので注意して下さい。

 既に述べたように、パラメータモードの記憶が飛ぶことがあります。バックアップバッテリの消耗、スーパーリセットや[GRPH][SHIFT]押し起動で初期化すると、SetEXIDEで設定したデフォルトのモードになります。他のモードにして使用していた場合、設定が初期値に戻る場合があるということは心得ておいてください。余計なことはしたくないという人は、SetEXIDEで決定したデフォルトのモードでずっと使い続けるのがよいでしょう。

 パラメータモードを記憶するソフトウェアディップスイッチは、デスクトップ機では使用されていないはずですが、機種によってはシステムで使用されている可能性はゼロではありません。その場合、どうしてもEXIDESW2でパラメータ設定が記憶できなかったり、[GRPH][SHIFT]押し起動でスイッチを初期化したきに、SetEXIDEで指定してあるはずのデフォルトモードにならないという症状が現れるかもしれません。そのような事象があればご報告ください。

 <2024-3-3追記> バージョン2.50からは、そもそもCFリセットを起こさないようにする設定を行うようにしました。これは一部のCF(主にSandisk製)に対して有効ですが、かなり多くのCFには作用しないようです。

 最初に述べたとおり対応機種はPC-9821Xe10と9801BX4のみです。その他の機種で動く可能性はゼロです。その他の機種にはその機種用のEXIDE**を使ってください。

■ 技術的説明

 本アプリケーションはCバスのROM搭載ボードのBIOS相当のものとして作られており、それが1度だけ実行され、メモリ上に展開しかかっているIDE BIOSを書き換えるという働きをします。起動完了後には何も動作しません。書き換えられたメモリ上のIDE BIOSはそれ自体で完結動作でき、本アプリケーションは必要なくなります。したがって拡張ROM領域に現れている本アプリケーションは潰してしまっても構いません。例えばEMM386でUMB領域にしても問題ありません(通常はROMがあるとして割り当て回避されますが)。

 パラメータモードを記憶するソフトウェアディップスイッチは、I/O アドレス 891Eで設定されるもので、bit2〜0 に割り当てています。0(000b)または7(111b)のときデフォルトのEXIDE(M9)モードです。Undocumented 9821/9801によると、このI/Oアドレスは一時期のノート機種でしか使用されていないようなので流用しています。

 EXIDEBX4.COMは拡張子からするとDOS実行プログラムですが、実行させる意味は持っていませんのでむやみに実行しないでください。とはいうものの、実行してエラーがなければパッチはあたるという判定になりますので、事前の適用可能性チェックにある程度使用できます。エミュレータ環境ではこれ単体でも有用かもしれません。ただし、もし実行したあとはすぐにリセットしてください。実行後に、PCIのProgramable attribute mapの状態が不正な状態で終了している可能性があるためです。

 ソースプログラムはEXIDECB(バージョン2.01)とほとんど差がありませんのでそちらを参考にしてください。唯一にして最大の違いは、IDE BIOSのRAM化と書き込み可否属性の設定にかんするところです。PCI機とレガシー機ではその機構に大きな差があります。そのほかEXIDECBではいくつかの旧いHDDモデルへの個別対応部分を削ってしまっていますが、EXIDEBX4ではBIOSの未使用部分が利用できたため削っていません。

 CバスのSCSIボードのROM流用についてですが、SCSIボードとしてのリソース割り当ては取り消すことはできませんから、OSによっては不明なデバイスという状態で残ります。9801-55/92時代のSCSIボードでは、I/Oアドレスをデフォルト(CC0h〜)以外にするとBIOSの出現ができなくなるものも多いです。つまり本アプリケーション用のSCSIボードと、本当にSCSIとして動作させたいCバスのSCSIボードとは併用が難しいのでご注意ください。55/92ボードは、9801-100ボードのようにアーキテクチャが異なるものであれば併用可能です。

■ お約束

 このソフトウェアのうち、実行プログラムSETEXIDE.EXEはフリーソフトウェアとしますので、ダウンロードして実行することは自由ですが、著作権は作者である私にありますので、作者の意向に反する使い方は禁止とします。

 EXIDEBX4.COMおよび生成されるEXIDEBX4.ROM他については、私的な使用は自由ですが、再配布を認めません。すなわち、このソフトウェアによるパッチをあてたROM、およびROMを載せた状態のボードを譲渡・販売・流通させることは固く禁じます。ROM焼きの役務代行業者などにROMデータを送付することも同様です。個人的使用にとどめてください。これが守られていない場合は著作権の侵害と見なします。

 したがって、このソフトウェア全体を、不特定多数のダウンロードできる場所へ「転載」することも、禁止とします。しかしリンク先の紹介についてはなんら制限はありません。

 ソースファイルを改良して同様の作品を作り公開する場合は、それを明記していただくことを希望します。ソースファイルを翻案して何かを創作すること自体はなんら妨げられることはありませんので自由にやっていただいて構いません。

 プログラムは、ある程度のテストを経て公開していますが、動作が完璧に行なわれるということを、作者は保証するものではありません。ユーザがプログラムを組み込んだことによる起動不能などのトラブルの補償には一切応じません。

 システムが起動しなくなったことや、それに付随した逸失利益、精神的損害について、作者は一切責任は負わないものとします。これらの点を了承できない方には、使用(ソースファイル含む)を認めません。

[同意の上ダウンロードする]

            まりも(DOSsoft)

【改版履歴】

日付     版 内容
2021.10.01 1.00 新規
2024-03-03 1.50 CFリセット時に諸パラメータが初期値に戻らないようにする機能の追加
2024-03-04 1.51 3台以上ドライブを接続している場合に1台認識しなくなる問題を修正

[戻る]