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.