Viktor Pracht wrote:
<snip>Hi all,
I thought a bit about the VGA controller, and here are the results:
The design goal is to implement a VGA controller with as little hardware as possible. Since this won't be a standalone controller, we should use the existing 3D pipeline, video controller and RAM. The most obviously useful part is the video controller: if we somehow manage to get the VGA image into a 32 bpp framebuffer, then we don't have to worry about timings or any real-time aspects at all (we're doing VGA for compatibility, not for speed). The second obvious part is the RAM, which should be used as VGA RAM and as framebuffer for the video controller. With 256 KB of VGA RAM + 800*600*4 bytes of framebuffer, we're using less than 2% of the available 128MB.
I had been pondering this as well. I think it's a great idea, but I'm not sure how certain VGA functionality would be implemented. For example, blinking text in text mode. Every so many screen refreshes, the text would need to be turned on or off without any host CPU intervention. Another issue, though I think it could be worked around, is the effect of the reads and writes being converted to pipelined commands. Reads are especially troublesome as you have to wait for the pipeline to empty before the contents of the read are valid. I think... I'm pondering over this as I write and keep changing my mind about things.
One thing I am pretty sure about though. We have to care about timings and such. The VGA cards are desinged to give the programmer direct access to all manner of the internal hardware and do whatever they want with it.
I do agree that we should re-use as much of the hardware as possible. We should certainly be able to user the video controller and all downstream hardware. And, I think with proper on the fly translation, perhaps using a microcontroller as described, we can use a 32bpp framebuffer and provide the neccessary emulated RAM buffers for the various VGA modes.
Now, the fun begins... Patrick M _______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
