Game Port Pinout
1 XY1 (+5v)
2 Switch 1
3 X1
4 Switch 1 (GND)
5 Switch 2 (GND)
6 Y1
7 Switch 2
8 N.C.
9 XY2 (+5v)
10 Switch 4
11 X2
12 Switch 3&4 (GND)
13 Y2
14 Switch 3
15 N.C.
To get button settings and joystick position you can call BIOS interrupt 15h, subfunction 84h:
This is from Ralf Brown's interrupt list:
INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
AH = 84h
DX = subfunction
0000h read joystick switches
Return: AL bits 7-4 = switch settings
0001h read positions of joysticks
Return: AX = X position of joystick A
BX = Y position of joystick A
CX = X position of joystick B
DX = Y position of joystick B
Return: CF set on error
AH = status
80h invalid command (PC,PCjr)
86h function not supported (other)
CF clear if successful
Notes: if no game port is installed, subfunction 0000h returns AL=00h (all
switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
a 250kOhm joystick typically returns 0000h-01A0h
If some links are wrong, outdated or so, please let me know: [email protected]
Fabio Mantovani, IZ4AFW - Bologna, Italy - [email protected]
Last Updated on Tuesday 10 June 1997 13:08:45