Article Index
A short history


From Bootstrap to BIOS

What has all this to do with the BIOS? Well perhaps not a lot unless you follow the links from one to another phase in development.

Firstly, the early microcomputers quickly dumped the idea of switches to set memory and lights to let you know what memory contained.

True the first microcomputer, the Altair, still had them but they were an unnecessary expense. Instead they used a “bug”. At the time ROM – Read Only Memory - was available that could hold up to 4KBytes of program and this allowed manufacturers to put the bootstrap into ROM.

In fact there was so much memory that it was possible to include debugging code and a software front panel. Instead of switches the ROM contained code that would communicate with a VDU or Teletype to ask for addresses and data – usually typed in using hex. The debugging facilities were generally very simple, single stepping through a program, memory and register dumping and so on, but the name “Debug ROM” stuck and eventually such ROMs were known as “bugs”.

Now the time moves on a little bit and we reach the age of the first widely used microcomputer operating system – no not MS-DOS but CP/M or Control Program for Micros.

This was the first general use of the term BIOS, or Basic Input Output System, although it certainly wasn’t the first use of the idea. At the time different microcomputers that were capable of running CP/M had very different types of I/O devices. If the part of the operating system that dealt with I/O was buried deep inside then it would be very difficult to port the operating system to a new machine.

Instead the I/O was separated out into a programmer-replaceable module called the BIOS. When you needed to make CP/M work on a new machine you simply wrote a new BIOS and patched it together with the core of the operating system.


When IBM produced the machine that became the PC they decided that having a BIOS in RAM was silly. After all they had designed the hardware and they knew it wasn’t going to change and they didn’t want people customising their operating systems anyway.

They put all of the code that interfaces with the hardware into a ROM that they claimed was their copyrighted software. True, the IBM BIOS always did and always will belong to IBM and for a while this stopped other manufacturers creating PCs.


At early BIOS chips were EPROMs - which had to be erased using UV light.

Then one was brave enough, or greedy enough to write its own version of the BIOS and the idea of cloning was born. Lower cost and higher performance IBM clones made the PC market boom.

IBM tried to stop the flood by taking legal action against the cloners but failed due to a technicality. To make absolutely sure that IBM couldn’t sue, BIOS makers used a clean room technique whereby one group of programmers looked at the IBM BIOS and wrote a specification which another group “in a clean room” then used to implement a BIOS. As the clean room group could prove they had never seen the real IBM BIOS they couldn’t have copied it and so IBM had no case.

So why is the BIOS an issue even today?

There’s a range of reasons. The first is that in the early days being compatible with the IBM BIOS was vital because applications software made direct use of the BIOS code.


The familiar BIOS screen is where you test and configure the hardware.

This isn’t as important today because not only does applications software rarely call the BIOS, it is more or less forbidden to do so! The operating system supplies all of the I/O facilities and manages the hardware more or less directly.

Windows for example does use the BIOS but not in any strange way that is likely to trip up a non-IBM BIOS. The second reason why the BIOS is still a topic of conversation is that it has slowly been expanded over the years to include additional features.


It now performs the Power On Self Test (POST), contains the bootstrap loader, and also configures the system. If you throw in such newer features as plug-and-play – automatic configuration - and power management – then you can see that it has become a sophisticated low-level interface to your machine’s hardware.

The features that the BIOS supports govern how the machine behaves. For example, if the BIOS doesn’t support booting from a CD-ROM, power management, plug-and-play, SCSI, year 2000 compatible Real Time Clock and so on there isn’t much you can do about it!

Well, to be truthful, today there probably is!

For some time BIOS code has been stored not in traditional ROMs but in Flash EPROMs which can be reprogrammed. As long as the motherboard manufacturer still supports its product you should be able to update the BIOS by downloading new code and “flashing the BIOS”.



Data Structures Part I - From Data To Objects


Computational Complexity

A lightning guide to the basic ideas of computational complexity without the maths or the proofs. It's almost more fun than programming!

Other Articles







RSS feed of all content
I Programmer - full contents
Copyright © 2014 All Rights Reserved.