Audio over the MCA Bus

Audio Subsystem Block Diagram
Audio Source for Audio Over MCA
Speaker Power


Common Sound Circuits?

On the 95 and 90, look next to the operator panel header or the power switch header and you will notice the small LM386 Audio Op Amp.

Driving Linear Amp Input Node

The audio subsystem is a speaker driven by a linear amplifier. The linear amplifier input node can be driven from the following sources:

  • Tone Generator (timer 2) output Enabled using bit 1 of I/O port 0061h set to 1. (For information about timer 2 see Programmable Timers.)
    GATE 2 is controlled by bit 0 of System Control Port B. 
    CLK IN 2 is driven by a 1.193-MHz signal.
    CLK OUT 2 has two connections. One is to input port hex 0061, bit 5. CLK OUT 2 is also logically ANDed with port hex 0051, bit 1 (speaker data enable). The output of the AND gate drives the "Audio Sum Node" signal.

  • System Channel, using the 'audio sum node' signal.


Audio Subsystem Block Diagram

Each audio driver must have a 1200-ohm source impedance, and a 7.5-kilohm or greater impedance is required for each audio receiver. Volume control is provided by the driver. Output level is a function of the number of drivers and receivers that share the AUDIO line.

The logic ground is connected to AUDIO GND at the amplifier. Placing components between pins 1 and 8 on the LM386 sets the gain.

Single channel analog audio signal. Synthesized voice or music generated on a Micro Channel adapter can be routed as a complex analog waveform directly to the amplifier and speaker inside the computer. The Micro Channel allows expansion cards on the channel to exchange and independently process audio signals.

A more detailed schematic of the LM386 stage can be found HERE.

Audio Signal Group

Consists of an analog voltage sum node and an audio ground.

Audio Sum Node (Signal pin B02)

Used for communication of audio signals between devices on the bus or to the system speaker.

Frequency range 50Hz to 10 kHz, +/- 3db. Maximum analog noise level is 50 mV. Analog signal amplitude is 2.5V peak-to-peak with a DC offset of 0 +/- 50 mV.

Audio Gnd (Signal Pin B01)

Used as the audio ground return signal.


Audio Source for Audio Over MCA (from Peter; edited)

On MCA systems the audio signals supplied by certain cards (M-ACPA namely) is passed through the MCA connector (auxiliary audio channel) and fed to the planar audio amplifier. Therefore the ACPA indeed can play audio via system speaker with no external speakers connected. At least OS/2 supports this feature.

The main problem with the faint beeps on later machines is the tiny SMD-version of the LM386M (or compatible) audio amplifier they used - along with a SMD 47 µF (or similarly small) output capacitor and pretty high input resistors. That adds to a mere whisper rather than a real good beep at all. The audio amplifier is good for 0.5W output - enough to beat the crap out of these 8 Ohms "Taiwan" speakers - but the signal is dampened too much on the input side... and the tiny output capacitor cannot transfer the required energy to the speaker.

For the always curious: on the 95A board the audio amp sits bottom / left at position U5, close to panel and FDD connectors. I *think* the 220 µF cap C26 is the output capacitor, but I haven't verified that. So the output stage should have reasonable good energy transfer. I'm going to analyze the rest of the audio amp later.

Mod. 56s have the LM386 towards the rear of the planar. The output cap is at the underside - a 22 µF at the underside of the board if I have tracked it correctly. Bah. Way too small. The sound is not throttled... it is *strangled* by the circuit design.


Speaker Power (from Don Hills)

> But on some machines the beep is rather faint.

This is for a good reason...

Back in the days of the PC-AT, I was intrigued by a driver that played WAV files (or their precursors) over the internal speaker. I found some technical details and wrote my own, learning a lot about the PC timer chip in the process. PC-AT systems had a good speaker and plenty of drive to it, as did the first series of PS/2 systems (50/60/70/80). The M30s didn't have a speaker as such, just a tiny (1 American cent) size "squeaker". Later models had progressively more wimpy sound systems.

I think the reason the beep started out loud and got fainter in succeeding models was that in the first machines, there was no affordable alternative for producing sounds. Games, in particular, benefited from a good speaker system, even for the limited range of effects that could be achieved. Trouble was, customer feedback said that too loud a "beep" wasn't welcome in corporate applications. So as sound cards became available for those who really wanted sound, the volume of the internal speaker dropped to a suitable level for "corporate" beeps. It was cheaper to do this than put in a volume control.

I still have all the code (for real mode DOS) for driving internal speakers, and the sound card option for the original 10 MHz 286 PS/1 systems, and the Disney Sound Source, and the basic "resistor network on the parallel port" sound adapter. I'll make a distribution of it if anyone's interested.

Ed. Most PS/55 machines have a handy potentiometer on the front of the unit that can be used to adjust the volume of the internal speaker (or to silence it completely).

Content created and/or collected by:
Louis Ohland, Peter Wendt, David Beem, William Walsh, Tatsuo Sunagawa, Jim Shorney, Tim Clarke, Kevin Bowling, Tomáš Slavotínek, and many others.

Ardent Tool of Capitalism - MAD Edition! is maintained by Tomáš Slavotínek.
Last update: 25 Nov 2022 - Changelog | Legal Info & Contact