東芝 パソピア(1983)
- 公開日: 2020/08/10
- 更新日: 2025/08/16
ハードウェア概要
パソピアは1981年に東芝から発売されたZ80ベースのパソコン。1983年に登場した性能強化版のパソピア7は、27色同時発色[1]、6chシンセサイザーとライバル機種と比べて高性能な機種であったが、売れ行きはいま一つだったとされる。
コントローラ端子はパソピア7登場時に拡張カートリッジ[2]の形で提供された。BASICでのサポートはパソピア7のみであるが、カートリッジの規格はパソピア、パソピア7共通であり、パソピアでもジョイスティックを利用可能である。
コントローラ端子の特徴
本カートリッジはコントローラ端子を2つもっている。パソピアにおいて特徴的なのは、当機は拡張カートリッジスロットを最大7つまで拡張可能であり、そのすべてにジョイスティックアダプタを取り付ければコントローラ端子を14まで増やすことが可能である[3]。
広告でもジョイスティックを14つなげることができると宣伝されていた。
ピンアウトは以下の通りであり、PC-6001の端子を入力専用にしたような構成となっている。
pin# |
Function |
---|---|
1 |
Digital in |
2 |
Digital in |
3 |
Digital in |
4 |
Digital in |
5 |
VCC |
6 |
Digital in |
7 |
Digital in |
8 |
GND |
9 |
GND |
ハードウェア実装
実際にカートリッジを入手した上で分解し、結線を確認した。その回路図を以下に示す。(2025/8/16追記 8255のWR信号付近のダイオードの向きが逆だったので修正)

端子の制御には8255が利用されている。端子1のピン1~4、6、7は8255のPB0~PB5に、端子2のピン1~4、6、7は8255のPC0~PC5に、それぞれプルアップ回路を介して接続されている。また、基板上には16ピンのICを実装するためのスペースがあり、8255のPA0~PA5、PA7はこのスペース(ICのピン)につながっている。
パソピアのブログ勝つ快感。の著者であるzak氏よりTwitterにて教えていただいたが、ジャンパ線を削除して代わりに74LS367を載せるとPC-6001相当になるとのこと。
制御方法
コントローラの読み取り方法は以下の通りである。
I/Oアドレス$1BにてスロットID(1~7)を指定する。本体内蔵のスロットであれば
1であるスロットIDの指定は不要I/Oアドレス$19にて端子1の、$1Aにて端子2の入力値を得る。ビット0~5がそれぞれピン1~4,6,7に対応している。なお、H=1、L=0である。[4]
勝つ快感。の「Joystickアダプタ」より
ICを追加してPC-6001相当にした場合は、PA0~5、7と両端子のピンとの関係は以下の通りとなる。おそらくPA0はI/Oアドレス$18に書き込むことで信号が出力される。
8255 Pin# |
Function |
---|---|
PA0 |
Controller 1 Pin6 |
PA1 |
Controller 1 Pin7 |
PA2 |
Controller 2 Pin6 |
PA3 |
Controller 2 Pin7 |
PA4 |
Controller 1 Pin8 |
PA5 |
Controller 2 Pin8 |
PA7 |
Disconnect PA0~3 when PA7=H |
ジョイスティックを接続する際は接続する端子に対応したPA4又はPA5をLにする[5]と共に、PA7をHにしてPA0〜3を回路から切り離す。つまり、この改造をした場合の制御は以下の通りとなる。
多くのジョイスティックはピン8をコモン端子にしており、この端子がLになっていないとコモン端子として機能しない。
(2025/8/16追記)
I/Oアドレス$1BにてスロットID(1~7)を指定する。
I/Oアドレス$1Bに8Bhを書き込む。これにより、i8255のポートAが出力、ポートB、Cが入力に設定される[6]。
I/Oアドレス$18に書き込みを行い、対応するコントローラのピン端子に信号出力を行う。なお、ピン6や7を入力端子として使う場合は対応するPA0~PA3をHにする必要がある(端子1、2のピン6、7計4つのピンの全てを読み取りにするのであれば、PA7をHにするだけでも良い)。また、ジョイスティックを接続する場合は対応するPA4、5をLにする必要がある。例えば、端子1にMSXジョイスティックを、端子2にPC-6051タブレットを接続するのであれば、$18への書き込みは11XX0XX0bとなる(Xは端子2の出力内容に応じて1、0のどちらにもなる。PA6は1、0のどちらでもよい)。両端子共にジョイスティックを接続するのであれば、書き込む内容は111100X0b、又はXXXX00X1bである(Xは1、0のどちらでもいい)。
読み取りをI/Oアドレス$19、$1Aで行う。
上記の回路構成から、カートリッジへの通電時には一定時間RESET信号が8255に入力されるようになっており、ポートA, B, Cが全て入力に設定される。従って、改造しないのであればこの設定および次段のポートA出力設定は不要
このように、信号出力できるよう改造した場合、読み取りのみを行う場合であってもPAから信号出力を1回は行う必要があるため、既存のジョイスティック対応ソフトが正しく動作しなくなる可能性がある。
(追記終わり)
Note
(2025/8/8追記)パソピアには2種類の拡張カートリッジスロットがあり、1つはメモリアドレスがそのまま出ているもの、もう一つはI/O経由でアクセスする20ピンのものである。JOY PAC2は後者のスロットに接続する。
このスロットには、I/Oアドレスバスの下位2ビット(A0, A1)とデータバス8ビット(D0~D7)、SELECT、READ、WRITEそしてVCCとGNDが出ている。パソピアがI/Oアドレス$18~$1B、つまり上位6ビットが000110bであるようなアドレスにアクセスすると、SELECTと読み書きに応じてREAD、WRITE信号が出力される。つまり、取り付ける拡張カートリッジの種類に関わらず使用するI/Oアドレスは同じであり、ソフトは事前にどのカートリッジが接続されているかを知っている必要がある。
拡張カートリッジスロットを増やすPAC拡張ユニットは、4つのカートリッジスロットを持っており、本体のカートリッジスロットに接続することでカートリッジスロットを3つ増やすことができる。拡張ユニットの一番奥のスロットにはもう1台拡張ユニットを接続することが可能であり、これによってカートリッジスロットを最大7つまで増やすことが可能である[7]。 拡張ユニットを2つ使用した場合は、本体に直接接続されている方のスロット番号が5,6,7、拡張ユニット経由で接続されている方のスロット番号が1,2,3,4となる。拡張ユニットを1つしか使用しない場合のスロット番号は1,2,3,4である。
「パソピア7 テクニカル ノウハウ」オーム社
このことから、拡張ユニットはI/Oアドレス$1B(つまり本体側スロットのアドレスバスがb11)で、D7が0であるような書き込みがあった場合にスロット選択命令だと判断し、以降は対応するスロットのみにSELECT信号を出すものと思われる。また、一番奥のスロットに別の拡張ユニットが接続されているかを判別可能であり、接続されている場合は自身のスロット番号を5,6,7としているということだろう。
このように、拡張ユニット経由で接続するカートリッジは、アドレスバスb11の書き込みは7ビットのみが有効となる。これはカートリッジ側にインテルのPPIであるi8255が内蔵されている場合に適している。i8255もアドレスバスは2ビットであり、アドレスb11の書き込みはコントロール制御で、この書き込みは必ずD7が1であるためだ。