●ディスクイメージ作成
XM7で手持ちの2Dディスクのプログラム(ゲームなど)を利用するには、ディスクの中身をすべて読み出してディスクイメージファイルというものに変換する必要があります。
XM7では2Dフォーマット、D77フォーマットの2種類のディスクイメージファイルを利用できます。
D77フォーマットという形式のファイルに変換する必要があります。
●2Dフォーマット
X1エミュレータ
for X68k用に開発されたフォーマットです。
はっきりいって、2Dフォーマットについては調べたことが無いのでさっぱり分かりません。そのうち調べようかなと(^^;
PI.さんのドキュメントを読む限り、327,680バイトのサイズを持っているそうなので、きっと256バイト/セクタ×80トラックの決めうちでセクタイメージをすべて読み出したいわゆるべたイメージなのだと思います(推測)。
●D77フォーマット
PC88系のエミュレータで標準的に使われているフォーマット。PC88系ではD88フォーマットとして拡張子が'D88'になっていますが、XM7では"FM-7用のディスクイメージだよ"という点が分かるように'D77'にしています。D88との違いはそこだけです。
こちらもセクタイメージの集合ではあるのですが、各セクタごとにCHRN(ID)情報や、読み出したときのFDCステータス(CRCエラーのみ)、DDMなどの情報を持っているので、よりオリジナルのディスクに近い情報を保持できます。
たとえば、CHRNに異常な値を指定しているゲームソフトや、セクタ長が256でないディスクでもイメージ化可能です。
このフォーマットで再現できないディスク(特にプロテクト)としては、Gap内データやコロコロプロテクトなどくらいでしょう(たぶん)。最近、XM7の掲示板で問題になっていたN=5問題もありましたね。時分秒プロテクトもだめかな?Nに$F5とかくるとμPD765A系では大きなセクタとして読み出されてしまうかも。
D77フォーマットのディスクを(DOS/V上で)作成するにはPC8801系エミュレータ「M88」で使用されているDITT.EXEというプログラムを使うのが手っ取り早い方法でしょう。
【ちょっと濃いネタ】N=5も時分秒もエミュレータ上で再現するのに技術的な問題はありません。ただ、DITTやMakeHDなどのFDイメージ作成ツールがDOS/VやPC98などのμPD765A系のFDCを搭載したPCで動作するため、N>3の時に問題を起こします。MB8877A系(というか、FD179X系?)のFDCはNは3まで(下位2ビットしか)見てないので実機ではN>3でも問題なく動作しますが、DITTなどで読み出そうとするとμPD765A系FDCになるのでN>3も扱え(MFMモードではN=6まであるし、6以上は6とみなされる)、セクタデータ部終了後まで読み取ろうとしてデータCRCエラーを起こします。つまり、DITTで読むのが無理なだけで、この手のプロテクト(?)はエミュレータ上で再現可能です。
GAP内データやSYNC異常などは再現できません。D77イメージはセクタデータしか持っていないのが原因です。エミュレータではREAD
TRACKコマンドが発行されるとGAP4aからGAP4bまですべてを合成しています。つまり、GAPは$4E、SYNCは12バイトというように、標準IBMフォーマットを仮定したトラックイメージを合成するのです。このため、GAP内データなどは再現できません。判定ルーチン潰ししか手はないということです。
●D77フォーマットの連結
D77(D88)フォーマットでは、複数のディスクの内容を1つのファイルにまとめることが可能です。
実際には、イメージファイル同士をそのまま連結すればよいだけですので、例えば、
C:\> copy disk1.d77 /b + disk2.d77 /b disks.d77 /b (こんなにたくさん/bいらないのかな?)
のようにすれば、disk1.d77ファイルとdisk2.d77ファイルを連結してdisks.d77ファイルができあがります。できあがったdisks.d77はXM7で普通にマウントすることができます。また、2枚組みの場合、「両ドライブで開く」で開けば1枚目がドライブ0に、2枚目がドライブ1にマウントされますので便利です。
●DITT.EXEを利用する方法
DITTを使用するときには必ずFDにライトプロテクトをかけてから行いましょう。
XM7でサポートしているディスクイメージファイルのひとつであるD77フォーマットは、PC-8801系のエミュレータであるM88で使用されているD88フォーマットと互換のフォーマットです。つまり、P88SR用のDITT.EXEというツールがそのまま使用できます。
DITT.EXEは次のURLのページからリンクをたどっていくと入手できます。
http://www.remus.dti.ne.jp/~cisc/m88/
DITT.EXEの使用方法は簡単で、(たとえば5" 2Dディスクの場合)DOS/V機のAドライブに5”FDDを接続し、次のようにコマンドを打ち込みます。
C:\>ditt r -t "IMAGE TITLE" a: image.d77
これでimage.d77というイメージファイルに変換されます。-tオプションはイメージファイルにタイトルをつけて、分かりやすくするためのものなので省略可能です。
DITTは必ずDOSモードで使用しましょう。Windows 9x/MeのDOS窓でも実行できますが、まれにセクタを読みこぼすことがあるようです。
いくつかのFDDで試してみましたので、結果を表にまとめてみました。以前、TEACのFD-55GFRではうまくイメージが作れないと書いてしまいましたが、その後のテストでイメージを作成できることが分かりました。
ちなみに、DITT.EXEは直接FDCをコントロールするので、Windows 2000(WinNT系)ではうまく動作しません。Windows 9xのDOS窓では動作可能でした(が、おすすめしません)。
また、直接FDCをコントロールする関係から、BIOSによってドライブスワップされている場合、OSが認識するドライブレターと、DITTで指定するドライブレターは一致しない場合があります。たとえば、El trio形式のFDイメージ形式のブータブルCDからPCをブートした場合、BIOSによって"CD内のFDイメージ"がAドライブ、"通常Aドライブとして認識されるFDDドライブ"がBドライブになるように"ソフト的に"設定されます。この場合、OS(MS-DOSなど)ではFDDドライブはBドライブとして扱われますが、DITT.EXEではAドライブとして指定しないとイメージファイルを作成することはできません。
●5"ドライブの接続
5"ドライブもDOS/V
PCに接続して使用できるものがあります。TEACのFD-55GFRなどは現在も入手可能なドライブです(2000年現在)。
接続は難しいことはなく、5"ドライブのカードエッジ部分にDOS/VのFDケーブルのカードエッジ用コネクタを接続し、電源をつなぐだけです。
ただし、BIOSの設定で5" 1.25MBドライブに設定を変更する必要があります。BIOSの設定方法は各機種ごとに違っていますので詳しくは自分のマシンのマニュアルをご参考ください。
3.5"ドライブに戻したときも設定を3.5" 1.44MBドライブに戻すことをお忘れなく。
また、DOS/Vでは、普段使用しているAドライブはFDCから見たドライブ1になっています。したがって、Aドライブとして5"ドライブを接続する場合、5"FDDのドライブセレクト用ショートピンはドライブ1を選択するようになっている必要があります。ドライブBとしてDOS/Vにつなぐときも、FDDのドライブセレクトはドライブ1のままで、FDDケーブルのねじれより手前(MBに近い側)のコネクタにドライブを接続する必要があります。
今私が持っている5"FDDでDITTを使用した場合のイメージ作成結果を下表に掲載します。
3.5"の場合は下の表には出ていませんが、DOS/Vに標準でついているタイプの3.5"ドライブ(2/3モードどちらも)DITTでイメージを作成することが可能です。
テストコンディション:
CPU |
Athlon 500 |
MEM |
128MB PC=100, CL=2 |
MB |
MSI (MS-6167) Chipset Irongate(AMD750) |
テストFD |
5" 2Dフォーマット(F-BASICフォーマット) |
型名 |
メーカー |
サイズ |
対応メディア |
テスト結果 |
コメント |
FD-55GFR |
TEAC |
5" |
2HD, 2DD, 2D(?) |
○ |
今でも新品で入手可能な5"FDD。かなり限られるが、TwoTopなどのDOS/Vパーツショップでも購入可能。\8,000程度かな? |
MD5201 |
Canon |
5" |
2D |
○ |
DOS/Vに接続して使用可能な2Dドライブ。秋葉原のジャンク屋にて入手。もう一台売ってました。お店の人は新品だと言ってましたが、どう見ても中古(^^; 動くからいいけど。 |
YD-580 |
YE DATA |
5" |
2D |
× |
富士通純正ドライブ(MB27611 ミニFDユニット)に内蔵されていたドライブ。DOS/V機につないで試してみたが、アクセスランプがつき、スピンドルも回転、シークも正常に行っているようだが、読み出しは失敗。 |