シャープ X68000(1987)
- 公開日: 2020/09/27
- 更新日: 2023/06/05
ハードウェア概要
1987年にシャープから発売されたMC68000ベースのパソコンである。優れたAV機能が売りで、8チャンネルステレオFM音源、ADPCM音源、65536色対応のビデオ、スプライト機能[1]、BG[2]など充実していた。
コントローラ端子の特徴
本機はコントローラ端子を2つもっている。シャープのCOCORO BOOKSで無償配布されているX68000サービスマニュアルによれば、ピンアウトは以下の通り。
pin# |
function |
|
---|---|---|
port 1 |
port 2 |
|
1 |
Digital in |
|
2 |
Digital in |
|
3 |
Digital in |
|
4 |
Digital in |
|
5 |
Vcc |
|
6 |
Digital in / Digital out |
Digital in |
7 |
Digital in / Digital out |
Digital in |
8 |
Digital out |
|
9 |
GND |
PC-6001等と異なるのは端子2のみピン6、7が入力専用となっていることである。
ハードウェア実装
上記サービスマニュアルによれば、ジョイスティック端子の制御はi8255ペリフェラルコントローラを用いて行われる。i8255は8ビットパラレルI/Oポートを3系統(PA, PB, PC)持っており、下記の通りPAが端子1の入力、PBが端子2の入力、PCが両端子の出力のために使用される。パラレルI/Oとジョイスティック端子のピンとの対応を下表に示す。なお、下表では端子の各ピンをCmPnの形式で表記する。例えば、C1P2であればジョイスティック端子1のピン2のことである。
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
|
---|---|---|---|---|---|---|---|---|
PA(R) |
Not Used |
C1P7 |
C1P6 |
Not Used |
C1P4 |
C1P3 |
C1P2 |
C1P1 |
PB(R) |
Not Used |
C2P7 |
C2P6 |
Not Used |
C2P4 |
C2P3 |
C2P2 |
C2P1 |
PC(W) |
C1P7 |
C1P6 |
C2P8 |
C1P8 |
Not Used for Joysticks (for ADPCM) |
入力、出力ともに0=L、1=Hである(2023/6/5追記: 間違い。サービスマニュアルに記載の回路図を見ると端子1の6、7ピン出力は抵抗内蔵トランジスタDTC114ESが間に入っていて反転されている。つまり0=H、1=L)。i8255のPAはI/Oアドレス$E9A001、PBはI/Oアドレス$E9A003、PCはI/Oアドレス$E9A005にアサインされている。また、i8255のコントロールレジスタはI/Oアドレス$E9A007にアサインされており、ジョイスティックの読み取りを行う場合は以下の手順をとる。
I/Oアドレス$E9A007に$92を設定。これにより、PA、PBが入力、PCが出力となる。
I/Oアドレス$E9A005の上位4ビットを0にする[3]
端子1なら$E9A001を、端子2なら$E9A003を使って読み出す
サービスマニュアルにはそう書いてあるが上位2ビットは端子1のピン6、7なので1にしなければならないような気がする。(2023/6/5追記:上述の通り端子1のピン6、7は反転しているのでサービスマニュアルの記載で正しい)