I'm designing a Zilog Z80A-based computer for fun and profit, limiting myself with what components were available around year 1984+/-3, and trying to get the lowest possible cost that could be achieved at this time.
For the arbitration of video RAM access, I plan either to add some wait state to the CPU (same as was done on the Amstrad CPC) or make a bus request when the beam is in the visible part of a scan line (I will use a Motorola 6845). But I'm not happy with either solution, and would prefer to keep most of the RAM for the applications.
My question is: can I put the VRAM completely outside the Z80 address space and access it with I/O (with a port to set the foreground/background pair and the cursor position registers, the latter position increasing automatically with each character sent on the output port)? Can it be done with what gate arrays were available at the time? I want to avoid using a dedicated video chip like the MOS VIC-II.
For the non-adressable RAM (>64K), I'd also like to access it with I/O port, with one port selecting the address, and another to read or write, the address register increasing with each IN or OUT.
Same question: can it be done without using a dedicated controler or MMU?