Hardware Reference
In-Depth Information
The POST cards have a two-digit hexadecimal display used to report the number of the currently
executing test routine. Before each test is executed, a hexadecimal numeric code is sent to the port,
and then the test is run. If the test fails and locks up the machine, the hexadecimal code of the last test
being executed remains on the card's display.
Many tests are executed in a system before the video display card is enabled, especially if the display
is EGA or VGA. Therefore, many errors can occur that would lock up the system before the system
could possibly display an error code through the video system. Because not all these errors generate
beep codes, to most normal troubleshooting procedures, a system with this type of problem (such as a
memory failure in Bank 0) would appear completely “dead.” By using one of the commercially
available POST cards, however, you can often diagnose the problem.
These codes are completely BIOS dependent because the card does nothing but display the codes sent
to it. Some BIOSs have more detailed POST procedures and therefore send more informative codes.
POST cards can be purchased from JDR Microdevices or other sources and are available in both ISA
and PCI bus versions.
For simple but otherwise fatal errors that can't be displayed onscreen, most of the BIOS versions
also send audio codes that can be used to diagnose such problems. The audio codes are similar to
POST codes, but they are “read” by listening to the speaker beep rather than by using a special card.
The following section details the text error codes for all the popular BIOS versions. For detailed
lists of the BIOS POST beep codes, see Figure 20.1 , Chapter 20 , p. 978 .
BIOS Boot Error Messages
During the boot process, the bootstrap loader routine in the motherboard ROM BIOS reads the first
physical sector of each of the bootable drives or devices, which is cylinder 0, head 0, sector 1 in
CHS mode or logical block address 0 in LBA mode. The code from the first sector is loaded into
RAM, and the last two bytes are checked to see whether they match a signature value of 55AAh. If the
signature bytes match, that tells the ROM that the first sector contains a valid MBR and that the ROM
can continue by transferring control to the MBR code.
If the last 2 bytes of the first physical sector do not match 55AAh, the ROM continues by checking the
first physical sector of the next bootable device in the boot sequence until it either finds one with a
valid MBR or runs out of devices to check. If, after all the drives or devices in the boot sequence are
checked, none are found to have the proper signature bytes indicating a valid MBR, the ROM invokes
an interrupt (18h) that calls a subroutine displaying an error message. The specific text or wording of
the message varies according to the ROM manufacturer and version. The messages are detailed in the
following sections.
IBM BIOS Messages
With no valid MBR or bootable device found, systems with an old IBM BIOS display the infamous
ROM BASIC interpreter, which looks like this:
The IBM Personal Computer Basic
Version C1.10 Copyright IBM Corp 1981
62940 Bytes free
Ok
IBM ROM BASIC
 
 
 
Search WWH ::




Custom Search