When
altering
I/O-port
bit values, the programmer should change
only those bits
that
are necessary to the current task.
Upon
completion, the programmer should restore the original
environment. Failure to adhere to this practice may be
incompatible with present and future applications.
Adapter Cards with System-Accessible
ROM
Modules
The
ROM
BIOS provides a facility to integrate adapter cards with
on-board
ROM
code into the system. During the POST, interrupt
vectors are established for the BIOS calls. After the default
vectors are in place, a scan for additional
ROM
modules takes
place.
At
this point, a
ROM
routine
on
the adapter card may gain
control.. The routine may establish or intercept interrupt vectors
to
hook themselves into the system.
The absolute addresses hex
C8000
through hex
F4000
are
scanned in 2K blocks in search
of
a valid adapter card ROM. A
valid
ROM
is
defined as follows:
Byte 0:
Byte 1:
Byte 2:
Hex
55
HexAA
A length indicator representing the number of 512-byte
blocks in the
ROM
(length/512).
A checksum
is
also
done to test the integrity of the
ROM
module.
Each
byte in the defined
ROM
is
summed modulo hex 100.
This sum must be 0 for the module to be deemed valid.
When
the POST identifies a valid ROM, it does a far call to byte
3 of the
ROM
(which should be executable code). The adapter
card may now perform its power-on initialization tasks. The
feature
ROM
should return control to the BIOS routines by
executing a far return.
5-10 System
BIOS