2009-04-03

Windows 95に入りそうだった機能:フロッピーディスクの挿入判定

The Old New Thing : Windows 95 almost had floppy insertion detection but the training cost was prohibitive

当時、Windows 95に入りそうだった機能として、フロッピーディスクが挿入されているかどうか判定する機能というのがあった。つまり、Windows 95は、ドライブを回さなくても、フロッピーディスクの有無を判定できるはずだったのだ。

Windows 95の32bitドライバを開発していた人が、フロッピーディスクドライブの規格を丹念に検証していたところ、ある変態的な順序でコマンドを送ることにより、フロッピードライブを回転させずとも、ディスクが挿入されているかどうかを判定する方法を、見つけてしまった。しかし、問題があった。

フロッピードライブの規格は、ある挙動について、言及していなかった。現実の様々なフロッピードライブを検証してみたところ、フロッピードライブのベンダーの半数は、ある方法で実装し、もう半数は、別の方法で実装していた。以下のようになる。

FDDの実装 ディスク有 ディスク無
"A"10
"B"01

戻り値は、どちらの実装を使っているにせよ、信頼できるものであった。しかし問題は、二つの実装は、正反対の戻り値を返してくるということだ。ドライブがどちらの実装を使っているかさえ知っていれば、戻り値を利用できるのだが、難しいのは、どうやってユーザーの使っているドライブの実装を知るかということだった。

セットアップ時に、トレーニングをするというアイディアがあった。

  • 「フロッピーディスクを挿入してから、次へ、をクリックしてください」

ディスクが挿入されたら、上の方法を使って、0と1のどちらを返すのかを調べ、フロッピードライブがどちらの実装を使っているかを判断できる。

残念なことに、様々な問題があった。Windows 95が、プリインストールされたパソコンを買ったユーザは、トレーニング画面を見ることがない。OEMメーカーに、トレーニングを任せることはできない。なぜならば、OEMメーカーは、ころころ使うドライブを切り替えるからだ。毎週、最安値のドライブを発注するのだ。それに、クリスマスにパソコンを買ってきたユーザーは、トレーニング画面など見たくないだろう。「Windows 95をご利用いただき、まことにありがとうございます。まずはじめに、フロッピーディスクをAドライブに挿入してください」。また、勝手に「フロッピーディスクドライブのライトを付けて、騒音を発する」(訳注:実際にアクセスして、フロッピーディスクが入っているかどうかを確かめてから、暗黙のうちにトレーニングを行うことか)こともできない。すくなくとも警告が必要だ。「Windows 95をご利用いただき、まことにありがとうございます。まずはじめに、Windowsはフロッピーディスクドライブのライトを付けるために、騒音を出させていただきます。OKを押してください」

フロッピーディスクの挿入判定というのは、ユーザーをして、「この最初のトレーニングが面倒だけれど、便利だね」と言わしめるほど便利な機能ではない。

残念ながら、フロッピーディスクの挿入判定を組み込むことはなかった。ほぼ完成していた機能だったのに。

ユーザーが、Windows 95のインストール後に、FDDを取り替えた場合は考えなかったのだろうか。

No comments: