PC-9801単方向通信のラインとArduino Nanoによる制御についてです。
単方向通信のプリンタポートの通信は、各ラインに1bitが割り当てられ、8ラインを使用して、8bitを同時に送信します。
これ以外にSTROBEに1ライン、唯一プリンタ側から送られるBUSYに1ライン、グランドに1ライン、合計で11ラインが使用されます。
このあたりは、先人の方々が色々調査され情報を公開されています。
これらの11ラインをArduino NanoのInput、Output、GNDに接続して、制御を行います。
なお、GND以外は、10kオームの保護抵抗を入れています。
9801とプリンタ間の通信手順についても、先人の方が調査され公開されています。
通信手順に応じて、Arduino NanoにBUSY信号の制御を行うプログラミングや、
プリンタポートそれぞれのラインの状態をArduino Nanoから、Serial.printで、シリアルモニタ(Arduinoのプログラミングツール付属の簡易ターミナルソフトウェア)に出力するプログラミングを行いました。
また、Arduino側には、プッシュボタンを取り付けていますが、これは、BUSY信号のオン/オフのトグル用で、プリンターの動作を手動でエミュレートします。
なお、モニタ用のPCやシリアルモニタがなくとも、各ラインのチェックが行える様に9個のLEDを取り付けました。(追加で、1個はArduino内蔵LEDを使用します)
Arduino Nano周辺の配線図は、以下を確認ください。
アンフェノールセントロニクスハーフピッチ20Pinプリンタコネクタ側のPin番号は、以下の写真のとおりとなります。
なお、98ノート側のPin番号は、この写真の鏡面像に相当するPin番号の配置となります。
9801シリーズに20Pinのプリンタポートが登場するよりも以前には、14Pinのアンフェノールセントロニクスフルピッチのプリンタポートがありましたが、Pin番号を読み替えて配線すると、今回作成したプリンタポートチェッカーは、そのまま利用することができます。
Pin番号読み替えの為の情報は、先人のブログで紹介されていますので、ここでは述べません。
9821シリーズで採用された36Pinのアンフェノールセントロニクスハーフピッチのプリンタポートについては、双方向通信が可能なため、今回の様なプリンタポートチェッカーに頼らずとも、2台のPC間をパラレルクロスリンクケーブルでつなぎ、RDiskなのどDOSアプリで動作確認が可能です。また、双方向通信が可能な9821シリーズでは、プリンタのI/Oアドレスが異なっていて、この後で紹介する9801ノート側のチェッカースクリプトはそのままでは動作しません。今回作成したチェッカーは、あくまでも単方向通信しかサポートされていない9801シリーズでの使用を前提にいています。
その3では、プログラム(スケッチ)を紹介します。