ディスクイメージを操作する際、生トラックデータをいじるのが最も直截的かつ簡単な方法です。HxC_FloppyEmulatorは強力ですが、いちいちHFE形式に変換するのが非常に面倒です。HxC_FloppyEmulatorでも生トラックディスクは対応しているようですが、フリーのFlashFloppyでならより簡単にできそうだと考えて検討してみました。
5.25インチのFDDの中には、8インチFDDとほぼ同じパラメータで動かすことができるドライブが存在します。SORD M68に搭載されているFDD、MITSUBISHI M4854もそうです。例えば、CP/Mのディスクイメージは原則、最初の0トラック、0サイドだけは単密度記録であることが期待されています。それ以降の領域は、メーカーに委ねられているようです。倍密度ができるなら倍密度記録になるケースが殆んどだと思います。
FlashFloppyの設定ファイルにはドライブ自体の設定を行うFF.CFGと、イメージに対する設定ファイルであるIMG.CFGがあります。FF.CFGの設定はコメントが詳細で、あまり悩む点はないので割愛します。
FlashFloppyのIMG.CFGは非常に細かく設定を記載できるようになっていますが、基本的には余計な設定をしない方が良いです。
以下に、SORD M68 CP/M-68K、FDOS用のIMG.CFGを記します。
# Image configuration for SORD CP/M and FDOS image
[::1021696] <---- ディスクの容量。77*2*256*26 - 128*26 =1021696
cyls = 77 <---- シリンダの数。単面ならトラックの数。
heads = 2 <---- ヘッド数。両面なので2。
rpm = 360 <---- 回転速度。記憶容量によって速度が違う。
file-layout = interleaved <----- トラック毎にディスクの表→裏と読むように指示。
gap2 = auto <--- 下にあるIBMフォーマットの図を参照。
gap3 = 54 <--- IBMフォーマットで最後尾のGAPの長さ。AUTOでも良いかも。
tracks = 0.0 ## Boot cylinder, head 0 <--- 以下はトラック0、ヘッド0の情報
secs = 26 <---- セクタ数(M4854はWEBで検索すると15と出ますが信用しない)
bps = 128 <---- 1セクタ当たりのバイト数。ここは単密度なので128。
mode = fm <---- FM記録(単密度記録)
interleave = 1 <--- 基本1でよい。
id = 1 <--- 基本1でよい。
tracks = 0.1 <---以下はトラック0、ヘッド1の情報
secs = 26
bps = 256 <---- 倍密度なので256
mode = mfm <---- MFM記録(倍密度記録)
interleave = 1
id = 1
tracks = 1-76 ## All other cylinders <--- 残り全てのトラック&ヘッドの情報
secs = 26
bps = 256
mode = mfm
interleave = 1
id = 1 # Follows on from head 0 (1..18)
参考の為に、IBMフォーマットの図を示します。
IMG.CFGはいろいろな情報をひとまとめにかけますが、うまくいかない時は、1トラック、1ヘッドずつ書く方がちゃんと動くと思います。
FDDのメーカー、型番でネット検索すると色々データが出てきますが、基本的にあまりあてになりません。もしディスクイメージがHxC_FloppyEmulatorのHFE形式であれば、HxC_FloppyEmulatorのユーティリティソフトのTrackAnalyzerで調べることで、記録方式、回転数、セクタ数などかなりのことが分かります。
ディスクイメージは何らかの形式で保存されているので、HFE形式でなくても、HxC_FloppyEmulatorのユーティリティで読み込める可能性は高いです。このユーティリティはフリーです。