GI AY-3-8912 / AY-3-8912A Pinout — DIP-28 Programmable Sound Generator & I/O

DIP-28 · Sound & Video · AY-3-8912 / AY-3-8912A (General Instrument / Microchip)

Pinout diagram

Summary specifications

Technology NMOS
Operating Voltage +5.0 V +/-5% (VCC on Pin 3, VSS/GND on Pin 6 — NOT on corner pins!)
Audio Channels 3x 12-bit Tone Channels (Pin 5 = Ch A Left, Pin 4 = Ch B Center, Pin 1 = Ch C Right) + 5-bit Noise + 16-shape Envelope
Parallel I/O Port 8-bit Bidirectional Port A (IOA7–IOA0 on Pins 7–14 with internal pull-ups; scans CPC keyboard & DB9 joystick)
Clock Input 1.0 MHz on Pin 15 (derived from Gate Array CCLK on Amstrad CPC; 1.7734 MHz on ZX Spectrum 128)
Bus Interface Multiplexed DA0–DA7 (Pins 28–21) controlled by BDIR (Pin 18), BC2 (Pin 19, tied to +5V), and BC1 (Pin 20) via 8255 PPI

Full pin reference

Pin Name Group Direction Levels Description Expected Signal
1 CHANNEL C Analog Output Analog Audio (0–1 Vpp) Channel C analog audio output (mixed to the Right stereo channel on the Amstrad CPC 464).
2 TEST 1 No Connect Not connected No connect Factory test pin. Leave unconnected in circuit.
3 VCC (+5V) Power Power +5.0 V DC Primary +5 V supply rail! Note the unusual location on Pin 3 (with GND on Pin 6).
4 CHANNEL B Analog Output Analog Audio (0–1 Vpp) Channel B analog audio output (mixed equally into both Left and Right stereo channels on the CPC 464).
5 CHANNEL A Analog Output Analog Audio (0–1 Vpp) Channel A analog audio output (mixed to the Left stereo channel on the Amstrad CPC 464).
6 VSS (GND) Ground Power 0 V System ground reference (0 V) on Pin 6.
7 IOA7 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 7. Reads CPC keyboard matrix bit 7. Descends from IOA7 (Pin 7) down to IOA0 (Pin 14).
8 IOA6 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 6. Reads CPC keyboard matrix bit 6.
9 IOA5 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 5. Reads CPC keyboard bit 5 and DB9 Joystick Fire 1 (Pin 7).
10 IOA4 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 4. Reads CPC keyboard bit 4 and DB9 Joystick Fire 2 (Pin 6).
11 IOA3 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 3. Reads CPC keyboard bit 3 and DB9 Joystick Right (Pin 4).
12 IOA2 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 2. Reads CPC keyboard bit 2 and DB9 Joystick Left (Pin 3).
13 IOA1 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 1. Reads CPC keyboard bit 1 and DB9 Joystick Down (Pin 2).
14 IOA0 I/O Bidirectional TTL (internal pull-up) I/O Port A Bit 0 (LSB). Reads CPC keyboard bit 0 and DB9 Joystick Up (Pin 1).
15 CLOCK Clock / Timing Input TTL 1.0 MHz Master sound generator clock input (1.0 MHz CCLK from Gate Array Pin 20 on the CPC 464).
16 /RESET Control Input TTL, active low Active-low Reset input. Zeroes all 16 internal sound and I/O registers.
17 A8 Control Input TTL, active high Active-high Chip Select pin (tied to +5V via pull-up resistor on the CPC 464).
18 BDIR Control Input TTL Bus Direction control input (driven by 8255 PPI Port C Bit 7, Pin 10 on the CPC 464).
19 BC2 Control Input TTL Bus Control 2 input (tied permanently HIGH to +5V on the Amstrad CPC 464).
20 BC1 Control Input TTL Bus Control 1 input (driven by 8255 PPI Port C Bit 6, Pin 11 on the CPC 464). With BDIR selects Inactive (00), Read (01), Write (10), or Latch Address (11).
21 DA7 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 7 (connected to 8255 PPI Port A PA7 on the CPC 464).
22 DA6 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 6 (to 8255 PA6).
23 DA5 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 5 (to 8255 PA5).
24 DA4 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 4 (to 8255 PA4).
25 DA3 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 3 (to 8255 PA3).
26 DA2 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 2 (to 8255 PA2).
27 DA1 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 1 (to 8255 PA1).
28 DA0 Data Bus Bidirectional TTL, 0 V / 5 V Multiplexed Data/Address Bus Bit 0 (LSB, to 8255 PA0).

Common uses and repair diagnostics

The General Instrument AY-3-8912 (and AY-3-8912A) is the compact 28-pin DIP version of the 40-pin AY-3-8910 Programmable Sound Generator, omitting Port B while retaining all three square-wave tone generators (Channels A, B, and C), the white-noise generator, the hardware envelope generator, and the 8-bit bidirectional parallel Port A (IOA0–IOA7 on Pins 14–7). In the Amstrad CPC 464, 664, and 6128 (IC102), the AY-3-8912 plays a critical dual role: in addition to generating stereo sound (Channel A = Left, Channel B = Center shared, Channel C = Right), its 8-bit Port A reads the keyboard matrix and DB9 joystick switches! Watch out for the non-standard power pins: VCC (+5 V) is on Pin 3 and VSS (GND) is on Pin 6.

Fitted as IC102 in the Amstrad CPC 464, CPC 664, and CPC 6128, as well as the Sinclair ZX Spectrum 128K, +2, +2A, and +3 (where IOA0–IOA7 also drive the RS-232/MIDI port). On the Amstrad CPC, the Z80A CPU never touches the AY-3-8912 directly on the main data bus; instead, the 8255 PPI (IC106) acts as a bridge, connecting 8255 Port A (PA0–PA7) to AY DA0–DA7 (Pins 28–21) and 8255 Port C Bits 7 & 6 (PC7, PC6) to AY BDIR (Pin 18) and BC1 (Pin 20).

Because the CPC keyboard and DB9 joystick lines connect directly to AY-3-8912 Pins 7–14 (IOA7–IOA0) without buffer chips, Electrostatic Discharge (ESD) or hot-plugging a Sega Mega Drive controller (which drives +5V into the port) frequently blows one or more IOA input bits — causing specific keys or joystick directions to stick or die completely while sound still plays!

  • Verify +5.0 V on Pin 3 (VCC) and 0 V on Pin 6 (VSS) — do NOT probe Pins 14 and 28 expecting standard corner power!
  • Scope Pin 15 (CLOCK) for a clean 1.0 MHz square wave from the Gate Array.
  • If the CPC 464 internal speaker is silent, test the side 3.5mm STEREO headphone jack first (or scope Pins 1, 4, and 5 while running SOUND 1,200,100,15) — a tarnished 3.5mm jack cut-off leaf switch is 10x more common than a dead AY-3-8912.
  • If specific keys or joystick directions repeat endlessly or refuse to register even with the keyboard membrane unplugged, measure DC voltage on Pins 7–14 (IOA7–IOA0): every pin should sit near +5 V via its internal pull-up. Any pin reading <1.5 V with the keyboard disconnected indicates a shorted input transistor inside the AY-3-8912.

Datasheets and references

Related chips

Theme Palette

Default Dark
High-contrast dark
Amber Terminal
Monochrome amber
Matrix CRT
Phosphor green
Workbench Light
Clean light mode

Audio & Display

Relay Click Sounds Web Audio API — soft mechanical clicks
CRT Scanline & Flicker Pure CSS overlay effect

System Info

Customization Panel Theme preference, audio FX, and CRT overlay settings are saved to your browser's localStorage and persist between visits. No cookies or server-side storage is used.
Keyboard Shortcuts Press Esc to close this panel. Use the header moon/sun icon to cycle themes.