Skip to content
Hardware

AY-3-8910: The Sound of the 80s

Three square waves heard around the world

General Instrument's AY-3-8910 brought three-voice synthesis to home computers and arcades—powering the 128K Spectrum, Amstrad CPC, MSX, and countless coin-ops.

zx-spectrumamstrad-cpcMSXatari-st audiosound-chipsgeneral-instrumentpsg 1978–present

Overview

The AY-3-8910 Programmable Sound Generator (PSG) was ubiquitous in 1980s computing. Its three square wave channels, noise generator, and hardware envelopes provided a consistent sound across platforms. While not as characterful as the SID, its widespread adoption made it the common tongue of chiptune.

Fast facts

  • Manufacturer: General Instrument (later Microchip).
  • Channels: 3 tone generators + 1 noise generator.
  • Output: mono (some systems mixed to stereo).
  • Variants: AY-3-8912 (fewer I/O pins), AY-3-8913 (no I/O), YM2149 (Yamaha clone).

Architecture

FeatureSpecification
Tone channels3 × 12-bit frequency divider
Noise5-bit frequency, LFSR-based
Mixerper-channel tone/noise enable
Envelopes1 shared envelope generator
Volume4-bit per channel (16 levels)

Register map

RegisterPurpose
R0-R1Channel A frequency (12-bit)
R2-R3Channel B frequency (12-bit)
R4-R5Channel C frequency (12-bit)
R6Noise frequency (5-bit)
R7Mixer control
R8-R10Channel volumes (4-bit each)
R11-R12Envelope period (16-bit)
R13Envelope shape
R14-R15I/O ports (if present)

Mixer register (R7)

BitFunction (0 = enabled)
0Channel A tone
1Channel B tone
2Channel C tone
3Channel A noise
4Channel B noise
5Channel C noise
6-7I/O port direction

Envelope shapes (R13)

ValueShapeDescription
$00-$03\__Decay then hold low
$04-$07/__
$08\\Repeating decay
$09\__Single decay
$0A\/\/Decay-attack cycle
$0B\‾‾Decay then hold high
$0C////Repeating attack
$0D/‾‾Single attack, hold high
$0E/\/\Attack-decay cycle
$0F/__

Platform implementations

ZX Spectrum 128K

  • Access: port $FFFD (register select), port $BFFD (data write).
  • Clock: 1.7734 MHz (PAL).
  • Stereo: ABC arrangement via Melodik interface or software mixing.

Amstrad CPC

  • Access: via PPI (8255), more complex addressing.
  • Clock: 1 MHz.
  • Stereo: hardware stereo (A left, B centre, C right).

MSX

  • Access: ports $A0-$A2.
  • Clock: varies by region.

Atari ST

  • Chip: YM2149 (Yamaha clone).
  • Access: memory-mapped at $FF8800-$FF8802.
  • Stereo: three fixed channels via microwire.

Programming techniques

  • Arpeggios: rapid note changes simulate chords.
  • Software envelopes: bypass limited hardware envelope for flexibility.
  • Noise drums: mix noise with short tone bursts for percussion.
  • Digidrum: fast volume register updates for sample playback.
  • Buzzer bass: envelope-driven bass using the single envelope generator.

AY-3-8910 vs AY-3-8912

Feature89108912
I/O ports21
Pin count4028
SoundIdenticalIdentical

See also