2007 年 P6 月間 特集 もっと実機で遊ぼうぜ!

はじめに

今や時代は21世紀、エミュレータの再現性は実機に迫るものとなり、P6 と言ってもエミュレータで遊ぶ機会が多くなりました。しかし、エミュレータは所詮エミュレータ、あの頃の様に燃えるには、やはり実機を引っ張りだしてこなければならないでしょう。

ところが、、、
ぴーーーーーがーーがーーーーー   20 分経過。    がーがーがー、?TR Error

こんな試練にはもはや耐えられない、弱り切った現代の PC ユーザ。。。
そこで今回は、もう少し効率的に実機で遊ぶ方法を考えました。
PC の USB ポートと P6mkII のフロッピー端子 (8255 ポート) を繋いで、高速データ通信を実現します。

まず、すみませんが、今回の企画は P6mkII ユーザが対象です。初代でも拡張ユニットを使えば、あるいは自力で 8255 をくっつければ出来るのかもしれませんが、今回は見送りました。66 や SR は、私の範囲外です。。。

そして、PC-6006 も必要です。mkII なのに何故?
PC-6006 を外部 RAM として使用し、そこにローダーを載せるのです。そうすれば、64K フルに使ってるゲームでもロード出来る可能性が出てくる訳です。

具体的にはどうやるの?

connection

PC (Mac or Windows) と P6mkII を、今回自作する USB2P6 ケーブル(作り方はこちら)で接続します。PC 側は USB ポート、P6mkII 側はフロッピー端子です。また、ローダーをロードするために、PC の音声出力を P6mkII のカセット端子に接続します。
本ケーブルは FTDI 社の USB コントローラを用いているため、FTDI 社のホームページから D2XX ダイレクトドライバをダウンロードし、インストールしておいて下さい。

transfer

必要なファイルはこちらからダウンロードしてください。

まず PC で LOADER.wav を再生し、P6 側で CLOAD します(図A)。RUN すると、ローダーが PC-6006 にロードされ、実行されます。

PC で transfer というコマンドラインのプログラムを走らせます(図B)。transfer の第一引数にマシン語プログラムを指定すると、そのプログラムは P6 にロードされ、実行されます。マシン語プログラムのフォーマットは以下の通りです。

先頭アドレス(2バイト), 終了アドレス(2バイト), 実行開始アドレス(2バイト), マシン語のバイナリ...

オマケに、スペースファイターシリーズのバイナリ SPACE、SPACE2 を付けてありますので、遊んでみて下さい。 transfer SPACE(2) リターン、で OK です。 市販のゲームでも、このフォーマットでバイナリ化しておけば、すぐに遊ぶことができます。 市販のゲームのバイナリ化の方法はこちらを参考にして下さい。

PC 側は、マシン語プログラム(メインプログラム)を送信後、P6mkII からの要求に従って、データを送信したり、受信したりできます。PC 側にデータの送受信を要求するためのプログラムが P6USB.asm に書かれています。これをオリジナルゲームに組み込む事により、PC 側にデータを読み書きするような、大規模なゲームが出来るかもしれません。ファイル名は 6 文字までにしてください。

最後に

無限ループに陥ったり、動作がおかしい場合、USB ケーブルを一旦抜いて、差し込み、transfer とローダーを実行し直してみて下さい。
ケーブルの製作は、決して難しくないので、ぜひ挑戦してみて下さい。自信の無い方は西田ラヂオさんに相談しましょう。
PC-6006 が無い人は、オークションで探すか、西田ラヂオさんが受注生産する 16K/64K DRAM UNIT for PC-6001 を買ってください(ちゃっかり宣伝)。

それでは皆さん、ごきげんよう。