POKEY
The POKEY (an acronym for POTentiometer and KEYboard) is a custom digital input/output integrated circuit developed by Atari, Inc. in the late 1970s, primarily serving as the main I/O controller in the company's 8-bit computer line.[1] It integrates functions for keyboard matrix scanning via six output lines and two sense inputs, reading eight analog potentiometer ports through 8-bit counters, serial I/O with configurable framing and clocking modes, three programmable 8-bit timers, and an 8-bit random number generator derived from a 17-bit polynomial shift register.[2] Additionally, the chip provides eight interrupt request (IRQ) sources, including timer events, serial data reception, and keyboard break detection, all manageable via software registers.[1] A defining feature of the POKEY is its four semi-independent audio channels, each equipped with an 8-bit frequency divider (configurable for 16-bit resolution by pairing channels), 4-bit volume control via an internal DAC, and distortion options including pure tones, filtered noise from 5-bit or 4-bit polynomials, and high-pass filtering.[2] These channels operate at selectable clock rates—typically 1.79 MHz (NTSC), 64 kHz, or 15 kHz—enabling a range of square wave frequencies from approximately 31 Hz to 895 kHz (NTSC), which contributed to the characteristic chiptune audio in early video games.[1] The chip's audio output, combined with its I/O versatility, made it essential for multitasking in resource-constrained systems, supporting debounced key input for up to 64 keys and potentiometer measurements timed to video scan lines for analog controls like joysticks.[2] Introduced with the Atari 400 and 800 computers in 1979, the POKEY became a core component across Atari's 8-bit ecosystem, including the XL/XE series, the Atari 5200 game console, and select arcade cabinets like those using the Atari System 1 architecture.[3] Operating on a 5 V supply within 0–70 °C temperatures, it was fabricated using NMOS technology with 40 pins in a DIP package, balancing complexity and cost for consumer electronics.[1] Its enduring legacy persists in retro computing, emulation projects, and modern recreations via FPGA implementations that replicate its precise timing and audio behaviors.[4]History and Development
Design and Invention
The POKEY chip was invented by engineer Doug Neubauer at Atari, Inc., with layout verification conducted on September 10, 1978, as part of the development of the Atari 8-bit family of home computers.[5] Neubauer, who joined Atari after working at National Semiconductor, took over and finished the design of this custom VLSI integrated circuit, which combined multiple input/output functions previously handled by discrete components.[6] The chip's name derives from its core roles in handling potentiometers (POT) for analog game controller inputs and keyboard (KEY) scanning. The primary motivation for POKEY's creation was to consolidate various peripheral interfaces and audio generation into a single chip, reducing manufacturing costs, board space, and power consumption in cost-sensitive early home computing systems.[7] This integration addressed limitations in prior Atari hardware, such as the simple sound circuit in the Atari 2600, by enabling more sophisticated multimedia capabilities within a compact design suitable for consumer products.[7] By late 1977, Atari engineering meetings had finalized key specifications for POKEY alongside other custom chips like ANTIC and CTIA, prioritizing efficiency for the upcoming Atari 400 and 800 models.[8] Initial design goals centered on providing four independent audio channels for sound synthesis, support for scanning up to 64 keys in an 8x8 matrix for keyboard input, serial I/O interfaces for peripherals like disk drives and printers, and a pseudorandom number generator based on polynomial feedback shift registers shared with the audio system.[1] These features allowed POKEY to multitask efficiently under software control from the system's 6502 processor, enhancing both interactivity and audio expressiveness without dedicated external hardware.[7] Aspects of POKEY's integrated architecture for audio sound effects and I/O were protected by U.S. Patent 4,314,236, filed in 1979 and granted to Atari on February 2, 1982, with inventors listed as Steven T. Mayer and Ronald E. Milner.[9] The patent describes a system using variable clocks, digital noise generators, and amplitude-shaping controls to produce diverse effects like explosions and tones, directly aligning with POKEY's multifunctional design.[9]Release and Early Adoption
The POKEY chip was released in November 1979 as an integral component of Atari's first home computers, the Atari 400 and Atari 800, which marked the company's entry into the personal computing market. Designed by Atari engineer Doug Neubauer, the chip provided essential sound generation and input/output capabilities for these systems, enabling advanced audio features and peripheral support in a compact form factor.[10][5][11] Early production of the POKEY was handled by American Microsystems, Inc. (AMI), utilizing a MOS process with approximately 6-micrometer design rules typical of late-1970s semiconductor fabrication.[1] This manufacturing approach allowed Atari to scale production for the initial run of 400 and 800 units, which began shipping shortly after the November launch. AMI's involvement ensured reliable supply for Atari's burgeoning home computing lineup. In 1982, the POKEY was adapted for Atari's entry into the home console market with the Atari 5200 SuperSystem, released in November of that year, where it handled four-channel sound synthesis and controller input processing. This reuse of the computer-derived architecture facilitated quicker development and compatibility with existing software assets, though the console's design emphasized video game-specific optimizations.[12][13] The POKEY's 40-pin DIP package presented design considerations for printed circuit board layout in the space-constrained Atari 400 and 800 motherboards, necessitating precise routing to accommodate its extensive I/O and audio functionalities without compromising system integrity.[1]Applications
Atari Home Systems
The POKEY chip served as a core component in Atari's 8-bit home computers and consoles, providing essential sound synthesis, analog input handling for paddles and joysticks, and keyboard scanning capabilities. It was integrated into models such as the Atari 400, 800, 600XL, 800XL, 1200XL, XE series (including the XEGS), and the Atari 5200 console, where it managed real-time audio generation through four semi-independent channels capable of producing square waves, noise, and volume-modulated tones over a wide frequency range spanning approximately five octaves or more when configured appropriately.[14][15] In these systems, POKEY digitized analog signals from up to four controller ports, converting paddle positions into 8-bit binary values for precise game input, while also scanning the keyboard matrix to detect key presses and transmit position data to the CPU.[14][16] POKEY interfaced closely with the ANTIC display processor and GTIA color/luminance chip via the shared 8-bit data bus (D0-D7) and low-order address lines (A0-A3), enabling coordinated system operations. Specifically, it routed audio outputs directly to the internal speaker and TV modulator for composite video/sound transmission, while handling analog reads from joysticks and paddles independently of ANTIC's graphics DMA and GTIA's playfield rendering.[14][15] This integration allowed for seamless multitasking, such as generating sound effects during display updates without interrupting video processing.[17] Most Atari home systems featured a single POKEY chip in their standard configuration, as seen in the Atari 400 and 800, to support basic mono audio and I/O needs. Aftermarket upgrades for models like the 800XL enable a dual-POKEY setup for stereo sound output with eight channels total, typically via soldered additions or cartridge expansions.[14][15] The Atari 5200 console similarly employed a single POKEY mapped to a dedicated memory page (E800-E8FF) for controller and audio functions tailored to its cartridge-based architecture.[15][16] POKEY's capabilities significantly influenced software development, particularly in enabling immersive real-time audio and input handling in early titles. For instance, the 1979 game Star Raiders leveraged POKEY for algorithmic sound synthesis of engines, explosions, and alarms, combined with paddle controls for navigation, creating a benchmark for interactive home computing experiences on the Atari 400 and 800.[17]) This integration fostered a library of games and applications that exploited POKEY's timers and random number generation for dynamic effects, enhancing the platform's appeal in the early 1980s home computing market.[18][17]Arcade and Console Extensions
The POKEY chip found widespread application in Atari's arcade machines during the early 1980s, providing audio generation and input handling for titles such as Centipede (1980), Missile Command (1980), and Tempest (1981).[19] In these games, POKEY delivered digitized sound effects, polyphonic tones, and random number generation for gameplay elements, often configured in multi-chip setups to expand audio channels beyond the standard four per chip. For instance, Tempest employed two POKEY chips to achieve richer sound layering, while later arcade titles like Firefox (1983), Return of the Jedi (1983), I, Robot (1983), and Major Havoc (1983) utilized quad-chip configurations—either a single integrated quad-POKEY (part number 137324-1221) or four discrete chips—for up to 16 independent audio channels, enabling complex polyphonic scores and effects in vector-based environments.[19][20] A specialized variant of the POKEY, designated 137430-001, was developed specifically for arcade implementations, appearing in games like Paperboy (1984) and Space Duel (1982). This version supported clock rates typically ranging from 1.2 MHz to 1.79 MHz, adapted to the specific arcade system's master oscillator, similar to the 1.79 MHz NTSC standard in home systems, allowing for faster processing in demanding coin-operated setups.[21][22] It also facilitated multiple instances per circuit board, with designs accommodating up to four chips in parallel for enhanced polyphony without excessive board space, as seen in the quad-POKEY arrangements.[4] These adaptations ensured reliable performance under the variable power and environmental conditions of arcade cabinets. In the Atari 7800 console, released in 1986, POKEY appeared as an optional cartridge-mounted component to augment the system's primary TIA (Television Interface Adaptor) audio chip, which was limited to two basic square-wave channels and simple noise generation. Titles like Ballblazer (1987) relied entirely on a cartridge POKEY for all music and effects, producing four-channel polyphonic audio that far exceeded TIA capabilities.[23] Similarly, Commando (1988) integrated POKEY for background music and melodies while reserving TIA for sound effects and percussion, creating a hybrid audio experience that compensated for the console's hardware constraints without requiring built-in modifications.[24] Only these two official Atari releases employed this cartridge-based POKEY approach, highlighting its role in bridging arcade-quality sound to home gaming.[25] Technical adaptations for arcade and console extensions emphasized external clocking and synchronization to suit coin-operated and cartridge environments. In arcade boards, POKEY received an external master clock signal, often derived from the system's 1.79 MHz oscillator, enabling precise timing for audio and serial I/O without reliance on internal generation./arcade/atari_docs/pokey_datasheet.pdf) Synchronization via the SKCTL register allowed serial ports to interface with external devices, such as potentiometer-based controls in Missile Command or multi-chip audio chaining in quad setups, ensuring low-latency input processing in noisy arcade settings.[26] For the 7800, cartridge POKEYs used the console's expansion bus for clock synchronization with the TIA, avoiding conflicts while delivering independent audio streams.[27] These features made POKEY versatile for commercial deployments, prioritizing robustness over the integrated simplicity of home system designs.Modern Recreations and Replacements
In response to the reliability issues plaguing original AMI-manufactured POKEY chips, such as internal diffusion failures leading to sound distortion or complete malfunction, enthusiasts have developed hardware revival techniques including controlled heating with hot air stations to around 320°C for 3-4 minutes, which can reflow defective connections and restore functionality in up to 70% of cases as reported in restoration communities.[28] Drop-in replacement chips, such as custom-fabricated CO12294 equivalents offered by Best Electronics, provide pin-compatible alternatives using modern silicon processes, ensuring long-term reliability with a 90-day warranty and priced at approximately $30 per unit.[29] FPGA-based recreations have emerged as versatile solutions for Atari restoration projects; for instance, the POKEYOne, developed by David Shuman and released in 2019 with a V2 update by 2020, implements the full POKEY functionality—including four-channel audio synthesis, potentiometer reading, and serial I/O—on a Lattice iCE40 FPGA, offering drop-in compatibility for arcade and home systems at a cost of $75.[30][31] These FPGA clones are integrated into contemporary retro computing hardware, such as the MiSTer platform's Atari 8-bit and 7800 cores, where open Verilog implementations of POKEY handle authentic sound generation and I/O timing for cartridge-based games like Ballblazer.[32][33] As of 2025, open-source Verilog cores for POKEY, such as those in the JTFRAME framework by Jotego, enable custom arcade cabinet builds supporting over 1,000 titles with dual-POKEY configurations for enhanced audio, distributed freely on GitHub for community modifications.[34]Technical Specifications
Core Features
The POKEY chip serves as a multifunctional integrated circuit, combining audio synthesis, input handling, and timing capabilities in a single package for Atari 8-bit computers and related systems. At its core, it provides four independent audio channels, each supporting square wave generation, polynomial-based noise, and multiple distortion modes to enable versatile sound production, including tones, white noise, and filtered effects. These channels allow for dynamic audio output used in games and applications, with control over frequency, amplitude, and timbre to create complex soundscapes.[1][35] In addition to audio, POKEY incorporates essential input/output features, including an 8-bit serial port for bidirectional data transfer at rates up to 19,200 baud and eight dedicated analog potentiometer inputs using 8-bit counters to measure RC discharge times for reading variable resistors, such as those in joysticks or paddles, yielding values from 0 to 228. It also supports scanning of a 64-key keyboard matrix through six output lines and two sense inputs, enabling efficient polling of up to 64 switches in a standard 8x8 grid configuration. A pseudorandom number generator, driven by a 17-bit polynomial counter, provides 8-bit random values for applications like game logic or modulation.[1][36][35] For timing and event management, POKEY includes four programmable 8-bit (or paired 16-bit) countdown timers, each capable of generating interrupt requests (IRQs) upon underflow, supporting precise delays, event scheduling, and synchronization across system operations. The chip operates from a 1.79 MHz base clock derived from the system's 3.58 MHz colorburst crystal oscillator, with selectable divisions (e.g., 64 kHz or 15 kHz) for flexible resolution in audio and timer functions. Packaged in a 40-pin dual in-line (DIP) format for easy integration, it runs on a 5 V supply with a typical power consumption of around 625 mW (125 mA at 5 V). The integrated design of potentiometer and keyboard functions streamlines analog and digital input processing within the same device.[1][37][35]Versions and Variants
The POKEY chip was first produced in 1979 under the part number C012294 for use in Atari's 8-bit home computers, fabricated using a 5 μm NMOS process by manufacturers including American Microsystems, Inc. (AMI).[16][38] The initial die measured approximately 179 by 159 mils, reflecting the technology of the era.[1] Subsequent production involved multiple vendors, including Synertek and Rockwell International, to meet demand in the Atari ecosystem, with an estimated total of several million units manufactured given the over four million Atari 8-bit systems sold.[39][40][41] AMI-fabricated versions were noted for higher failure rates compared to others.[4] For arcade applications, a specialized variant designated 137430-001 was developed by Signetics, enabling quad-audio support in systems like those requiring multiple sound channels.[21] Another configuration, the 137324-1221, facilitated multi-chip setups for enhanced audio in arcade hardware.[21] Over time, manufacturing evolved with process shrinks to improve cost efficiency and density, reducing die sizes from the original dimensions while maintaining compatibility; for example, later Synertek runs achieved 3 μm scaling.[42] The POKEY also appeared in the Atari 5200 console, utilizing the standard C012294 variant.[43]Pinout and Electrical Interfaces
The POKEY chip is housed in a 40-pin dual in-line package (DIP), designed for integration into Atari 8-bit computer motherboards and compatible systems. It employs TTL-compatible input/output interfaces, operating on a single 5 V ±5% power supply (4.75 V to 5.25 V), with a maximum supply current of 125 mA under full operating conditions. The chip's pins support bidirectional data exchange with the host processor, analog input handling for potentiometers, digital scanning for keyboards, serial communication, audio output, and interrupt signaling, all synchronized to the system clock.[1] Key pins include the phase 2 clock input (φ2) on pin 7, which operates at 1.79 MHz for NTSC systems to drive internal timing and audio generation. Serial I/O is handled via dedicated pins: serial input data (SID/SERIN) on pin 24, serial output data (SOD/SEROUT) on pin 28, bi-directional serial clock (BCLK) on pin 26, and serial output clock (OCLK/ACLK) on pin 27, enabling asynchronous communication with peripherals like disk drives. The interrupt request output (IRQ, active low) on pin 29 signals the CPU for events such as timer overflows or serial data availability. Audio output is provided on a single pin (AUD) at pin 37, which delivers a mixed analog signal from the four internal channels, typically connected directly to a low-pass filter or speaker amplifier in Atari systems; this open-collector output requires an external pull-up resistor (e.g., 10 kΩ) and can source/sink currents up to approximately 50 mA per effective channel at full volume when loaded appropriately.[1][44] The pinout configuration emphasizes the lower-numbered pins (1–20) for core I/O functions: pin 1 (Vss/ground), pins 2–6 and 38–40 (D3–D7, D0–D2 for the 8-bit bidirectional data bus), pin 7 (φ2 clock input), pins 8–15 (P6–P1, P0–P7 for potentiometer inputs, supporting analog-to-digital conversion via internal RC timing), pin 16 (KR2/!KS2, keyboard row sense input), and pin 17 (Vdd/+5 V supply). Pins 18–23 provide keyboard column scan outputs (K5–K0, active low), facilitating matrix scanning for up to 64 keys. The POKEY connects to the system bus via its D0–D7 data pins and A0–A3 address inputs (pins 33–36), allowing register access within a 16-byte address space. Higher pins handle control signals: pins 30–31 (CS0, !CS1 for chip select, active low), pin 32 (R/!W for read/write control), pins 24–29 as noted for serial and interrupt, and pin 37 for audio.[1][44]| Pin | Name | Type | Function |
|---|---|---|---|
| 1 | Vss | Power | Ground (0 V) |
| 2–6 | D3–D7 | I/O | Bidirectional data bus (upper bits) |
| 7 | φ2 | Input | Phase 2 system clock (1.79 MHz NTSC) |
| 8–15 | P6, P7, P4, P5, P2, P3, P0, P1 | Input | Potentiometer inputs (analog, RC-timed counter-based) |
| 16 | !KS2/KR2 | Input | Keyboard row sense (active low) |
| 17 | Vdd | Power | +5 V supply |
| 18–23 | !K5–!K0 | Output | Keyboard column scan outputs (active low) |
| 24 | SID/SERIN | Input | Serial input data |
| 25 | !KS1/KR1 | Input | Keyboard row sense (active low) |
| 26 | BCLK | I/O | Bi-directional serial clock |
| 27 | OCLK/ACLK | Output | Serial output clock |
| 28 | SOD/SEROUT | Output | Serial output data |
| 29 | !IRQ | Output | Interrupt request (active low) |
| 30 | CS0 | Input | Chip select 0 (active high) |
| 31 | !CS1 | Input | Chip select 1 (active low) |
| 32 | R/!W | Input | Read/write control (high for read) |
| 33–36 | A3–A0 | Input | Address inputs (4-bit) |
| 37 | AUD | Output | Mixed audio output (open collector) |
| 38–40 | D0–D2 | I/O | Bidirectional data bus (lower bits) |