User:Synthetoonz/sandbox

From Wikipedia, the free encyclopedia

WP:COPYARTICLE, old copy of POKEY which this user had just edited, except for the following draft additions:


W I P


Pinout[edit]

File:20121213180247!Atari POKEY.svg
Atari POKEY (CO12294) pin-out


Audio Channel Frequency[edit]

The AUDF* registers control the frequency or pitch of the corresponding sound channels. The AUDF* values also control the POKEY hardware timers useful for code that must run in precise intervals more frequent than the vertical blank.

AUDF1 $D200 Write[edit]

Audio Channel 1 Frequency

AUDF1 $D202 Write[edit]

Audio Channel 2 Frequency

AUDF1 $D204 Write[edit]

Audio Channel 3 Frequency

AUDF1 $D206 Write[edit]

Audio Channel 4 Frequency

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
? ? ? ? ? ? ? ?

Each AUDF* register is an 8-bit value providing a countdown timer or divisor for the pulses from the POKEY clock. The values $0hex/0dec to $FFhex/255dec are incremented by POKEY to range from $1hex/1dec to $100hex/256dec. So, smaller values permit more frequent output of pulses from POKEY, and larger values, less frequent. The actual audible sound pitch is dependent on the POKEY clock frequency and distortion values chosen. See Audio Channel Control and Audio Control.

Audio Channel Control[edit]

AUDF1 $D201 Write[edit]

Audio Channel 1 Control

AUDF1 $D203 Write[edit]

Audio Channel 2 Control

AUDF1 $D205 Write[edit]

Audio Channel 3 Control

AUDF1 $D207 Write[edit]

Audio Channel 4 Control

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Noise2 Noise1 Noise0 FVol Vol3 Vol2 Vol1 Vol0

Bit 0-3: Control over volume level, from 0 to F.

Bit 4: Forced volume-only output. When this bit is set the channel ignores the AUDF timer, noise/distortion controls, and high-pass filter. Sound it produced only by setting volume bits 0:3.

Bit 5-7: Shift register responsible for noises/distortion. Bit values described below:

Noise Value Bits Value Description
0 0 0 $00 5-bit then 17-bit polynomials
0 0 1 $20 5-bit poly only
0 1 0 $40 5-bit then 4-bit polys
0 1 1 $60 5-bit poly only
1 0 0 $80 17-bit poly only
1 0 1 $A0 no poly (pure tone)
1 1 0 $C0 4-bit poly only
1 1 1 $E0 no poly (pure tone)

Generating random noises is served by reading 8 bits from top of 17-bit shift register. That registers are driven by frequency 1.79 MHz for NTSC or 1.77 MHz for PAL. Its outputs can by probed independently by four audio channels in channel's divider's rate.

AUDCTL $D208 Write[edit]

Audio Control

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
17vs9Poly CH1-1.79 CH3-1.79 CH2+1 CH4+3 FI1+3 FI2+4 64vs15Khz