POKEY

POKEY combines functions for reading paddle controllers (potentiometers) and computer keyboards as well as sound generation and a source for pseudorandom numbers.

It produces four voices of distinctive square wave audio, either as clear tones or modified with distortion settings.

[3] Neubauer also developed the Atari 8-bit killer application Star Raiders which makes use of POKEY features.

POKEY chips are used for audio in many arcade video games of the 1980s including Centipede, Missile Command, Asteroids Deluxe, and Gauntlet.

Some of Atari's arcade systems use multi-core versions with 2 or 4 POKEYs in a single package for more audio channels.

The Atari 7800 console allows a game cartridge to contain a POKEY, providing better sound than the system's audio chip.

[4] The USPTO granted U.S. Patent 4,314,236 to Atari on February 2, 1982 for an "Apparatus for producing a plurality of audio sound effects".

Some limited success in reviving nonfunctional POKEYs by heating them in an oven has been reported.

Therefore, no code should read Hardware registers expecting to retrieve the previously written value.

In the individual register listings below the following legend applies: Pokey contains a programmable sound generator; four audio channels with separate frequency, noise and voice level controls.

POKEY's sound is distinctive: when the four channels are used independently, there is noticeable detuning of parts of the 12-tone equal temperament scale, due to lack of pitch accuracy.

Channels may be paired for higher accuracy; in addition, multiple forms of distortion are available, allowing a thicker sound.

One of the sound-engines developed for the Atari 8-bit family was called the AMP engine (Advanced Music Processor).

The AUDF* values also control the POKEY hardware timers useful for code that must run in precise intervals more frequent than the vertical blank.

Each AUDF* register is an 8-bit value providing a countdown timer or divisor for the pulses from the POKEY clock.

The actual audible sound pitch is dependent on the POKEY clock frequency and distortion values chosen.

Audio may also be generated independently of the POKEY clock by direct volume manipulation of a sound channel which is useful for playing back digital samples.

When this bit is set the channel ignores the AUDF timer, noise/distortion controls, and high-pass filter.

Possible channel configurations: POKEY has eight analog to digital converter ports most commonly used for potentiometers, also known as Paddle Controllers.

This had the added advantage of allowing the value read out to be fed directly into screen coordinates of objects being driven by the paddles.

(Note that Paddle triggers are actually joystick direction input read from PIA.)

When a paddle's scan is complete the corresponding bit in ALLPOT is reset to 0 indicating the value in the associated POT* register is now valid to read.

Serial Port Control Bit 0: Enable "debounce" scanning which is intended to eliminate noise or jitter from mechanical switches.

The OS reads the Pot values during its Vertical Blank Interrupt (VBI) and copies the result to the potentiometer Shadow registers in RAM.

When enabled, 1 and 0 bits output to the SIO bus are replaced by tones set by timers 1 and 2.

This is ordinarily used for writing analog tones representing digital data to cassette tape.

POKEY in an Atari 130XE
Atari POKEY (C012294) pin-out