How the BIOS ROM works
Although the complete details of how the ROM-BIOS works are really
only of concern to accomplished assembly language technicians, the basics
of how it's organized and how it works is of real interest to us here to help
us understand our machines. That's what we'll sketch out in this section.
To start with, we need to see that the ROM-BIOS is roughly divided
into three functional parts, diagrammed in Figure 1
The first part of the ROM-BIOS is the start-up routines, which get our
computer going when we turn on the power. There are two main parts to
the start-up routines: one is the Power-On Self-Test (or POST) routines,
which test to see that the computer is in good working order. They check
the memory for defects and perform other tests to see that the computer
isn't malfunctioning. The other part of the start-up procedure is the
initialization.
The initialization involves things like creating the interrupt vectors, so
that when interrupts occur the computer switches to the proper inter
rupt-handling routine. Initialization also involves setting up the computer's
equipment. Many of the parts of the computer need to have registers set,
parameters loaded, and other things done to get them in their ready-to-go
condition. The ROM-BIOS knows the full complement of standard equip
ment that a PC can have, and it performs whatever initialization each part needs
Included in this initialization are steps that tell the ROM-BIOS what
equipment is present. Some of that is learned by checking switch settings
inside the computer (in the case of the original PC model) or reading a
permanent memory that records the equipment the computer has (in the
case of the AT model). In some cases, the ROM-BIOS can simply find out
if equipment is installed by electronically interrogating it and checking for a response.