well my dumb graphics card arrived.
it's "dumb" because it has no CPU on it, just a CPLD hooked up to 4 Dual Port SRAM chips for a total of 32kB of VRAM. (atleast until i got some 16k chips for a total of 64kB of VRAM)
it outputs 640x400 in monochrome and it almost worked first try.
i had some issues where the CPU would execute code from the ROM fine but was never able to return from subroutines... so something seemed wrong with the RAM.
i made a small program that would just load the ASCII character "A" into the Accumulator, push it to the stack, wait a bit, then pull it again and print it to the Terminal.
the entire terminal was filled with: @@@@A@@@@@@@AA@@@, so somehow bit 0 was getting screwed up when accessing RAM.
changing the system clock from 20MHz to 12.5MHz fixed the issue, but also means i lost 37.5% of my performance...
so overall i assume that the 20MHz clock was so close to the system's limit that the extra traces up to the VRAM Chips was just too much. maybe a 74x245 inbetween could've helped to avoid some noise when not accessing VRAM, and since VRAM always gets a wait cycle anyways i wouldn't need to worry about the extra latency either.
hmm, maybe an idea for version 2 (or any future SBC i make with Expansion Connectors).
anyways, after all that mess i finally hooked up a screen to the VGA Port and it actually outputs an image!
i then made a program to write some values to VRAM. clearing all of VRAM worked perfectly, but writing all 1s gave me this:
Attachment:
20230226_014722.jpg [ 3.8 MiB | Viewed 695 times ]
now this shape is confusing because if it was just one of the RAM chips having a dead bit (bit 3 to be specific), then i'd expect the atrifact to start somewhere on the screen and wrap around a bunch of times. but this just starts like 1/4th across the screen and then just disappears again in the last 1/4th, except for the last few lines where it's just always present.
and i know for a fact that the Video circuit just walks linear through memory, one chip at a time... so this makes no sense to me right now.
i will try to swap around some RAM Chips tomorrow (or rather today because it's 4 in the morning and i need to go to bed), i'm kinda just hoping that fixes it but i'm overall too tired right now to think properly
just thought i'd share this update for now.