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

EXIDECB Version 2.51

Copyright(C) 2017-24 まりも (DOSsoft)

※ バージョン 2.00からパラメータ一時設定プログラムが'EXIDESW2'に変更となりました
※ バージョン 2.01(2021/11/8公開ぶん)から CFのパラメータモード変更用ツールを追加
※ バージョン 2.50から CFリセットを防ぐ機能(一部のCFのみ有効)を追加

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

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

 PC-9821にはIDEデバイスを最大4台接続できる機種があります。初代Xa,Xt,XfやSV-98/2を除くPCIバス搭載機がほぼこれに該当します。しかしそのうちでも1997年中頃までの機種には4.3GB上限という問題があります。本アプリケーションは、CバスボードのROMに入れることで、RAM化されているIDE BIOSの一部を書き換え、4.3GB容量の上限を撤廃します。

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

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

 対応機種についてはIDE 4台搭載可能となった機種からということになりますが詳細は 後述の■技術的説明 の項をお読みください。

■ 使用法

【ROMに書き入れる】

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

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

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

 カレントディレクトリにEXIDECB.COMが存在する状態で SetEXIDEを実行すると、
EXIDECB.ROM
EXIDECB.R00
EXIDECB.R01
の3個のファイルが作られます。

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

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

 SCSIボードを流用する場合、SCSI ROMのアドレスはデフォルトでDC000〜となっているかと思いますが、本アプリケーションは4KBしか使いませんので、D0000に設定するのがよいでしょう。D0000の場合D1000以降はUMBとして使うことができます。また本アプリケーションはシステム起動後には存在している必要がありません。パッチのあたったIDE BIOSはそれ自体で動作が完結できます。したがって、本アプリケーションのROMアドレスをMS-DOSなどではUMBの領域として強制的に使用してもまったく問題ありません(EMM386のオプション記述で手動設定する)。

 玄人志向Mistress 9を使う場合は、DIPスイッチを適切に設定し、書き込み可能、32KB出現可能な状態にする必要があります。全てON側の設定です。書き込んだ後はD000〜D1FFかD600〜D7FFの設定にしておくとよいかと思います。

■ 動作

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

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

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

■ 注意・補足事項

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

 4.3GB以上に対応した機種で、15ヘッド63セクタで認識するHDDが存在しますが、本アプリケーションではそれを継承してBIOSヘッド数を決定します(1.10から)。ただしそれが有効なのは4351MB以上30239以下の場合です。

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

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

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

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

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

■ 技術的説明

 本アプリケーションは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アドレスは一時期のノート機種でしか使用されていないようです。MATE-R,MATE-X/W のITFやシステムセットアップメニューを調べた限りでも、このI/Oアドレスへの書き込みはないようでしたので、流用しています。なお旧バージョン(1.xx)では8C1Eを使用していましたが、機種によっては破壊されることがあるため、バージョン2.00では変更しました。したがって古いバージョンのEXIDESW(1.11)は、バージョン2.00以上の本プログラムには適用できません。

 対応機種についてはIDE 4台搭載可能となった機種(PC-9821Xa7〜10/C)からということになります。判っている範囲では、Xt13/Cについては対応しません。初代Xa,Xt,Xfや St15,St20にも対応していません。PCIバスアーキテクチャのCanbe(Cb3,Cx2,Cx3,Cx13,Cb10など)に対応しているかどうかは、当該機種を持っていないため調べていません。既に使っている人がいないかネット検索などしてください。

 CPUをK6アクセラレータに交換している場合や、初期のPCI搭載機種でP55C(MMX Pentium)に交換している場合、CバスROMボード一般に動作不具合を起こす物があるかもしれません。

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

 昔のPCIネットワークボードには物によってROMソケットがありますので、ROM書き込みの方法が判明しているチップが使われていれば、書き込みプログラムを作ってROMライタ化することもできるでしょう。ただし多くの場合、書き込み電圧(Vpp)をかけるピンに12Vや5Vが接続されていませんから、自力で配線を直す必要が生じます。

 原プログラムのEXIDECB.COM部分のソースプログラム(バージョン2.50)を公開としました。ソースをほとんどそのままに商用の製品を作って販売することは厳禁としますが、ソースファイルを改良して・翻案して何かフリーソフトウェアを創作すること自体はなんら妨げられることはありませんので自由にやっていただいて構いません。その場合はこのソースを参考にしたことを明記していただくことを希望します。ソースファイルは本アプリケーションの中核部分のみであり、CバスのROMのブートに必要な部分は含んでいません。また文字列表示などきわめて一般的・汎用的な部分のソースも含んでいません。そこは各自で開発したものを使用して下さい。

■ お約束

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

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

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

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

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

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

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

旧バージョン2.01のダウンロード

            まりも(DOSsoft)

【改版履歴】

日付     版  内容
2017.11.04 1.08 新規
2017.11.26 1.10 シリンダ拡張モード追加、固定デフォルト選択ツール付属、ネイティブ15ヘッドのディスク対応
2017.12. 1 1.10 <再掲>古いバージョンのファイルが混入していたので取り除いて再掲
2017.12.10 1.11 「4.3GBリミットのない機種と完全互換」のモードで容量設定の誤りがあったのを修正
2018.12. 1 1.15 初期のWildcat機 Xa7,9,10/C、一部のCanbeなどに対応(実際には対応できず)
2018.12. 4 1.16 Xt13/Cに対応しないことを明記、PCIのない機種に入れたときのメッセージ表示位置を変更
2019. 1.12 1.18 初代V7,V10,Xb10対応を確認、不要なデバッグ用コードを除去
2019. 1.21 1.21 1.18が正常に動作しなかったのを修正
2019. 3.15 1.23 初期PCI機種には対応しないことを明記
2019. 4.20 1.30 IDE 4ポート対応の初期PCI機に概ね対応
2019.10.17 1.31 特定の容量帯で誤ったシリンダ数となる問題を修正
2021- 4-12 1.40 CF では ネイティブなヘッド数セクタ数となるようにした
2021- 8-15 2.00 パラメータ設定プログラムがEXIDESW2に変更となったのに合わせた改訂
2021- 8-20 2.01 Removable属性でないCF(主に産業用)はHDD相当の扱いにした
2021-11- 8    ROM BASIC廃止機種における DIP SW2-2の設定プログラムと説明の追加
2024-03-03 2.50 CFリセット時に諸パラメータが初期値に戻らないようにする機能の追加
2024-03-04 2.51 3台以上ドライブを接続している場合に1台認識しなくなる問題を修正

[戻る]