X68000 PROの内蔵FDDを制御する(他のX68000も同様です)
準備
X68000のソフトウェアの殆どは5インチフロッピーで供給されていたのでX68000 PROでフロッピーのダンプとリストアを行ってみる。
FDDエミュレーションで説明したように内蔵FDDをドライブ2,3に割り当てたPROがあるのでドライブ2を制御することにする。FDDエミュレーション用にFDX68のジャンパはDRV0,1を使用するようになっているがDRV2,3を外部から制御するため一時的にジャンパを変更する。
PROにフロッピーもSASI,SCSIディスクを何も接続しない状態で電源を入れる。当然「ディスクから起動できません」の白帯が出てくる。ここでINTERRUPTボタンを押して「エラーが発生しました。リセットしてください。」と出て止めておく。これでダンプ、リストアの準備が完了。
ダンプ
X68000の場合は1.25Mの2HDが標準なので余り悩むことは無い。PRO本体のドライブにダンプするフロッピーを挿入しておく。使用するコマンドはfddump。引数無しで起動すると簡単なHELPが出てくる。ドライブ番号、シリンダ数、密度の設定だけで後はデフォルトでOK。Human3.02の入ったシステムディスクをダンプする。
全てのトラックがダンプできたら終了。シリンダ77以降に警告が出ているのは通常はオーバートラック領域なのでアンフォーマットだからでしょう。正しいセクタ構造を持たないレコードに対してはこの様な警告がでてきます。プロテクト等がかかったディスクでも同様の警告が出るかもしれません。それが経年劣化等でダンプに失敗しものなのか人為的なプロテクトなのかは判断できません。セクタ構造に不整合があった場合には3回再試行します。リトライ回数は"-r"オプションで指定できます。"-f raw"オプションを指定するとRAWレベルのデータ、つまりFDDから読み取った信号そのものを記録できます。X68000の場合RAWレベルでダンプするケースは非常に少ないでしょう。
リストア
使用するコマンドはfdrestore。引数無しで起動すると簡単なHELPが出てくる。ドライブ番号、シリンダ数だけで後はデフォルトでOK。先ほどのHuman3.02のFDXイメージをリストアする。密度はイメージファイルの情報から判断。
PC-8801FHの内蔵FDDを制御する
準備
PC-8801FHの内蔵FDDは2D専用の5インチFDDです。
FDDエミュレーションで説明したように内蔵FDDを使用するにはカバーを空けてカードエッジコネクタとFDX68を接続する必要があります。FHの場合本体に既にカードエッジコネクタを備えたケーブルがあるのでそれでFDX68と接続できます。
内蔵FDDを手前に引き出して既存のケーブルを引き出してFDX68と接続します。写真ではドライブ1のケーブルを背面に引き出してカバーを明けなくても接続できるようにしたものです。
DRV0を使用しますのでジャンパ設定も合わせます。
FHの電源を入れて準備完了です(FDDに電源を供給するだけ)。
制御方向の確認
FHのFDDは特殊な制御信号を使用していません(奇数ピンは全てGNDなので省略)。
PIN SIGNAL NOTES DIR 2 NC 4 NC 6 NC 8 INDEX OUT 10 DRIVE SELECT IN 12 NC 14 NC 16 MOTOR ON IN 18 DIRECTION IN 20 STEP IN 22 WRITE DATA IN 24 WRITE GATE IN 26 TRACK 00 OUT 28 WRITE PROTECT OUT 30 READ DATA OUT 32 SIDE SELECT IN 34 READY OUT ダンプ
ドライブ番号、シリンダ数、密度を設定。2Dなのでシリンダ数は40,密度はdoubleを指定します。"-f raw"オプションを指定するとRAWレベルのデータ、つまりFDDから読み取った信号そのものを記録できます。PC88系の後期のゲームはウェーブプロテクトという書き込み周波数を微妙に変化させたものがあります。そのようなプロテクトは信号のタイミングまで正確に記録したRAWレベルデータであればバックアップが取れるかもしれません。通常このような強力なプロテクトがかかったディスクは起動時に使用する1枚のみであることがほとんどなのでRAWレベルで起動ディスクをダンプしておいて残りは通常モードでも良いでしょう。
リストア
ドライブ番号、シリンダ数を設定します。2Dなのでシリンダ数は40。密度はイメージファイルの情報から判断。
PC-8801MAの内蔵FDDを制御する
準備
PC-8801MAの内蔵FDDは2HDをサポートする5インチFDDです。2HDだけでなくPC-8801でデファクトの2Dもサポートしています。
FDDエミュレーションで説明したように内蔵FDDを使用するにはカバーを空けてカードエッジコネクタとFDX68を接続する必要があります。カードエッジコネクタを備えたケーブルを持っていれば便利です。
内蔵FDDを手前に引き出してFDX68と接続して下さい。
DRV0を使用しますのでジャンパ設定も合わせます。
MAの電源を入れて準備完了です(FDDに電源を供給するだけ)。
制御方向の確認
MAの2HDドライブは2Dもサポートできるというのは前述の通りです。具体的にはFDD I/FのPIN2(MODE SELECT)、PIN4(TPI SELECT)を最適な組み合わせで制御しなければなりません。またFHのドライブと違ってPIN12(HEAD LOAD)をアサートしないとヘッドがディスク面に降りないのでこちらは必ずアサートする必要があります。信号線のおさらいです(奇数ピンは全てGNDなので省略)。
PIN SIGNAL NOTES DIR 2 MODE SELECT NEGATE:360rpm ASSERT:300rpm IN 4 TPI SELECT NEGATE:96tpi ASSERT:48tpi IN 6 NC 8 INDEX OUT 10 DRIVE SELECT IN 12 HEAD LOAD IN 14 NC 16 MOTOR ON IN 18 DIRECTION IN 20 STEP IN 22 WRITE DATA IN 24 WRITE GATE IN 26 TRACK 00 OUT 28 WRITE PROTECT OUT 30 READ DATA OUT 32 SIDE SELECT IN 34 READY OUT PIN2,PIN4,PIN12の制御方法は次の通り。信号線の組み合わせによっては2DDもサポートしてます。5インチフロッピーに規格は無いですがアンフォーマット2.0Mの2HDのディスクも作れそうです。
MODE PIN2(MODE SELECT) PIN4(TPI SELECT) PIN12(HEAD LOAD) 2HD NEGATE NEGATE ASSERT 2DD ASSERT NEGATE ASSERT 2D ASSERT ASSERT ASSERT ダンプ
PIN2,4,12を制御してダンプするコマンドラインの例です。"-f raw"オプションでRAWレベルでダンプすることも可能です。
ドライブ番号、シリンダ数、密度の設定に加えPIN12を-p12でアサート。
ドライブ番号、シリンダ数、密度の設定に加えPIN2,12をそれぞれ-p2,-p12でアサート。密度はdoubleを指定します。
ドライブ番号、シリンダ数、密度の設定に加えPIN2,4,12をそれぞれ-p2,-p4,-p12でアサート。2Dなのでシリンダ数は40,密度はdoubleを指定します。
リストア
PIN2,4,12を制御してリストアするコマンドラインの例です。
ドライブ番号、シリンダ数の設定の設定に加えPIN12を-p12でアサート。密度はイメージファイルの情報から判断。
ドライブ番号、シリンダ数の設定に加えPIN2,12をそれぞれ-p2,-p12でアサート。密度はイメージファイルの情報から判断。
ドライブ番号、シリンダ数の設定に加えPIN2,4,12をそれぞれ-p2,-p4,-p12でアサート。2Dなのでシリンダ数は40。密度はイメージファイルの情報から判断。
AT互換機用の3.5インチ 3モードFDDを制御する
準備
3.5インチ 3モードのドライブを制御すればFM77AV等の3.5インチフロッピーをダンプ、リストアできます。実機を使うより便利かもしれません。もちろん2Dと2DD(2HD)ではヘッドの幅が違うので2Dイメージを扱う場合は2D専用ドライブを使った方が良いでしょう。
これはオークションで手に入れたYD-702D 6238Dです。似たようなものも多く出品されているので一つ二つ手に入れといても良いと思います。コネクタは34ピンのリボンケーブルコネクタなのでFDX68と同じです。またフラットケーブルで接続は簡単ですが互換機用の”ねじれ”が入ったケーブルは使えませんので注意。FDDへの電源供給は適当に・・・5Vなので比較的簡単に供給できます。写真はMAから分岐ケーブルで電源を拝借している様子。
DRV1を使用しますのでジャンパ設定も合わせます(何故DRV1かは後述)。
制御方向の確認
ネットから見つかったYD-702D 6238Dの信号線の情報です(奇数ピンは全てGNDなので省略)。AT互換機で使用するためにDRIVE SELECT1側が有効にされているようです。
PIN SIGNAL NOTES DIR 2 MODE SELECT NEGATE:300rpm ASSERT:360rpm IN 4 NC 6 NC 8 INDEX OUT 10 NC 12 DRIVE SELECT 1 OPTION IN 14 NC 16 MOTOR ON IN 18 DIRECTION SELECT IN 20 STEP IN 22 WRITE DATA IN 24 WRITE GATE IN 26 TRACK 00 OUT 28 WRITE PROTECT OUT 30 READ DATA OUT 32 SIDE ONE SELECT IN 34 DISK CHANGE OPTION OUT 3.5インチフロッピーの場合はメディア自体に2DD(2D)と2HDの違いを判別する穴があるのでドライブの動作はメディア検出によって変わるようです。2DDの時はRPMは必ず300です。2HDの時にはPIN2(MODE SELECT)によってRPMが変更されます。信号が"HIGH"(ネゲート)時は300rpm、"LOW"(アサート)時は360rpmという仕様です。これはあくまでYD-702D 6238Dの仕様です。恐らく流通している3モードのFDDは同様の仕様である可能性が高いです。とはいえジャンパで設定を変更可能なFDDもありますから個別に調べるしかありません。
ダンプ
"-f raw"オプションでRAWレベルでダンプすることも可能です。
ドライブ番号、シリンダ数、密度の設定を行う。PIN2(MODE SELECT)をアサートしてRPMを360に変更します。実容量が約1.2MのレトロPCで一般的なものです。
ドライブ番号、シリンダ数、密度の設定を行う。実容量が約1.4MになるAT互換機で一般的なものです。
ドライブ番号、シリンダ数、密度の設定を行う。
ドライブ番号、シリンダ数、密度の設定を行う。2Dなのでシリンダ数は40。ドライブ自体が2DD仕様なのでダブルステップでダンプするために"-s 2"を指定します。
リストア
ドライブ番号、シリンダ数の設定を行う。密度はイメージファイルの情報から判断。PIN2(MODE SELECT)をアサートしてRPMを360に変更します。
ドライブ番号、シリンダ数の設定を行う。密度はイメージファイルの情報から判断。
ドライブ番号、シリンダ数の設定を行う。密度はイメージファイルの情報から判断。
ドライブ番号、シリンダ数の設定を行う。2Dなのでシリンダ数は40。密度はイメージファイルの情報から判断。ドライブ自体が2DD仕様なのでダブルステップでリストアするために"-s 2"を指定します。