SORD M68 CP/M-68Kのディスクのさらに妥当なパラメータが判明しました。差分だけ書くのも読みづらいので、以前投稿した内容に修正を加えて、投稿します。以前のものはobsoleteです。
CP/M-68Kのディスクイメージ(ここではcpm68k_image.hfeと呼びます)をFacebookで親切な方から頂きました。cpmtoolsを使って、このディスクにアクセスしたいと思います。
頂いたディスクイメージはHxC FDDエミュレータ用のhfe形式でした。このままだとFDDエミュレータを搭載した実機でブートする以外は基本的に何もできない状態なので、まずは、HxCのユーティリティHxC FloppyEmulator.exeを実行して、生のセクタイメージへと変換します。これは簡単にできて、cpm68k_image.hfeを上記ユーティリティに読み込ませて、Floppy image->Export disk/Save Asと進み、セーブ画面でファイルの種類を"IMG file(RAW Sector file format)”を選択してセーブします。
HxC FloppyEmulatorの新バージョンではバッチ処理でしかRAW Imageに変換できなくなりました。バッチ処理の場合、ファイル名は変換後に変えることになります。今回はcpm68k_image.imgとしました。
SORD M68のFDDは三菱のM4854-342Mです(枝番のないリビジョンもあります)。このFDDの最大の特徴は、8インチFDDとほぼ同じパラメータで動かすことができる点にあります。
この特徴はHxCFloppyEmulatorのTrack Analyzerで見るとはっきりします。5.25インチ96TPIとしても、8インチ48TPIとしても、ディスクイメージを問題なく解析できます。
このTrack Analyzerはあまりにも多くのデータを提供するので使いこなせていないのですが、すぐわかるのは、ヘッドの数、トラック数、セクタサイズ、セクタ数、スキュの値です。
cpm68k_image.imgはヘッド数2、トラック数77、セクタサイズ256、セクタ数26、スキュは13でした。
本題のcpmtoolsをダウンロードします(http://www.moria.de/~michael/cpmtools/
)。Windows版もありますが以下の作業は全てWSL2上でLinux版を用いて行いました。ディスクの定義ファイルであるdiskdefsを開き、以下のエントリを追加します。
diskdef m68disk
seclen 256
tracks 154
sectrk 26
blocksize 4096
maxdir 317
skew 13
boottrk 2
os 2.2
end
***注意!!***
seclenから始まる左のスペースは、Tabです。これを守らないとエラーが出ます。
***注意終わり***
tracksはトラック数ですが、2ヘッドなので77×2=154となるようです。
苦悩したのはmaxdirで、これはFDDのハード的な問題ではなく、CP/Mのディスク構造の問題です。普通、maxdirは64、128、256、512などで、上記のように317などと言う中途半端な値にならないと思うのですが、一応これでディスクの内容を見ることはできています。
プロンプトから、以下のように入力すればディスクの中身を見れます。
>cpmls -Df m68disk cpm68k_image.img
ちなみに、cpm68k_image.imgの中身は非常に多くのファイルが入っています。アセンブラもCコンパイラも入っています。
AR68 .68K 16K 97 R
AS68 .68K 44K 352 R
AS68INIT. 8K 34 R
AS68SYMB.DAT 8K 44 R
BACKUP .SUB 4K 1 R
BOOT .SYS 8K 34 R
C .SUB 4K 1 R
C068 .68K 32K 252 R
C168 .68K 36K 261 R
CC .SUB 4K 1 R
CLIB . 68K 519 R
CLINK .SUB 4K 1 R
COPYDISK.68K 20K 132 R
CP68 .68K 16K 125 R
CPM .H 8K 53 R
CPM .SYS 132K 1040 RS
CTYPE .H 4K 11 R
DDT .68K 4K 15 R
DDT1 .68K 36K 270 R
DUMP .68K 8K 60 R
ED .68K 12K 94 R
ERRNO .H 4K 7 R
FORMAT .68K 20K 158 R
FUNC .68K 16K 112 R
IB .H 4K 13 R
IBLIB . 20K 156 R
INIT .68K 4K 14 R
LO68 .68K 16K 126 R
NM68 .68K 12K 67 R
PIP .68K 12K 68 R
POFF .68K 8K 56 R
PORTAB .H 4K 17 R
REBOOT .68K 20K 150 R
RELOC .68K 16K 102 R
REZERO .68K 12K 72 R
S .O 4K 8 R
SAMPLE .C 4K 5 R
SE .68K 44K 333 R
SENDC68 .68K 12K 71 R
SETJMP .H 4K 12 R
SIGNAL .H 4K 14 R
SIZE68 .68K 8K 61 R
STAT .68K 12K 73 R
STDIO .H 4K 25 R
STDRCS .68K 16K 99 R
STSCON .68K 36K 282 R
STSCON .FMT 8K 43
SYSGEN .68K 20K 131 R
SYSLIB . 4K 20 R
TOD .68K 16K 112 R
これで、ディスクの中身を見ることができました。更に、ファイルをPCにコピーするには、以下のように入力します。
>cpmco -f m68disk cpm68k_image.img 0:*.* .
これでディスクの全ファイルがPCのカレントディレクトリにコピーされます。PCからディスクにコピーすることもできます。詳しくはcpmtoolsのページを見てください。
ちなみに、CPM.SYSの内容をダンプしましたがどうやら正しそうです。しかし、STDIO.Hなどテキストファイルの内容はめちゃくちゃだったりするので、まだ正しい設定になっていないと思われます。CPM.SYS、BOOT.SYSの内容が正当なものであれば、SORD M68の解析は一歩進んだと言えるでしょう。