POTGO

         Bit definitions for both POTGOR and POTGO:

+------+-------+--------------------------------------------------------+ | BITS | FUNC | DESCRIPTION | +------+-------+--------------------------------------------------------+ | 15 | OUTRY | Output enable for Paula pin 33 (= pin 5, port 1) | | 14 | DATRY | I/O data Paula pin 33 (= pin 5, port 1) | | 13 | OUTRX | Output enable for Paula pin 32 (= pin 9, port 1) | | 12 | DATRX | I/O data Paula pin 32 (= pin 9, port 1) | | 11 | OUTLY | Output enable for Paula pin 36 (= pin 5, port 0 = RMB) | | 10 | DATLY | I/O data Paula pin 36 (= pin 5, port 0 = RMB) | | 9 | OUTLX | Output enable for Paula pin 35 (= pin 9, port 0 = MMB) | | 8 | DATLX | I/O data Paula pin 35 (= pin 9, port 0 = MMB) | | 7-1 | X | Paula 8364 chip revision identification number | | | | (presently all zeroes, there's only on Paula revision!)| | 0 | START | Start pots (dump capacitors,start counters) | +------+-------+--------------------------------------------------------+
Note about POTGOR: This is the read address for the POTGO register ($dff034). Most of the bits in this register are write-only and always return a zero when read. Only bits 8-1, 10, 12, and 14 return valid data. The remaining bits are controlled via the POTGO register.
The Amiga's game ports are quite versatile. Pins 5 and 9 of either port can be programmed to receive and send digital data. This register allows you to read the current high-low state of these pins.
Simply read the desired pin's DATxx bit to determine its status. (0 = 0v, 1 = +5v) The positive voltage sent to these pins should never exceed 5 volts or 400 mA. ONLY THE VOLTAGE FROM PIN 7 SHOULD BE CONNECTED TO PIN 5 OR 9. PIN 7 CARRIES +5 VOLTS FROM THE AMIGA'S OWN POWER SUPPLY.
The right mouse button is wired to game port pins 8 and 9. When the button is pressed, these two pins connect. Pin 8 is grounded, so any voltage that 9 carries gets shorted to ground.
To sense whether the right mouse button is being pressed on a mouse plugged into game port 0, you must first set pin 9 to output. (i.e.: OUTLY = 1 and DATLY = 1 or write $0c00 to POTGO. For a mouse plugged into port 1, use OUTRY and DATRY instead.) Finally, wait about 300 µs for the voltage to reach the game port - and then read the status of pin 9 via the DATLY bit in POTGOR. If this bit equals one, the pin is not grounded, thus the button is not pressed. If it equals zero, the pin is grounded, and the button has been pressed.
Because Intuition automatically handles game port 0 mouse events, you'll have to turn off multitasking if you wish to control this port directly via the hardware. Even accessing port 1 may cause problems since any manipulation of POTGO affects all of the bits. Such confusion usually results in the Amiga thinking that the right mouse button is being clicked when it really isn't.
SEE ALSO: POT0DAT, POT1DAT for reading pot counters
Interesting links: