フロッピーディスクの表と裏
最近でもフロッピーディスクを使っているという話がニュースで流され、まるで生きている恐竜が見つかったような騒ぎもあった気がします。
ファイルの保存などで使われているフロッピーディスクのアイコンが何を意味するのかが、既にわからない人も多いみたいだけど当然ですね。もうフロッピードライブのある現役のPCはありません(非常用にUSB接続のドライブは持っていますけど)。
まだ覚えている人でも、それはきっと3.5インチでしょうね。ペラペラしている文字通りフロッピーなディスクなんて、見つけても中身を使うためのドライブのほうが動きません。
フロッピーが何であるか、どういう歴史があるかは、以下のWikiで確認してもらうとしましょう。
フロッピーディスク
フロッピーディスクの歴史
そもそもは外部記憶装置としての磁気ディスクがありました。普通は取り外すことはできないものでしたが、ディスクパックなんていう磁気ディスク装置の板の部分だけを交換できるようにしたものはありましたけど、プログラムやデータをやりとりするのは磁気テープを使うのが一般的でした(年齢的になんで知っているんだという話もありますが、大学時代のNMRとかでまだ使っていたんですよ)。
パソコンは最初、手軽に使える音楽用カセットテープを使っていたのですが、速度の問題もありますが、シーケンシャルアクセスのみで、MZ80などの例外はありましたが、大抵は手で録音再生ボタンを押さないとならないというのが、致命的でした。
そこで最初はメインフレームやミニコン用だったとは思うのですが、安価で手軽にデータ交換ができる8インチのフロッピーディスクが開発されたのです。パソコン用には容量も少ないけれども、より簡略化されて安価な、少し小さい5インチが少しづつ使われるようになりました。
この簡略化というのが曲者で、ドライブの蓋にあたる部分のセンサーを省いてしまったので、ディスクが交換されたことを検知するすべがありません。このためデータを読み書きしている最中にフロッピーを取り出してしまっても、データがいきなり読めなかったり不完全な書き込みになったり、もっと困ったことは入れ替えたこともわからないので、次にアクセスした時に前回アクセスしたときと中身が変わっていても知らんぷりなことです。ですから内容をメモリに保存しておいても信用できません。アクセスするたびに中身を忘れ、ディスクを入れ替える時は、アクセスしていないことを確認して「そおっと」交換するしか有りません。
さすがにこれは不便すぎますし、いくら気をつけても事故は起こるので、いくつかの工夫が行われました。
apple][のDOSの場合だと、ディスクごとにボリューム番号というのを初期化時につけます。ディスクを読んでみて、このボリューム番号が変わっていなければ、きっと同じディスクが刺さったままであると思いこむのです。もっともボリューム番号は1バイト分しかないので255種類(0は特別な用途がある)しか割り振れないですが。まあ普通はこれで大丈夫でした。
CP/Mの場合は、ディスクを交換するたびにCTRL-Cと打って、OSにディスクが交換されたことを知らせる必要がありました。これを忘れると内容を更新した時に、以前の状態との差分だけを更新するので、新しいディスクに前のディスクの内容を不用意な場所に書き出してしまい、大抵はデータが壊れます。悪いことには、その時点では気が付きもしないことです。用心のためにはプロンプトが出ている時には、まずCTRL-Cを打っておきます。ただプログラムの実行中にCTRL-Cとやると、プログラムが停止してしまうので、ちゃんとプロンプトを確認しないといけません。
もっとも悪名が高かったのが、PC8001のDISK BASICで、フロッピーを使うたびに、まずMOUNT命令を実行し、終わったらREMOVEとやらなければなりません。これを忘れるとCP/Mの時と同じ話で、やはりデータが飛びます。こちらはプログラムで実行することができるので、普通は処理の一部として書いてあることが殆なのですが、プログラムが異常終了すると、REMOVEが実行されていなくて、そのままディスクを交換してデータをお釈迦にすることがあります。自分で書くプログラムにちゃんとエラー処理まで書く几帳面な人は、そんなにはいません。
これをきちんと解決するには、8インチと互換性のある2HD対応ドライブが普及するのを待つしか無かったのですが、あまりに酷いので、こっそりとというか頑張ってディスクの交換を検出するロジックがOSレベルで組み込まれました(MS-DOSではCTRL-Cは不要です)。ただ頑張っただけなので根本的な解決にはならず、5インチは遅い、使いにくいということで8インチにこだわる人もいました(私も最初にPC9801Fを買った時は、同時に8インチドライブも買いました)。
ところでコスト優先であるapple][用のdisk][は、当然ですが、ヘッドはひとつしか無く、片面しか読み書きできません。ただフロッピーの方は、わざわざ片面と両面のラインナップを揃えるほうが面倒なので、大体は裏面にも磁性体が塗布されてありました。そこで殆どのdisk][ユーザはフロッピーをひっくり返してドライブに挿入することで裏面も使っていました。なにせ私がドライブを買った当初はフロッピー1枚で2000円(純正品の場合)もしたんですよ。
フロッピーディスクにデータを書き込むには、決まった位置に切り込みを入れて、書き込み可能であることをドライブに教える必要があります。普通に売られているフロッピーディスクには、あらかじめ、その部分の切込みが入っており、データを書き込んだ後に、書き込みを出来ないようにするためには、そこを銀色のシールで塞ぐ必要がありました。シールが銀色なのは多くの場合ノッチを光学的に検出していたからだと思います。
裏面を使う場合、ひっくり返すとノッチの位置が反対側になるので、そのままだと切込みが見つからず、ドライブは書き込みが出来ないと判断してしまいます。そこでカッターを取り出して自分で切込みを入れるのです。これで裏面も使えるという訳です。なお、市販のプログラムなどが入っているフロッピーディスクは、そもそも書き込んでほしくないので、ノッチが入っていません。自分で、そのようなディスクを作りたいときには、シールを貼るのも面倒ですし、普通の人は自分でノッチを切ったりしないので、ドライブのノッチ検出部分を潰して(正確にはスイッチを付けて)書き込めるように改造してしまいました。後はとあるルートからノッチなしのディスクを手に入れれば立派に市販品が作れるわけですね。
さて、そろそろフロッピーディスクに、どのようにデータが格納され、どう読み出されるかに進みたいのですが、ここにもappleらしさがたくさんあって長くなりそうなので、次の機会にします。ああ3.5インチのこともまだ書いてないや。
参考:
「フロッピーディスク」関連の最新 ニュース・レビュー・解説 記事 まとめ