【改訂版】なぜ内蔵フロッピーのケーブルはねじれているのか
- 公開日: 2010/08/08(日) 14:45[JST]
以前書いたものはちと分かりづらかったり、不正確だったりするので書き直してみる。
自作PCを組んだことがある方はご存知かと思うが、フロッピーディスクドライブを接続するためのフラットケーブルは、赤い線から数えて10番目から16番目までの7本のケーブルが途中でねじれている。つまり、マザーボード側のFDコネクタの10番ピンはドライブの16番ピンに、11番ピンは15番ピンに…というふうに接続されることになる。なぜこうなっているのかというと、FDDを2台接続したときに、1台目(いわゆるAドライブ)のドライブと2台目のドライブ(Bドライブ)とを自動判別できるようにするため、である。FDDを2台接続できるフラットケーブルもあり、そのようなケーブルの場合、一端にマザーボード用のコネクタ、他端にAドライブ用のコネクタ、中途にBドライブ用のコネクタが設けられており、上記の「ねじれ」はAドライブ用コネクタとBドライブ用のコネクタの間に設けられている。
で、なぜこんな仕様になっているのか、とうことを歴史的に説明してみる。
IBM PCというのは、今で言う所の社内ベンチャー的なプロジェクトだったらしく、予算も期間も非常に限られた中での開発を強いられていた。そのため、既製品を最大限活用することになった。フロッピーディスクとそのコントローラも、シュガート社(余談だが、この会社はIBMでフロッピーの開発を行っていたアラン・シュガートが興した会社である)のもの(またはその互換品)を使うことになった。
シュガート社のドライブは、一本のフラットケーブルで最大4台のドライブを接続できるものだった。リード・ライトのデータ信号線、及び、磁気ヘッドの移動のための制御信号用の線は全ドライブで共用するものであり、ドライブセレクト用の信号によって、どのドライブに対して読み書きするのかを決めるようになっている。具体的には、ドライブセレクト用の信号は、6、10、12、14ピンに入力されるようになっており、各ドライブは、ジャンパ設定等によって、どのピンがLレベルになった時にデータの読み書きとヘッドの移動を行うのかが、あらかじめ決められている。具体的には、10番ピンがLレベルになったときは、第1ドライブが駆動され、12、14、6番ピンがLレベルになったときは、それぞれ2〜4番目のドライブが駆動されるようになっている。なお、奇数ピンは全てGNDである。
さて、この仕様には、二つ欠点があった。一つは、ドライブ側でジャンパ設定等で何番目のドライブとして使うかを設定しなければならないことである。もう一つは、16番ピンがモータへの通電を制御するための信号であり、この信号が全ドライブ共通で、このピンがLレベルになっていると、全てのドライブのモータが動作してしまうことである。これは、電源容量的に問題がある。
そこで、IBMは、この問題を解決するため、マザーボード側での(厳密には、マザーボードに取り付けられたFDインターフェース拡張カード側での)Aドライブのドライブセレクト信号を14 番ピンに、Bドライブのドライブセレクト信号を12番ピンとし、16番ピンにBドライブ用のモータドライブ信号、10番ピンにAドライブ用のモータドライブ信号を出力するようにした。そして、ドライブ側では、12番ピンがLレベルの時のみ読み書きやヘッド移動を行う設定とした。そして、上述のねじれたケーブルを使えば、上記の欠点は解消される。この方式を実現するためには、FDコントローラとマザーボード側のコネクタとの間にドライブ数分のANDゲートを追加するだけでよい。外付けドライブ込み(昔のIBM PCは、内蔵2台、外付け2台の4台のFDDを接続することができた)でも、4つのANDゲートがあればよく、1チップ追加するだけでOK(だよね?)。←間違い。ORゲートですな(8/9記)。
さて、あと残った疑問は、なぜケーブルがねじれているのがAドライブ側なのか、ということだ。これは正直よく分からない。一ドライブしか使わない状況を考えると、ねじれている側をBドライブにした方が合理的かと思うのだが、当時は一ドライブのみで運用することなど想定外だったのかもしれない。
(2010/8/9追記)初代IBM PC(IBM 5150)のTechnical Referenceマニュアル等によれば、初代IBM PCの開発時点(1981年)では、5インチフロッピーの高さは2インチであり、ドライブは左右に並べて配置されていた。右端に配置されるのがBドライブであり、だいたい中央付近に配置されるのがAドライブである。拡張バス(XTバス)は,左側に配置されていた。そして、2台のFDDの後ろには、電源ユニットが鎮座している。このため、フロッピーケーブルは、ドライブと電源ユニットのわずかな隙間(1〜2センチくらい?)の間に配置しなければならなかった。さて、シュガート社のFDDは、ディスクに平行にコネクタが配置されている。このため、ドライブと電源の隙間に通したフラットケーブルをねじらなくてはケーブルをドライブに接続できないことになる。34芯のフラットケーブルはそれなりに固い。電源と左側のドライブとの間の隙間でねじるのは相当困難なのではないだろうか。一方、右側のドライブと接続するならば、多少は余裕ができる。そして、AドライブとBドライブとの間のケーブルは、「ねじれ」によって、3つに分かれており、それが故にせまいところでも取回しが比較的容易ではある。そのため、あえて、FDコントローラボードから遠位となる(が故にスペース的に余裕の大きい)Bドライブとの間はストレートケーブルで繋ぎ、BドライブとAドライブとの間は取回しの効くねじりありのケーブルとしたのではないだろうか。
なお、DOSのドライブレターは、DOS3.3以前は全てのフロッピードライブがHDDに優先して若いドライブレターがつけられるようになっていた。 そのため、フロッピーを四台つけた構成では、最初のハードディスクはEドライブとなる。DOS4.0以降では、AとBドライブが内蔵フロッピードライブに固定され、Cドライブ以降は、ハードディスク、外付フロッピーの順にナンバリングされるようになった。
以上の説明は、"More Than Two Floppy Drives"と、「RETRO PC Net: FM-77AV2に、FM-7で使用していた5.25" FDDを接続する」を参考にした。