A 386 laptop with no ISA slots has no Sound Blaster and never will. But it has a printer port. And a printer port is eight data lines you can turn into a DAC with a 1980s resistor ladder. This week, Castalia 92 learned to sing through it.
Two gadgets, two protocols
The Covox Speech Thing is the dumbest, most beautiful hardware possible: a resistor ladder hanging off the LPT data lines. No clock, no buffer, nothing. You push every sample yourself, and the 8253 PC timer keeps the pace so pitch does not depend on CPU speed. The Disney Sound Source is fancier: a 16-byte FIFO that drains itself at ~7 kHz, fed with the classic status/control handshake.
The rule: declare, never probe
With sound cards you can probe ports to autodetect. With a printer-port DAC you cannot: there might be an actual printer on the other side of that LPT. If you probe, it prints. Literally — it would print your audio bytes as garbage characters, page after page. So the DAC is declared in CASTALIA.INI (lptdac=covox or lptdac=disney) and the Gramophone trusts you.
We never probe the printer port. A printer would print the bytes.
The eureka: PWM on the speaker
The best part of the week was not even the Covox. It was rediscovering that the PC speaker — a membrane that only knows how to click — can play digitized WAV via pulse-width modulation, paced by the same 8253. It sounds like AM radio in a tunnel, and it is glorious. Every 386 running Castalia 92 now ships with a digital audio player. In 1992 this was demoscene witchcraft.
v0.51 is out: lptdac= in the INI, startlabel= to rename the Start button (Start, Démarrer, Avvio…), and the Gramophone keeps its gravity-and-peak-caps spectrum analyzer at a full 60 Hz.
C. DI CASTELLO · DEVELOPER LEAD · PRINCETON, IL · 2026.07.10