misc. > アタリ仕様ジョイスティック研究 > 概要 > PSG音源の利用

PSG音源の利用

概要

General Instrument(GI)社のサウンドコントローラAY-3-8910はPSG音源[1]の一種であり、AppleIIのMockingBoard[2]を初めとして、世界各国の様々なパソコンに採用された。AY-3-8910は8ビットのI/Oポートを2つ(Port A / Port B)持っており[3]、しばしばこのI/Oポートを使ってコントローラ端子が実装された。

特に日本ではAY-3-8910のみならず、完全上位互換のFM音源コントローラであるYM2203やYM2608[4]が多くのメーカーで広く採用されたこともあり、AY-3-8910のI/Oポートをジョイスティック端子として使用したパソコンは多い。

制御方法

AY-3-8910は内部にレジスタを16持っており[5]、パソコン側ではレジスタ番号を指定して命令を送る。AY-3-8910はデータバスと(レジスタを指定するための)アドレスバスが共通であり、バスディレクション(BDIR、ピン27)、バスコントール1(BC1、ピン29)、同2(BC2、ピン28)を併用して、レジスタ指定、レジスタ読込、レジスタへの出力を行う。BDIR、BC1、BC2と機能との対応は以下の通り。

BDIR

BC2

BC1

Function

L

L

L

Inactive (All Data/Address bus pins are High Inpedance)

L

H

L

H

L

H

L

L

H

Latch Address (Designate Register)

H

L

L

H

H

H

L

H

H

Read from Register

H

H

L

Write to Register

なお、YM2203、YM2608ではピンの名称が以下のように変わっている。

AY-3-8910 Pin Name(pin#)

Yamaha Pin Name

YM2203 Pin#

YM2608 Pin#

BDIR(27)

/RD

36

59

BC1(29)

/WR

35

58

BC2(28)

A0

37

60

一部のパソコンでは、レジスタ番号の指定と、レジスタに送る/レジスタから読み取るデータ用としてI/Oアドレスを別個に割り当てており、一方のアドレスでレジスタを指定し、データを読み取る時は他方のアドレスを読み、データを送信する時は他方のアドレスに書き込むようになっている[6]。つまり、読み書きするI/Oアドレスに応じてBDIR、BC1、BC2の出力内容も自動的に設定される。

AY-3-8910のI/Oポートにアクセスする際に使うレジスタは$07、$0E、$0Fの3つ。それぞれの機能は以下の通り[7]

Register#

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

$07(W)

Set I/O Direction for port B (0=in, 1=out)

Set I/O Direction for port A (0=in, 1=out)

NOISE/TONE Enable (not used for controllers)

$0E(R/W)

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

$0F(R/W)

PB7

PB6

PB5

PB4

PB3

PB2

PB1

PB0


コメント(0)


Note

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

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