NEC PC-9801(1985)
- 公開日: 2020/08/17
- 更新日: 2020/08/18
ハードウェア概要
1982年より販売開始されたx86系パソコン。16ビットパソコンとしては登場以来、ホビーパソコンとしても80年代末からWindows95に取って代わられる95年頃までは日本国内におけるデファクトスタンダードであり続けた。
ジョイスティック端子は1985年1月に発表されたFM音源カード(YM2203使用)、PC-9801-26に搭載された。後にYM2608を使用したPC-9801-73、PC-9801-86といった音源カードにも同機能のジョイスティック端子が搭載された[1]。
コントローラ端子の特徴
PC-9801-26(及びそのマイナーチェンジ版であるPC-9801-26K)はPC-6001と同規格のコントローラ端子を2つ、PC-9801-73及び86は1つもっている。ピンアウトは以下の通りである。
pin# |
Function |
---|---|
1 |
Digital in |
2 |
Digital in |
3 |
Digital in |
4 |
Digital in |
5 |
VCC |
6 |
Digital in / Digital out |
7 |
Digital in / Digital out |
8 |
Digital out |
9 |
GND |
ピン8をコモンピンとする多くのジョイスティックを使用する場合は、ピン8の出力をLに設定する必要がある。
ハードウェア実装
本機用のジョイスティック端子は、FM音源コントローラであるYM2203又はYM2608のI/Oポートを利用して実装されている。I/Oポートの制御方法は「PSG音源の利用」を、回路についてや各ピンとI/Oポートとの対応についてはPC-6001, MSX, PC-9801, FM-7共通を参照のこと。
アスキーの「PC-9800シリーズテクニカルデータブック」によれば、FM音源を制御するためのI/Oポートアドレスは以下のとおりである。
$188(W): レジスタ指定
$18A(R/W): データ入出力
一部機種での実装
PC-8801mkIISRとPC-9801VMの両互換機として開発されたPC-98DO+、及びYM2608を内蔵したPC-98GS及PC-9821シリーズ[2]は、マウスポートに変換アダプタ(PC-98DO/P-11)を挿すことによって、アタリ仕様ジョイスティックを使用可能となる[3]。PC-98DO/P-11の回路図はDustman Project Web Pageに記載されている。この変換アダプタを挿してPCを起動させると、PCはマウスポートに刺さっているのがアタリ仕様のコントローラであると判断し、YM2608のI/Oポートで読み取りができるようになる。
これらの機種で上記のジョイスティック端子の仕様がどの程度サポートされているか[4]についてだが、手持ちのPC-9821Aeで検証回路を組み、以下のBASICプログラムを組んで確認したところ、ピン6〜8の信号出力機能は有効であることがわかった。
10 OUT 392, 7
20 OUT 394, 128
30 OUT 392, 15
40 OUT 394, 0
このプログラムを実行するとピン6(マウスポート上ではピン6、以下同じ)、ピン7(ピン8)、ピン8(ピン7)が全てLになる。ピン6はレジスタ$0Fのビット0、ピン7はビット1、ピン8はビット4に対応しているので、Hにしたいピンに応じたビットが1になるように40行目を書き換えることで任意のピンのレベルを設定できる。例えば全てのピンをHにしたい場合は40行目を OUT 394, 19
にする。
具体的には、初代PC-9821及びAp・As・Ae・Af・Ap2・As2・An・Ap3・As3・Ce・Cs2・Ce2(参考: 小高輝真・河野健「UNDOCUMENTED 9801/9821 Vol.2 - メモリ・I/Oポート編」のマウスインターフェースに関するドキュメント)
少なくともPC-98DO+及び初代PC-9821、Ceについてはカタログ(参考: サイト「なおちま屋」のカタログ展示場)に使用可能であることが明記されている。なお、Ap2・As2・An・Ap3・As3・Ce・Cs2・Ce2はマウスポートのコネクタ形状が変わったため、変換アダプタ(純正品はPC-9821-K01)を併用する必要がある。
つまり、ピン6〜8の信号出力機能があるのかどうか。少なくとも98DO+ではPC-88用マウス(=MSXマウス)を使用可能とされているのでピン8については対応しているだろうと予想される