every PC and clone.) If the download was apparently successful, the BIOS would verify a checksum
on it and then run it.
[8]
This feature was intended for factory test or diagnostic purposes. While it was
of limited utility outside of factory or repair facilities, it could be used in a proprietary way to boot the
PC as a satellite system to a host machine (which is essentially the same technical way it was used, if it
was used, in the manufacturing environment).
Search for option ROM modules
After the motherboard BIOS completes its POST, most BIOS versions search for option ROM
modules, also called BIOS extension ROMs, and execute them. The motherboard BIOS scans for
extension ROMs in a portion of the "upper memory area" (the part of the x86 real-mode address space
at and above address 0xA0000) and runs each ROM found, in order. To discover memory-mapped ISA
option ROMs, a BIOS implementation scans the real-mode address space from 0x0C0000 to 0x0F0000
on 2 KiB boundaries, looking for a two-byte ROM signature: 0x55 followed by 0xAA. In a valid
expansion ROM, this signature is followed by a single byte indicating the number of 512-byte blocks
the expansion ROM occupies in real memory, and the next byte is the option ROM's entry point (also
known as its "entry offset"). A checksum of the specified number of 512-byte blocks is calculated, and
if the ROM has a valid checksum, the BIOS transfers control to the entry address, which in a normal
BIOS extension ROM should be the beginning of the extension's initialization routine.
At this point, the extension ROM code takes over, typically testing and initializing the hardware it
controls and registering interrupt vectors for use by post-boot applications. It may use BIOS services
(including those provided by previously initialized option ROMs) to provide a user configuration
interface, to display diagnostic information, or to do anything else that it requires. While the actions
mentioned are typical behaviors of BIOS entension ROMs, each option ROM receives total control of
the computer and may do anything at all, as noted with more detail in the Extensions section below; it
is possible that an option ROM will not returning to BIOS, pre-empting the BIOS's boot sequence
altogether.
An option ROM should normally return to the BIOS after completing its initialization process. Once
(and if) an option ROM returns, the BIOS continues searching for more option ROMs, calling each as
it is found, until the entire option ROM area in the memory space has been scanned.
Option ROMs normally reside on adapter cards. However, the original PC, and perhaps also the PC
XT, have a spare ROM socket on the motherboard (the "system board" in IBM's terms) into which an
option ROM can be inserted, and the four ROMs that contain the BASIC interpreter can also be
removed and replaced with custom ROMs which can be option ROMs. The IBM PCjr is unique among
PCs in having two ROM cartridge slots on the front. Cartridges in these slots map into the same region
of the upper memory area used for option ROMs, and the cartridges can contain option ROM modules
that the BIOS would recognize. The cartridges can also contain other types of ROM modules, such as
BASIC programs, that are handled differently. One PCjr cartridge can contain several ROM modules
of different types, possibly stored together in one ROM chip. For more about option ROMs, see below.
Boot process
After the option ROM scan is completed and all detected ROM modules with valid checksums have
been called, or immediately after POST in a BIOS version that does not scan for option ROMs, the
BIOS calls INT 19h to start boot processing. Post-boot, Programs loaded can also call INT 19h to
reboot the system, but they must be careful to disable interrupts and other asynchronous hardware
processes that may interfere with the BIOS rebooting process, or else the system may hang or crash
while it is rebooting.
Komentáře k této Příručce