ROM-Scan

 During cold-boot (power-on start-up), after the POST and installation of
 default interrupt handlers, BIOS makes a check for external ROMs found on
 feature cards (boards installed in a PC slot). This testing is informally
 called ROM-scan.
 Note: ROM-scan was NOT implemented in the earliest BIOS and the very
 oldest PCs (those with a maximum of 64K on the motherboard) will
 not have this feature unless a later version of the ROM-BIOS has
 been installed.
 External ROM modules may exist between addresses c000:0 and e000:0. Each
 2K block in this range is checked for a signature and is in this format:
RomScanHdrRec
 Offset Size Contents
 ▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 +0 2 wSignature must be aa55H (55H followed by aaH; i.e. )
 +2 1 bLenPgs length of the ROM module in 512-byte pages
 +3 ? abCode variable-length code and data of the ROM. It
 usually begins with a JMP to get the
 initialization portion of the code.
 When BIOS finds a ROM signature, it performs a checksum on the defined
 module. Each byte is summed modulo 100H and the sum must be exactly 0.
 When a module is verified to be valid, BIOS performs a FAR CALL to offset
 0003H of its segment and the ROM must eventually return to the BIOS via a
 FAR RET.
 Typically, the ROM module will perform any hardware initialization tasks
 necessary and insert its own addresses into one or more interrupt vectors.
 The ROM sockets U17 and U37 on the AT motherboard are addressed starting
 at e000:0000. A scan occurs in 64K blocks for a valid module. If
 present, a module will have the aa55H signature, an unused length byte,
 executable code starting at xxxx:0003 and a checksum of 0 modulo 100H at
 e000:ffff.
 A MRCI hardware-assist adaptor could install data-compression support
 via ROM-Scan, and thus be available immediately on power up. See
 INT 1aH b001H (query hardware-based MRCI support).
See Also: POST
 BIOS Data Area
 System Startup Sequence
 -♦-

AltStyle によって変換されたページ (->オリジナル) /