2016年06月19日作成 2020年2月14日更新
FLOPPY DISK IMAGE FILE READER / WRITER
フロッピーディスクを読んでD88形式のディスクイメージを作ったり、D88形式のディスクイメージをフロッピーディスクに書き込みます。
フロッピーディスクドライブの指定には、「ドライブレター」ではなく「ドライブ番号」 (0-3) を使用します。
LSI C-86 Ver.3.30 試食版でコンパイルできるソースコード付き。
「PC-9800シリーズ テクニカルデータブック」を見ながら書きました。
FDIMG.EXEは CC0 パブリック・ドメイン提供です。
2016年5月18日 佐藤恭一 http://kyoutan.jpn.org
FDIMG <読み取り元> <書き込み先> [-2D]
FDIMG 0 filename.d88
FDIMG filename.d88 0
NEC PC-9800シリース / EPSON PC-シリーズのMS-DOS上で動作します。
1MB / 640KB 両用フロッピーディスク BIOSコマンドを使用しています。VM以降くらいの機種ならきっと動きます。
外付けドライブの場合、ソフトウェアで記録密度の変更ができない場合があって、FM と MFM が混在しているディスクを正常に読み書きできなかったりします。PC-98の DISK BASIC のフロッピーディスクは先頭トラックのみ FM ですがこういうディスクは先頭トラックが欠落したディスクイメージになってしまいます。内蔵ドライブだと正常に読み書きできました。
フロッピーディスクからD88イメージを作成する時、トラックごとにフォーマットを調べて、IDの並び順やセクタのエラー情報の保存をします。
2HDのディスクを読み取るのに10分位かかります。
2HD と 2DD は自動判別します。2D の読み取りの場合はコマンドラインオプションで "-2D" を指定します。
PC-9801上で動作しますが、PC-9801のフロッピーディスクだけではなく PC-8801 や FM-7 / 77 や X1 や X68000 など、汎用のフロッピーディスクコントローラーでアクセスできるフロッピーディスクであれば読み書きできます。
トラックにIDが見つからない時と、セクタリードでエラーが発生したときにエラーメッセージを表示しますが、エラー情報を D88ファイルに記録して処理を続行します。
DRIVE 2 のフロッピーディスクを読み取っています ... 2HD
C H R N
4 1 - - ID READ ERROR 9 / 163 track
こういうの。
弱いコピープロテクトなら、プロテクトが掛かったまま記録して再現できる場合がありますが、たいていは無理です。
通常使用しない大きいトラックまで読み取りを試みるので、大きなトラック番号でエラーが出ますが、これは異常ではありません。
DRIVE 2 のフロッピーディスクを読み取っています ... 2HD
C H R N
77 0 - - ID READ ERROR 154 / 163 track
77 1 - - ID READ ERROR 155 / 163 track
78 0 - - ID READ ERROR 156 / 163 track
78 1 - - ID READ ERROR 157 / 163 track
79 0 - - ID READ ERROR 158 / 163 track
79 1 - - ID READ ERROR 159 / 163 track
80 0 - - ID READ ERROR 160 / 163 track
80 1 - - ID READ ERROR 161 / 163 track
81 0 - - ID READ ERROR 162 / 163 track
81 1 - - ID READ ERROR 163 / 163 track
こういうのは異常ではない。
('A`)