“The difference between science and screwing around is writing it down.” – Adam Savage
Bonus points for creativity. A Slovakian engineer has finally solved the problem that we’ve all been struggling with. Namely, how do you boot MS-DOS from a 33⅓ RPM vinyl record? At last, we have a solution.
As Jozef Bogin details in his blog, the process wasn’t entirely straightforward. First, you need a computer that runs DOS, which in his case was a genuine IBM Model 5150 (i.e., the original IBM Personal Computer, circa 1981). Then, you need a turntable, some cables, and an audio amplifier with sufficient tweakability. And a friend who can press vinyl records. But apart from that it was smooth sailing.
Old PCs usually booted from a floppy disk or, later on, from a hard disk. But if those failed for some reason, the boot medium of last resort was a cassette tape. Yes, Virginia, there was a time you could load computer programs from the same type of cassette tapes you used for your Awesome Mix Vol. 1. That was Bogin’s gateway into the vinyl realm.
The old cassette interface relies on nothing more than a monaural audio cable between the cassette player and the PC. IBM’s firmware then digitized the audio signal by sampling it at regular intervals. The digitized bitstream (streaming audio?) got loaded into RAM and eventually executed as code. Lots of early home computers worked the same way, including Apple II, Commodore, TRS-80, and others. No big deal. In a time when 5¼-inch floppy disk drives were rare beasts, cassette tapes were cheap, plentiful, and capacious. Just not super reliable.
Bogin leveraged that cassette interface to work with his audio turntable. IBM’s BIOS firmware doesn’t care; the audio-to-digital sampling works the same way as long as you sample it at the same rate. So why not boot from a vinyl record instead of a tape? Even though he cut a standard 10-inch LP, he plays it back at 45 RPM to increase the data rate.
To no one’s great surprise, vinyl records are not a great software storage medium. On the plus side, they’re more durable than most cassette tapes, and good stereo turntables are a lot more reliable than your average Radio Shack tape player. But vinyl records are cut using a global equalization standard (the “RIAA curve”) that artificially boosts high frequencies while diminishing bass response. Audio preamplifiers are designed to reverse that process. The idea is roughly analogous to Dolby’s early noise-reduction technique for reducing tape hiss. Boost the high frequencies in the recording so that you can cut them back during playback to reduce annoying high-frequency artifacts.
Trouble is, that equalization screws up your nice digital signal. Bogin had to crank the treble all the way down and the bass way up to make the signal “sound” right. Dust, pops, and crackles also presented a problem since they sound just like data. Remember to keep your records clean. Nobody likes old software collecting dust.
Bogin had a third party press the record for him. Playing it back on standard audio gear sounds like listening to a 9600-baud modem – which is kind of is. You can even download the analog audio recording of his boot disk (in uncompressed FLAC format, naturally) if you’re into experimental music. Or torturing foreign dictators from across the street.
For the record, his single-sided boot platter holds 64KB and has a playtime of 6:10.
2 thoughts on “Booting DOS from a Vinyl Record”
This was fun! Listening to the FLAC file does indeed bring back memories of phone modems. Regarding the RIAA curve: The original recording EQ curves were introduced, not to ameliorate high-frequency noise, but to prevent overcutting (the cutter skipping to the next groove) when cutting a signal with strong bass content. Improving signal-to-noise eventually became a consideration, but secondary to decreasing the average groove width, thus allowing for longer recordings.
Interface Age magazine used to distribute software on vinyl records in each month’s publication circa 1977. If I recall it was in KC tarbell format and early computers like Kim-1 had a cassette/audio input circuit for loading the software. I don’t recall DOS back then but there was basic and various assembly language stuff for 6800/6502 based computers. Your article took me back in time!