Ron, Everything I can find tells me that we should let the video card initialize itself. It looks like we should scan C0000 through E0000 for the video cards signature and then call its code.. The problem is that I think we may have to do this in 16 bit mode. Can't we get a 16-bit mode C compiler (or even better, a 16-bit mode gnu assembler)? - James
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 checks 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 extension BIOSes perform initialization and then return. On entry, SS:SP must be set up as a valid stack.
- To unsubscribe: send mail to majordomo@freiburg.linux.de with 'unsubscribe openbios' in the body of the message