先日kazx68kさんが興味深い考察をされていました。
倍トラックのFDDで標準トラックのフロッピー(以下、FD)をエミュレーションするときに実際の媒体上の磁化領域はどうなっているか、というものです。
以前私も少しだけ調べようとしたことはあるのですが、想定していたのと違う結果だったので驚いた記憶があります。
当時は充分な知識も情報もなかったのでそのままお蔵入りしていたのですが、この機会に調べてみました。
◇◇◇
まず前提として。
PC-8801は搭載しているFDドライブ(以下、FDD)によって二つの系統に分けることができます。
・2Dドライブを載せたF系(SR/TR/FR/FH/FA/FE/FE2)
・2HDドライブを載せたM系(MR/MH/MA/MA2/MC/VA/VA2)
以上の二種類です。
PC-8801シリーズは後方互換性の維持を堅持していて、M系のドライブでも2Dメディアの読み書きができるようになっています。
しかし、当時は「2HDドライブで書いた2Dメディアは2Dドライブでアクセスできない可能性がある」という説がありました。
私もこの説を信じて、2HDドライブの機種に使う2Dメディアは2DDのものを専用に用意して、2Dでフォーマットする、かつ2DD/2HDフォーマットは絶対にしない、という運用を今までしています。
今回の検証はこの説が妥当なのかどうかを確かめます。
なお、この記事では
Side0(サーフェース0)&トラック0をTRACK0、
Side1(サーフェース1)&トラック0をTRACK1、
Side0(サーフェース0)&トラック1をTRACK2、
Side1(サーフェース1)&トラック1をTRACK3(以下同様)
と表現しています。
◇◇◇
今回は一度2Dドライブでフォーマットしたメディアを2HDドライブで2Dフォーマットして、そのメディアを2Dドライブで読んでみるということを基本にいろいろ検証しました。
以下、調査内容と結果です。
・2DドライブでフォーマットしたFDを2HDドライブで2Dで再フォーマットした後2Dドライブで読んでみる
⇒普通にアクセスできます。書き込んだ内容も2HDドライブで書き込んだものです。
・このメディアを2HDドライブで2DDモードでトラックアナライズする
Track0:OK
Track1:OK
Track2:Unformat
Track3:Unformat
ここで、私の当初の想定と違う結果になりました。
後述する想定ではTrack2にTrack0と同じデータが、Track3にTrack1と同じデータが現れるはずでした。
○2Dと2DDの磁化領域の相対位置(想定)
黄色が情報が磁化されていない領域、緑が磁化された領域です。
私は当初、2Dと2DDの磁気情報が書き込まれた位置はこんな風になっていると考えていました。
過去の調査で2HD搭載機で2Dメディアをアクセスするときは本体から来たトラック移動信号をドライブ側で倍にして動作していることは確認していましたから、ソフトがTrack0⇒Track2の順にアクセスするときはドライブはTrack0⇒Track4にアクセスします。
この前提が正しければ2Dドライブで書いたメディアのTrack0を2HDドライブ搭載機で書き換えると下の図の(a)→(b)のようになるはずです。
○2HDドライブで2Dエミュレーションして書き込むとどうなるか
この状態で2DDモードでトラックアナライズすれば、TRACK2も書換前のTRACK0のデータが読めるはずですが、実際にはUnformatと判断されます。
また、2Dドライブで読み込んだ時に書換前のデータと書換後のデータが混在することになり、正常に読み込めないはずです。
前述の説とも一致します。
しかし実際には正常にアクセスできています。
そこで2HDドライブが2Dエミュレーションしているときには上図(c)のように2Dドライブに合わせてトラック位置をオフセットしているのではないか、という仮説を立てていました。
これなら2Dドライブで読んだときに書換前の磁気はわずかになり、書換後の磁気が大勢を占めるので、2Dドライブで読めるのではないか、と考えたわけです。
以前調べた時にはここである程度納得できたのでここで調査を終わらせていました。
しかし、kazx68kさんの考察と、2DD搭載のFM77AVで2Dソフトが起動しない、という記事を見て、ちゃんと調べることにしました。
◇◇◇
ちゃんと検証するためには、FDDの磁気ヘッドのギャップの数値が必要です。
いろいろ探してようやく見つけました。
TEACのFD-55A/B/E/F/Gのスペックが載っている資料です。
この資料に載っているデータを基に前述の図の磁化領域/非磁化領域の幅の比率を合わせました(この記事に載っている図は修正後のものです)
それを基にいろいろ仮説を立てては検証していたのですが、ここでもう一つ大事なデータが載っていることに気づきました。
(いろいろ検証していたのに、全部無駄に…
)
2ページ目にある「Track Radius」(トラック半径)です。
これによるとTRACK0に相当する「Outside/side0」の値はどのモデルでも同じ57.150mmになっています。
(ちなみにFD-55A/Eにside別の値が載っていないのは片面専用ドライブだからです)
FD-55B(2Dドライブ)のTRACK78とFD-55F(2DDドライブ)のTRACK158(いずれもそれぞれのドライブでside0の最終トラック)に相当する「Inside/side0」の値も差は0.265mmです。
トラック幅が2Dでは0.529mm、2DD/2HDでは0.265mmと半分になるので、その差分を考慮して先ほどの図を補正するとこうなります。
○2Dと2DDの磁化領域の相対位置(データシート記載のトラック半径による補正後)
2HDドライブで2Dのメディアをアクセスするときは2HD/2DDでの偶数トラックのトラック位置(図の破線部分)が同じになっていて、同じく奇数トラック(図の二点鎖線部分)は2Dでのトラックギャップ部分に位置しています。
これならトラック位置に関しては問題なく相互に互換性を保てそうです。
ちなみに上の図の黄色い部分はデータ書き込みの際に消磁されるので、2Dで書いたメディアに2HDドライブが2Dエミュレーションして書き込んでも2Dの幅で磁気が残ることはありません。2HD/2DDの幅になります。
実際にはリード/ライトヘッドで規格で決められたトラック幅よりもわずかに広い幅(図中にある緑と黄色の間にある薄い緑の部分を含めた幅)で情報を磁化して、続くイレースヘッドで緑色の幅に合うように周囲を消去しているようです。(これを「トンネルイレース」と呼んでいます)
トラック位置関係は2Dと2DD/2HDの分離ができているようなので、互換性を維持するために必要な対策として残る可能性は次の二つです。
・2Dドライブと2DDドライブの磁化の強さが違う
・2Dメディアと2DDメディアで保磁力が違う
2Dエミュレーションで書き込みしたトラックを2Dドライブで読み込むとき、情報が磁化された領域は2Dヘッドの半分の幅になります。
それ以外は情報が磁化されていない領域、つまりホワイトノイズの発生源になります。
上で挙げたような対策が施されていない場合2HDドライブで書き込まれたデータを2Dドライブで読み込むとき、単純計算でSN比が半分になる(※)のでその分エラーが発生しやすくなります。
※:実際はそんな単純な話ではないでしょう。
それぞれのタイプのFDDでメディアを磁化するときの強さが同じかはこの資料からはわかりませんでした。
2D/2DDそれぞれのメディアの保磁力が載っていそうな5インチメディア側の規格はJIS X 6211で規定されているようなのですが、既に廃止になっており情報を得られませんでした。
2DDと2HDのメディアの保持力についてはこちらの資料に載ってましたが、2Dメディアの保持力の情報が見つかりません。
https://sts.kahaku.go.jp/diversity/document/system/pdf/124.pdf
この資料によると2HDの保持力は600Oe、2DDの保持力は300Oeとのこと。
同じ資料の「フロッピーディスクとドライブ技術の系統図」によると、5インチ1S/2D/2DD世代の磁性体材料は200~300Oeとなっているので、5インチ2Dも300Oeだったんでしょうか?
もしかしたらPC-8801M*のFDDではトラックの幅が半分でも2Dドライブのヘッドで充分な起電力を得られるよう磁気的な互換性についても保つような考慮がされているのかもしれません。
検証しようがないけど…。
【4/27追記】
PC-8801FH/MHのプログラマーズガイドのp.275他1か所、
PC-8801MCのプログラマーズガイドのp.331他1か所、
PC-88VA2/VA3のユーザーズガイドのp.19
以上の箇所に「本機(※)で書き込んだ2Dメディアは他の2D専用機で読み込めないことがある」旨注意書きが入っていることを確認しました。
※PC-8801FH/MHでは「MH」と表現
私がマニュアルを持っているのは上記3機種だけですが、他の機種(MR/MA/MA2)でも同様の注意書きがあると思われます。
ということは、特に磁気的な互換性について保つような考慮はされていないのかも。
【4/27追記終わり】


