PC-9801 用 MS-DOS のフロッピーディスク認識って…

ついでなので DOS フォーマットしたディスクに関するネタ。DOS でフォーマットした(DOS から認識できる)フロッピーディスクのブートセクタにはメディアの特性に関する情報が入っています(いわゆる BPB。マイクロソフト自身による解説:KB140418。情報量は(フォーマットを行った)DOS の バージョンによって違うのですが、本質的に必要なのはオフセット 0x0b 〜 0x1f にある情報です。この部分がすべて正しく設定されていないと DOS から(DOS 以外でも)まともにアクセスできません。
…ところが、NECPC-98 シリーズ用 MS-DOS は BPB 内にあるヘッド数・トラック当りのセクタ数の情報がなくてもフロッピーディスクを正しく認識できてしまう。つまり(少なくともフロッピーディスクに関する限り)この部分の情報に依存していない。マジですか。

同じメディアを IBM PC 用の MS-DOS に持っていくと、ゼロ除算エラーで終了。ある意味想定どおりです。

…念のため言っておくと、NECMS-DOS も、フロッピーディスクのフォーマット時にこの部分の情報はきちんとセットしています(使ってるとは言ってない)。内部的にどういう感じでフロッピーのジオメトリ判定してるのかな。割と決めうちなのか?

(ところで DISK に関する資料に載っている IPL のダンプリストを見る限り、MS-DOS 2.x の BPB のヒドゥンセクタ数のエントリサイズは DWORD じゃなくて WORD のように見える。もうすこし調査したほうがいいかな…)