UIDE-98について Windows2000のドライバがCHS専用に見えます。(がそんなことありませんでした。読み間違えです。) のでパッチしました。近年のSSDはCHSではまともに動作できません。 118h 20 D6となってるところはNTドライバのチェッカです。 A5 F2にして 5BDhの74 0BとなってるCHS強制判定に飛んでしまうところを90 90にしましょう それで私の脳内ではLBAで動作するようになると思います。(きちんと判別されているはずなのでパッチは不要) 当然ですが無保証です。とっくにOSの保証期間もハードウェアの保証も切れています。IODATAさまに問い合わせたりしないように。 BIOSもドライバもLBA動作できるように作られています。 以下解析結果 BIOS 4台まで面倒を見れることになってます。 Identifyで情報をとってきて4351MB以下のものに対してはH=8、S=17の98標準IDEと同じパラメータを振ります。 それ以上の容量のものに対してはメディアネイティブの値でHSパラメータを設定します。(基本的にはH=16、S=63) その際に総LBA値を使っての割り算を行い、BIOSシリンダ数を計算する必要がありますので32GBより上だと0除算が発生します。パッチ場所はわかっていますが提出しません。 Identifyの後のWORD49 bit9でLBA操作可能かのフラグを見ています。立っているとLBAでアクセスします。 またATAPIフラグが立っている場合はATAで操作せずにATAPIで操作することになっていますので本来は32bitLBAまで全部アクセスできるはずですが、そのようになっていません。28bitLBAの壁はあります。 PCIバスマスタが不安定、と言われています。そこは追いかけていません。 ドライバ WORD49 bit9でLBA操作可能かのフラグを見ています。のでLBAでアクセスしてくれます。 容量判別ルーチンもあるので4351MB以下ではH=8 S=17強制です。Windows95ドライバであっても4351MB以下に対してはInt1BhのSENSEを見てない可能性があります。 32GB以上でも32bitでの割り算をするので16bitあふれは起こしません。(98フォーマットでなければ32GBより上でも使えそう?) 2025年3月18日 初版 2025年3月19日 逆汗読み直して解説追加 2000用LBAパッチは無駄 意味がない 文責 リウ