今風太ワールドを楽しむ(26)
更新日:2020年2月13日

PasocomMini PC-8001のジョイスティックNEXTを作る
PC-8001ミニ用のジョイスティックを改良しましたので発表いたします。その名も「ジョイスティックNEXT」です。ネーミングには意味はありませんが、一応進化したことを示しています。さてPC-8001ミニに打ち込みで当時のゲームを入れていくと前回までのボタン切り替えでは足りなくなってきました。そこでハードウェアの改良は最低限に抑えてより多くのゲームに対応出来るようにしました。今回切り替え方式を変えましたので今後はソフトの改良のみで対応出来るようになります。
(PC-8001ミニ用ジョイスティックNEXT)
ゲームのボタン数に変わりはありません。ゲームNo.の切り替え方式を単純化して余計な所は省きました。
(ジョイスティックNEXTのブロック図)
ゲームNo.をふたつのロータリーDIPスイッチで切り替えます。ちょっと硬めですが手で回して設定が可能です。
(ジョイスティックNEXTの回路図)
ハードウェアの改造は出来るだけ少なくしたかったので少し工夫しています。ゲーム中のボタンスイッチ制御とゲームNo.のDIPスイッチ制御を切り分けて同じポートで読み込めるようにしました。通常はSW1〜SW9の共通ラインはマイコンのRB5ポートでLレベルになっており、その時ロータリーDIPスイッチの共通ラインはRB6ポートでHレベルになっています。この時はSW1〜SW9の状態がRC0〜RC7ポートで読み込めます。ゲームNo.を読み込む時(PUSHスイッチを押した時)はその共通ラインの制御を逆にしてロータリーDIPスイッチの状態を読み込みます。ロータリーDIPスイッチは常時複数のスイッチがONになっていることがあるので多重押しによる回り込みを防ぐためにロータリーDIPスイッチにはショットキーダイオードを取り付けています。
(PICのポート割付)
(10進リアルコードのロータリーDIPスイッチ)
これが共立エレショップさんで購入したロータリーDIPスイッチです。10進数のタイプにしました。リアルコードというのは数字に応じたビットがONするタイプです。
(ロータリーDIPスイッチの取り付け)
2桁分準備していますので00〜99までの100種類のゲーム操作の切り替えが可能です。多分それだけゲームするキー操作に種類があるとは思われませんので充分だと思います。まあその前にPICマイコンの容量が無くなりますよね。ちょっと硬いですが指で回せます。
(ゲームNo.を設定するプッシュSW)
MENUモードでPUSHボタンを押すことでロータリーDIPスイッチのNo.を読み取ります。すみません写真はGAMEモードになってますがゲーム中はPUSHボタンを押してもNo.を読み取りません。
(スイッチの割付)
一応スイッチの割付を記しておきます。この割付は改良前と同じです。
(ゲームNo.と操作キー対応表)
改良前との相違を記しておきます。まずMENUモードにF7、F8、F5、RETURNを追加しました。特にF5(RUN)は自分で打ち込んだゲームをする場合そしても必要です。オールマシン語の場合もDEFUSR命令とUSR関数でBASICからRUN出来るようにしています(全てのオールマシン語のゲームに適用可能かはわかりませんが)。ゲームNo.を判りやすいように00からにしました。10進なので09の次は10になります。今回05〜10までのゲーム操作を追加しました。
(ロのボタンが割付出来ない)
さてここでひとつお詫びです。このPICマイコンでMicrochipから提供されている雛形を使ってHIDキーボードのソフトを作った場合、「SHIFT」キーの左側にある「ロ」のボタンがどうしても押せません。私が今までに打ち込んだゲームでもそのボタンで操作するものがあったのですが、その場合私の作ったジョイスティックが使えませんでした。そこで色々考えて閃きました。マシン語でゲームを作るときキー入力にはZ80ではIN命令を使います。アキュムレータにポートの状態を入力する命令です。色々調べますと(私も当時は判っていたはずですが)上図の「ロ」のボタンはI/Oポート7に位置しています。その部分のプログラムを改造するのは難しいのでI/Oポート番号をそっくり入れ換えることにしました。ポート7をポート6に入れ換えることで「ロ」のボタンを押す必要が無くなります。
(I/Oポート6での割付)
I/Oポート6に割付を変更することで「ロ」のボタンは「7」になります。その「7」をジョイスティックに組み込むことで操作が可能になります。ゲームの作者の方々には大変申し訳ございませんが私は自ら改良して楽しんでいることをお許し下さい。
(操作キーとUSBコード表)
自分で打ち込んだゲームには「ESC」キー(PC-8001ミニではSTOPキー)を出来るだけ割り付けることにしました。別キーで止まるゲームもありますがSTOPキーの動作が出来ないとPC-8001ミニをリセットするまで止まらなくなるような気がしたからです。
(各ゲームとゲームNo.対応)
右側が自分で打ち込んだ(または打ち込む予定)のゲームです。(※)のゲームがキー入力のI/Oポート7をポート6に入れ換えたゲームになります。作者の方々本当に申し訳ございません。まだまだ入れたいゲームもありますのでゲームNo.は今後も増える可能性がありますね。
PICのソフトウェアの説明を簡単にしておきます。詳しくは過去の記事を見て下さい。
(必要なフォルダの構成)
上記以外のフォルダ以外は削除しても大丈夫です。書き換えるソフトが入っているフォルダを示しています。
(Cソースファイル)
書き換えるCソースファイルを示しています。それぞれの番号のフォルダにソースが入っていますのでダウンロードしたものを上書きして下さい。
(ヘッダーファイル)
書き換えるヘッダファイルです。
書き換えるファイルはここからダウンロードして下さい。
(Super Pinballを入力してみました)
当時I/O誌は沢山持っていてPC-8001のページは大切に残してあったのですが、ASCII誌は持っていたのですが全く残していませんでした。そこで今回初めて「国立国会図書館オンライン」の「遠隔複写」というサービスを利用させて頂きました。何月号の何ページかという情報は「PC-8001発掘隊」さんのページを参照させて頂きました。この場をお借りして感謝申し上げます。ありがとうございました。私の場合打ち込み系で頑張っていますが、私が今まで発表させて頂いたツールを用いて快適(?)に入力することが出来ました。このゲームも「ロ」ボタンを使います。すみません改造して楽しんでいます。
(バージョンアップしたマシン語チェックサム用アプリ)
ASCII誌紙面のページを取り寄せて思い出したのですが、ASCII誌専用のチェックサムだったんですね。そこでI/O誌もASCII誌も同時にチェックサムが見えるようにチェックサムエディタを改良しました。周辺アプリも充実させることで益々PC-8001ミニが楽しくなります。
縦横チェックサムアプリ改良版の実行ファイルはここです。
(ジョイスティックNEXTでゲームを楽しむ)
Super PinballもこのジョイスティックNEXTで簡単に楽しめるようになりました。私も当時入力して遊んでいましたがても良く出来たゲームです。今でも充分楽しめます。その細やかな動きに今更ながら感動しています。
最近はPC-8001ミニに没頭しておりオーディオクラフト工房とアナログレコードまで手が回せない状態です。しばらくはこの状態が続きそうな感じです。PC-8001ミニに触れれば触れるほどやりたいことが沸いてきます。
PasocomMini PC-8001に興味を持たれたらこのページへどうぞ
パソコンミニ公式ウェブサイト
(PC-8001ミニは底なし沼か)
これからもPC-8001ミニのネタを考えていきますのでご期待下さい。

「蘇る今風太ワールド」表紙へ戻る