You set the type of gameport controller by passing an I/O request to the device with gpd_setctype set in io_command, 1 set in io_length and the address of the byte variable describing the controller type set in io_Data. The gameport device is a shared device; many tasks may have it open at any given time. Hence, a high level protocol has been established to prevent multiple tasks from reading the same unit at the same time. three step protocol for using the gameport device