Matthew Sullivan wrote:
Jeff Garzik wrote: From a previous pose by 'James' at Berkeley, on Feb 17th 2000:
The ROM BIOS, on a system startup, executes the POST (power-on self-test) routine which usually checks memory, establishes devices etc. The POST routine also fills in the BIOS memory area at 0000:0040h and sets up the real mode interrupt handlers (those connected to IRQ lines are set to dummy handlers which simply acknowledge the interrupt with the PIC and return, those assigned to BIOS services are set to the appropriate address, which may vary with the BIOS manufacturer and revision). The POST then che
cks for extensions ROMs at this point (for example the video card). Absolute addresses C0000h through E0000h are searched in 2KB increments for the signature 55h 0AAh. If the signature is found, the next byte is a length indicator for the ROM (in 512 byte blocks) and the next bytes contain a FAR CALLable address (it should be called as an empirical address, with the lowest possible offset value. For example, absolute address C0003h is called as C000:0003h). The extensio! ! ! ! n BIOSes
perform initialization and then return. On entry, SS:SP must be set up as a valid stack.
Thanks, I missed that post. Yes, this is exactly what FreeBIOS/OpenBIOS needs to do in order to be able to display video.
Note that many BIOSs do video POST as soon as possible, but initialize other expansion ROMs much later in the boot cycle.
Jeff