An Atari style paddle was used on Atari 2600 consoles and Commodore 64. There is a noticeable difference between these two models; Atari use 1Mohm variable resistor while Commodore are 460Kohm. This change the transfer curve to be read and thus different values has to be put in the firmware.
As you can see, there are now two version of the firmware that supports paddles. First one is using interrupts and the second one is done in polling. Each version is a bit different in behavior. Chose the one you like best.
Because paddles are analog controllers, they are read in a very different fashion that numeric controllers (like joysticks). Original design of these controllers was made in early ’70 and where meant for rather slow 8-bit computers with limited I/O. Don’t even think about ADC (analog to digital converters). The value of the variable resistor was measure by an RC circuitry controlled by the CPU on a simple TTL I/O port. Trick to read the potentiometer position is to start a timer while forcing the capacitor to ground. Then the port was released to high impedance thus charging the capacitor at the RC rate. Once the TTL one level reached, timer was read. Value of the timer is directly proportional to knob position. Because the resistance of the pot was lot greater than the one use in the RC circuit (1M vs 1.8K), charging curve was almost linear, thus giving a linear control to the player.
|3||PADDLE 1 BUTTON|
|4||PADDLE 2 BUTTON|
|5||PADDLE 2 POT|
|9||PADDLE 1 POT|