Atari joystick port

The port, based on the inexpensive 9-pin D-connector, became a de facto standard through the 1980s and into the 1990s, supported by a wide variety of joysticks and other devices, most commonly paddle controllers, light pens and computer mice.

The standard was so engrained that it led to devices like the Kempston Interface that allowed Atari joysticks to be used on the ZX Spectrum.

The port was also used for all sorts of non-gaming roles, including the AtariLab interface, modems, numeric keypads, and even a video expansion card.

[1] It was the desire to run these two games that led to the need for some sort of flexible input system; Pong used analog paddle controllers, while Tank used dual digital (on/off) joysticks.

Arcade games of the era generally used paddles, joysticks or a unique sort of steering wheel controller that was spun, entirely unlike a real car.

The 6502 offered the right combinations of features, performance and price that made a console using ROM cartridges for program storage practical for the first time.

[2] As part of this effort, Joe Decuir began development of an I/O system based primarily on the MOS Technology 6532, which included 8-bit I/O ports as well as the hardware needed to control memory refresh and similar housekeeping tasks.

Additionally, the TIA, whose primary task was sound and video, was used to handle timing-based controllers like paddles and light pens.

The physical interface was the 9-pin D-sub connector, which was already relatively common for reduced pin-count serial ports on the Apple II and S-100 bus machines.

Most game consoles before the Atari had paddle controllers, even detachable ones in the case of the Fairchild Channel F and Magnavox Odyssey.

But the joystick was new, and quickly garnered praise as it allowed direct input into a number of games that would otherwise be difficult to control using a paddle.

[22] As newer consoles were released into the newly invigorated market, new port designs were introduced for every different model.

Meanwhile, the IBM PC had introduced the 15-pin game port that was designed primarily for analog inputs, but use remained rare until the introduction of popular flight simulators.

[26] There have also been numerous systems to allow the ports to be adapted to Universal Serial Bus, and even entirely new Atari-like joystick designs using USB.

In the Atari consoles and 8-bit computers, reading the stick inputs was handled by a polling process that set values in various 8-bit registers.

The instantaneous values were polled 30 times a second during the vertical blank interrupt (VBI) when the operating system (OS) handled a number of housekeeping tasks.

The OS would read these inputs on each VBI, and then copy their status into the shadow registers, with the lower-numbered ports in the least significant bits.

[29] Driving games of the 1980s were generally top-down and used a unique controller that would cause the car to turn at a fixed rate to one side or the other or go in a straight line (Atari's Night Driver is a notable exception).

[30] Driving controllers were implemented on Atari consoles with a device that worked in the same fashion as the joysticks, pressing each directional switch in turn as it spun.

[32] One advantage to this system was the color clock values provided by the paddle controllers were the same numbers that controlled the horizontal location of sprites, meaning that the programmer could simply copy the value of the pot shadow register into the sprite's horizontal position register and it would appear at the appropriate location on-screen.

[35] Because the pins of the joystick were wired directly to the input/output controllers on the motherboard, it was possible to program them to output to the port, rather than input.

Light pens could only be used in Control Port 1 and worked in a similar way to the Atari, but was based on a faster clock so the horizontal axis read from 0 to 511.

For instance, the left direction switch of Control Port 1 was wired to the same input as the CTRL key on the keyboard, and when it was used it would cause scrolling in BASIC programs to slow down.

Unlike earlier systems that had to be interpreted by examining bits in registers, the Amiga's OS had a number of drivers and libraries that made interaction simple.

[44] The TI-99/4A home computer series used a 9-pin connector that was physically identical to the Atari version, as well as being similar in terms of the devices and the way they worked.

[45] The manufacturer and most makers of adapters included diodes on all lines of each joystick except the grounds to prevent false key presses.

MSX home computers used a slightly modified version of the port, replacing one of the analog inputs with a second trigger, and the other with a strobe pin.

These were not very suitable for directional games, and adapters for Atari port devices were common, both commercial ones like the Sirius Joyport, as well as many home-brew systems.

The BBC Micro had a relatively complex port system which was based on a 15-pin D-connector that supported two analog joysticks like the ones on the Apple II.

However, the popularity of the Atari port was such that adapters were also available for this system, varying widely in the number and types of control devices they supported.

The ports first appeared on the back of the 2600. On the first CX2600 models they were only approximately 3 inches apart, but on this later CX2600A model they are widely separated.
The Atari 400 and 800 had four ports arranged along the front of the machine.
The standard Atari joystick was found on millions of systems.
Atari paddle controllers were fairly common, although never as widespread as their joysticks.
The keyboard controller was relatively rare on the 2600, but a more substantial version for numeric input was more common on the Atari 400 and 800.
The Light Gun from the Atari XEGS was essentially a light pen in an ornamental enclosure.