今風太ワールドを楽しむ(21)
更新日:2019年12月2日

PasocomMini PC-8001のHEX KEY PAD装置を作る
前回PC-8001ミニのUSBキーボードのコネクタに接続してPCで作成したテキストデータを流し込む装置(Auto Input)を作りました。PC側でPC-8001ミニのプログラムをテキスト入力出来るのでPC-8001ミニのプログラム入力作業がかなり軽減されたと思っています。私の場合当時のゲームを楽しむのにカセットにセーブしたデータを持っていないので雑誌記載のプログラムを入力するしかありません。その作業を少しでも軽減出来ないかと今回の装置を考えました。PCアプリと連動して入力作業がかなり楽になりました。今回の製作はPC-8001ミニに接続するものではなくテキスト入力するPCに接続する装置です。マシン語入力を中心に説明をしますがBASICの入力も出来ます。
前回作製したAuto Input装置の詳細はこちらへ
PasocomMini PC-8001のAuto Input装置を作る(1)
PasocomMini PC-8001のAuto Input装置を作る(2)
余談になりますが今風太のインタビュー記事はこちらへ
シューティング、アクションから麻雀まで!PC-8001後期、マシン語プログラムで話題をさらった「今風太」氏
今回作った装置はこちらです。
(HEX KEY PAD)
マシン語入力支援のHEXキーボードです。なんだただの16進入力出来るだけじゃないか、と思われるかもしれません。その通りマシン語の入力作業を楽にするために作ったのです。しかしそれだけでは面白くないのでPCアプリと連動させて更に入力が楽になるようにしています。
PasocomMini PC-8001に興味を持たれたらこのページへどうぞ
パソコンミニ公式ウェブサイト
HEX KEY PADの内部構成です。
(HEX KEY PAD装置の概要)
回路図を記します。
(HEX KEY PADの回路図)
18個のキーをエンコーダICで受けて、残りの2個をPICマイコンで直接受けます。20個のキーをマトリクスにして読み取ることも可能とは思いますが、PICのソフトが簡単になるようにエンコーダICを使いました。今回はキーのチャタリングをソフトで処理しています。詳細は後述するソースを見て下さい。PICマイコンは定番のPIC18F14K50ボードを使用しました。USBのソフトが簡単に作成出来ます。
(PICマイコンのポート割付)
エンコーダICの出力とSW19,SW20を接続しています。18個のキーを2個のICで受けています。デコーダICは74HC147を使用します。共立電子さんで購入しました。ICの論理などはWEBで確認下さい。
(キー配置)
最初の写真に合ったキー配置を記しています。SW1〜SW16までが0-FのHEXに対応します。SW17〜SW20は個別キーになります。SW19、SW20がPCアプリと連動したキーになります。今回はこのキーがキモになっています。
(キー名称)
[RET]はリターンキーです。[BS]はバックスペースで1文字削除します。[LN]、[LB]がアプリ連動キーです。詳細は後述します。
このHEX KEY PADはPCのUSBポートに接続します。HIDキーボードと認識されます。
(各キーに対応したUSB送信コード表)
SW19[LN]がAlt+r、SW20[LB]がAlt+gになります。PCアプリのボタンを直接押す役割になっています。
(HEX KEY PADのキー側)
薄型とコンパクトに拘ったので、このケースにはキーとエンコーダICしか入りませんでした。このケースにはタカチ製のYM-115を使用しました。
(PICマイコン側)
フラットケーブルでそのままキー側と接続しています。もう少しスマートな接続方法もあるかもしれません。ケースは出来るだけ小型のものを使用しましょう。すみませんこのケースの品番は忘れました。
(こんな感じで配置しています)
(PC側に接続するUSBコネクタ)
キー操作に支障のないものに出来たと思います。
PICのソフトウェアについて説明します。基本は過去の製作と同じです。マイクロチップのサイトから通称「mla」をダウンロードします。ファイルを解凍してセットアップするとCドライブに「microchip」のフォルダが生成されます。これをフォルダごと作業エリアにコピーします。フォルダの名前を判りやすいように書き換えます。今回は「microchip_USB_KB_16KEY」としました。フォルダの中には今回のソフト開発には必要のないものも含まれていますのでそれは削除しましょう。
(必要なフォルダの構成)
上図のAのフォルダ名はもっと長かったのですが、短くしています。今回書き換えた部分は次の通りです。
(ヘッダーファイル)
それぞれのソースは別々のフォルダに入っていますので、番号で判るようにしました。数字に合致したフォルダに入っています。
(Cソースファイル)
これ以外にもファイルは沢山ありますが、全く変更はしておりません。合計7つのファイルを書き換えています。書き換えたファイルのみをダウンロード出来るようにしましたので、それぞれのフォルダ内で差し換えて下さい。
書き換えるファイルはこちらからダウンロード出来ます。
続いてPCアプリの説明をします。ずばりこのアプリが今回のキモと私は思っています。同じようなものが既に存在するのかもしれませんが、私が使い易いように考えたものですので、皆さんの何かの参考になれば幸いです。
雑誌記載のプログラムを入力していて思うことは目線が雑誌とキーボードとPC画面を行き来することがかなり時間の無駄になるということです。ブラインドタッチが出来る人はキーボードを見る回数はかなり少ないと思いますが、私のように何もわからずPC操作を始めた人間にはブラインドタッチは不可能で自己流の打ち方になっています。特に16進数を打つときはテンキー部分と英文字を打つ部分が離れていてとても打ちにくいと思います。そこで先に説明したHEX KEY PADを使うことでマシン語の入力はスピードアップしますが、もっとアップさせるべくこのPCアプリを作成しました。ずばり、雑誌の紙面をスキャナーで読み込んでそれを画面で見ながらプログラムを打ち込み出来るアプリです。その上で今どこの部分を打ち込んでいるかを赤線で示してくれるという特徴があります。これでマシン語を打ち込むスピードが飛躍的に向上します。と、私は勝手に思っています。
今回はI/O誌掲載、安倍さんの名作「ミサイルコマンダー」を例に使い方を説明します。
(PCアプリ:Machine_Input_Viewer)
図が見にくい場合はその図をクリックすると大きく見えます。上図がアプリを起動した初期画面です。大きく左側がスキャンした雑誌のデータが表示される部分、右側のテキストBOXがHEX KEY PADで打ち込んだデータが表示される部分です。最初に操作ボタンを説明します。
(左側のボタン群です)
[ZOOM+]、[ZOOM-]:読み込んだ雑誌データを拡大又は縮小します。倍率を横に表示します。倍率に制限はありませんが、あまり大きくするとアプリがエラーします。
[Left]、[Right]:読み込んだ雑誌データを左右に移動します。移動量を横に表示します。移動量は書き換え出来ます。
[File Open]:雑誌データを読み込みます。
[Up1]、[Down1]:読み込んだ雑誌データを上下に移動します。移動量を横に表示します。移動量は書き換え出来ます。
[Up2]、[Down2]:同じく上下に移動しますが、移動量は少なく初期設定しています。
[Up1]、[Up2]、[Down1]、[Down2]はそれぞれAltキーを押しながら横に表示してある文字を押すことで直接そのボタンを押すことが出来ます。ここがキモになっています。HEX KEY PADの[LN]が[Up1]、[LB]が[Down2]と連動しています。これが非常に便利なのです。
それでは「ミサイルコマンダー」のマシン語が記載してあるページを読み込んでみましょう。
(マシン語が記載のページを読み込み)
読み込んだ部分はマウスでもドラックして移動出来ますのでマシン語が記載されている部分が見えるようにします。
(マシン語が見える部分まで移動)
もちろんボタンでも移動が可能です。文字が小さいので拡大します。
(ZOOM+ボタンで1.34倍に拡大)
テキストBOXの左側にマシン語列が表示されるくらいに拡大するのがベストです。これ以上の拡大はアプリのエラーを招く恐れがあります。拡大したので少し位置ずれを起こしていますので、微調整して下さい。
(このようになるのがベストです)
微調整をする過程で赤線が示されますので、入力したい部分がそのライン上にくるようにします。マウスでテキストBOX内をクリックしてフォーカスをテキストBOXに移します。赤線を頼りにHEX KEY PADでマシン語を打ち込みましょう。
(1行分打ち込んだ状態です)
HEX KEY PADの[RET]を押して改行します。その後に[LN]を押してみて下さい。
(あら不思議、赤線が次の行に移動しました)
どうでしょうか。[LN]を押すことで読み込んだ画像データが1行分上に移動したのです。アプリ上の[Up1]ボタンを押したことと同じ状態になりました。ここで便利なのはHEX KEY PADから打つことでテキストBOXからフォーカスが移動しないことなのです。何も気にせずにどんどんマシン語を打つことが出来ます。私のスキャナーで読み込んだデータを1.34倍した場合に18ドット分動かせば大体1行分移動することになります。しかしどんどん行を移動することでだんだんとずれていきます。それを補正するのが[LB]なのです。1行の移動を少し多めにしておくことで、段々と赤線がその行から離れていきますのでそれを補正するのが目的です。アプリ上の[Down2]のボタンを押したことになります。
実際に使ってみないと判らないとは思いますが、いまだにこんなアプリを作ってまで当時の雑誌のプログラムを打ち込んでPC-8001ミニを楽しんでいる人もいるのだと思って頂けるだけで私は幸せです。
(打ち込んだデータをセーブするボタン)
テキストBOX内のデータを[Text Save]のボタンでセーブします。マシン語は分割して打ち込むのが良いと思います。私はこのミサイルコマンダーのマシン語を9回に分けて打ち込みました。テキストBOX内はキーボードでも操作出来ますので後から修正も可能です。続けて違う部分を打ち込む時は[Text Clear]してから行って下さい。PCアプリの実行ファイルのみ置いておきます。
Machine_Input_Viewerのアプリはこちらからダウンロード出来ます。
そうして私はミサイルコマンダーで遊べるようになったのです。うーん、とても懐かしい。
(ミサイルコンダースタート画面)
(懐かしさが込み上げます)
このアプリはマシン語だけではなくBASICの入力にも有効です。その場合はPCのキーボードから打ち込んで下さい。但しPC-8001ミニにデータを流し込むAuto Input装置がグラフィック文字などに対応していませんので、その部分はPC-8001ミニ側で入力お願いいたします。
PasocomMini PC-8001に興味を持たれたらこのページへどうぞ
パソコンミニ公式ウェブサイト
(やめられないとまらないPC-8001ミニ)
さあまだまだPC-8001ミニをしゃぶりつきましょう。次回作にご期待下さい。PC-8001ミニってとても楽しいですね。

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