今風太ワールドを楽しむ(20)
更新日:2019年11月13日

PasocomMini PC-8001のAuto Input装置を作る(2)
前回、PC-8001ミニの周辺機器第二弾として登場させて頂きました「Auto Input装置」ですが、なぜ、そんな装置を開発したのか?と思われる方もおられると思います。確かにもっと他に便利なやり方はあると思います。これは私が必要とする装置を私が勝手に製作したものですので、突っ込みは無しで気楽にご覧下さい。
(PC-8001ミニ用Auto Input装置)
これはPC-8001ミニをその都度立ち上げてプログラムを入力するのが手間なので、PCのテキストエディタで入力した文字をPC-8001ミニのUSBキーボードの端子に接続して自動的に打ち込む装置なのです。
(Auto Input装置の概要)
USBケーブルでPCとPC-8001ミニの双方に接続します。内部構成は次の通りです。
(Auto Input装置の内部構成)
PCのUSBポートからシリアルデータを送り込んで、PC-8001ミニのUSBキーボードのポートから文字を打ち込みです。PC側とPC-8001ミニ側はアイソレータで完全にGND分離されていますので、回路的にも安心構成となっています。
PasocomMini PC-8001に興味を持たれたらこのページへどうぞ
パソコンミニ公式ウェブサイト
PC側とはUSB-UARTモジュールで接続します。
(USB-UART変換モジュール:AE-FT234X)
秋月電子さんから購入しました。このモジュールのUSBコネクタはマイクロBタイプです。モジュール自身はUSBバスパワーで動作します。電源出力は5Vですが受信したデータは3.3Vですので、そのままアイソレータに入力すると信号レベルを読み間違いますので、アイソレータの電源を3.3Vにするために3.3Vのレギュレータを使用しています。PC側とはCOMポート接続になります。
(アイソレータ:ADuM121N)
アイソレータはアナデバ製です。これも秋月電子さんから購入出来ます。SOPパッケージですので8ピンの変換基板を使用します。
(PIC18F14K50 USB対応マイコンボード)
USB機器を製作するキモになるマイコンボードです。本当に重宝しています。これも秋月電子さんから購入出来ます。今後の製作においても使用する予定です。複数購入しておきましょう。
(Auto Input装置の回路図)
GNDは回路図中の橙色線を挟んで分離されています。結して双方のGNDを接続しないようにお願いいたします。PC側のUSBからUART変換を経由してシリアルデータがアイソレータで絶縁されてUSB PICのシルアルポートに入力されます。データが流れる方向はPCからPC-8001ミニのみです。一応回路的には逆方向からの流れも可能にはしています。
(PICマイコンのポート割付)
SW1〜SW10にファンクションキーなどを割り当てています。PCからPC-8001ミニにデータを送り込む時にUSBキーボードが必要ないようにするためです。
(各ボタンの機能)
(マイコンボードなどを基板に実装)
回路が単純なので結構コンパクトにまとまります。
(内部はこんな感じで)
ここからはソフトウェアの説明になります。基本はジョイスティックの時と同じです。マクロチップのサイトから「Microchip Libraries for Applications」、通称「mla」をダウンロードします。
ファイルを解凍してセットアップをするとCドライブに「microchip」のフォルダが生成されます。これをフォルダごと自分の作業エリアにコピーします。フォルダの名前を判りやすいように書き換えます。私は「microchip_USB_KB_Auto_Input」としました。フォルダの中には今回のソフト開発には必要のないものも含まれていますのでそれは削除しておきましょう。
(必要なフォルダの構成)
上記のフォルダ以外は削除しても大丈夫です。そのまま残しておいても問題はありませんが、バックアップとしてコピーする時に時間が掛かって仕方がないです。上図のAのフォルダ名はもっと長かったのですが、短くしています。
このAuto Input装置はUSBのHIDキーボードとして動作します。PC側からの文字データを受けた時、一定時間そのキーが押されたようにコードを送信しているだけです。PC-8001ミニ側の動作が40年前をシミュレートしていますので高速で打つことは不可能です。PC側のアプリも含めて打ち逃しがなくて出来るだけ早い間隔で文字を打つように調整はしてあります。これくらいのスピードであれば全く問題はありません。
今回書き換えた部分は次の通りです。
(ヘッダーファイル)
それぞれのソースは別々のフォルダに入っていますので、番号で判るようにしました。例えば「buttons.h」は「bsp」-「low_pin_count_usb_development_kit」-「pic18f14k50」のフォルダに入っています。
(Cソースファイル)
これ以外にもファイルは沢山ありますが、全く変更はしておりません。合計8つのファイルを書き換えています。書き換えたファイルのみをダウンロード出来るようにしましたので、それぞれのフォルダ内で差し換えて下さい。
書き換えるファイルはこちらからダウンロード出来ます。
PCから送られてくる文字データに対してどのようなコードを送信しているかを記します。USB CODEと記している部分がUSBに送るデータになります。Shiftはフラグをセットすることになりますので、詳しくはソースを眺めて下さい。
(各文字に対応したUSB送信コード表)
前回も説明しましたが、「アンダーバー」は「Return」キーの動作をします。「\」、「|」はPC-8001ミニに入力することは出来ません。もしBASICで使用している時はPC-8001ミニ側で補正をお願いいたします。
PC側のアプリについて説明します。
(Auto Input装置のPC側アプリ)
VB(Visual Basic)で作成しています。PC-8001ミニを立ち上げて、PCとAuto InputとPC-8001ミニをそれぞれUSBケーブルで接続してアプリを立ち上げます。PC-8001ミニはキーボードを接続するコネクタです。PCとAuto InputはCOMポートで接続します。接続可能なCOMポートが表示されていますので、目的のポートに接続して下さい。「PasocomMini PC-8001 Program File」のボタンを押してPC側のテキストファイルを開くと数秒後から文字を送り続けます。長いプログラムは結構な時間が掛かりますが待ってるだけなので何の問題もありません。文字送信中はボタンが赤色になります。全ての文字を送ると文字は元の灰色に戻ります。アプリ自体のエラー処理が完全ではありませんので変な操作は控えて下さい。
(マシン語のファイルの例)
PC-8001ミニは通常のBASICモードで立ちがあります。上図の例にも示したようにマシン語モニタにも入ることが出来ますので本当に便利です。前回の記事も合わせて読んで頂くと理解が深まると思います。
Auto Input装置のPC側アプリはこちらからダウンロード出来ます。
実行ファイルのみ圧縮してあります。解凍してから使って下さい。
オマケに作ったマシン語チェックサムのPC側アプリも紹介いたします。PC-8001ミニの現状の課題はプリンタが接続出来ないことです。従って当時のようにマシン語チェックサムを取ってプリントしてそれを確認しながら打ち込みミスが無いかを確認して修正することが出来ません。そのため、PC側からPC-8001ミニに送り込む前に打ち込みミスを修正しておく必要があります。今私がマシン語のゲームを打ち込んでいるのはPC-8001初期の頃のものですので、16バイトチェックサムや64バイトチェックサムが主流の時代でした。チェックサムアプリもそれが確認出来るようにしています。
(チェックサムアプリの使用例)
チェックサムバイト数とスタートアドレスを入力してマシン語のファイルを読み込みます。それぞれの先頭アドレスとチェックサムが表示されます。スクロールバーを操作すれば全てのチェックサムが見れますので、マシン語の入力に間違いがある場合は修正しましょう。
(マシン語は16進数の羅列です)
これもアプリ自体のエラー処理が完全ではありませんので変な操作は控えて下さい。
マシン語チェックサムのアプリはこちらからダウンロード出来ます。
PasocomMini PC-8001に興味を持たれたらこのページへどうぞ
パソコンミニ公式ウェブサイト
(楽しみを与えてくれるPC-8001ミニ)
さて私は次回の製作の準備を進めています。PC-8001ミニのおかげで楽しい世界が広がっていきます。皆さんもPC-8001ミニを充分楽しみましょう。

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