以前の記事でWindows 2000以降がサポートするフロッピーディスクフォーマットについて書いたが、Win 9xではどうかというと、これがまた複雑な状況になっている。
ハードウェアの制約により、PC/AT互換機で3.5インチ1.2MBフォーマットのディスクを読み書きするには3モード対応FDDを搭載したPCとドライバーが必要なことはこちらに書いた通り。
→ PC/AT互換機のWin98にてPC98 1.2MBフォーマットのフロッピーディスクを読む
これに加え、Windows 95, 98, Meの日本語版に限り、Windows上で1.2MBフォーマットのディスクを読み書きできる。既にフォーマットされたディスクを読み書きすることはできるが、フォーマットすることはできない。また、MS-DOSモードではアクセスできない。
技術詳細
まず、1.2MBフォーマットと1.44MBフォーマットの仕様の違いは次の通り。1.2MBフォーマットの仕様は8インチ2Dディスクに由来し、5.25インチや3.5インチHDディスクではサイズやこれに関係する記録密度以外は同じ。
| フォーマットの種類 | 物理仕様 | 論理仕様 | ||||||||||
| 媒体の種類 | 回転速度 | トラック密度 | 記録方式 | 転送レート | 面数 | 容量(U) | セクタサイズ | セクタ数 | シリンダ数 | 容量(F) | ||
| 2D(1.2MB) | 8" 2D | 360rpm | 48tpi | MFM | 500Kbps | 2 | 1.6MB | 1024B | 8 | 77 | 1232KiB | |
| 2HD(1.44MB) | 3.5" 2HD | 300rpm | 135tpi | MFM | 500Kbps | 2 | 2.0MB | 512B | 18 | 80 | 1440KiB | |
Win 9xにおいてディスクアクセスの最下層(ハードウェアとの通信)を担うドライバーをPort Driverと呼び、フロッピーディスクの場合はHSFLOP.PDRというファイルがこれを担っている。Win 9x日本語版に含まれるHSFLOP.PDRのみ、3モードFDDのモード切り替え(別途、サードパーティの3モード対応ドライバーが必要)や1.2MBフォーマットに対応している。このPort DriverはBIOS (Int 13h) を使わないため、BIOSで3モードFDDのサポートが有効かどうかは関係なく、マザーボードのSuper I/O (FDC)に対応するドライバーがあれば、3.5インチ1.2MBフォーマットのディスクにアクセスできる。5.25インチドライブではこの制約はなく、Win 9x日本語版であれば読み書きできる。
Win 9xにおけるディスクフォーマットの判別メカニズムはDOSのそれと同じ。ディスクの最初のセクターにあるBPB (BIOS Parameter Block)のジオメトリー情報が正当であれば、それを利用する。BPBが有効でない場合は、メディアディスクリプターの値から判別して、ドライバー自身が持っているBPBをコピーする。Win 9x日本語版のHSFLOP.PDRだけ、1.2MBフォーマットのメディアディスクリプター (0FEh) に対応したBPBを復元できる。正当なBPBを持つ5.25インチ1.2MBフォーマットのディスクならWin 9x英語版でも読み書きできる可能性はあるが、どうなんだろう。