Hi All,
The Gigatron expends a considerable percentage of it's clock cycles generating the 1/4 resolution 64 colour VGA display.
However it should be possible to use a shift register to clock out each pixel (monochrome) using a 25MHz VGA clock.
This would provide a considerable boost in the processing throughput.
Had anyone explored this option?
Ken
An 80 column monochrome display?
Re: An 80 column monochrome display?
I haven't explored it. Making a 25 MHz VGA circuit on a PCB is pushing things for most people. You'd need tricks such as using 74ACT logic and likely pipelining.
If the Gigatron is driving it, it would be simpler in that you wouldn't need a sync circuit, and the CPU has no problem with producing the syncs for that on time, even at 6.25 MHz. So I guess put the top 2 bits in a flip-flop and the other 6 in a shift register (or flip-flop wired as one). I guess you'd be sending 6 pixels at a time, 4 would fit into the 6.25 MHz clock, and there'd be the other 2. So 2 slow cycles would send 12 pixels, taking the time of 3 Gigatron cycles.
If the Gigatron is driving it, it would be simpler in that you wouldn't need a sync circuit, and the CPU has no problem with producing the syncs for that on time, even at 6.25 MHz. So I guess put the top 2 bits in a flip-flop and the other 6 in a shift register (or flip-flop wired as one). I guess you'd be sending 6 pixels at a time, 4 would fit into the 6.25 MHz clock, and there'd be the other 2. So 2 slow cycles would send 12 pixels, taking the time of 3 Gigatron cycles.
Re: An 80 column monochrome display?
You could implement a monochrome display by taking the four of the six bits used for the color and putting them in a shift register. The remaining two bits could be used to select one of four colors. The shift register output would select this color if the bit was one, else it would be blank/black. You could then run the display at 25MHz (4x6.25MHz).

This improves the resolution but not the CPU performance. You could stick with the original 6.25MHz "dot clock" and get three extra instruction cycles per pixel, but you wouldn't be able to do anything useful with those instructions; you would need to preserve the X and Y register values for the next pixel.
I implemented a "hi res" video mode on my Gigasaur project. It splits the six color bits into two 8-color pixels then switches between them at 12.5MHz. I haven't developed any software to take advantage of this yet

Re: An 80 column monochrome display?
The Gigatron 512k has a double resolution mode that runs at 12.5Mhz, taking even pixels from one bank and odd pixels at the same address in another bank. This is good for 52 columns using the normal Gigatron font.
viewtopic.php?p=2831#p2831
This also works with little cpu involvement. The Gigatron cpu is still fully in charge of the timing. The only difference the board makes is the fact that the Gigatron cpu only needs to execute an output instruction for the first pixel of each scanline (i,e., an output instruction that reads from memory outside page zero). The board then autonomously fetches successive pixels until the Gigatron cpu stops the process by outputting something that is not a pixel (i.e., an output instruction that does not read memory or reads memory in page zero). With a regular ROM, this does not change anything. But the dev512k7.rom (a dev7rom variant) uses this to execute vCPU instructions instead of pushing pixels.
viewtopic.php?p=2831#p2831
This also works with little cpu involvement. The Gigatron cpu is still fully in charge of the timing. The only difference the board makes is the fact that the Gigatron cpu only needs to execute an output instruction for the first pixel of each scanline (i,e., an output instruction that reads from memory outside page zero). The board then autonomously fetches successive pixels until the Gigatron cpu stops the process by outputting something that is not a pixel (i.e., an output instruction that does not read memory or reads memory in page zero). With a regular ROM, this does not change anything. But the dev512k7.rom (a dev7rom variant) uses this to execute vCPU instructions instead of pushing pixels.