GIMONS DEVELOPER WORKS/FDX68

エミュレーターモード使用例(X68000編)

X68000 XVI Compact

接続方法

背面に"EXTERNAL FDD"と書いてあるのが外部FDD I/Fです。これは非常に珍しいコネクタで"ミニチュアデルタリボン(MDR) 40極 メス"です。このコネクタに接続するためには当然MDR40極のオスコネクタが必要になります。私は一般的な34ピンリボンケーブル用コネクタに変換するためのケーブルを自作しました。MDR40極のオスコネクタは最近購入することが出来るようです。適当に検索して下さい。ハンダ付けタイプ+シェルを買いましょう(Amazonは勝手に組み合わせを提案してくれますw)。

COMPACT I/F MDR CABLE MDR CABLE SET

変換ケーブルを作成するためのピンアサインは次の通りです。ピンの数え方が違うこととピンの配置もOPTION SELECT 0がずれているので注意が必要です。

MDR PINASSIGN

変換ケーブルで接続した状態のCompactです。

FDX COMPACT

Compact内蔵FDDを0,1、FDX68を2,3ドライブとして使用する場合

背面スイッチの"INTERNAL FDD NO."を0,1に設定します。FDX68のジャンパはDRV,OPT両方ともFDD I/F2,3をFDX68の0,1に割り当てます。

COMPACT01 FDX23

FDX68を0,1、Compact内蔵FDDを2,3ドライブとして使用する場合

背面スイッチの"INTERNAL FDD NO."を2,3に設定します。FDX68のジャンパはDRV,OPT両方ともFDD I/F0,1をFDX68の0,1に割り当てます。

COMPACT23 FDX01

FDDエミュレータの起動

折角なのでFDX68を0,1、Compact内蔵FDDを2,3ドライブとして使ってみます。まずは無償公開されているHuman3.02のシステムディスクイメージをFDX形式に変換してみます。イメージ変換はfdxconvコマンドを使用します。fdxconvを引数無しで起動すると簡単なヘルプが出てきますので参考にして下さい。fdxconvは拡張子で変換処理を自動判定しますので入力、出力ファイルを指定するだけです。XDFからFDX形式に変換する例を示します。元はセクタのみのデータですから1.2M程度ですがFDX形式に変換すると5.5M程度になります。

pi@raspberrypi:~/Develop/fdx68 $ ./fdxconv
FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
Floppy image convert utility

Usage: ./fdxconv -i SRCFILE [-n DISKNO] -o DESTFILE

 SRCFILE is source image file path.
 DISKNO is disk number of multi image format, Default is 1.
 DESTFILE is destination image file path.
pi@raspberrypi:~/Develop/fdx68 $ ./fdxconv -i HUMAN302.XDF -o HUMAN302.FDX
FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
Floppy image convert utility

Input file   : HUMAN302.XDF
Disk no      : 1
Output file  : HUMAN302.FDX
pi@raspberrypi:~/Develop/fdx68 $ ls -l HUMAN302.*
-rw-r--r-- 1 pi pi 5505280  8月  9 18:53 HUMAN302.FDX
-rw-r----- 1 pi pi 1261568  8月  9 18:53 HUMAN302.XDF
pi@raspberrypi:~/Develop/fdx68 $

無事Human3.02のシステムディスクをFDX形式に変換したので、これをHUMAN302_A.FDX,HUMAN302_B.FDXという名前でコピーを取り、fddemuにこの二つを挿入した状態として起動してみましょう。

pi@raspberrypi:~/Develop/fdx68 $ cp HUMAN302.FDX HUMAN302_A.FDX
pi@raspberrypi:~/Develop/fdx68 $ cp HUMAN302.FDX HUMAN302_B.FDX
pi@raspberrypi:~/Develop/fdx68 $ sudo ./fddemu -0 HUMAN302_A.FDX -1 HUMAN302_B.FDX
FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
Floppy disk drive emulation

----+----+----+-----------------------------------
 ID | WP | CL | DISK IMAGE
----+----+----+-----------------------------------
  0 | -- | 00 | HUMAN302_A.FDX
  1 | -- | 00 | HUMAN302_B.FDX
----+----+----------------------------------------

Compactにはフロッピーは挿入されていません。FDX68から起動しています。起動するとフロッピーが4ドライブ構成として認識されました。A,Bドライブは正しく見えているようです。。

FDDEMU_EX1 FDDEMU_EX2 FDDEMU_EX3

制御コマンドによるディスク入れ替え

X68000のフロッピーディスクドライブはインテリジェント仕様でフロッピーのオートイジェクト機構が付いてます。イジェクト操作は本体のイジェクトボタンだけでなくアプリケーションからも指示ができます。例えば大好きなゲームの一つであるA-JAXはプログラムディスクとデータディスク1で起動するとデータの読み込み後に自動でプログラムディスクがイジェクトされデータディスク2の挿入を促されます。このような場合にFDX68でフロッピーディスクを挿入する操作をご紹介します。まずA-JAXを起動してみましょう。

pi@raspberrypi:~/Develop/fdx68 $ sudo ./fddemu -0 X68K/AJAX_P.FDX -1 X68K/AJAX_1.FDX &
[1] 719
pi@raspberrypi:~/Develop/fdx68 $ FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
Floppy disk drive emulation

----+----+----+-----------------------------------
 ID | WP | CL | DISK IMAGE
----+----+----+-----------------------------------
  0 | ON | 00 | X68K/AJAX_P.FDX
  1 | ON | 00 | X68K/AJAX_1.FDX
----+----+----------------------------------------

pi@raspberrypi:~/Develop/fdx68 $

FDX68をバックグラウンド起動するためにコマンドラインの最後に"&"を付けて起動していることに注意して下さい。起動後にコマンドプロンプトに戻ってきているのはその証拠です。

FDX68がバックグラウンドで起動しているか確認してみましょう。psコマンドから探してみます。

pi@raspberrypi:~/Develop/fdx68 $ ps -ef|grep fddemu
root       719   661  0 12:16 pts/0    00:00:00 sudo ./fddemu -0 X68K/AJAX_P.FDX -1 X68K/AJAX_1.FDX
root       723   719  0 12:16 pts/0    00:00:00 ./fddemu -0 X68K/AJAX_P.FDX -1 X68K/AJAX_1.FDX
pi         744   661  0 12:17 pts/0    00:00:00 grep --color=auto fddemu
pi@raspberrypi:~/Develop/fdx68 $

fddemuのプロセスが動作してますね。現在のディスクの挿入状況はfddctrlに引数-lを渡すと確認できます。

pi@raspberrypi:~/Develop/fdx68 $ ./fddctl -l
----+----+----+-----------------------------------
 ID | WP | CL | DISK IMAGE
----+----+----+-----------------------------------
  0 | ON | 00 | X68K/AJAX_P.FDX
  1 | ON | 00 | X68K/AJAX_1.FDX
----+----+----------------------------------------
pi@raspberrypi:~/Develop/fdx68 $

X68000本体の電源を入れてAJAXを起動してみます。しばらくディスクを読み込んだ後に次のようにディスク挿入を促されます。この時ドライブ0のフロッピーディスクはイジェクトされています。

FDDEMU_EX4

pi@raspberrypi:~/Develop/fdx68 $ ./fddctl -l
----+----+----+-----------------------------------
 ID | WP | CL | DISK IMAGE
----+----+----+-----------------------------------
  0 | -- | 00 | EMPTY
  1 | ON | 00 | X68K/AJAX_1.FDX
----+----+----------------------------------------
pi@raspberrypi:~/Develop/fdx68 $

ではfddctlコマンドでディスクを挿入します。AJAXのデータディスク2を挿入します。

pi@raspberrypi:~/Develop/fdx68 $ ./fddctl -i 0 -c insert X68K/AJAX_2.FDX
pi@raspberrypi:~/Develop/fdx68 $ ./fddctl -l
----+----+----+-----------------------------------
 ID | WP | CL | DISK IMAGE
----+----+----+-----------------------------------
  0 | ON | 00 | X68K/AJAX_2.FDX
  1 | ON | 62 | X68K/AJAX_1.FDX
----+----+----------------------------------------
pi@raspberrypi:~/Develop/fdx68 $

ディスクの挿入を検出してAJAXが起動しました。

FDDEMU_EX5

FDDエミュレータの起動(番外編)

上の例ではXDFのイメージファイルをFDX形式に変換しましたが、fddemuはXDFやD68等のイメージファイルを変換しなくても起動することが出来ます(内部で自動変換してます)。このモードで起動したときには指定されたディスクイメージを更新しないことに注意して下さい。セーブの必要が無いアプリの起動に便利です。

pi@raspberrypi:~/Develop/fdx68 $ sudo ./fddemu -0 HUMAN302.XDF
FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
Floppy disk drive emulation

----+----+----+-----------------------------------
 ID | WP | CL | DISK IMAGE
----+----+----+-----------------------------------
  0 | -- | 00 | HUMAN302.XDF
  1 | -- | 00 | EMPTY
----+----+----------------------------------------

X68030の例

接続方法

背面に"EXTERNAL FDD"と書いてあるのが外部FDD I/Fです。これはXVI Compactと同じ"ミニチュアデルタリボン(MDR) 40極 メス"です。接続ケーブル等の作成方法はXVI Compactの事例を参考にして下さい。

X68030内蔵FDDを0,1、FDX68を2,3ドライブとして使用する場合

X68030には背面スイッチで内蔵ドライブのIDを変更することはできません。したがって常に0,1となります。FDX68のジャンパは2,3ドライブとして割り当ててください。

FDX23

FDX68を0,1、X68030内蔵FDDを2,3ドライブとして使用する場合

まず先にFDX68のジャンパは0,1ドライブとして割り当ててください。

FDX01

X68030の内蔵FDDのジャンパを切り替えます。X68030の左側カバーを外すとFDDが見えてきます。ジャンパは写真のところにありますが変更するにはFDDを取り出した方が良いでしょう。

X68030_1 X68030_2

X68030のジャンパはDRIVEとOPTIONで分かれています。同じ位置にジャンパを変更するようにしたほうが良さそうです。ドライブ0,1を2,3に変える設定は次の通り。

X68030_3

ジャンパを変更したFDDドライブ。

X68030_4

FDX68を0,1、X68030内蔵FDDを使用しない場合

試していませんがX68030の内蔵FDDに接続された電源を外してしまえばドライブ自体が認識されなくなると思います。

FDDエミュレータの起動

Compactと同じようにHuman3.02のFDXイメージを利用してfddemuを起動してみましょう。X68030側にフロッピーは挿入されていません。FDX68から起動し4ドライブ構成として認識されました。

X68030_5
内蔵FDDをドライブ2,3に変更した時の影響について 外部にドライブの切り替えスイッチが無い機種で内蔵ドライブを2,3にしてしまうと、FDX68が動作していなければフロッピーから起動できなくなります。但し特定の条件下ではSCSI(SASI)からの起動はできるようです。条件というのはHumanのパーティションが二つ以上存在する場合です。要はA,Bドライブが存在しないと起動しないということなんでしょうか。

X68000 PROの例

接続方法

背面に"EXTERNAL FDD"と書いてあるのが外部FDD I/Fです。これは"DSUB 37ピン メス"です。一般的なコネクタですので秋葉原や日本橋でコネクタ、ケース、MIL34ピンコネクタを購入して接続ケーブルは作れます。また変換基板を使用すると良いかもしれません。

PRO_1 PRO_2

X68000の外部FDD I/Fのコネクタとしてはデファクトですのでネットで検索すればピンアサインは直ぐに見つかるでしょう。

PRO内蔵FDDを0,1、FDX68を2,3ドライブとして使用する場合

PROには背面スイッチで内蔵ドライブのIDを変更することはできません。したがって常に0,1となります。FDX68のジャンパは2,3ドライブとして割り当ててください。

FDX23

FDX68を0,1、PRO内蔵FDDを2,3ドライブとして使用する場合

まず先にFDX68のジャンパは0,1ドライブとして割り当ててください。

FDX01

PROの内蔵FDDのジャンパを切り替えます。PROのカバーを外すと直ぐにFDDが見えますがジャンパはケーブルの裏にあって見えにくく変更するのは困難です。やはりFDDを一旦外してから変更して下さい。PROのジャンパはDRIVEとOPTIONで分かれておらず一つのようです。写真に見える緑のジャンパになります。このジャンパを2,3へ変更して下さい。

PRO_3 PRO_4

FDX68を0,1、PROの内蔵FDDを使用しない場合

試していませんがPROの内蔵FDDに接続された電源を外してしまえばドライブ自体が認識されなくなると思います。

FDDエミュレータの起動

XVI Compact、X68030と同様にHuman3.02のFDXイメージを利用してfddemuを起動させて問題なく認識されました。



[EOF]