You determine the type of controller being used by passing an I/O request
to the device with GPD_ASKCTYPE set in io_Command, 1 set in io_Length and
the number of the unit set in io_Unit. The gameport device will respond
with the type of controller being used.
struct IOStdReq *GameIO; /* Must be initialized prior to using */
BYTE GetControllerType()
{
BYTE controller_type = 0;
GameIO->io_Command = GPD_ASKCTYPE; /* get type of controller */
GameIO->io_Data = (APTR)&controller_type; /* place data here */
GameIO->io_Length = 1;
DoIO(GameIO);
return (controller_type);
}
The BYTE value returned corresponds to one of the five controller types
noted above.