
The VGA Module for my Z80 DIY home computer supports these features:
- 64Kb of dual port Static RAM
- 16 colors
- 640x400x2 colors Text & Graphics
- 320x200x16 colors Text & Graphics
- Character set is loaded on the DP RAM by the OS and can be changed by the user at will.
- 32Kb (4 8kb pages) used for the display, additional 32Kb will be used for double buffering on graphics screens.
- You can change the specifications by programing the FPGA provided that you use 16 colors max and up to 64k VIDEO RAM (i.e. 800×600 2 colors needs 48k)
A Tang Nano FPGA is used to generate the necessary signals and display the image on VGA. Several 72lvc4245 chips translate the signals from 3.3v to 5v and vice versa. The 3.3 voltage is generated by a LM3940 on board.
You will need some kind of MMU so you can access the 64KB of video memory, connect to EA13,EA14,EA15 and MEM_CE.
I am using 2 Video memory addresses to control the video modes and the default colors for 2 color modes.



Files for programming the Tang Nano FPGA can be found on Github here .