IBM-PCのシリアル・パラレルポートの変遷
- 公開日: 2021/08/24(火) 12:18[JST]
- 更新日: 2021/08/27(金) 07:52[JST]
PC用シリアルマウスのプロトコルを調べていく過程で、初期(1980年代)のPCのシリアルポート・パラレルポートの仕様か割とコロコロ変わっていることが分かったのでまとめてみる。なお、特に記載のない限り、参照した資料はJeff Parsons氏のPCjs Explorerに掲載されているものを使用した。
無印IBM PC(Model 5150)
1981年8月版のTechnical Referenceによれば、パラレルポートの仕様は以下の通り。
パラレルポートはモノクロディスプレイアダプタ(MDA)[1]に実装されていたものと、単独のパラレルポートインターフェースカード(Parallel Printer Adapter)の2種類がある。
コネクタはDサブ25ピン(DB-25)メス。
MDA付属のものはI/Oアドレス$3BC-$3BEを使用
単独のパラレルポートインターフェースカードにアサインされているI/Oアドレスは$378-$37B。
いずれのカードも使用可能なIRQは7。有効にするかどうかをアドレス$3BE又は$37Aのビット4で指定する。
一方、シリアルポートインターフェースカード(Asynchronous Communication Adapter)の仕様は以下の通り
INS8250コントローラを使用。通信速度は50-9600ボー。
ポート数は1つ。
コネクタはDB-25オス。
I/Oアドレスは$3F8-$3FF、IRQは4に固定。
基板上に取り付けられたシャント抵抗器の向きを変えることで、信号伝送方式を電圧変化と電流オン/オフ(カレントループ)の間で切り換えることが可能。
一方、1983年4月版のTechnical Referenceによれば、パラレルポートについては従来通りである一方、シリアルポートについては、基板上に取り付けられたシャント抵抗器の向きを変えることで、I/Oアドレス/IRQを$3F8-$3FF/4と$2F8-$2FF/3を切り替え可能となった。つまり、インターフェースカードの2枚刺しによって2ポートのシリアルポートを実装可能となった。
IBM PC/XT(Model 5160)
1983年4月版のTechnical Referenceによれば、同月発行の無印PC用Technical Referenceに記載されているものと同様。
IBM PC/AT(Model 5170)
PC/ATよりシリアルポートとパラレルポートは一枚のカードにて提供されるようになった。カード背面にDB-25コネクタを2つ入れることはできないし、シリアルポートとパラレルポートが同じ形状というのもまずいということで、[2]シリアルポートはDサブ9ピン(DE-9)オスコネクタに変更された。
後述のPS/2ではDB-25メスのシリアルポートとパラレルポートをオンボードで実装してたりするので撤回 (2021/8/26追記)撤回理由の変更。IBM PCではシリアルポートはDB-25オスなのでパラレルポートと混同することはない。
その他シリアルポート関連の変更点は以下の通り
コントローラLSIがNS16450に変更された。速度は50-9600ボーと変化なし
I/OアドレスとIRQの切り替え方法はジャンパスイッチに変更された
カレントループ方式の信号伝送は廃止された
パラレルポートの変更点は以下の通り
シリアルポートと同様、ジャンパスイッチによりI/Oアドレスを変更可能となった
指定可能なI/Oアドレスは、$378-$37A($37C-$37Eにミラー)又は$278-$27A($27C-$27Eにミラー)
PCjr(Model 4680)
PCjrはシリアルポートを内蔵している。1983年11月版のTechnical Referenceによれば、シリアルポートの仕様は以下の通り。
8ピン2列(計16ピン)のBergコネクタを使用。
コントローラICはINS8250A。
速度は50-4800ボー
I/Oアドレスは$2F8-$2FF、IRQは3固定
シリアルポートとは別に、専用コネクタに取り付けるモデムカード(オプション)がある。こちらにもINS8250Aが載っており、I/Oアドレスは$378-$3FF、IRQは4。
パラレルポートはオプションの拡張カードで提供されており、仕様は無印PCのインターフェースカード(MDAでないほう)と同じである。
PS/2
1987年4月に登場したPS/2はISAベース(87年は8ビット、88年以降は16ビット)のモデル25(モニタ一体型)、モデル30(デスクトップ)、MCAベース(CPUが286のものは16ビット、386SX以降のものは32ビット)のモデル50,70(デスクトップ)、モデル60,80(タワー)等に分類される。[3]
いずれの機種もシリアル・パラレルポートを1つずつ内蔵しているが、ISA版とMCA版とは実装方法が異なる。以下の説明は、Ardent Tool of Capitalismの"PS/2 Documentation (PDF)"を参照して作成した。
ISA版のシリアルポートは以下の通り
コントローラはINS8250Aを使用
速度は50-9600ボー
コネクタはDB-25オス
I/Oアドレス/IRQを$3F8-$3FF/4固定
ISA版のパラレルポートはI/Oアドレスが$378-$37A固定である以外は従来のものと同様。
MCA版のシリアルポートは以下の通り。どうやらMCA版のマザーボードに搭載されているシリアル通信コントローラはType1、Type2、Type3の三種類があるらしく、Type1はFIFO不可、Type2は一部機種でFIFO不可、Type3は全ての機種でFIFO可ということらしい。これはマザーボード搭載のシリアルポートに限らず、拡張カード上のシリアルポートについても同様のようだ。
コントローラはNS16550を使用
速度は50-19200ボー
コネクタはDB-25オス
I/Oアドレス/IRQを$3F8-$3FF/4と$2F8-$2FF/3を切り替え可能
Type 3マザーボードでは16バイトFIFOを有効にできる
MCA版のパラレルポートは以下の通り
コネクタはDB-25メス
Type1、Type2、Type3の三種類のコントローラがあり、Type2、3はDMA転送が可能。
I/Oアドレスは従来の$3BC-$3BE、$378-$37A、$278-$27Aのいずれかを選択可能。(I/Oアドレス$102のビット5および6で指定)
Type2では、$378-$37A、$278-$27AのI/Oアドレスを使用する場合において、DMAを利用する為にI/Oアドラスが2バイト拡張されている(つまり$378-$37C、$278-$27C)。$3BC-$3BEを使う場合はDMA未対応
Type3では、Type2の特徴に加え、$1278-$127C、$1378-$137CもDMA対応ポートとして使用可能
IRQは従来と同様7
また、シリアルポートについては純正のMCA拡張カードがある。このカードの特性は以下の通り。
コントローラはNS16550を2つ実装
速度は50-345600ボー
コネクタはDE-9オスを2基
I/Oアドレス/IRQは、Type1とType2では$3F8-$3FF/4と$2F8-$2FF/3
Type3搭載のマザーボードではI/Oアドレス$3F8-$3FF、$2F8-$2FF、$3220-$3227、$3228-$322F、$4220-$4227、$4228-$422F、$5220-$5227、$5228-$522Fのいずれかを設定可能(IRQは3、4どちらでも可)。さらに、これらのI/Oアドレス空間のそれぞれに$8000を足したものが拡張機能用(DMAによる高速アクセスが可能)として用意されている。
PC/ATで9ピンになったコネクタがPS/2で25ピンに先祖返りするとは思わなかった。コネクタ設置面積に制約のあるラップトップ機や拡張スロット上のコネクタは90年頃にはDE-9に切り替わったが、デスクトップ機のオンボードコネクタについては93年頃までDB-25だったようだ。