The AY-3-8912 is a sound generator that is built-in on several 128 KB models of the ZX Spectrum and in the Timex Sinclair 2068, but can also be found in several peripherals, such as the Fuller Box an the Melodik interface. On the 128 models, it can also provide MIDI and RS-232 connections.
The 128K's AY chip is clocked at 1.7734 MHz (to within 0.01%). Writing to port FFFDh (65533) selects a register, and reading from port FFFDh reads that register's contents. Writing to port BFFDh (49149) writes new data to the currently selected register. On the 128K/+2, reading from BFFDh will return the floating bus value as normal for unattached ports, but on the +2A/+3, it will return the same as reading from FFFDh. The Melodik interface uses the same ports as the 128K.
On Spectrum-based machines, the AY chip is normally clocked at half the CPU clock. Melodik, the TC2068 and the Pentagon have an AY clocked at 1.75 Mhz. The TS2068's AY chip is clocked at 1.764 MHz. The Timex machines use different ports to the 128K.
Various peripherals, such as the Fuller Box, use different ports to any other interface. The Fuller Box is nominally clocked at 1.75 Mhz but suffers from contention problems.
The AY-3-8910 has 16 registers:
|0||Channel A fine pitch||8 bits|
|1||Channel A coarse pitch||4 bits|
|2||Channel B fine pitch||8 bits|
|3||Channel B coarse pitch||4 bits|
|4||Channel C fine pitch||8 bits|
|5||Channel C coarse pitch||4 bits|
|6||Noise pitch||5 bits|
|8||Channel A volume||4 bits|
|9||Channel B volume||4 bits|
|10||Channel C volume||4 bits|
|11||Envelope fine duration||8 bits|
|12||Envelope coarse duration||8 bits|
|13||Envelope shape||4 bits|
|14||I/O port A||8 bits|
|15||I/O port B||8' bits||(not used by AY-3-8912)|
MIDI and RS-232
I/O port A of the 128K's AY chip is connected through to a combined MIDI and RS-232 port, for which an adaptor is required. Each port is bi-directional, with the serial interface supporting the RXD, TXD, RTS and CTS lines.
Article license information