NEC/Adaptec製 PCI SCSI H/Aの BIOS容量上限(32GB)を解除するプログラム
A2940PAT Version 1.01
Copyright(C)2003-2004 まりも
1.[目的]
NEC/Adaptec純正の PCI SCSI アダプタでは、32ギガバイト(32768MB)以上のハードディスクを接続しても、BIOSで扱い対象外の装置にされてしまいます。そこで 、BIOSにRAM上でパッチをあてて、120ギガバイトまでのハードディスクを全容量BIOSで認識させようというのが本プログラムの目的です。
といっても32ギガバイト以上のハードディスクから直接起動させることはできないので、別の起動装置のIPLに本プログラムを入れて、固定ディスク起動メニューが出た時点からBIOSで認識されるようにします。これにより、MS-DOS起動時にもドライブ名も割り当てられるようになります。Windows9xの場合もそのままそのドライブ名で使用できます。
ところが WindowsNT,2000だけは 32ギガバイト以上のハードディスクを98フォーマット形式で認識させることができません。つまり本プログラム(A2940PAT.BIN)は、WindowsNT,2000以外のOSしか使わないという人にとって利用価値があります。ただしWindows NT,2000であっても、PC/AT互換機のフォーマット形式でWindowsのみで認識させるという場合は、本プログラムが組み込まれている状態でもかまいません(組み込む必要もありません)。
これとは別に、SC-UPCI互換の動作をする プログラムモジュール(A2940SCU.BIN)もあります。こちらは32GBまでしかBIOSでアクセスできるようになりませんが、Windows2000,NTで領域を認識できる利点がありますし、SC-UPCIで使っていたハードディスクをそのまま認識できます。どちらか都合のよいほうをお選び下さい。
対象となるSCSIアダプタは、
PC-9821X-B02L,X-B09, X-B10,
AHA-2940N,AHA-2940U/J, AHA-2940AU, AHA-2940UW/J, AHA-3940UW/J ,
PC-9821 Xt13,Xt16,St20,Rv,Rsなどの機種のオンボードSCSIアダプタ
です。Cバス接続のSCSIアダプタには適用できません。2.[使用法]
本プログラムはIPLwareです。IPLware.exeを別途ダウンロードし、MS-DOSのコマンドラインから
IPLware A2940PAT.BIN
というように打って組み込んで下さい。組み込み先は、ブート装置として指定されたものか起動優先順位最先頭のものが選ばれます。次回起動時からは、それまで認識対象外であったハードディスクが固定ディスク起動メニューの選択リストに現れてくるはずです。もし 1.01の場合に起動しなくなったり動作がおかしいようであれば、旧バージョンの A2940PAT.100 のほうをお使い下さい。また後述のように、アイオーデータのSC-UPCI系アダプタと互換にしたい場合は、A2940SCU.BIN を用いて下さい。なお、A2940PAT.BIN とA2940SCU.BINとを両方組み込まないで下さい。
[本プログラムBIOS認識でされた装置のフォーマットについて]
本プログラムが実行されたあとには、Windows9xのFDISKが使用できます。ただし64ギガバイトを超えるハードディスクにはFDISKの容量表示がおかしくなる点に注意して下さい。容量%指定ならばうまく行くはずです。FDISKで確保した領域はWindows9xのFORMAT.COMではフォーマットに失敗してしまうので、拙作フォーマッタ FORMATX を使用して下さい。フォーマットとシステム転送ができていれば、32ギガバイトを超えるハードディスクの領域からもDOSを起動することができます。ただしIPLは別のハードディスクからの起動となるので、32ギガバイトを超えるハードディスク単独で起動させることはできません。
3.[技術的情報]
本プログラムを適用すると、DISK BIOSのパラメータは下記のようになります。
8 ギガバイト未満 32セクタ 8ヘッド ←変更なし
32 ギガバイト未満 128セクタ 8ヘッド ←変更なし
60 ギガバイト未満 128セクタ 15ヘッド ←IFC-USP-M2の拡張仕様と同一
120ギガバイト未満 255セクタ 15ヘッド ←UIDE-133/98無印初代と同一システムワークエリアのSCSIパラメータ部にきちんとセットされますので、それを参照しているOSならば、容量にかかわらず正常に領域の認識ができます。アイオーデータのSCSIアダプタで 32GB以上のハードディスクをBIOS認識で98フォーマット形式で使用していた場合、本プログラムを導入しても領域を正しく認識できるようにはなりません。
いっぽうアイオーデータ製のSC-UPCI系アダプタ互換の A2940SCU.BIN の場合は、
32 ギガバイト以上 128セクタ 8ヘッド
となります。32GBクリップができないハードディスクを使って、Windows2000やNTで使いたい場合は、SC-UPCI互換をお勧めします。もちろん、実際にSC-UPCIで使っていたハードディスクは、このモードであればそのまま読み書きできます。なお、今後PC-9821ファームウェア改良ソフトを作ろうという方々のために、参考ソースプログラムも添付しておきます。ただし一部の汎用ルーチンが含まれていないので、そのままアセンブルして実行可能プログラムが作れるという状態にはなっていません。SCSI DISK BIOSのシリンダヘッドセクタのパラメータはシステムワークエリアの0000:0460h番地以降にID順に格納されています。本プログラムでは、ここを操作している箇所にパッチをあて、DISK BIOS イニシャライズコマンドを発行しています。
4.[お約束]
このソフトウェアは、フリーソフトウェアです。コピーすることは自由です。但し使用するためには下記のことに十分留意して下さい。プログラムは、ある程度のテストを経て公開していますが、動作が完璧に行なわれるということを、作者は保証するものではありません。ユーザがプログラムを組み込んだことによる、ハードディスク起動不能などのトラブル(質問)には一切応じません。 システムが起動しなくなったことや、それに付随した逸失利益、精神的損害について、IPLwareの作者である私は、一切責任は負わないものとします。これらの点を了承できない方には、使用(ソースファイル含む)を認めません。 このソフトウェアを、不特定多数のダウンロードできる場所へ無断転載することは、禁止とします。 対応SCSIアダプタ(機種)全てで動作確認を取っているわけではないので、もし「対応機種外である」というエラーが出る場合(そこでハングアップする可能性が大)はご連絡下さい。
まりも (連絡先メールアドレスはWebページ上で)
5.[履歴]
日付 版 内容 2003-12-31 1.00 新規作成(IPLware版、IFC-USP互換版) 2004-01-05 1.01 追加コードの置き場所変更,SC-UPCI互換のモジュール(A2940SCU)を追加