In 1975 Steve Dompier, member of Homebrew Computer Club, made a very memorable hardware hack on his newly built Altair 8800 computer. While interrogating its 72 function set, he noticed interference frequencies coming from the radio he was listening to. He noticed that a process occurring at a particular memory address would generate a specific frequency – for example memory address 075 was equivalent to an F-sharp. After finding the other memory addresses corresponding to other notes, he had mapped the musical scale which lead him to writing a simple music generation program. At the next Homebrew Computer Club meeting he showed his discovery to other member of the club. Fittingly he choose to have his Altair perform a rendition of Daisy, as if in homage to HAL 9000’s deactivation scene in 2001: A Space Odyssey.
One of the questions I’m often asked: How does this work? After all, this is the original code from 1975 that is making the musical interference on the AM radio, but electronically, the Altair-Duino has little in common with the original Altair 8800.
It’s just a guess, but here is what is the same:
1. Transistors (I use through-hole TO-92a transistors that are the same, or at least similar to the original Altair.)
2. LEDs – again, similar to the original.
3. Lack of EMI shielding.
4. Wires and circuit board traces.
Here’s an explanation I found online with a plausible reason the Altair could be programmed to make music through AM interference. I think the same explanation works for the Altair-Duino.
“The mechanism is current through a wire, aka an antenna. A synchronous CPU (i.e., virtually all microprocessors) uses more current at some portions of the clock cycle than others, drawing a pulsating current from the power traces at the 1 MHz clock frequency and a number of its harmonics. The amplitude of each pulse is related to which instruction the CPU is executing and other factors, so for example, by executing a sequence of instructions that vary the current repeatedly over a 1 millisecond period, the amplitude is modulated at 1 kHz. Luckily 1 MHz happens to be in the middle of he AM broadcast band.”
Requirements:Terminal software (Putty is highly recommended.)
AM Radio (you might have to move it around to find the best location – above, below, left, or right.)
Written by: Steve Dompier
- Connect to Altair with terminal software.
- Raise Stop and AUX1 simultaneously to access settings.
- Change throttle delay (“t”) to 5 as the automatic throttle
introduces noise due to the throttle-adjustment code that runs 40 times per second.
- Exit settings (“x”).
- Turn radio on, set to AM, and find a position on the dial with no audio and little static.
- Switch 3 up, switch 1 up, all other switches down.
- AUX1 down. This will load the code for “Daisy” and you should hear it playing on the radio.
- Sing along.
(You will probably want to set the throttle back to “Automatic” when you’re done.)