ということで、以前MZ-700のプリンタポートとPCのパラレルポートをケーブルで接続してデータ転送をやってみたのですが、PCのパラレルポートはほぼ消え去ってしまいましたので、パラレルポートの代わりにUSBで接続するためのアダプタを製作してみました。秋月電子のFT245RLモジュールを使用しています。
FT245RLとMZ-700のプリンタポートの間をPIC16F84Aでブリッジしているだけで、特に難しいことはしていません。ただ、困ったことにMZ-700のプリンタポートのコネクタである26ピンのカードエッジコネクタが入手困難です。
FT245RLをFIFOとして使うと、FIFOが詰まってしまった場合にアボートするにはリセットするしかありません。PC側で FT_CyclePort() を呼ぶと PWE# がネゲートされる(Hレベルになる)ので、これを反転させてPICにリセットがかかるようにしています。
PIC16F84A用のコードはこちら。
PIC16F648A用のコードはこちら。
FT_PROG.exe を使用して、FT245RLのEEPROMの Product Description を "MZ-700 USB-LPT I/F" に書き換えます。MZtrans.exe はこの名前でアダプタを認識しています。
MZ側では TR.MZT を実行します。TR.MZT はIPL ROMを 0000h〜0FFFh のRAMにコピーし、テープの読み書きルーチンにパッチを当ててPCとの通信にリダイレクトできるようにします。
T … Sコマンド(セーブ)、Lコマンド(ロード)の対象をテープに切り替えます。
P … Sコマンド(セーブ)、Lコマンド(ロード)の対象をPCとの通信に切り替えます。
PCからMZへデータを転送するには、PC側で MZtrans.exe に転送したいテープイメージファイル(*.MZT)を指定しておき、MZ側で Pコマンドを実行したのち、Lコマンドを実行します。
MZからPCへデータを転送するには、MZ側で Pコマンドを実行したのち、Sコマンドを実行します。Sコマンドで指定したファイルネームをもとに、PC側にテープイメージファイル(*.MZT)が自動的に作られます。
転送速度はPC→MZの場合で3.5kバイト/秒といったところです。
CMT … SAVEコマンド、LOADコマンドの対象をテープに切り替えます。
LPT … SAVEコマンド、LOADコマンドの対象をPCとの通信に切り替えます。
S-BASIC, Hu-BASIC用のパッチ Download
bfc.exeでMZTファイルに適用してください。
v0.03 パラレルポートのサポートを廃止
1Z-009A/B, 9Z-502M 用パッチ Download
bfc.exe でROMイメージに適用してください。