にがMSX

〜MSX用外付けFDDのドライブ換装〜


Panasonic 2DD FloppyDiskDrive

FS-FD1A

 先日BBSでMSXのFDDの話題が出たので、我が家で死蔵していたFS-FD1A(パナのMSX用カートリッジ一体型FDD)のことを思い出した。

これは自分が学生の頃、学校の先生をしている大阪のMSXユーザーの方にいただいたものだ。今でこそFDDはゴミみたな値段で転がっているが、発売当時は定価39,800円もした代物だった(これでもFDDとしては安価な方)。いただいた当時はMEGA-SCSIの普及期であり、ファイル管理はSCSIに移行したのでもう使わないからと、気前良く2台もタダで送ってくれた(感謝)。当時は正常に動作していたのだが、先日1チップMSXで使おうとしたところ2台とも読み込みができなくなっており、どうやらしばらく寝かせている間に発酵してしまった模様。


中身

元々組み込まれているのはミツミ製のドライブ「D357T」。FDDがまだそれなりに高価だった時代のもので、フレームはアルミダイキャスト製でお金が掛かっている。その後コストダウンが進み、鉄板プレスのフレームに移行していったのはビデオデッキの歴史と同じ。

検索をかけてみたが、詳細はわからなかった。スピンドルモーターはダイレクトドライブであるのでゴムベルトが伸びる心配はないが、読み取り不良が発生した場合はヘッド周りのトラブルである可能性があり、クリーニングで復活しない場合は素人修理は難しいとされる。

AT互換機用ドライブ

今回はドライブユニットの修理はあきらめて換装を行うこととした。使うのはウチのジャンク箱に転がっていたミツミのFDDユニット「D353M3D」だ。既にコストダウンが進んでおり、フレームは鉄板プレス。以前キューブPCで使用していたもので、ベゼルはシルバー。購入したのは2002年頃だったと思う。

FDDの換装についてはこちらのサイト(et_levin'sHP)に詳しい解説がある。ここの情報と昔の記憶を頼りに試行したところ、MSXのFDDをAT互換機用のものに入れ替えるには下記の点に留意すればよいことがわかった。

1)DRIVE SELECT信号のピンアサインが異なる。
2)34pREADY信号を用意する必要がある。
3)DISKCHANGE信号は通常は必要ない。
4)2HD識別スイッチは2D/2DD 固定にする。

とりあえず動作確認として元々のフラットケーブルを加工してFDDインターフェイス側の10pDEIVE SELECT)とドライブ側の12pを接続し、インターフェイス側の34pREADY)をGNDに直結してAT機のFDDを繋いでみた。これだけで2DDのディスクは普通に読めたので手ごたえOK。本格的に入れ替えることにした。

なお、元のドライブとAT機のFDDではコネクタ位置が異なり、そのままではケーブルの長さがどうしても足りなくなる。特にフラットケーブルは上下が逆さになるため、すだれタイプ(途中でワイヤーがほぐれているやつ)のフラットケーブルを使って180度捻る必要がある。34pのすだれケーブルを1節分使うとぎりぎりケースに収めることができる。

ピンアサイン (2019.11.20内容更新)

FD1Aインターフェイス
1 GND 2 NC
3 GND 4 NC
5 GND 6 NC
7 GND 8 INDEX
9 GND 10 DRIVE SELECT
11 GND 12 NC
13 GND 14 NC
15 GND 16 MOTOR ON
17 GND 18 DIRECTION
19 GND 20 STEP
21 GND 22 WRITE DATA
23 GND 24 WRITE GATE
25 GND 26 TRACK 00
27 GND 28 WRITE PROTECT
29 GND 30 READ DATA
31 GND 32 SIDE1 SELECT
33 GND 34 READY

AT互換機用FDD
1 GND 2 HIGH DENSITY
3 GND 4 NC
5 GND 6 NC
7 GND 8 INDEX
9 GND 10 NC
11 GND 12 DRIVE SELECT
13 GND 14 NC
15 GND 16 MOTOR ENABLE
17 GND 18 DIRECTION
19 GND 20 STEP
21 GND 22 WRITE DATA
23 GND 24 WRITE GATE
25 GND 26 TRACK 00
27 GND 28 WRITE PROTECT
29 GND 30 READ DATA
31 GND 32 SIDE1 SELECT
33 GND 34 DISK CHANGE

いくつかのサイトで情報で調べたところ、ピンアサインはこのようになっているようだ。ピン番号の背景色が紫なのが出力信号茶色入力信号。異なるのは信号名を色分けした部分。

FDDの2p(HIGH DENSITY)は2HDモードに関わる信号のようだが、2HDが扱えないMSXでは不使用なので無視してよい。

FDDの16p(MOTOR ENABLE)はメディアが入っているときにLレベルになると、スピンドルモーターが回転する。16pがそのままFD1Aインターフェイスの16p(MOTOR ON)に接続されていればOK。

DRIVE SELECT信号については、インターフェイスの10pとFDDの12pを接続することになる。余った方(インターフェイス側の12pとFDDの10p)は不使用なので結線する必要はない。余談だが、AT互換機のFDDインターフェイスでは、ホスト側の10p,14pにAドライブ用のMOTOR ENABLEとDRIVE SELECT信号がアサインされており、接続ケーブルを部分的に反転させることでFDDの16p,12pに接続されるようになっている(ケーブルセレクトの仕組み)。Bドライブ用のこれらの信号はストレートに結線される。

一番の曲者が、34pFD1AではDISK CHANGE信号は使わないが、READY信号を処理しないとアクセスができない。この信号については、これまで様々なサイトで処理法が検討されてきているが、一番簡単なのがGNDに直結してしまう方法。とりあえず読み書きはできるようになるが、ディスクが入っていない時にDisk offlineエラーを吐けなくなってフリーズする。次に簡単なのが、ディスク挿入検知スイッチと直結してしまい、ディスクが入っていればREADYとする方法。今回はこの方法で行く。

FDD側

FDD側になる方も同じようにベンチバイスで挟んで圧着。4通りの圧着方法(表裏右左)があるので、圧着する前にFDDとの位置関係をシミュレートして長さや表裏を間違えないように注意が必要だ。

信号の入れ替え

圧着が終わったら隣り合うピンがショートしていないかテスターでチェック。フラットケーブルの10p12pを途中で切断し、ドライブ側の12pと基板側の10pを接続した。基板側の12pとドライブ側の10pは断端を熱収縮チューブで絶縁している。根元から切っても良いが、後から何かに使うかも知れないので温存しておいた。

基板側完成

ドライブとの距離に合わせて電源ラインも延長し、基板側は最終的にはこんな感じになった。この基板ではFDC-BIOSのROMにEP-ROMが使われている。経年で稀に内容が消えたりするらしいのでバックアップを取っておいたほうがいいかも。また、1987年の製品らしく、既に30年以上経過しているので電解コンデンサは張り替えたほうがいいだろう。


ドライブ側の加工

 次はドライブ側の加工であるが、前述の通りAT互換機のFDDは34pREADY信号を出さない代わりにDISKCHANGE信号を出すようになっている。DISKCHANGEはディスクが取り出されたと認識された瞬間から、次のアクセスがあるまでactive(L=GNDレベル)になる信号だが、FS-FD1Aでは使わない。一方READY信号はFDDがアクセス可能であるときにactive(Lレベル)になる信号であるが、MSXではとりあえずディスクが入っている時にactiveとしておけば問題なくアクセスできるようだ。よって、34pDISKCHANGE信号をパターンカットで殺し、FDDのディスク挿入検知スイッチを利用してREADY信号(もどき)を作り、34pに引き渡すことにした。

 このドライブのディスク挿入検知スイッチを調べてみると、ディスクが挿入されているときに信号がGNDに落ちていることが分かったので、これをそのままREADY信号(もどき)として利用することにした。やったこととしては34pのパターンカットとスイッチへの接続だ。もし、逆にディスクがイジェクトされたときに信号がGNDに落ちるスイッチだったとしたらトランジスタを使って信号を反転させればよい。

ドライブ側の加工

AT互換機のFDDは2HDも読み書きできる3モードドライブだが、MSXでは2HDフォーマットは使えない。2HDディスクには識別のためにライトプロテクトノッチの反対側に穴が開いているが、そのまま使うとFDDが2HDモードで動作してしまい、2DDとしてアクセスができなくなってしまう。テープなどで穴を塞いでおけばよいが、それも面倒な話だ。MSXでは2HDディスクを2DDフォーマットで使うことも多いため、ドライブの2HDモードは殺しておいたほうがbetterだろう。このドライブを調べたところスイッチが2HDでオープン、2DDモードでショートとなっていたので半田でブリッジさせておいた。

余談だが、DISKCHANGE信号はターボRの内臓FDDでは使用されており、これを接続しないと2ドライブシミュレーションでのディスク交換ができなくなったり、ディスクキャッシュを使ったときに不具合が発生する。ターボRに接続する場合はDISKCHANGE信号は正しく処理する必要がある。


収納

ケーブルを延長したことにより、ドライブをケースに収納することができた。フラットケーブルはギリギリの長さ。ネジ穴はそのまま使うことができた。

外観

ベゼルがシルバーなので違和感ありまくりだが、とりあえずそのままにした。塗装しても良いのだが、いまさらMSXのドライブにそこまでしなくてもよいかと思ったり。


総評

 動作確認したところ、2DDディスク、2HDディスクともに2DDモードで読み書き、フォーマットできた。もちろんプロテクトのかかった市販ソフトも問題なく起動できるし、1チップMSXで使うこともできた。ここまでやっておけばドライブユニットがまた壊れたとしても簡単に蘇らせることができるだろう。

 なお、READY信号は、FDD(Y-E DATA製 YD-702D)のデータシートによると、「ディスクが挿入され、MOTOR ON信号がLOWとなってから最大500ms後にLOWレベルとなる」と記載されており、2DDモードの場合、モーターが300RPMで回るとアクティブになるらしい。

本来であればFD挿入スイッチとMOTOR信号、INDEX信号を監視して、ロジックICやPICマイコンで生成すべきと思われる。しかし、実際には常時Lレベルにしても読み書きには支障は無く、むしろディスクが入っていないときにエラーが出せないことのほうが問題となる。エラー対策だけを考えるとFD挿入の検知だけで十分代用でき、あえてモーターの回転数を監視してまで生成する意義は乏しいと思われる。

 READY信号接触不良チャタリングの発生する物理的なスイッチで代用することに違和感を覚えなくもないのだが、このスイッチの不良があればFDDはディスク挿入を検知できず、まったく機能しなくなるわけで、FDDとはその程度の信頼性のデバイスと割り切れば問題なし。

ちなみに動作チェックに使ったMSX(FS-A1Mk2)は、FS-FD1Aと同じく大阪の先生からの頂き物。FDDも漢字ROMもFM音源も内臓していないが、改造によりメインメモリ512kB実装しているため、MEGA-SCSIだけでDOS2も動作可能。画面はMSX-FANのオープニングCG。


ご意見、ご感想、ご質問はにがBBSまで!

Top pageへ戻る

copyright (C) 2004 Niga.