misc. > アタリ仕様ジョイスティック研究 > コントローラ側の仕様 > MSXトラックボール/マウス

MSXトラックボール/マウス

MSXを始めとする「ピン5:VCC、ピン8:信号出力、ピン9:GND」となるコントローラ端子に対応したトラックボール及びマウス。HAL研究所が1984年に発売した[1]CATトラックボール(HTC-001)の仕様が元となっており、翌年にソニーからGB-7としてOEM販売された[2]。これらのトラックボールと同様の制御方法で動作するマウスは1985年2月に日本エレクトロニクス(NEOS)から発売されており、同年4月にヤマハからMU-01としてOEM販売された[3]。MSX2からはBIOSにトラックボール/マウスドライバが組み込まれている[4]

マウスとしては、FM77AVシリーズ[5]PC-88VAFM TOWNSで標準マウスとして正式採用されている。また、ローランドのサンプラーでも利用可能である。

少なくともMSXマウスについては、左ボタンを押しながら起動するとジョイスティックモードとなる[6]。ジョイスティックモードではマウス/トラックボールの移動方向のみを8方向で検出し、移動量は検出されない。通常はカウンタモードを使用する。カウンタモードでは左右方向(X)、前後方向(Y)の移動量を検出可能である。ピンアウトは以下の通り。

pin#

Joystick Mode

Counter Mode

1

UP

Data Bit0

2

DOWN

Data Bit1

3

LEFT

Data Bit2

4

RIGHT

Data Bit3

5

VCC

6

LEFT BUTTON

7

RIGHT BUTTON

8

Not Used

Strobe

9

COMMON/GND

GND

MSX同人サークル アスキャットのサイトで公開されているMSXテクニカルガイドブックによれば、カウンタモードでの読み取り方法は以下の通りである。

  1. ピン8をLにしてピン1〜4を読み取り(値1)、すぐにピン8をHにする。

  2. 33マイクロ秒待機して1〜4を読み取り(値2)、すぐにピン8をLにする。

  3. 25マイクロ秒待機して1〜4を読み取り(値3)、すぐにピン8をHにする。

  4. 25マイクロ秒待機して1〜4を読み取り(値4)、すぐにピン8をLにする。

  5. 95マイクロ秒待機して1〜4を読み取り(値5)、すぐにピン8をHにする。

  6. 33マイクロ秒待機して1〜4を読み取り(値6)、すぐにピン8をLにする。

  7. 17マイクロ秒待機してピン8をHにする。

  8. 17マイクロ秒待機してピン8をLにする。

接続されているのがマウスかトラックボールかは値6で判断する。値6が7〜9ならトラックボール、それ以外ならマウスである。

トラックボールにおいては値1と2を使用する。値1がX座標、値2がY座標の移動量であり、共に8が移動量±0、0が-8、7が+7を指す。

マウスにおいては値2〜5を使用する。値2を上位4ビット、値3を下位4ビットとして合成した8ビットデータがX座標の移動量であり、値4を上位4ビット、値5を下位4ビットとして合成した8ビットデータがY座標の移動量である。X、Y座標ともに2の補数形式[7]である。

MSX2以降ではタブレット用のBIOSであるGETPADを拡張してマウス及びトラックボールの検出を行うことが可能となっている。具体的にはテクハンWikiの解説ページに記載されているように、Z80のAレジスタに装置IDを記憶させてアドレス00DBHをコールし、Aレジスタの内容(返り値)を参照することでマウス/トラックボールの情報を検出可能である。装置IDと返り値の対応は以下の通りである。

装置ID

装置

返り値

12

端子1に接続されたマウス・トラックボール

つねに0FFHを返す(入力の要求に使用)

13

X座標

14

Y座標

16

端子2に接続されたマウス・トラックボール

つねに0FFHを返す(入力の要求に使用)

17

X座標

18

Y座標


コメント(0)


Note

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

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