パラレル入出力ポートとしての
プリンタポートとマウスポート


制御・計測分野では,外部機器とディジタル信号のやり取りをするのには,市販のパラレル入出力ボードを使用するのが一般的です.しかし用途にもよりますが,信号ラインの数が少ない場合には,PC-98本体が標準で備えている入出力ポートを利用することも可能です.代表的なものがプリンタポートとマウスポートです(いずれもノーマルモード時).外部機器にトリガー信号を送ったり,外部機器の発生する信号の時間的なパターンを調べる際などに便利です.

プリンタとマウスのI/Oポートの詳細については,株式会社ウェブテクノロジ --> 会社概要 --> 沿革 --> 書籍・出版 --> UNDOCUMENTED 9801/9821 Vol.1 --> ※「UNDOCUMENTED 9801/9821 Vol.2 メモリ・I/Oポート編」は、 こちら で公開しております。 --> io_prn.txt と io_mouse.txt を参照して下さい.

■プリンタポート
PC本体のプリンタ用コネクタは,PC-9821As2/Ap2以前のPC-98デスクトップ機,およびすべてのエプソン98互換デスクトップ機では,アンフェノール(セントロニクス)フルピッチ14ピンメスコネクタであり,PC-9821As2/Ap2以降のPC-98デスクトップ機,およびPC-9801NS/A以降のPC-98ノート機ではアンフェノールハーフピッチ36ピンメスコネクタです(注1・2).また,PC-9821Ne以前のPC-98ノート・ラップトップ機,およびすべてのエプソン98互換ノート機ではアンフェノールハーフピッチ20ピンメスコネクタです.下にそれぞれのコネクタのピンアサインを示します.14ピンと36ピンのものは,アスキーテクライト(編) (1993). 改訂版 PC-9800シリーズ テクニカルデータブック HARDWARE編 アスキー の記述に従っています.また20ピンのものは,筆者がサンワサプライ製のプリンタケーブルであるPKPU-98LV2Kの結線図に基づいて推定したものであり,一部のNCピンは実際にはGNDピンである可能性があります.
 注1:後者は双方向通信に対応していますが,ここではそれについては考えません.
 注2:いずれのコネクタに嵌合するオスコネクタも新品が入手できると思いますが,プリンタケーブルのものを使用することもできます(注2.1).また下に挙げるプリンタケーブル用変換コネクタからもハーフピッチ36ピンオスコネクタが取れます.ハーフピッチ36ピンコネクタはパラレルクロスケーブル[クロスケーブル(LANケーブル以外)の結線 を参照]などを作成する際にも利用できます.これらは地方のハードオフなどでは今でも見かけることがあり,今時こういったものを買う人もそうはいないだろうということで,筆者は安く売られているものに遭遇した場合には買っておくようにしています.
   注2.1:筆者は実際には,アンフェノールフルピッチ36ピンメスコネクタにケーブルをハンダづけしたものを,プリンタケーブルのプリンタ側アンフェノールフルピッチ36ピンオスコネクタ(これのピン番号は,下に挙げるアンフェノールハーフピッチ36ピンメスコネクタのものを左右反転させたものに一致します.プリンタケーブルの結線図も参照)に接続して使用していました.フルピッチ36ピンメスコネクタも新品が入手できますが,プリンタ切替機をはじめ,このコネクタが使用されている機器は多く,ジャンク品などから外して使うこともできます.




アンフェノールハーフピッチ36ピンメスコネクタをフルピッチ14ピンメスコネクタに変換するコネクタも存在しました.メーカー・型番とも不明な変換コネクタの結線を下に示します.ピン番号は,ハーフピッチ36ピンオスコネクタ-----フルピッチ14ピンメスコネクタ の順です.


I/Oポートアドレスは入力と出力で異なります(注).入力用のアドレスは0042hで,bit 2がBUSY信号データ(1の時データ受信不可,0の時データ受信可)です.また出力用のアドレスは0040hで,bit 0−7がパラレル出力データです.従ってプリンタポートは,入力1ビット・出力8ビットの入出力ポートとして利用できます.
 注:インターフェースLSIはμPD8255Aで,起動時にモード0で初期化されていますので,初期化手続きは不要です.I/Oポート 0042hはPORT B,0040hはPORT Aです.なおマウスポートのインターフェースLSIもμPD8255Aで,同様に起動時にモード0で初期化済みです(PORT A).

※PC-98用プリンタケーブルの結線です.それぞれ 本体接続用オスコネクタ-----プリンタ接続用アンフェノール36ピンフルピッチコネクタ の順です.


■マウスポート
PC-98のマウス用コネクタは,PC-9821As2/Ap2以前の機種ではDサブ9ピンメスコネク,以降の機種ではミニDIN9ピンメスコネクタです.下にそれぞれのコネクタのピンアサインを示します.これらは,アスキーテクライト(編) (1993). 改訂版 PC-9800シリーズ テクニカルデータブック HARDWARE編 アスキー,および 菅原尚伸 (1994). PC98のマウス端子を使ったカウンタ回路の実験 トランジスタ技術, 1994年2月号, 348-350. の記述に従っています.なお,マウス用の Dサブ9ピン <--> ミニDIN9ピン 変換ケーブルの結線については,マウスコネクタ(丸型←→角形)変換ケーブルの結線 を参照して下さい.


I/Oポートアドレスは7FD9hで,bit 7が左ボタン信号,bit 5が右ボタン信号です.一部の機種[マウスコネクタ(丸型←→角形)変換ケーブルの結線 を参照]では中ボタン信号(bit 6)も有効です.これらはいずれも入力ビットとして利用できます.負論理である点に注意して下さい.

ただし,入力信号の周波数が高い(入力するパルスの間隔が短い)場合には追従できません.これはチャタリングによる誤動作防止用の積分回路がPC本体内部にあるためです(マウスボタンのチャタリングへの対処 を参照).筆者がPC-9801VXでテスト(入力の検出には機械語ルーチンを使用)したところでは,デューティ比0.5の矩形波パルス列の立ち上がり検出では,パルス列の周波数が333.3Hzまでは追従が確認できましたが,500Hzでは取りこぼしが見られました(どるこむの過去ログ,[8561] 旧98のマウスポートの処理速度について を参照).少なくとも3ms以上の信号間隔であれば,各信号の立ち上がりを確実に検出できるようです.もっとも,上述の積分回路を経由するため,入力信号の検出には幾分かの遅れが出ます.これが問題となるかかどうかは測定の目的によるでしょう.

マウスポートを使用して,非常に高い周波数のディジタル信号をカウントする方法もあります.マウスの軸カウンタを利用するもので,詳しくは 菅原尚伸 (1994). PC98のマウス端子を使ったカウンタ回路の実験 トランジスタ技術, 1994年2月号, 348-350. を参照して下さい.

なおDサブ9ピンコネクタ・ミニDIN9ピンコネクタとも,新品の入手も可能かもしれませんが,確認していません.マウス変換コネクタ[マウスコネクタ(丸型←→角形)変換ケーブルの結線 を参照]のメスコネクタのピンにケーブルを接続しても使用できます.筆者は,バラのピンを適当な枠(使用済みのペンの軸を輪切りにしたものではなかったかと思います)に入れて模型用のパテかコニシボンド(G17)で固めたものをミニDIN9ピンオスコネクタの代用としたこともあります.


トップページ