MB-6892
MB-S1

レベル3/S1用の仮想FDDを作る Part3

 前回でレベル3 2Dの仮想FDDを作りましたので、続いてMB-S1 2HDの仮想FDDを、そしてシャープX1DやNEC PC-8801FHで動作するかについても検証していきたいと思います。

MB-S1 2HDの仮想FDDを作る

 まずは、FDDまわりのブロック図を示しました。


MB-S1/40 FDDブロック図

 前回のレベル3のものと比較すると、データセパレータなどが本体I/Fカード側に集められているため、その分の信号線が減っています。上記から回路を修正すると以下のようになりました。既存の物理FDDはすべて取り外して仮想FDDだけで構成した場合の回路です。


仮想FDD Part3 回路図 (MB-S1/40用)

 MODESEL, DRIVE 2 SELECT, DRIVE 3 SELECT, HLOAD INUSEの各信号は図にはありますが使用しません。

FPGA内部の変更点

 ディスクは2HDなので1マイクロ秒ごとにクロック or データパルスを出力します。ディスク1周は360rpmで166.6..ミリ秒なので必要なデータ容量は1トラック当たり約166,666ビット=約20834バイトとなります。トラック数は最大80で両面(2サイド)なのでディスク1枚あたり20384*160=約3.3Mバイトとなります。

回路を変更

 ブレッドボード上の回路を一部変更します。ケーブルは34ピンのフラットケーブルにします。フラットケーブルの先には5インチFDDのようなエッジ端子を取り付けます。物理FDDはすべて取り外して、FDDインターフェースとエッジ端子とを接続します。


ブレッドボード上に実装

S1のFDD I/Fと接続

実機でテスト

 ではテストしていきます。S1デモの入ったS1 DISK BASICのディスクイメージをFPGAに送信して、S1の電源を入れます。アクセスランプがついて圧電スピーカから音がして、あっさり起動しました。


S1デモの選択画面が表示された

 一番上のS1デモを選択すると、アクセスランプがついてデモが始まりましたので、リード処理は問題なさそうです。

 次に、ライト処理をテストします。READ DATAとWRITE DATAのずれは約10マイクロ秒でしたので、書き込むデータビットのずれはレベル3と同じ11ビットでいけるようです。


双方のパルスパターンの時差 2HD

 下の動画は、S1デモを起動、中断してSAVEとLOADが行えるかを検証したものです。興味ある方はどうぞ。

【動画】MB-S1モデル40編 動作検証 (YouTube)

物理FDDと併用できるか

 次は既存の物理FDDと併用する場合を考えていきます。今回は、仮想FDD側をドライブ0に物理FDD側をドライブ1とします。本体→FDDの各信号は物理FDD側で+5Vでプルアップされてるため、FPGA側は+3.3V以下になるように抵抗で分圧します。DRIVE SELECT信号はDRIVE 0だけ接続します。


仮想FDD Part3 回路図 (MB-S1/40用) 物理FDDと併用

 回路を変更したらS1に接続してテストします。FPGA側が動作してBASICが起動しました。ドライブ1を選択すると物理FDDだけが動作するのでドライブ切換は問題なさそうです。LOAD&SAVEも問題ありませんでした。


FILESを実行

X1Dの仮想FDDを作る

 せっかくなので別の機種でも検証してみます。まずはシャープのX1Dにつないでみます。X1Dは3インチコンパクトフロッピーディスクを採用していましたが、これは5インチ2D互換ですのでFPGA側の設定はレベル3で使用した2Dのものに変更します。回路図はMB-S1のものをそのまま使用します。

 一通り変更したら、本体内部のドライブ0側にコネクタを接続して電源ON。さて結果は…


X1デモ画面が表示された

 起動&LOADは問題なくできましたが、SAVEがエラーとなってしまいます。ロジアナで信号を確認するとWRITE DATA信号が出ていないですね。コネクタをドライブ1側につなぎ替えて再度試したところ無事SAVEできるようになりました。どうやらドライブ0側に接触不良か何かあるようです。


SAVEできました

 最後はディスク版のゼビウスを起動。テープ版と比べると起動が早い(あたりまえか)。


セビウス起動できました

PC-8801FHの仮想FDDを作る

 次はNECのPC-8801FHにつないでみます。FPGA側の設定は2D。回路図もMB-S1のものをそのまま使用します。DRIVE SELECT信号は各ドライブの端子からしか出ていないようなので別途エッジコネクタを接続します。


PC88用にコネクタを追加

 接続してDISK BASICを起動。こちらはLOAD&SAVEもすんなり実行できました。


DISK BASIC起動しました

 最後はイースIとIIの店頭デモディスクを起動。どちらもデモを1ループさせて正常に動作することが確認できました。


イースI この画面久しぶりに見た

イースII サウンドも秀逸ですね

まとめ

 今回は、実機デバッグで苦労するところもほぼなかったので、かなりこなれてきたかなと思います。モジュールの多くは以前作ったものの流用なのでこの辺りも関係しているかもしれませんが…。この回路はFDCのある機種ならほぼ同じ構成で使えるので、ユニバーサル基板に回路を作っていつでも使えるようにしておこうかなと思います。(おわり)

レベル3/S1用の仮想FDDを作る Part2 ←前

 

FPGAで8ビットパソコンを拡張する

 

TOP PAGE