Jeff Garzik wrote:
Massimo Dentico wrote:
"Ronald G. Minnich" wrote:
If someone has the *code* example for calling the vga init on a vga card I
could use it.
Sorry for the delay. No distractions this time, only assembly code
for swithing video modes. ;-) This work, at least for me. Obviously,
I'm not writing BIOS usually :o) .. so, I don't know if it lacks
something for functioning as part of firmware.
Thanks for posting code, unfortunately this code does not call the VGA
BIOS to initialize the video card -- this code directly programs the VGA
registers to switch modes, just like vga16fb in the Linux kernel.
BIOS init must have already executed in order for this code to work.
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 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.
More Computer Terminology
Hardware: The bit that makes the noise when you throw you computer out the window.