Booting an IBM PC from vinyl

A nice curiosity found on Hacker News:
I didn’t know that you could boot an original IBM PC via the cassette port, but apparently you can, which enables this nifty trick, once you crammed a copy of DOS onto a vinyl record. Actually, this might be the proper boot process for a Brazil-style computer (the terminals as seen in the movie).

HN discussion: https://news.ycombinator.com/item?id=25177045

3 Likes

My question is where do get a vinyl lp made today?
Now that you have BASIC booted, you can buy all the “FIRE SALE”
lp’s with basic games found in early computer magizines about 1977.

There are services where you can send in a binary file and get a custom cut vinyl record. (Which may be a bit ironic to the true vinyl afficionado. However, these custom records are usually limited in the frequency spectrum, I think, up to 10,000 Hz only.) Alternatively, there are comparably inexpensive cutting heads for standard turntables and, of course, cutting turntables for home. The latter tend to be rather expensive.


Edit: The article actually mentions the process briefly, getting hands-on with a lathe, in true DIY spirit.

The boot image is the same 64K BOOTDISK.IMG “example” RAM drive that can be downloaded at the bottom of the BootLPT article. This has been turned into an “IBM cassette tape”-protocol compliant audio signal using 5150CAXX, and sent straight to a record cutting lathe.

However, a Vienna-based startup (my hometown!) promises to sell you a hipster-compatible home cutting turn table for just $999 by the end of this year:

Oops, price has been updated to (a reduced) €2,499, also, “first deliveries expected to be March 2021”:

If you think this may be still too cheap for a serious computer peripheral, a more semiprofessional Vestax VRX-2000 will go for just $10,000. (I think, the Vestax has been the preferred option for this.) However, there seems to be also an alternative on the other end of the spectrum (apparently sold in Japan, also announced for the US and the UK, but the first article on this, I could find, dates suspiciously from April, 1st):

So, if you are good at DIY and own a CAM lathe, this may be a valid option for the purpose. (One of the media used for hobbyist cutting are oxidized aluminium disks, which will require the least of force, but will be also the least durable.) Otherwise – especially, if it’s about real audio, – it’s probably one of the send-in custom cutting services.

It was new to me that a 5150 could be booted from a cassette. I guess I shouldn’t have been surprised by this, all earlier (mini/mainframe) computers could be booted from paper tape, obviously, and CCT and TK50 etc, and this is IBM… so of course it could also boot from cassette tape. I should have thought of that.

I think, it doesn’t make too much sense in the light of what the PC has become, but in it’s design phase, it was apparently assumed that it should have played a role as a home computer, as well (loading games from cassette tapes and displaying on the living room color TV – well, there may have been economically more attractive options to play Space Invaders). However, IBM had apparently played with several ideas and distribution models for a home computer over the 1970s, but was apparently unable to settle for a strategy. So the plan became to outsource, first, maybe buying Atari, then project Chess, which became the PC, which followed the general call for IBM to settle the emerging business PC market (which had been previously divided between the Apple II + VisiCalc and office systems by IBM, etc). From this perspective, it makes sense to cover all bases and not to abandon all previous plans for the home market. – And, indeed, early brochures for the IBM PC show a happy family sitting in front of the TV and playing video games, presumably from cassette. (Supposedly, dad will do his mortgages analysis afterwards by loading software from tape, as well.)

Compare this LGR video, showing the brochure in question: https://www.youtube.com/watch?v=T3EJmcZkFms (at 3:44)

It couldn’t: this project requires modifying the BIOS by adding an EPROM to the spare socket on the motherboard. The original 5150 would jump into the ROM BASIC if there was not a floppy to boot from.

1 Like

I wonder if anyone has written a short Basic type-in to bootstrap from the cassette port? (Most likely something which pokes and then calls a little machine code. I’m supposing that’s possible.)

It’s a cute project, but it is more for getting giggles than for breaking new ground:

  • The machine has been modified with an extra boot ROM to drive the process.
  • Feeding the cassette port with analog audio generated from other sources is not novel.

Without the extra boot ROM the record could have had a small BASIC bootstrap program that would just poke the instructions into memory, and then jump to them. If I remember correctly the IBM PC diagnostics on cassette contained a lot of data statements exactly for that purpose. It requires the operator to start the program load from cassette, but otherwise the process would be similar.

I have a silly idea to use the cassette port for low speed networking. It is about as practical. ;-0

1 Like

It’s a fine idea to use the cassette port for networking!

Do we know what the input side of the PC’s cassette port looks like? I’m wondering if it constrains what the bit-banged output side can usefully do.

For me there’s a benefit in this kind of experiment and writeup, because it makes a connection between audio and data. It’s a connection that many of us here are already aware of, but many others, especially younger people, may not be. Similarly, it demonstrates what you can do when you can connect systems together.

I’ve not tried to bit-bang the hardware directly, but the method for doing so is in the BIOS of the machine. (There are BIOS routines for reading and writing blocks of data.)

Years ago I decided to “look for the data” on the IBM PC Diagnostics cassette tape. You will enjoy the write-up: IBM PC and PCjr Cassette Waveforms

4 Likes

Oh, nice, hadn’t realised that was your page. It shows up well-ranked on search! Those waveforms… I wonder if the input stage uses zero-detect or peak-detect?