Product specifications
would only boot from the first floppy disk drive or the first hard disk drive, even if there were two
drives of either type installed. All more advanced boot priority sequences evolved as incremental
improvements on this basic system.
A little-known feature of the original IBM BIOS versions is that before beginning the normal boot
process, and even before scanning for option ROMs, they would attempt to load a program through the
keyboard port. For more details, see above.
Boot failure
The behavior if the BIOS does not find a bootable device has varied as personal computers developed.
The original IBM PC and XT had Microsoft Cassette BASIC in ROM, and if no bootable device was
found, ROM BASIC was started by calling INT 18h. Therefore, barring a hardware failure, an original
IBM PC or XT would never fail to boot, either into BASIC or from disk (or through an option ROM).
One model of the original IBM PC was available with no disk drive; a cassette recorder could be
attached via the cassette port on the rear, for loading and saving BASIC programs to tape. Since few
programs used BASIC in ROM, clone PC makers left it out; then a computer that failed to boot from a
disk would display "No ROM BASIC" and halt (in response to INT 18h).
Later computers would display a message like "No bootable disk found"; some would prompt for a
disk to be inserted and a key to be pressed, and when a key was pressed they would restart the boot
process. Modern BIOSes may display nothing or may automatically enter the BIOS configuration
utility when the boot process fails. Unlike earlier BIOSes, modern BIOSes are often written with the
assumption that if the computer cannot be booted from a hard disk, the user will not have software that
she wants to boot from removable media instead. (Lately, typically it will only be a specialist
computer technician who does that, only to get the computer back into a condition where it can be
booted from the hard disk.)
Booting optical media
As previously mentioned, historically, the BIOS would try to boot from a floppy drive first and a hard
disk second. The default for CD or DVD booting is an extension of this. With the El Torito optical
media boot standard, the optical drive actually emulates a 3.5" high-density floppy disk to the BIOS
for boot purposes. Optical disks are a special case, because their lowest level of data organization is
typically a fairly high-level file system (e.g. ISO 9660 for CD-ROM).
Reading the "first sector" of a CD-ROM or DVD-ROM is not a simply defined operation like it is on a
floppy disk or a hard disk. Furthermore, the complexity of the medium makes it difficult to write a
useful boot program in one sector, even though optical media sectors are typically 2048 bytes each,
four times the standard 512-byte size of floppy and legacy hard disk sectors. Therefore, optical media
booting uses the El Torito standard, which specifies a way for an optical disk to contain an image of a
high-density (1.44 MB) floppy disk and for the drive to provide access to this disk image in a simple
manner that emulates floppy disk drive operations. Therefore, CD-ROM drives boot as emulated
floppy disk drives; the bootable virtual floppy disk can contain software that provides access to the
optical medium in its native format.
Boot environment
The environment for the boot program is very simple: the CPU is in real mode and the general-purpose
and segment registers are undefined, except CS, SS, SP, and DL. CS is always zero and IP is initially
0x7C00. Because boot programs are always loaded at this fixed address, there is no need or motivation