UIDE-66の32GBハードディスク容量制限を解除/またはSCSI互換にする

UIDE66EX

Copyright(C) 2003,2006,2017 まりも

■ プログラムの概要

 アイオーデータ機器製のUIDE-66は、約32GB(正確には32255MB)までの 容量のハードディスクが使用できますが、それ以上の容量のハードディスク を繋ぐと、デバイススキャン時にハングアップしてしまいます。 本プログラムは、それ以上の大容量のハードディスクを使えるようにする ものです。UIDE-66のBIOS ROMデータをメモリ上に読み出し、容量制限に かかわる箇所だけを書き換え、フラッシュROMに書き戻します。したがって UIDE-66付属のBIOS書き込みソフトは必要ありません。

 またSCSI変換で使っていたIDEドライブをUIDE-66に繋ぎたいという 用途も考慮して、4.3GB以上32GB未満のときにSCSI互換にするプログラム もあります。以前に公開していた「UIDESCSI」の上位互換性があります。

 その他の付加機能として、「NoATboot機能」、「CHANPON-ZERO」にUIDE-66 を載せたときにきちんと認識されるようにする機能、PC-9821 RvII26、RsII26 でもUIDE-66がある程度安定的に使用できるようになる機能も含まれています。

■ プログラムの内容と用途

  アーカイブを解凍すると次のファイルが作られます。供給されるファイルはDOS実行プログラムで、次の6種類があります。容量帯により、BIOSのヘッド数、セクタ数が異なります。これらのうち「UIDE66EX.EXE」では32GB以内についてはこれまでどおりのパラメータとなります。その他はある範囲の容量帯でSCSIと互換性があるパラメータですが、32GB以上の振る舞いについては次のように多岐にわたっています。
UIDE66EX.EXE ExIDE(M9)モード 【8:17】< 4351MB <【16:63】< 32255MB <【16:255】|
UIDE66MX.EXE SCSI 混在モード 【8:17】< 4351MB <【8:32】< 8GB <【8:128】< 32GB <【16:255】|
UIDE66PS.EXE SCSI 完全互換 【8:32】< 8GB <【8:128】< 32GB |頭打ち|
UIDE66SC.EXE SCSI SCU 互換 【8:17】< 4351MB 【8:32】< 8GB <【8:128】< 32GB |頭打ち|
UIDE66ML.EXE SCSI メルコ 拡張 【8:17】< 4351MB 【8:32】< 8GB <【8:128】< 32GB <【15:128】< 61GB <【16:255】 |
UIDE66SD.EXE SCSI SSD 拡張 【8:17】< 4351MB <【8:32】< 8GB <【8:128】< 32GB 【16:128】< 64GB <【16:255】|
表形式で再掲
プログラム名 モード\容量帯 4351MB
まで
8192MB
まで
32255MB
30240MB
まで
32GB
まで
61/64GB
まで
127GB
まで
UIDE66EX ExIDE拡張モード 8:17 16:63または15:63 16:255
UIDE66MX SCSI EXIDE混在モード 8:17 8:32 8:128 16:255
EXIDEと同じ
UIDE66PS SCSI 完全互換モード 8:32 8:128 ×頭打ち
UIDE66SC SCSI SC-UPCI互換モード 8:17
EXIDEと同じ
8:32 8:128 ×頭打ち
UIDE66ML SCSI メルコ拡張モード 8:17
EXIDEと同じ
8:32 8:128 15:128
61GBまで
16:255
EXIDEと同じ
UIDE66SD SCSI SSD最適/混在モード 8:17
EXIDEと同じ
8:32 8:128 16:128
64GBまで
16:255
EXIDEと同じ

 それぞれ「パラメータモード」に違いがあります。とりあえずよく わからないという人はSCSIなど使って来たわけでないでしょうから、 SCSIとの互換性を気にせず、UIDE66EX を選んでおけばよいでしょう。

■ パラメータ・モードについて

 ハードディスク上の目的場所にアクセスする際には、シリンダ、ヘッド、セクタ(以下まとめてCHSと略記)という名前で区切られた番地のセットが用いられることがあります。これは古くからある方式で、PC-98シリーズのDISK BIOSでもこれがディスクアドレッシングの基本となっています。

 ところが1ヘッドが何セクタであるか、1シリンダが何ヘッドであるかというパラメータが、ディスクインターフェイスごとに、あるいは容量ゾーンごとに異なっているという問題があります。そしてこれらのパラメータがフォーマット時と使用時とで異なっていると、OSの起動やファイルシステムの認識ができなくなります。パーティションテーブルを完全消去して、領域確保からやり直す必要があります。

■ 使い方

 まずUIDE-66をPC-9821本体のPCIスロットに装着して電源を入れます。UIDE-66には未だハードディスクを繋いでおかないほうがよいでしょう。プログラムは、必ずリアルモードのMS-DOS上で実行します。EMM386のある環境(仮想86モード)では実行できません。6種類のいずれかのプログラムをコマンドラインから実行してください。UIDE-66の存在は自動で検索され、処理は自動的に進みます。

 書き換えた後には、電源を切り、新しいハードディスクを繋いでください。今まで98で使用していないか先頭のほうを消去してあるハードディスクを繋ぐようにしてください。UIDEの起動時BIOSの機能で消去することができます。

 今まで98で使用していたハードディスクを繋いだ場合は、パラメータモードが変わってしまっていますので、認識・起動ができない可能性があります。とくに、SCSI互換版に変更した場合は、当然ながら今までの32GBまでのIDEと異なるパラメータモードなので、全く認識できなくなります。

 UIDE66EX では、約32GB未満のハードディスクの場合は、今までと 同じように使用できます。約32GB以上のハードディスクの場合、いままでたとえばEXIDE32Gで使用していた場合などで、パラメータモードがPK-98mistress9と互換の「16ヘッド、255セクタ」の場合はそのまま認識可能です。

 しかしそれ以外のパラメータモードで使用していたディスクは、全消去してから再フォーマットが必要となります。大熊猫氏SATA BIOSで使用していた場合は、BigDrive対応ディスクのときに(※)パラメータモードが「255ヘッド:255セクタ」となっていますので、領域の認識はできません。というわけで32GB以上に関しては使えるもののフォーマット互換性はあまりよいとはいえないので注意してください。

※ UIDE-133/98のパラメータ決定アルゴリズムに発端があると言えるのですが…

■ 書き換え後の動作

 本プログラムでは、容量上限やパラメータモード変更のほか、「NoATboot機能」も付加されます。これは、UIDE-66よりスロット番号の大きなスロットに挿したボードのPC/AT用BIOS不正実行を阻止する機能です。詳しくは、NoATboot関連のコンテンツをお読みください。

 UIDEデバイススキャン画面に先だって、まず先に画面右上隅のほうに、「UIDE ・・・・」という表示がなされますので、書き換え版であることやパラメータモードがわかるようになっています。

 さらに画面右上隅に NoATboot OK と表示されます。ただし既に別のボードでNoATboot機能が作動しているとき、またはUIDE-66でのNoATboot化に失敗した場合は表示されません。

 その他の付加機能として、CHANPON-ZEROにUIDE-66を載せたときのI/Oアドレス適正化や、RvII26、RsII26でも使用できるようにレジスタ(PCIコマンドレジスタのMWIビット)を変更する機能も含まれています。これらは特にメッセージ表示されることはありません。デバイススキャン時にI/Oアドレスが連続的になっていることで確認できます。

 このプログラムでROMを書き換えると、起動時[GRAPH][CTRL][Z]押しで現れるメニューの設定(BIOS認識可能/不可能、転送速度モードなど)が初期化されますので、改めて設定しなおしてください。

 127GB以上のいわゆる「Big Drvie」については、127GBまたはSCSI上限の32GBのいずれかで打ち切りで認識するように設計してあります。容量過大のためにハングアップすることはないはずです。

 UIDE-66はPC/AT互換機でも使用できますが、本プログラムでROMを書き換えた場合でもPC/ATでの動作には影響を与えません。またPC/AT上の日本語DOS/V(仮想86モードでない)でも各EXEプログラムは実行可能のはずですが(テストしていません)、メッセージは日本語であるため英語モードでは正しく表示できません。

■ 注意・補足事項

 ROMの種類には豊富に対応していますが、対応しないROMであるというメッセージが出て、選択肢が現れるような画面になった場合は、[ESC]を押して使用を中止してください。正しくないものを選ぶとROMを破壊する可能性がありますので、むやみに試さないでください。なお、UIDE-66 の場合、Winbond W29EE512(または011)以外が使用されていることはないと思われます。

 元のBIOSに戻したいときは、UIDE-66のサポートディスクにあるオリジナルBIOSデータを romup.exeで書き込んでください。しかし本プログラムを再度実行するだけでも元に戻すことはできます。ただし書き換えに使ったものと同じプログラムを使用しなければなりません。種類やバージョンが異なるプログラムの場合は元に戻せません。

 UIDE66SCまたはUIDE66PSを適用したモードで32GB以上のディスクドライブを使用していると、32GB以降の空きに見えるところをWindows2000のディスク管理で領域確保できてしまいそうになります。しかし絶対に領域確保を行なっていはいけません。パーティション情報が破壊されます。

 UIDE66MLUIDE66SDを適用し、32GB以上のハードディスクを使う場合、それをSCSI変換に接続替えした際にWindows NT,2000 で認識できないことになります。SCSI変換にて Windows NT,2000 を使用する可能性があるのならば、SC-UPCIと互換で32GB以上打ち切りののUIDE66SCかUIDE66PSを適用して32GB以内だけを使ってください。可能であればハードディスク側で32GB以内の容量に書き換えておくか32GB制限ジャンパをセットしておいたほうが安全です。

 【重要】本プログラムでパッチをあてると、CHSモードしかない(LBAモードがない)非常に古いハードディスクは対象外となります(容量認識されません)。パッチあてで追加するコードの置き場所を捻出するため当該のコードを削除しています。そのような非常に古いハードディスクは、容量的には数百MBオーダーですし、もともとUIDEでの認識失敗も起こしやすいです。速度的にみてもUIDE-66に繋ぐメリットが全くありません。

 本プログラム内には、パターン照合のための数十バイトの情報を除き、UIDE-66のオリジナルBIOSコードは含んでいません。読み出し、パッチあて、書き込みを行なっているだけです。

 絶対にオーバークロック状態では使用しないでください。BIOSデータが化けて起動できなくなり、通常の方法では回復不能になる場合があります。

 ROMをあまりに頻繁に書き換えることは控えてください。UIDE-66に搭載のフラッシュROMは数百回で書き換え寿命が来てしまう可能性があります(このプログラムの開発中にUIDE-66ボード上のROMが消去できなくなったことがあります)。本プログラムでは正規の書き込み法をとっていないことから書き換えによるボード自体の破損の可能性もあります(開発中にUIDE-133でそのようなことになった物があります)。

■ お約束

 著作権は保持しますが、フリーソフトウェアですので、自由に使用してかまいません。ただし下記の条件を遵守または了承していただける方に限ります。

[条件]

          2017-12-23 まりも

■ 改版履歴

2006-05-15 1.00 初版 3種類 UIDE66EX,UIDE66SC,UIDESS
2017-12-23 1.40 ROM書き換えルーチン改版に合わせて見直し、モード別6種類に増やした