An ancient MS-DOS ancestor has been taken for a test drive by YouTuber and retrocomputing archaeologist Thomas Cherryhomes. 86-DOS version 0.1 C, which was unearthed from some dusty closet and added to the Internet Archive recently, was installed, booted, and used to translate and compile an application written for CP/M. Moreover, the task involved disk format juggling, Z80 to 8086 assembly conversion, and the use of editing programs on both platforms. You can see his efforts in the video embedded directly below
Cherryhomes began his video by stressing the importance of the recent 86-DOS find. It is the earliest copy of 86-DOS known to exist. Also, as we said earlier this week, 86-DOS was chosen by Microsoft as the basis of what would become PC-DOS and MS-DOS. Thus, the discovery was of “very profound importance in Computing history,” asserted the computer archaeologist in his YouTube video.
Getting 86-DOS up and running isn’t as straightforward as firing up a PC emulator and booting the disk image. Yes, this OS was written for Intel 8086 processors, but the target systems didn’t use an IBM PC architecture. Cherryhomes goes into some detail about the Gazelle computer by Seattle Computer Products, and highlights that it was used by Microsoft for the final linking process for building MS-DOS up until version 5.0. It was an appealing early computer system for this purpose due to its memory board expansion ability which allowed for kitting out with up to a megabyte of RAM.
The way people put together these Gazelle systems is echoed by the way those interested in testing 86-DOS today will have to configure their SIMH emulator. Cherryhomes discussed the SIMH configuration file used to build a virtual Gazelle, to run and test out 86-DOS. In the video he talks through each of the components added in the configuration file and why they are needed. In brief, the config file adds several S-100 Bus boards to the virtual computer to get a fully working machine: starting with a CPU board, adding a console, serial port, disk controller, and ROM.
By 9 minutes 30 seconds into the video we have an SIMH window open on the PC, with the 86-DOS system booted – you can see that Cherryhomes has started the emulator and pressed the return key to get a prompt and then ‘B’ to boot 86-DOS.
Cherryhomes first comments on the fact that 86-DOS uses the FAT filesystem. However, in this early version, there are no timestamps or file sizes. He explains that directory entries in this 12-bit file system don’t have enough room for this information. The computer archaeologist then goes through the (nine) files on the system disk and explains what each of them can do.
COMMAND.COM is the interpreter, just like in modern versions of DOS. It provides a multitude of built-in commands to system users including Dir, Erase, Type, and more.
RDCPM.COM allows the system to read CP/M format disks and copy them to 86-DOS FAT format disks, providing access to the data that would otherwise be unreadable. This is important as it was the only way to bring CP/M disk content over to 86-DOS.
HEX2BIN.COM is a loader for assembly code, changing the hex assembly code to binary.
ASM.COM is an assembly language program from SCP.
TRANS.COM is a program which takes Z80 source code and converts it into 8086 code.
SYS.COM is used to create a bootable copy of the operating system on another disk.
EDLIN.COM is a basic text editor
CHESS.COM (and DOC) – This is a rudimentary command-line (no graphics) chess game. Cherryhomes finds this a curious addition to the disk and wonders whether it was put there by the owner of this copy. It is hard to tell whether it was a later addition to the original disk without a timestamp…
86-DOS test drive
After about 13 and a half minutes Cherryhomes begins his 86-DOS test drivein earnest. He will be writing a small piece of software in CP/M, then save it to disk, bring it to the 86-DOS system, convert it, assemble it, and run it. The test was a version of the classic Hello World program.
Using a CP/M emulator program on his PC the computer archaeologist wrote Hello.ASM. The program was assembled successfully (still in CP/M). Looking at the output files – one of them includes a HEX file. This in turn was loaded and run on the emulated CP/M system – success. Still in CP/M, a tool called ZTRAN was used to convert the little Hello World program converting it from Z80 to 8086 code.
The next step in the process was to get this code into the SIMH emulator, and to do this you must copy files over via the use of a disk image. Specifically, the system expects disk images in the IBM 3740 format (73 tracks, 26 sectors with 128 bytes per sector for a total 237.25KB), according to the computer archaeologist.
Cherryhomes ‘inserted’ the CP/M written IBM 3740 format disk into the 86-DOS machine’s drive B. A quick directory readout shows garbage, as the disk isn’t using the FAT filesystem. Thus, the 86-DOS RDCPM.COM tool now comes into play. This rudimentary 86-DOS utility must be fed the correct parameters to do its job, and there is no sign of progress or any indication of whether the file operation was successful.
It is noted that a Hello.ASM file has appeared on the A disk now. Checking its contents with the Type command shows the Z80 assembly is there. TRANS.COM is used next, and this tool is fed the Hello.ASM file, outputting “Translation complete” when it is done. Any errors are noted within the file, not in the screen output
In the file readout, you can see there is an Opcode error, due to the unknown DEFB instruction. EDLIN.COM is used to change DEFB into DB, and to delete line 7 which only served to highlight the error to the coder. Moving on, ASM.COM provided with 86-DOS is used to assemble the code, and it completes without error.
HEX2BIN.COM is run next to process Hello.HEX. This is another tool with little to no feedback, simply returning the user to the prompt. A directory listing reveals Hello.COM has actually been created and now it can be run by typing ‘hello’ at the prompt and hitting enter – it works!
Ending the video, Cherryhomes decides to use the last few minutes to address the “persistent anecdote” that DOS ripped off CP/M. He asserts that cross-referencing the source code for both vintage OSes, both now available on GitHub, shows there is no shared or copied code.
Stay on the Cutting Edge
Join the experts who read Tom's Hardware for the inside track on enthusiast PC tech news — and have for over 25 years. We'll send breaking news and in-depth reviews of CPUs, GPUs, AI, maker hardware and more straight to your inbox.
Mark Tyson is a Freelance News Writer at Tom's Hardware US. He enjoys covering the full breadth of PC tech; from business and semiconductor design to products approaching the edge of reason.
I still use HEX2BIN regularly, I wonder what the changes are with the modern version.Reply
So many dusty closets were invaded to find that copy. Need to be resistant to mildew with that jobReply
Where is his Archaeology degree from? Oh, that's right. This is tomshardware, you just make stuff up as you go along.Reply
Too bad it wasn't from a dusty closet.Reply
There was a storage locker involved, a lot of grunt work to move and rescue all sorts of computers, books, equipment and other artifacts, and a few years of sorting and archiving before the image was posted to the Internet Archive.
I thought computers were one of the few disciplinary areas where credentialism has some push-back.Darkoverlordofdata said:Where is his Archaeology degree from?