Science Fair Project Encyclopedia
General Instruments AY-3-8912
The AY-3-8912 was a 3-voice sound chip designed by General Instruments. Yamaha also produced the design under license as the YM2149. The 8912 was a popular chip in many arcade games, and was used on, among others, the Intellivision and Vectrex video game consoles and the MSX, Atari ST, Amstrad CPC and Sinclair ZX Spectrum+ 128 home computers as well as the Mockingboard sound card for the Apple II family.
The 8912 is one of three related designs: the AY-3-8910 included two general-purpose 8-bit parallel I/O ports, the 8912 had one port, and the AY-3-8913 had none. Originally intended as a "cut down" version of the 8910, the 8912 removed one port to reduce the pin count by 12, and thus cost of implementation. The 8913 reduced it only another four pins, making it not that much more attractive. While even the single port on the 8912 seems uneeded in most applications, it was nevertheless the most popular version by far.
The 8912 was register-based, with a set of sixteen registers controlling the sound output, programmed using a set of eight data/address pins that were controlled by the CPU (the data/address mode controlled by a pin on the chip). Six registers controlled the tones produced in the three channels, two eight-bit registers per channel but limited to 12-bits for other reasons, for a total of 4096 different tones. Another register controlled the period of a pseudo-random noise generator, with another controlling the mixing of this noise into the three channels. Three additional registers controlled the volume of the channels, as well as turning on or off the option envelope controls on them. Finally the last three registers controlled the times of the ADSR envelope controller, by setting the lengths of time for each stage of the cycle. Unlike most systems the 8912 used fixed times for the sustain and release, and a repeatable attack and decay pattern. For instance, the system could repeat the AD cycle of the sound over and over, or alternately invert it, starting loud and reducing to the sustain level without any attack phase.
Although the chip wasn't designed to handle raw PCM data (digital samples), the effect could be simulated by rapidly turning the channels to output white noise and altering the volume of the three channels every sample to produce an equivalent waveform. Obviously, this involved more CPU usage than chips designed for this purpose (such as the Commodore Amiga's 8364 "Paula" sound chip), but it was nevertheless a technique widely used on platforms such as the Atari ST to play sampled music, and on the Amstrad CPC to play short audio samples, in some games.
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details