IBM Game Control Adapter Interface

The IBM Game Control Adapter provides four analog inputs and four digital inputs, supporting one 3-dimensional joystick or two 2-dimensional joysticks. All information is read from address 0x201. The layout of the address follows:

Bit

Input type

Contents

7

Digital

Device B, button 2

6

Digital

Device B, button 1

5

Digital

Device A, button 2

4

Digital

Device A, button 1

3

Resistive

Device B, y coordinate

2

Resistive

Device B, x coordinate

1

Resistive

Device A, y coordinate

0

Resistive

Device A, x coordinate


Button states are indicated on bits 7 through 4, which are cleared when the corresponding button is pressed and set when the button is released.

Bits 3 through 0 are used to determine the joystick coordinates. Each joystick coordinate has a potentiometer whose resistance increases the further the joystick is pushed. When the adapter receives an OUT instruction to address 0x201, it sets bits 3 through 0 and starts four one-shot timers, each corresponding to a single coordinate. The duration of each timer is proportional to the resistance of the respective potentiometer. The bits clear at different times, depending on the value for each coordinate; the larger the coordinate value, the longer the timeout period.