tunozemichanの日記 / tunozemichan's diary

SORD社のコンピューターM68やM68MXの解析についての備忘録です。This blog is a memorandum about the analysis of SORD's computers M68 and M68MX.

CP/Mディスクイメージ(ベタトラックデータ)をFlashFloppyで読み込む設定

ディスクイメージを操作する際、生トラックデータをいじるのが最も直截的かつ簡単な方法です。HxC_FloppyEmulatorは強力ですが、いちいちHFE形式に変換するのが非常に面倒です。HxC_FloppyEmulatorでも生トラックディスクは対応しているようですが、フリーのFlashFloppyでならより簡単にできそうだと考えて検討してみました。

 

5.25インチのFDDの中には、8インチFDDとほぼ同じパラメータで動かすことができるドライブが存在します。SORD M68に搭載されているFDDMITSUBISHI  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 CPM68K/FDOS image
[::1021696]
cyls = 77
heads = 2
rpm = 360
file-layout = interleaved
gap2 = auto
gap3 = 54
tracks = 0.0    ## Boot cylinder, head 0
  secs = 26
  bps = 128
  mode = fm
  interleave = 1
  id = 1
tracks = 0.1
  secs = 26
  bps = 256
  mode = 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)


# 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フォーマットの図を示します。

f:id:tunozemichan:20211128205225j:plain

IBMフォーマット

 

IMG.CFGはいろいろな情報をひとまとめにかけますが、うまくいかない時は、1トラック、1ヘッドずつ書く方がちゃんと動くと思います。

 

FDDのメーカー、型番でネット検索すると色々データが出てきますが、基本的にあまりあてになりません。もしディスクイメージがHxC_FloppyEmulatorのHFE形式であれば、HxC_FloppyEmulatorのユーティリティソフトのTrackAnalyzerで調べることで、記録方式、回転数、セクタ数などかなりのことが分かります。

ディスクイメージは何らかの形式で保存されているので、HFE形式でなくても、HxC_FloppyEmulatorのユーティリティで読み込める可能性は高いです。このユーティリティはフリーです。