In 1981, IBM released the Personal Computer, model number 5150. Unlike IBM designs of the era, it was based on off-the-shelf components. While this meant that it was relatively cheap to manufacture, it also meant that anyone could manufacture a clone board because all components were readily available in the open market.
However, the only thing preventing anyone from building a clone was a small piece of code contained in ROM: the BIOS. This is a small program that runs when the computer is turned on and, besides initializing the system to a working state and loading the OS, provides an API which is used by both the OS and the applications to do the most mundane tasks, like reading the keyboard, dealing with the screen, etc. While the source listings were provided in the Technical Reference manual, make no mistake: this wasn’t open source software, but actually IBM proprietary code. Given the importance of this, it’s no surprise that IBM took a very aggressive stance against any “PC-compatible” BIOSes, usually suing their makers away.
One of the first “PC-compatible” BIOSes, or at least one of the most well-known, was made by Compaq for their Compaq Portable. It was the first successful PC clone to reach the market. Supposedly they had two groups of engineers: a group who was in charge of going through IBM’s code and documenting it (but doing no coding at all), and a group that had never seen IBM’s code, but read the other’s group specification and implemented it in code. It seems that it worked good enough because they weren’t sued out of existence. This story is fictionalized in the TV series “Halt and Catch Fire”, though there are obvious “artistic liberties” taken by the writers.
Another one is the subject of this article. Not much is known about Display Telecommunications Corporation, the maker of Mega-Bios. They seem to have advertised an XT-clone motherboard called the “Mega-Board”, which was available in different completion levels: bare board, socketed board, full kit, and fully assembled and tested board. You could provide your BIOS or, for an additional fee, sell you a copy of their “Mega-BIOS”, a supposedly “an original composition, IBM-compatible, non-infringing” BIOS. For another additional fee, they would sell you a source listing of their BIOS.
Thanks to this source listing we know that it was written by Don K. Harrison during the later 1983. We also noticed that some parts of it are surprisingly similar to IBM’s BIOS and this is something that IBM itself alleged, but we’ll leave this part of the story for a future article (I promise it’ll be interesting!).
Given its relatively easy availability, this BIOS seems to have been copied and modified by countless XT clone manufacturers, mainly from Taiwan. Most of these bootleg copies had removed copyrights and removed DMA checks (as it doesn’t work properly with anything faster than a 4.77MHz 8088). At this point the story gets a bit murky and we lost track of it.
Fast forward a couple of years to 1988, a guy named Yaakov Miles posted the source code for an “Anonymous BIOS”. He claims it was based on the BIOS found in his taiwanese XT clone board, had no copyright or author info, and was “barely functioning”.
This BIOS has gained a lot of traction in the retro community, to the point where today it’s actively maintained. Even other open source BIOSes contain some code derived from it, like the very popular 8088_bios from Sergey Kiselev. However, no one knew about the true origins of this BIOS beyond what Yaakov wrote back then.
This brings us to the main purpose of this article. In 2018, VCF member SomeGuy posted a picture of a motherboard with the DTC logo, which ended up being a Mega-Board. Unfortunately, the BIOS contained a copy of the IBM BIOS. In 2019, VCF member 640KB posted some pictures of his computer, which has a Mega-Board, and also some pictures of the manual. Unfortunately, the BIOS was also switched to a different one and he never had the source listings.
In January 2024, VCF member FinnJorgensen announced that he had a Mega-Board with the original BIOS and the BIOS source listing! Unfortunately, the BIOS chip ended up dying before it could be read. However, the source listing was scanned, OCR’d, and uploaded to TheRetroWeb project.
A couple of days later, VCF member 640KB posted that, based on his analysis, it would seem that Mega-Bios is the original source of the “Anonymous BIOS” that Yaakov Miles posted about.
After this, the 3 of us (FinnJorgensen, 640KB, and myself) started a joint project to revive this BIOS. We started by independently typing/OCRing the source listing to text files, then cross-checking between us, to get something as close as possible to the source listing. After a few rounds of proof-reading, we were pretty confident that what we had was very close, not to say identical, to the source listing. This is stored in its own branch. We don’t plan on making any updates to that branch, except if discrepancies against the source listing are discovered.
The next part of the plan was to build it. Originally, the BIOS was built using ASM86 v1.1 and associated tools. However, since none of them are easily available, we’re using ASM86 v3.1 running under DOS. It required just a tiny change in a single file to assemble.
This results in a set of object files that need to be linked together. It would’ve been easier if we had the build scripts, but they were not part of the source listing, so we had to figure it out on our own.
Linking was easy, but it’s far from a working file. We still needed to relocate it. Here, 640KB did a masterful job learning the syntax for LOC86 so we could have the script to put everything together. And it worked like a charm. We think it’s likely that this was how it was originally built, as no of the segments contains a specific address in the sources.
Next steps were converting the relocated object file to a Hex file and then to a binary file. OH86 took care of converting to a Hex file. Initially we used objcopy to convert to the BIN file we needed. This allowed us to finally run the BIOS.
The BIOS ran for the first time, but gave a “System error 001”, which meant a bad ROM checksum. However, it allowed to continue booting and everything was fine after that. No issues at all. We modified the ROM so the checksum was correct and it worked fine, no more error mesage!
Afterwards, we automated the Hex to BIN generation using DXC and we now have a custom tool to calculate the checksum and put it in the place where we believe its author put it originally: FFFE0. This marks our capability to fully build the binary from DOS.
Today we’re making our first release: version 1.0, as the source listing says. There are no fixes or improvements over the source listing. Not yet. We wanted to have this version to honor DTC’s Mega-Bios and its long-lasting legacy in the retro community the so-called “Anonymous BIOS” and its derivatives. To make it even more special, the binary was built using 640KB’s Mega-Board, running Mega-Bios itself. It took a bit over 19 minutes to built.
For the next versions we will improve some things, add support for other systems (like the IBM PC 5150), and fix some bugs, some of which are shared with its descendants. We really hope you’ll like it!