The infamous PC junior celebrates 40 years since its day of announcement, and for this “special occasion” I have decided to make a short re-visit to one of the experiments I did 3 years ago: booting from a vinyl record utilizing the cassette tape interface…
3-stage tape/vinyl bootloader, utilizing BASIC in the ROM, loading 160K PC DOS
Source code, binaries and audio files available here.
To write the BASIC bootloader, 5150CAXX with the /WB argument was used
What I had originally was an IBM PC with a PROM containing the “vinyl bootloader” code, and a 64K image of FreeDOS on a vinyl record, details explained in the corresponding post. Now, the other (and only) PC compatible containing the cassette interface besides the IBM PC was the PCjr, which proved not to be quite compatible with FreeDOS – it did boot into the command line interpreter, but crashed right after trying to process keystrokes, and the same thing occured trying to boot FreeDOS off a regular floppy drive on the Junior.
So my “revisit” involved trying to use the original BASIC interpreter to preload the boot image, instead of a custom socketed ROM, and try to load regular old PC DOS to make it work on a Junior. However, the smallest supported boot device for a DOS 2 was a 5,25″ DD single-sided floppy (160K), so a multi-stage process was devised to load the boot image in 3 chunks. And that was a success!
I can store data on an Edison wax cylinder phonograph, but have not yet made a vinyl cutter…
A 2-minute runtime would be still too short to load a sensible OS kernel and shell.
And that’s all, folks! For more technical debates and ramblings, check out my topic at Mike’s forums.