Viktor Pracht wrote:

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.



<snip>
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)

Reply via email to