misc. > アタリ仕様ジョイスティック研究 > 機器側の仕様 > ATARI系列(Vcc:pin7, GND:pin8) > Commodore AMIGA(1985)

Commodore AMIGA(1985)

ハードウェア概要

80年代後半から90年代初頭を代表する16ビットホビーパソコン。大容量メモリの扱いに適したモトローラMC68000 MPU[1]と高性能なカスタムチップ群により高いグラフィック性能を有していた。後に登場した、68020MPUを備えたモデルA2000およびその後継機は、Video Toaster[2]と合わせてDTVシステムとして広く利用された[3]

カスタムチップ群はもともとアタリでVCS400/800のカスタムチップを手掛けたジェイ・マイナーによって設立されたAMIGA社で開発されていた。1983年にアタリはいわゆるアタリ・ショックによって経営危機に陥った。同時期にコモドールは内紛により創始者のジャック・トラミエルがエンジニアたちとともに離れ、最終的にはアタリを買収する。多くのエンジニアがいなくなったコモドールはAMIGA社を買収して、その結果生まれたのがAMIGAの初代モデルのA1000である。

コントローラ端子の特徴

以下の説明はamigawikiに記載のAMIGA A500の回路図及びAmiga Developer DocsのAmiga Hardware Reference Manualに基づく。本機はコントローラ端子を2つもっており、ピンアウトは以下の通りである。

pin#

Function

1

Digital in

2

Digital in

3

Digital in

4

Digital in

5

Analog in / Digital in / Digital out

6

Digital in / Digital out / Light Pen

7

VCC

8

GND

9

Analog in / Digital in / Digital out

ハードウェア実装

上記回路図からコントローラ端子周りを抜粋したものを下図に示す。

/static/images/atari/amiga_a500.png

コントローラ端子はMOS8520(CIA)[4]と、AMIGA独自のカスタムチップであるPAULA[5]及びDENISE[6]を使って実装されている。また、ライトペン入力検出用としてもう一つの独自カスタムチップであるAGNUS[7]も利用される。

ピン1〜4はセレクタICである74LS157を介してDENISEのI/Oポートに接続される。ピン6はCIA-AのPA6(コントローラ端子0)及びPA7(コントローラ端子1)に接続されている。ピン5, 9はPAULAのI/Oポートに接続されている。コントローラ端子0又は1のピン6はAGNUSのライトペン入力端子に接続されている[8]

制御方法

各ピンの制御方法は以下の通りである。

ピン1〜4のデジタル入出力については、アドレス$DFF00A(JOY0DAT/コントローラ端子0)及びアドレス$DFF00C(JOY1DAT/コントローラ端子1)を使用する。これらのアドレスの内容はコントローラ端子にマウスをつないだ時の座標値であり、ビット0~7がX軸、ビット8~15がY軸を示す。AMIGA用マウスにおいてはピン1、3がY軸方向のロータリーエンコーダと接続されており、一方ピン2、4がX軸方向のロータリーエンコーダと接続されている。各ピンの状態は、以下の通りこの座標値から逆算する必要がある。

pin#

JOY0DAT / JOY1DAT (1=L, 0=H)

1

Bit8 XOR Bit9

2

Bit0 XOR Bit1

3

Bit9

4

Bit1

ピン5、9をデジタル入出力として使用する場合は、アドレス$DFF034(POTGO/書き込み専用)及びアドレス$DFF016(POTGOR/読み込み専用)を使用する。POTGO及びPOTGORの機能は以下の通り。

Bit Number

Name

Function

15

OUTRY

Output enable for bit 14 (1=output)

14

DATRY

data for port 1, pin 9

13

OUTRX

Output enable for bit 12

12

DATRX

data for port 1, pin 5

11

OUTLY

Output enable for bit 10

10

DATLY

data for port 0, pin 9 (right mouse button )

09

OUTLX

Output enable for bit 8

08

DATLX

data for port 0, pin 5 (middle mouse button )

07-01

X

chip revision identification number

00

START

Start pots (dump capacitors, start counters)

信号出力を行う場合は、出力したいピンに対応したPOTGOの入出力設定用ビット(9, 11, 13, 15)に1を書き込んだうえで、データ用ビット(8, 10, 12, 14)に書き込みを行う。信号入力を行う場合はPOTGOの入出力設定用ビットに0を書き込んだ上でPOTGORの対応するデータ用ビットを読み込む(0の時対応するピンはL、1の時はH)。

ピン5、9をアナログ入力として使用する場合は、アナログ入力を受け付けたいピンに対応したPOTGOの入出力設定用ビット(9, 11, 13, 15)に0を書き込み、次いで垂直ブランキング期間中にPOTGOのビット0に1を書き込む。そして、次の垂直ブランキング期間中にアドレス $DFF012(POT0DAT/コントローラ端子0)又は$DFF014(POT1DAT/コントローラ端子1)を読み出す。各アドレスのビット0~7はピン5の、ビット8~15はピン9の抵抗値に対応した値となる。

ピン6のデジタル入出力は、まずアドレス$BFE201(CIAADDRA)のビット6(コントローラ端子0)又はビット7(コントローラ端子1)に書き込みを行い入力にするか出力にするかを決める(1で出力、0で入力)。そして、アドレス$BFE001(CIAAPRA)のビット6(コントローラ端子0)又はビット7(コントローラ端子1)を読み出すか書き込みを行う。なお、値が0の時はLで1の時はHである。

ライトペンの信号検出を行う場合は、まず$DFF100(BPLCON0)のビット3に1を書き込む。すると、ライトペンが指す座標に対応した座標が、アドレス$DFF004(VPOSR)及び$DFF006(VHPOSR)に保存される。垂直方向の座標はVPOSRのビット0(V8)及びVHPOSRのビット15~8(V7~V0)に、水平方向の座標はVHPOSRのビット7~0(H7~H0)に保存される。


コメント(0)


Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。