Kevin Lawton wrote:
> We're also free to make our own VGA BIOS. But since we'll be generally looking to
>make guest-specific
> OS drivers for efficiency, it's kind of moot. Anyways, go nuts if you dig writing
>VGA BIOS code. :^)
hehe, well.. I've been experimenting with some things and I think it's
safe to say that it's more complex to write a VGA Bios then I initially
imagined :) anyway, now we have an "official" VGA BIOS I'll try to work
on a VESA VBE bios. (the VESA VBE driver probably will consist out of a
guest VESA VBE Bios & an host plugin that can display everything).
This brings me to the host <-> guest communication interface again.
* the ROMBIOS should be changed in such a way it will scan D000-F000 for
0xaa55 on 2k boundaries, so it will be easy to add optional bios'es (I
would like to use the VESA BIOS in combination with the VGA BIOS instead
of completely replacing the VGA Bios).
* the video host <-> guest "protocol" could be split in several items:
- display framebuffer; continuus video memory access (the "simplest"
form); the VESA VBE can use this to provide an linear frame buffer. note
that in this case it's probably "not possible" to let the guest code
notify the host about areas to update (so probably only fullscreen
updates as far as the guest is concerned). maybe we can solve this
later.
- display framebuffer with area update functions; let the guest notify
the host about dirty areas (this requires that the guest os is able to
tell the guest display driver about those dirty areas)
- HW Accelleration (ie OpenGL), no idea yet
looking at the display framebuffer again, do we have a "nice" way to
provide "video memory" to the guest? (it would be nice if I could
allocate an SDL surface in a specific display format, get a pointer to
the video memory and map this memory directly into the guests memory
space - this would probably be done at the instance an user program
switches to a gfx mode with that specific display format).
I don't like the idea to use "actual available" physical memory of the
guest to provide video memory, because you need to make sure the guest
os doesn't see it as "normal" physical memory and you will allways need
to do an additional memory copy before you can display something.
It seems also "obvious" to me that we would like to have a generic video
interface in such a way that it is independend of the actual host
display interface (X11, DGA, SDL, etc).
--
Best regards,
Jeroen Janssen
+++
"Oh, a very useful philosophical animal, your average tortoise.
Outrunning
metaphorical arrows, beating hares in races... very handy."
-- (Terry Pratchett, Small Gods)
+++