Been busy with other stuff for the last 24 hours - tomorrow probably the same as well - but I grabbed an hour or so to have a look at your latest update just now and I can't really test it properly.
Well, it seems to work fine as far as I can tell, but when I ran my graphics test program which draws a grid on the screen (each cell 10x10 pixels) with a single red cursor (drawn with a single filled rectangle), the image was corrupted - the vertical lines were no longer regularly spaced (or every third vertical line is missing and they aren't aligned with the start and end of the screen), and the red 'cursor' that should fill a cell spills into adjacent cells.
I've tried two previous versions of the GPU project as well as your new version and the results are the same.
I added some random lines to the mix and the attached image is what I get. Now I'm not really sure what's going on - I'm just hoping that it's a simple error I've made in my test code, but I can't see anything.
Before you start tearing the HDL apart, I just thought I'd post the pics in case it's an obvious issue that you can identify straight away. Otherwise, I'll have to put together another test program to see if the same thing happens again or if it's some stupid bug I've introduced to the original test program somehow. The lines and the red rectangle are making me wonder if it's not my test code, though. There's no way I'm aware of that a mistake in my code (MAGGIE settings or geo_unit setup) could produce broken lines or rectangles like that.
... but text mode is working absolutely fine - I'm not detecting any errors or artefacts in the symbols or text mode in general, even after running the test program above - so that points the finger back at the MAGGIE/geo_unit settings again...
I'm really short on time at the moment, otherwise I'd dig into this a lot more before posting, but it's late here and I have to hit the sack. This is worrying me though, as it's done the same thing on three different versions of the project.
The only other thing I'm worried about is if something has broken in the FPGA, but I've no real reason to think that.
Second image is 640x480 mode - same grid with random lines. I haven't been able to get the grid to display properly in 640x480, despite your recent posts with revised MAGGIE settings, so the distorted grid is 'normal', but the broken lines are showing up in this mode too.
The Z80 seems to be able to read and write the GPU RAM just fine - I can load in new character sets from CP/M so block reads/writes to GPU RAM are working fine.
Any ideas?