NEC製PC-9801-100(Adaptec製 AHA-1030P/B)SCSI H/Aの 改良BOOT ROMを作成するプログラム
A1030ROM Version 1.10
Copyright(C)2018 まりも(DOSsoft)
1.[目的]
NEC製PC-9801-100およびアダプテック社製AHA-1030PおよびB SCSI アダプタのBIOSは、8ギガバイト以上のハードディスクを接続してもハングアップしてしまい、使用できません。BIOSのROMデータにパッチをあてて、少なくとも32ギガバイトまでのハードディスクを全容量BIOSで認識させようというのが本プログラムの第一目的です。
それに加え、PCIバス搭載機上ではROMの内容を起動の早い段階でRAMに転送することによって、SCSIデバイスチェックの時間を短縮したり、ディスクの読み書きの速度を改善する機能も付け加えました。NEC純正のSCSIボードは起動中に全くメッセージを表示しませんが、これは不便であるため、起動途中でのデバイススキャンの結果を表示するようにもしました。
なお本ツールはROMデータを作るものであって、使用に当たってはROMライタが必要です。ROMライタで書き込んだROMをSCSI アダプタにもともと載っているROMと置き換える必要があります。
2.[使用法]
アーカイブを解凍すると、以下のようなファイルが作られます。
- A1030ROM.TXT この文書
- A1030ROM.EXE データ作成実行プログラム
- BYTELH.EXE 偶数・奇数バイトデータ作成プログラム
- SOURCE.LZH ソースプログラム
まず通常通りAHA-1030P/BあるいはPC-9801-100を装着しておきます。98本体はこのボードが使える機種であれば何でも構いません。MS-DOSを起動し、コマンドラインから
A1030ROM
と打って実行します。すると自動的にこのSCSIアダプタのBIOS ROMが検索され、そのデータをもとにパッチが当てられます。実行が正常に終了すると、カレントディレクトリにA1030ROM.BIN というデータが作られます。次に、BYTELHを実行しますがコマンドライン引数にはA1030ROM.BINを与えます。すなわち次のようにコマンドタイプして実行します。
BYTELH A1030ROM.BIN
すると A1030ROM.00および A1030ROM.01 という2つのファイルが作られます。これらは16bitのデータを偶数側奇数側のアドレスの8bitずつに分解したデータです。これらを28pinの27C64、27C128、27C256のいずれかのROMに書き込んで、もとのボードの2個のROMと交換します。ROMの焼き方についてはここでは触れません。ROMライタがない場合はRealtek 8139Cのネットワークカードを改造してROMライタとする方法もありますので、こちらを参照してください。
データを書き込んだ2つのROMをソケットのどちらに載せるかは以下を参考にしてください。
- 初期型ボードの場合:U2と書かれた側のソケットに A1030ROM.00のROMを、U4側に A1030ROM.01のROMを載せる
- それ以外の版の場合:U4と書かれた側のソケットに A1030ROM.00のROMを、U3側に A1030ROM.01のROMを載せる(画像)
いずれの場合でも、ROMの1番pinの位置を間違えないように装着します。向きを180度間違えたり並行にズレて装着すると、通電したときに発煙・発火の恐れがあるだけでなく、ROMを壊すことになるので、十分注意してください。3.[適用結果]
まず8GB以上、32GB未満までのSCSIハードディスクが使用できるようになります。BIOSからは128セクタ8ヘッドのパラメータで認識されます。これは32GBまで使用できるPCIのSCSIアダプタと同じです。32GB以上のHDDを接続した場合は、61.4GBまでは 128セクタ15ヘッドで認識されますが、これはバッファローのIFC-USPと同じ仕様です。しかしWindowsNT/2000ではこのパラメータでは認識できませんので、BIOSを使うOS(Windows9xなど)での使用に限られます。
置き換えたROMで起動すると、起動の早い段階でScanning SCSI device と表示され、本ROMを入れたボードであることがわかるようになります。PCIバスアーキテクチャの機種(*一部を除く)ではRAMにBIOSが転送されます。このためその後のデバイススの時間がかなり短縮されます。
デバイス初期化のフェーズの後に、その結果をSCSI IDごとにデバイス種別2文字で表示します。MO,HD,CDなどと表示されます。この直前からSHIFTキーを押したままにしていると表示を保持できます。押していないと表示後はすぐに固定起動メニューに移ったりあるいはOS起動に移ってしまいます。なお8GB以上のディスクドライブの場合はHDの表示が緑色となります。
PCIバスアーキテクチャ機種では、MS-DOSなどBIOSを使うOSでのディスクアクセスの速度が向上します。
バージョン1.10より、「DIV0ROM機能」も追加されました。
4.[注意]
- 容量上限の撤廃の機能は本体機種に依存しませんが、RAM化による高速化は一部のPCIバスアーキテクチャ機種のみです。SV98/2、初代Xa,Xt,Xf、Cf、Stなどには適用できません。適用できない機種では起動時ハングアップするかもしれません。PCIバスのない機種ではRAM化は行われません。
- PCIバスアーキテクチャではあるがPCIスロットやPCI BIOSを持たない一部のCanbeではどのような結果になるかわかっていません。うまく行けば適用できます。
- 486アーキテクチャの機種でもBIOSをRAM化して高速化したい場合は、こちらにあるツール"A1030RAM"を適用してください。
- もとのROMバージョンは維持されます。
- 61.4GB以上のディスクドライブを接続すると、255セクタ15ヘッドで認識されます。他のSCSIアダプタとの互換性はなく、Windows NT/2000からも認識されません。独自仕様となります。
- A1030ROM.EXEの実行は80386以上のCPU搭載機でおこなってください。80286以下の機種では動作しません。しかし本バージョンで作成されるROMデータは80286機でも動作します。
- バージョン1.10からは「DIV0ROM機能」が追加されました。この機能は80386以上のCPU搭載機でしか機能しません。またこの機能は主にIDE HDDの容量上限問題を回避するためのもので、SCSIアダプタとは関係の無いものです。
- バージョン1.10からは、16384バイトのROMのうちの最後の4096バイトに別のROMイメージを入れることができるようになりました。そのようなものが用意できる場合には、A1030ROMの有効部分12288バイトの後ろに付け加えることができます。なおこれはSCSIアダプタとはとくに関係の無いものです。
- ソースファイルはバージョン1.00のものが付属しています。大変わかりにくい内容となっています。まずジャンプ先の自己書き換えコードがかなりあります。さらにORG指示子の使用が普通ではありません。これはROM内コードとDOSコードを1つのプログラム中で記述しているためです。DOSでの実行時には先頭から16384バイト目にジャンプして実行されます。それより手前に書かれたコードはROM内で使うためのコードです。
5.[お約束]
このソフトウェアのうち、実行プログラムA1030RAM.EXEはフリーソフトウェアとしますので、ダウンロードして実行することは自由です。しかし著作権は作者である私にありますので、作者の意向に反する使い方は禁止とします。まずROM内に書かれたコードについては再配布を認めません。すなわち、このソフトウェアによるパッチをあてたROM、およびROMを載せた状態のSCSIアダプタを譲渡・販売・流通させることは固く禁じます。個人的使用にとどめてください。これが守られていない場合は著作権の侵害と見なします。
プログラムが生成するデータA1030ROM.BIN、A1030ROM.00、A1030ROM.01 についても、本ソフトウェアに追加されたコードを含みますので、再配布を禁止とします。つまりROM焼きの役務代行業者などにROMデータを送付することも禁止とします。このデータはもとのROMのコードを含むことから、原著作権者であるNECおよびアダプテックの了承がなければデータとしての再配布は認められない可能性があります(ボードとセットの物品の譲渡・販売であれば当然認められていると考えられますが)。
このソフトウェアを、不特定多数のダウンロードできる場所へ「転載」することは、禁止とします。リンク先の紹介についてはなんら制限はありません。
ソースファイルを改良して同様の作品を作り公開する場合は、それを明記していただくことを希望します。ソースファイルを翻案して何かを創作すること自体はなんら妨げられることはありませんので自由にやっていただいて構いません。
プログラムは、ある程度のテストを経て公開していますが、動作が完璧に行なわれるということを、作者は保証するものではありません。ユーザがプログラムを組み込んだことによる起動不能などのトラブルの補償には一切応じません。
システムが起動しなくなったことや、それに付随した逸失利益、精神的損害について、作者は一切責任は負わないものとします。これらの点を了承できない方には、使用(ソースファイル含む)を認めません。
まりも(DOSsoft) (連絡先メールアドレスはWebページ上で)
5.[履歴]
日付 版 内容 2018-11-18 1.00 新規作成 2018-11-20 1.00 記事訂正(偶数・奇数バイトデータとROMソケット位置の対応関係が逆)、画像追加 2021-10-10 1.10 DIV0ROM機能の追加、最後の4KBに別のROMイメージ追加を可能にした←戻る