cbmeeks wrote:
The intent would be that the VGA "controller" would be completely independent of the CPU. And that the CPU would simply read/write to some RAM location for video.
Thanks for any pointers.
I went through some thoughts on video for my current 6502 (and "in the works" '816) system - one was simply the time it will take to clear the screen, so double the size, quadruple the memory - and time taken for cpu operations )-:
640 x 480 x 8bpp is 307200 bytes, or 5 x 64K pages in an 816 system. If you can write memory at 7 clock cycles per byte then you'll need 2150400 cycles or 0.15 seconds just to clear the screen.
Then there's scrolling... Which can be done in hardware by changing the base address and making sure the video generator wraps at the right location, but if you have to do it in software then look on the bright side - you get free smooth, but slow scrolling
And at this point it starts to get somewhat messy in a small system - it's all do-able, but from a practical point of view - somewhat sub-optimal.
So a "blitter" or hardware (2D) block-move then becomes almost essential and if you give the video generator access to off-screen RAM too, then you can start to do things like blit sprites onto the screen, or tiled backgrounds (or even characters from a font) and the days of poking pixels seem long gone by then...
640x480x8 isn't totally out of the question though - it's the resolution of the Foenix system - a 65816 board with some FPGAs to help with the video (and other stuff) and their progress so-far seems encouraging.
Cheers,
-Gordon
_________________
--
Gordon Henderson.
See my
Ruby 6502 and 65816 SBC projects here:
https://projects.drogon.net/ruby/