以前の記事で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英語版でも読み書きできる可能性はあるが、どうなんだろう。