Personal tools
You are here: Home KtJ's Blog いわゆる「ATARIジョイスティックポート」の変遷についてまとめてみる
« October 2017 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
 

いわゆる「ATARIジョイスティックポート」の変遷についてまとめてみる

by ktj posted at 2015-05-03 15:47 last modified 2017-10-15 09:57

一般に「ATARI仕様ジョイスティック」とよばれるものは、よく調べると方言が結構あるようなのでまとめてみた。海外のポートについてはePanorama.netのコンテンツdeskthority wikiのコンテンツを参考にした。

1. 基本

/img/atari-pins.jpg

ATARIジョイスティックのコネクタはDサブの9ピンを使用しており、パソコン本体側がオス、ジョイスティック側がメスコネクタとなっている(PCのシリアルポートとオスメス逆)。

2. ATARI 2600 (1977)

このコネクタを用いるジョイスティックポートがATARI社の家庭用ゲーム機であるATARI2600に実装された。そのピン配置は以下の通り4方向+1トリガである。上下左右及びトリガ信号検出ピン(1-4、6)はプルアップされており、ジョイスティックを倒す、或いはトリガボタンが押されると対応するピンが8番のGNDにショートされるようになっている。要するに、このジョイスティックは電気的には5chのオンオフスイッチであり、ジョイスティック自身は(連射機能等を追加しない限り)VCCを使うことはない。

1 UP
2 DOWN
3 LEFT / PADDLE BUTTON 1
4 RIGHT / PADDLE BUTTON 2
5 PADDLE RIGHT
6 TRIGGER 1
7 VCC(5V)
8 GND
9 PADDLE LEFT

また、PONGやブロック崩しで名を馳せたATARIらしく、このコネクタにはパドルも接続可能となっている。パドルに連結されたロータリーエンコーダの出力を5番及び9番ピンに出力するようになっている(追記: ここの記載は間違い。後述)。また、ロータリーエンコーダは電源供給が必要なので7番ピンにVCCが割り当てられている。また、パドルにはトリガボタンがついているが、なぜか6番ピンは使用されず、代わりにジョイスティックでは左右に割り当てられている3、4番ピンをトリガボタンの為に使用している。

(2016/5/19追記)ぐぐってみたことろ、Atari2600のパドルは1つのコネクタから二股ケーブルで2つのパドルを接続できるようになっていた。また、AtariAge.comのフォーラムのトピック(1)に貼られていた回路図をみると、パドル内部では5・9番ピンと7番ピン(Vcc)との間に可変抵抗が設けられている。つまり5・9番ピンはアナログ入力ということになる。上記回路図には、数字キーパッド(12キー)やハンドル型コントローラの回路も記載されており興味深い。(追記終わり)

(2017/10/7追記、2017/10/15さらに追記)上記の回路図によれば1~4番ピンは双方向端子である。また、Atariage.comのフォーラムのトピック(2)にリンクが張られている、コレコ社(ゲーム機コレコビジョンでも知られる企業だが他社のゲーム機用のソフト開発も行っていた)によるプログラミングガイドによれば、1~4番ピンの入出力の向きはピン毎に設定可能である。また同プログラミングガイドによれば5、9番ピンはアナログ入力とデジタル入力を切り替え可能であり、また6番ピンについては(1~4番ピンと同様の)レベル検出モードとエッジ検出モードとを切り替え可能である。上で挙げた数字キーパッドは1~4番ピンを出力(本体からキーパッドに信号送出)として、入力専用端子である5、6、9番ピン(5、9番ピンについてはデジタル入力に設定し且つプルアップ回路をキーパッド内で構成した上で)との間でキーマトリックスを構成することによって実現されている。(追記終わり)

この構成はATARIの8ビットパソコンにもそのまま引き継がれている。また、コモドール64は5番、9番ピンがパソコンのアナログ入力端子に接続されており、アナログジョイスティックを接続することが可能となっている(たぶんAMIGAも同じ)。(2017/10/7追記)C64の前身であるVIC-20(日本ではVIC-1001)はC64と同じ仕様のジョイスティックポートを1つ備えている。(追記終わり)

(2016/5/19追記)上記の通り5・9番ピンはAtari2600時代からアナログ入力なのでC64はAtari2600と基本的に同じということになる。また、English Amiga Boardに貼られたピン対応表からは、Amigaでは9番ピンをアナログ入力とTRIGGER2で兼用できるようになっているようだ。(追記終わり)

(2017/10/15追記)'Visual Transistor-level Simulation of the 6502 CPU'にあるATARI Pokeyチップの説明書によれば、ATARIの8ビットパソコンの5、9番ポートはAtari2600とは異なりアナログ入力専門のようだ。またCommodore VIC-20/1001やCommodore64の5、9番ポートについてもアナログ入力専門のようだ(後述)。なお、VIC-20/1001は6番ピンをライトペン入力として利用可能である。(追記終わり)

(2016/8/9追記)上記deskthority wiki及びそこからリンクされているAtari ST Interfaces & Connectorsによれば、ATARIの8ビットPC及びSTのジョイスティックポートはアナログポート無しのデジタル1トリガポート(まあ最初のATARI 8bitはジョイスティックポート4つ付いてたし)。STについてはマウスポートとして使えるよう、1番目のジョイスティックポートのみ9番ピンにマウス右ボタン(内部的には2番目のジョイスティックポートのトリガ=6番ピンと等価)がアサインされている。なお、後継機のATARI STEではATARI Jaguarと同じ15ピンのポート(VGAコネクタと同じやつ)に変更されこちらにはアナログ入力も含まれている。一方で、STだとジョイスティックを使うときはマウスをポートから抜く必要があり(そしてジョイスティックを使い終わったらまたマウスに戻す)不便だったためか、STEではマウスは別のシリアルコネクタに接続するようになっている。(追記終わり)

(2017/1/4追記)↑一部間違い。Atariage.comのフォーラムのトピック(3)に記載の回路図によれば、8ビット機であるATARI 800のジョイスティック端子にはアナログ入力端子が含まれておりATARI2600と同仕様であると思われる。(追記終わり)

(2017/10/7追記)回路図を確認したところ、ここで挙げたアメリカのゲーム機又はコンピュータのジョイスティック端子は入力端子、Vcc及びGNDの仕様については概ね同じであるが出力端子(双方向端子)の仕様については異なっていることが分かった。前述のようにATARI2600は1~4番ピンが双方向端子。ATARIの8ビットコンピュータも同様。Commodore VIC-1001/VIC-20/Commodore64は1~4番ピンに加えて6番ピンも双方向性で、入力/出力をピン毎に設定可能。Amiga、ATARI STについてははっきりとは分からなかったがマウスの回路等を見るかぎり双方向端子はなさそう。しかしマウスの仕様ってATARI ST、Amiga、MSXで違うんだ。コネクタ形状が同じなので混乱しそう(追記終わり)

(2017/10/15追記)'AmigaOS 3.5 Developer Docs'に含まれるジョイスティックポート関連の資料によれば、AmigaにおいてはATARI2600とは逆に5、6、9番ピンが双方向端子となっている。5、9番ピンはレジスタの設定により「アナログ入力モード」と「デジタル入出力モード」を切り替え可能であり、例えばマウスを接続する際は5、9番ピンをデジタル入出力モードとして中、右ボタンに割り当てている。(追記終わり)

3. NEC PC-6001(1981)

PC-6001はATARI2600のポートの内、ジョイスティック部分のみを取り出してこれを拡張して2トリガにしたもの。パドル機能は削除されている。iP6 for Windows support pageの「ジョイスティックポートでRS-232C送受信」という記事に記載の回路図によれば、このジョイスティックポートはAY-3-8910(PSG音源チップ)のI/Oポートを使って実装されている。2番目のトリガは7番ピンに接続されるようになっている。また、GNDが9番ピンに移動し、8番ピンはCOM(コモン、らしい)ポートとなっている。このCOMポートは、パソコン本体側からジョイスティックに信号を送るためのものである。

GNDは9番ピンに移動したが、ジョイスティックの各方向キーやトリガスイッチはATARI2600と同様、8番ピンに一端が接続される。つまり、8番ピンがLowの時に限り、本体側はジョイスティックの状態を検知できるようになっている。

1 UP
2 DOWN
3 LEFT
4 RIGHT
5 VCC(5V)
6 TRIGGER 1 / OUT 1
7 TRIGGER 2 / OUT 2
8 COM
9 GND

この端子のユニークなところは、6、7番ピンが双方向端子となっておりパソコン本体側から信号を送ることができるようになっていること。ジョイスティックに限定されない、汎用のポートとして使うことも想定していたのだろうか。うまく使うと入力6ビット出力3ビットのI/Oとして使うことができる(と思う)。この双方向性端子も含め、PC-6001用ジョイスティックポートの仕様はMSXやX68000でも採用されているらしい(クレア工房「MSX互換ジョイスティックポート」より)。

(2017/10/7追記)上記のように双方向端子自体はATARI2600にもあるため別にユニークというわけでもなかった。(追記終わり)

富士通FM-7シリーズも同じ仕様のジョイスティックを採用。当初はFM音源カードにジョイスティック端子がついてくる構成でありFM-77L2以降標準となった。FMシリーズの場合はYM2203のIOポート(8bit2ch)にジョイスティックポートを割り当てている。6、7番ピンが双方向性になっているかは不明(YM2203のIOポートは双方向性だから対応してるかもしれない)。シャープX1は標準でジョイスティックポートを備えているが、VCCは供給されていない(なのでX1対応の連射ジョイスティックは要電池)。双方向性端子は時期的に対応してなさそう。

富士通のFM TOWNSもPC-6001と同じ形式。双方向性端子があるかどうかは不明。端子の構成に関しては他のPCと同じだが、富士通純正のパッドは上下左右+トリガABの各々の一端が8番のCOMではなく9番のGNDに接続されている点が異なる。このため、ソフト側でCOMをHighにしていると「TOWNSパッドでは動作するが8ビット用のジョイスティックでは動作しない」という現象が起こりうる。また、SELECT、RUNを追加した4ボタン構成となっているのも特徴(SELECTは上下、RUNは左右同時押しと等価な信号となる。このため、SELECTやRUNを押している間は方向キーを検出できない)。

(2016/5/19追記)FM-7エミュレータ"EM7"の開発者のサイトであるなべちゃんのホームページに掲載されているFM77AVの回路図によれば、FMシリーズもPC-6001と同仕様の双方向性端子を持っている。(追記終わり)

(2016/5/22追記)シャープが公開しているX68000のサービスマニュアルによれば、X68000はジョイスティックポート1、2のうちポート1のみが双方向性端子となっている。シャープX1については、X1 Centerで公開されている回路図によると双方向性端子は採用されていなさそう。

PC-9800シリーズ テクニカルデータブック HARDWARE編によれば、NECのPC-9801用の純正FM音源ボードPC-9801-26、26K及び86に実装されているジョイスティックポートも双方向性端子含めPC-6001と同じである(ただしPC-9801-86は1ポートのみ)。また、FM TOWNSテクニカルデータブックによればFM TOWNSは6、7番ピンのみならず8番ピンも双方向性端子となっている。

NEC PC-8801mkIISRは大 深 海 水 淵 亭に載っているI/Oマップによると双方向性端子はない。また、1端子のみである。(追記終わり)

(2016/7/9追記)いやX1は回路図によるとAY-3-8910のIOポートをそのままジョイスティックポートに引き出しているだけだから全端子双方向性だともいえるのかな。機器側ではコンピュータがデータの送信モードなのか受信モードなのかを知る術が無さそうなので使いどころが難しそうだけど(追記終わり)

(2016/6/8追記)シャープMZ-2500のジョイスティックポートもPC-6001と同仕様。詳細は後述(追記終わり)

このように、国内で使用されていたジョイスティック端子の仕様はPC-6001がオリジナルで他のメーカーがパクったわけだが「ATARI仕様ジョイスティック」とか「MSXジョイスティック」とか一般に呼ばれ、「PC-6001用ジョイスティック」とは呼ばれないのが悲しい。

以上のように、国内で普及した仕様はオリジナルのATARI仕様と微妙に異なり、互換性は限られたものとなっている。つまり、ATARIの1ボタンジョイスティック(連射機能無し)を国内PCに接続することは可能だが、国内仕様の2ボタンジョイスティックは第二トリガ押下でVCCとGNDがショートしてしまうため外国のパソコンで使用するのは危険ということになる。

4. SEGA SG-1000/SC-3000(1983)

Enri's Home PAGEのコンテンツに記載の回路図によれば、ピンアサインは以下の通り。

1 UP
2 DOWN
3 LEFT
4 RIGHT
5 not connected
6 TRIGGER 1
7 GND
8 GND
9 TRIGGER 2

オリジナルのATARIジョイスティックの機能に加え、9番ピンに第2トリガを追加したものとなっている。本体の内部では7番・8番がショートしているが、ジョイスティック側では各キーの一端をを8番に繋いでいるようだ。(2017/10/11追記)回路図を見る限り信号ピンは入力専用であり双方向端子等は付いていないようだ。(追記終わり)

5. Amstrad CPC(1984)

Amstrad社のCPCシリーズは英国を中心とした欧州で普及していた8ビット機。ピン配置としてはATARI仕様とPC-6001仕様の中間で、X1に近い。

1 UP
2 DOWN
3 LEFT
4 RIGHT
5 not connected
6 TRIGGER 2
7 TRIGGER 1
8 GND
9 not connected

(2016/5/22追記) ジョイスティックポートは1つのみである。また、Grimwareに記載されている回路図によれば、8、9番ピンはPC-6001の8番ピンと同様のコモン端子である。さらに、5番ピンの入力も受け付けることが可能である。つまり、入力7ビット、出力2ビットのポートということになる。(追記終わり)

(2016/8/8追記)上記Grimwareによれば、9番ポートは「2台目のジョイスティック用のGND」とされている。つまり、CPCはジョイスティックを数珠つなぎにするなり分岐タップを使うなりすることで2台のジョイスティックを接続可能ということか。8番ピンをLow、9番ピンをHighにしておけば1番目のジョイスティックのみの入力を受け付けることになり、逆にすると2番目のジョイスティックのみの入力を受け付けるという実装かな?(追記終わり)

(2017/10/7追記)上記Grimwareに掲載の回路図から判断する限り、1~7番ピンは双方向端子と考えられる。(追記終わり)

6. SEGA メガドライブ(1988)

P6つくろうブログの記事に記載の回路図によれば、メガドライブのジョイスティックのピン配列は以下の通り。7番ピンのSELECTは本体からジョイスティックに送られる信号で、ジョイスティックはこの信号を元にどのキーの情報を本体に送るかを選択する(TOWNSの6ボタンパッドのCOM端子の使い方といっしょ)。3、4、6、9番ピンは7番ピンがHighの時は左、右、Bボタン、Cボタンとなり、Lowの時はGND、GND、Aボタン、STARTボタンとなる。

1 UP
2 DOWN
3 LEFT / GND
4 RIGHT / GND
5 VCC(5V)
6 TRIGGER B / TRIGGER A
7 SELECT
8 GND
9 TRIGGER C / START

SG-1000/SC-3000とあまり互換性が無い。SG-1000/SC-3000は7/8番ピンがGNDなので、SG-1000/SC-3000のジョイスティックをメガドライブにつないだ場合、方向キーは検出できる。トリガ1はトリガAとBの、トリガ2はトリガCとSTARTとの同時押しとして検出される。一方、メガドライブのジョイスティックをSG-1000/SC-3000に接続した場合は、SELECTが常にLOWなのでトリガ1はトリガAとして、トリガ2はSTARTとして検出され、左右は検出できないということになる。

メガドライブ仕様のジョイスティックをMSX等に接続した場合、1ボタンジョイスティック(方向キーとトリガBのみ有効)として認識されるはず。逆にPC-6001仕様のジョイスティックをメガドライブに接続した場合はトリガCとSTARTボタンが押しっぱなしと判断され、トリガ1を押すとトリガABの同時押しと認識され、トリガ2を押すと過電流でメガドライブ側の故障が発生する可能性がある、んじゃないかと思う。

(2017/10/11追記)emudocs.orgに記載の回路図(mega1.png)及びそこに記載のパラレルポートLSIの仕様の解説(Mega Drive Wikiより)によれば、全ての信号ピン(1~4、6、7、9番ピン)は双方向端子でありピン毎に入出力を設定可能である。(追記終わり)

7. 各機種のジョイスティック端子の実装(2016/5/22追記)

(注: 下記は別途記載がなければ本記事中で言及されている資料に基づいて記載したものである)

ATARI 2600の回路図によれば、ATARI 2600のジョイスティックポートのうち方向キー(1~4番ピン)はMOS 6532のI/Oポートに接続されている。一方、アナログ入力端子(5・9番ピン)及びトリガ(6番ピン)はカスタムチップであるTIA(Television Interface Adapter、CO10444)のI/Oポートに接続されている。なお、MOS 6532はプルアップ回路を内蔵しているためジョイスティックポートのピンはそのままI/Oポートに接続されている。トリガについてはプルアップ回路を別途入れている。

(2017/10/7追記、2017/10/15さらに追記) MOS6532のI/Oポートは双方向、TIAのI/Oポートは入力のみなので、1~4番ピンが双方向端子、5、6、9番ピンが入力のみということになる。

ATARI400/800は、1~4番ピンをCO14795チップ(MOS 6520相当)のI/Oポートに、6番ピンをCO12295チップ(CTIA、ビデオコントローラの一つ)の入力ポートに接続している。また、アナログ入力である5、9番ピンについてはCO12294チップ(POKEY、キーボードI/Oと可変抵抗センサ)に接続されている。6520はポートA、Bの2つの8ビットI/Oポートを持っているがポートBはプルアップ回路を内蔵していないためポートBには別途プルアップ回路を入れている。

Museo del Computerに記載の回路図によれば、Commodore VIC-1001及びVIC-20は、ジョイスティック、カセット制御、キーボード、ユーザポートの為に8ビット2chのI/OコントローラのMOS 6522を2つ使用している。ジョイスティックについては1~4、6番ピンをMOS 6522のI/Oポートに接続している。なお、4番ピンのみがキーボードと共用となっている。5、9番ピンについてはビデオ回路(VIC)であるCommodore/MOS 6560(NTSC)又は6562(PAL)のアナログ入力ポートに接続されている(上記回路図及び6502.orgにある6560のデータシートによればアナログ入力専門のようである)。

Bo Zimmerman氏のサイトに記載の回路図によれば、Commodore64のジョイスティックポートの1~4、6番ピンは8ビット2chのI/OコントローラのMOS 6526のI/Oポートに接続されている。6526はVIC-20に使用されている6522と同様、ピン毎に入出力を設定可能である。アナログ入力である5、9番ピンはアナログスイッチを介してSID音源チップ(Commodore/MOS 6581)のアナログ入力端子に接続されている。6502.orgにある6581のデータシートによれば、5、9番ピンはアナログ入力専門のようである。

Atari ST Interfaces & Connectorsによれば、ATARI STのキーボード及びジョイスティックの端子は日立のHD6301コントローラのI/Oポートに接続されている。6301はROMやRAMを内蔵しているコントローラで、STのメインCPU(MC68000)から細かく制御できるかはちょっと分からなかった。

(2017/10/7追記終わり)

前述の仕様書や回路図によれば、PC-6001、MSX、FM-7、そしてPC-9801の26音源ボード及び86音源ボードのジョイスティックポートはほとんど同じ実装となっている。すなわち、PSG音源チップのAY-3-8910及びFM音源チップのYM2203(OPN)、YM2608(OPNA)はA、B二つの8ビットI/Oポートを持っていて、これらの実装ではAを入力専用に、Bを出力専用に設定している。ポートA0~A5はそれぞれセレクタICを介して両ジョイスティックの1~4、6、7番ピンに接続されている。セレクタICのセレクト入力端子はポートB6と接続されており、これによって読み取りを行うジョイスティックポートを選択するようになっている。ポートB0~B5はそれぞれ順番にジョイスティック端子1の6番、7番、ジョイスティック端子2の6番、7番、ジョイスティック端子1の8番、ジョイスティック端子2の8番ピンに接続されている。なお、AY-3-8910、YM2203(たぶんYM2608も)はデータシートを見る限りプルアップ回路を内蔵している(のでI/Oポートとジョイスティック端子をプルアップ回路無しで直接接続すれば機能するはず)が、PC-6001やMSXではプルアップ回路を別途入れている。(2017/10/7追記: よく考えたら音源チップとジョイスティック端子の間にセレクタICが入っているからセレクタICとジョイスティック端子の間にプルアップ回路を入れるのは当然だった。FM-7や26音源ボードでもプルアップ回路は追加されているはず)

X1もAY-3-8910のI/Oポートを使用しているが、A01~08をジョイスティック端子1に、B01~08をジョイスティック端子2にそのままつなげている。つまり、X1ではGNDである8番ピン以外は全て入力端子であり4ボタンまで可能ということになる。

PC-8801mkIISR(及び後継機種)はちょっと変わっている。YM2203のI/OポートA0~A3が上下左右というのはPC-6001等と同じだが、トリガはポートB0、B1にアサインされている。でもって前述の通りジョイスティック端子は1つのみしか想定されていないのでセレクト用のI/Oポートは無い。COM端子(8番ピン)にはYM2203ではなくZ80のI/O(アドレス40hのビット6)から直接信号を出力するようになっている。

X68000及びFM TOWNSは音源にI/Oポートはついていない(はず)ので、別途パラレルインターフェースを追加してジョイスティックポートを実装している。X68000の場合はインテルi8255(8ビット3チャンネルのパラレルI/O。PC-8801のFDインターフェースとかにも使われている)を使用し、ポートPA0~3、5、6をジョイスティック端子1の1~4、6、7番ピンに、ポートPB0~3、5、6をジョイスティック端子2の1~4、6、7番ピンに、ポートPC4~7をそれぞれジョイスティック端子1の8番ピン、ジョイスティック端子2の8番ピン、ジョイスティック端子1の6、7番ピンに割り当てている。

FM TOWNSの場合はI/Oアドレスの04D0H及び04D2Hがそれぞれジョイスティック端子1、2の入力用I/Oとなっており、それぞれの0~6ビットがジョイスティック端子1の1~4、6~8番ピンに対応している。ジョイスティックの6~8番ピンへの出力用I/Oアドレスは04D6Hであり、ビット0~5がそれぞれジョイスティック端子1の6番、7番、ジョイスティック端子2の6番、7番、ジョイスティック端子1の8番、ジョイスティック端子2の8番ピンに対応している。

SG-1000の場合はZ80のI/Oアドレス0DCH、0DDHにジョイスティックポートがアサインされている。0DCHがジョイスティック端子の1~4、6、9番ピン、ジョイスティック端子2の1、2番ピンで、0DDHがジョイスティック端子2の下位4ビットがジョイスティック端子2の3、4、6、9番ピンに対応している。

Amstrad CPCのジョイスティック端子はPSG音源のAY-3-8912のI/Oポートを用いている。8912はPC-6001等に使用されている8910と違ってI/Oポートは8ビット1系統(A0~A7)しか持っていない(ちなみにFM-7の内蔵PSGはI/Oポート無しのAY-3-8913)。ポートA0~A6をジョイスティック端子の1~4、6、7、5番ピンに割り当てている。出力端子である8、9番ピンは(デコーダICである74LS145を介して)インテルi8255で制御するようになっている。

(2016/6/7追記)↑ではFM-7の内蔵音源をAY-3-8913としていた。本体に付属のマニュアル(ユーザーズマニュアル システム仕様)やなべちゃんのホームページに記載の図面では確かにAY-3-8913となっているのだが、はにはにのヴィンテージPC再生ブログutsに掲載されている写真によれば、実際にはAY-3-8910が使われていたようだ。何かもったいないような気がするが調達の都合だろうか。(追記終わり)

(2016/5/27追記)シャープMZ-2500/2800シリーズやソニーSMC-777もこの系統のジョイスティックポートを備えていたことに気づいた。

MZ-2500については、様々なエミュレータを開発されているTAKEDA, toshiya's HOME PAGEに記載のMZ-2800解析資料やエミュレータのソースコードを見る限り、YM-2203のI/Oポートを使わずに実装されている(YM-2203のポートはRS-232C用等として使われているっぽい)。ジョイスティックの制御に使うI/OアドレスはEFHであり、ここの7ビット目に書き込むことでジョイスティックポート選択、1~6ビット目の読み取りでジョイスティック(2トリガ)の入力内容を取得を行うもののようだ。COM端子やトリガの双方向性端子が実装されているかは不明。書き込みの1~4ビット目はトリガマスク?というものらしく、ここに値をセットすると対応するトリガが常にオンとして読み取られるようになっている。

SMC-777は上記ソースコードを見る限りでは1トリガタイプのジョイスティックである。SMC-777のPSGはTIのSN76489ANでこれにはI/Oポートはついていないので、別のペリフェラルコントローラを使っているのだろう。SMC-777はMSXより前のマシンなのでたぶんPC-6001仕様とは互換性がなく、したがってCOM端子等の出力端子は実装されていないと見た。

いずれにせよこの両機種については資料を当たって見ないとなんとも。MZは図書館で資料を当たってみれば何とかなりそうだけどSMCは本体付属のマニュアルに載っているI/Oアドレスマップや回路図を参照しないと無理っぽい。(追記終わり)

(2016/6/25追記)本日開催されたマイコン・インフィニット☆PRO-68K前田尋之氏のブースでSMC-777Cが展示されており、マニュアルを見せていただいた。それによると、SMC-777のジョイスティックポートは1トリガのみであり、5ピンがVcc、7ピンはトリガのアサインなし、8ピンが9ピン同様のGNDという、ちょうどPC-6001の1トリガ版という仕様になっていた。また、双方向端子はジョイスティックポート2のみ対応(マニュアルには「NECのPC-6051をジョイスティックポート2に接続することができる」との記載があった。PC-6051はPC-6001用のタッチパネルである)のようだ。(追記終わり)

(2016/6/8追記)工学社「MZ-2500テクニカルマニュアル」に記載の回路図や上記エミュレータのソースコードから類推すると、I/OアドレスEFHの1〜4ビットがそれぞれジョイスティックポート1の6、7番ピン、ジョイスティックポート2の6、7番ピンへの信号出力に対応している。EFHの5、6ビットはジョイスティックポート1、2の8番ピンへの信号出力。上記のトリガマスクというのは信号出力を行っているときの挙動を再現したものということだろうか。(追記終わり)

(2016/5/29追記)松下電器JR-200にもジョイスティックポートがついている。.Markku Reunanen.に記載の情報(TINY野郎氏のTwitter投稿経由)によれば、4ビットコントローラのMN1544CJRの下に構成されており、1トリガタイプの模様(追記終わり)

(2016/6/4追記)東芝パソピアシリーズには拡張スロット(ファミコンのようなカートリッジ形式)に取り付けるタイプのATARI互換ジョイスティックアダプタがあり、BASICでもサポートされていた模様(勝つ快感:Joystickアダプタより)。BASICでサポートされていたのは上下左右1トリガのジョイスティックだが、I/Oポートレベルでは2トリガまで読み取り可能とのこと。ジョイスティックポートは1カートリッジあたり2ポートで最大14ポート(!)まで拡張できたとのこと(パソピアは拡張スロットに拡張ユニットをつないでスロット数を7まで増やすことができるということなので、全てのスロットにジョイスティックアダプタを取り付ければ14、ということかな)。トリガ2がどのピンにアサインされていたのかが気になる。

「笑いっ子のホームページ」のコラムによれば、初代パソピアの発売は1981年9月、一方PC-6001はWikipediaによれば同年11月なのでATARIジョイスティックを最初にサポートした国産PCは初代パソピアということになるのだろうか。(追記終わり)

(2016/6/8追記)上記は間違い。BASICでジョイスティックがサポートされたのはパソピア7から。アスキー出版「パソピアの内部構造」によれば無印パソピアのT-BASICにはジョイスティック関連の命令は含まれていない。同所によればパソピアの拡張スロットはアドレスバス2ビット、データバス8ビットであり(言い換えれば8ビット4chのパラレル)拡張カートリッジ内にさらにI/Oコントローラを入れてより複雑な制御を行うとのこと。そうすると、パソピアにジョイスティックが実装されたのはパソピア7の頃で、ATARIジョイスティックを国内で最初にサポートしたのはやっぱりPC-6001なのかもしれない。(追記終わり)

(2017/10/11追記)上記回路図やパラレルポートLSIの仕様によれば、メガドライブのジョイスティックポートは7ビット(3チャンネル)のパラレルポートLSIであるSEGA 315-5309に接続されている。メガドライブはDサブ9ピンのジョイスティックポートを2つ、拡張コントロール端子を1つ備えており、315-5309の各チャンネルのそれぞれにジョイスティックポート(あるいは拡張コントロール端子)が割り当てられている。なお、315-5309のパラレルポートはピン単位で入出力を設定可能である。(追記終わり)

8. ATARI互換ではないもの(2016/5/29追記)

トミーのぴゅう太はATARI仕様と同じDサブ9ピンのコネクタを使用しているが、Floodgap Systems' websiteに載っている資料によればピン配置は下記の通りである。

1 SELECT CONTROLLER 1
2 SELECT CONTROLLER 2
3 SL(TRIGGER)
4 SR(TRIGGER)
5 DOWN
6 LEFT
7 UP
8 RIGHT
9 NOT CONNECTED

ぴゅう太はATARIのパドルのように1つのコネクタで2つのコントローラを接続できるようになっている。各コントローラの上下左右+2トリガは(ダイオードを介して)1番ピン又は2番ピンに接続されており、ぴゅう太側で1番ピンと2番ピンのいずれかをLレベルにして各コントローラの読み取りを行っているようだ(3~8番ピンは全てデジタル端子)。ジョイスティックについては1番ピンと2番ピンがショートしているとのこと。

Apple][もDサブ9ピンコネクタを使用しているが、wiki.icomp.deに記載の資料によれば、4チャンネルのアナログ入力と3トリガ(Apple//c系はアナログ2ch+2トリガ)の端子とのこと。下の表で"*"がついている端子はApple//c系では未使用。

1 BUTTON 1
2 VCC
3 GND
4 JOYSTICK2-X *
5 JOYSTICK1-X
6 BUTTON 2 *
7 BUTTON 0
8 JOYSTICK1-Y
9 JOYSTICK2-Y *

なお、80年代初頭の国内PCにおいて、ジョイスティックコネクタを備えたものはソードM5、バンダイRX-78、カシオPV-2000があるが、コネクタ形状はDサブ9ピンではない。

The URL to Trackback this entry is:
http://www.ktjdragon.com/ktj/ktjs-blog/3044308f3086308b300catari30e730a430b930c630a330c330af30fc30c8300d306e59099077306b306430443066307e306830813066307f308b/tbping

pzXxEzRqnt

Posted by JimmiNu at 2017-09-11 19:15
5SjXYw http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: