My plan for VGA generation is to use simple counters for the VGA timing. It will access the RAM like a raster memory with the sync signals stored in each byte. Nothing new. I want only one RAM for both video and processor, so my plan is to just toggle access. Video gets it for one clock and processor gets it for one clock. That shouldn't be a problem for blanking - it may shrink the usable video area for a couple rows/columns. That reduces RAM available for the processor. I think 160x120 is ok - that's 19,200 bytes of the RAM or 59%. There won't be video until the processor initializes it with the syncs and blanking, but it's a good test to see if the processor is working correctly.