Music/sound

POKEY sound chip description


Four voices of 8-bit pitch-resolution, 4-bit volume-resolution, 8-distortion sound can be produced. 2 voices (1 and 2, and/or 3 and 4) can be combined to make 16-bit pitch-resolution. Also 4-bit volume-only modes can be enabled for digitally sampled sound replay.

A fifth "voice" is produced by the internal speaker on Atari 400/800's (for keyclick and buzzer) and in the XL's and XE's this was (fortunately!) rerouted through the normal audio output, and the keyclick can be disabled.

POKEY (means "POT and KEY" as in the paddles and keyboard) is a digital input/output (I/O) chip. It handles such disparate tasks as the serial I/O bus, audio generation, keyboard scan, and random number generation. It also digitizes the resistive paddle inputs and controls maskable interrupt (IRQ) requests from peripherals.

All four of these LSI chips function simultaneously. Careful separation of their functions in the design phase has minimized conflicts between the chips. The only hardware level conflict between any two chips in the system occurs when ANTIC needs to use the address and data buses to fetch its display information. To do this, it halts the 6502 and takes control of the buses."

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" - POKEY. Inventors listed: Steven T. Mayer, Ronald E. Milner

Sound registers


HARDWARE REGISTER
DECIMAL (HEXADECIMAL)
LABEL DESCRIPTION
53760 ($D200) AUDF1 Audio channel one frequency
53761 ($D201) AUDC1 Audio channel one control. Each AUDF register has an associated control register which sets volume and distortion levels.
53762 ($D202) AUDF2 Audio channel two frequency. Also used with AUDF3 to store the 19200 baud rate for SIO.
53763 ($D203) AUDC2 Audio channel two control.
53764 ($D204) AUDF3 Audio channel three frequency. Used with AUDF3 above and with AUDF4 to store the 600 baud rate for SIO.
53765 ($D205) AUDC3 Audio channel three control.
53766 ($D206) AUDF4 Audio channel four frequency
53767 ($D207) AUDC4 Audio channel four control.
53768 ($D208) AUDCTL Audio control

The even-numbered memory locations (53760, 62, 64, 66) control the TONE, i.e., which note the ATARI will play. This is identical to the second number in a SOUND statement. For example, to get the same tone as SOUND 0, 100, 10, 8 you would POKE 53760, 100. This specifies Voice 0, note 100. But what about distortion and volume? The odd-numbered memory locations (53761, 63, 65, 67) take care of these two characteristics for each voice via the following relation:

16*DISTORTION+VOLUME

where DISTORTION is the third number in the SOUND statement (10 in our example) and VOLUME is the fourth number.

To properly initialize the POKEY sound capabilities, POKE AUDCTL with zero and POKE 53775,3 ($D20F).

Audio control (AUDCTL) options


Audio control (AUDCTL) is the option byte which affects all sound channels. This bit assignment is:
BIT DESCRIPTION
7 Makes the 17 bit poly counter into nine bit poly
6 Clock channel one with 1.79 MHz
5 Clock channel three with 1.79 MHz
4 Join channels two and one (16 bit)
3 Join channels four and three (16 bit)
2 Insert high pass filter into channel one, clocked by channel two
1 Insert high pass filter into channel two, clocked by channel four
0 Switch main clock base from 64 KHz to 15 KHz

References


- POKEY chip description retrieved from page maintained by Michael D. Current
- Some text excerpts taken from the book Best of Antic Volume 1 (article Some Sound Advice)