[Coco] How does the VDG work exactly?

Fedor Steeman petrander at gmail.com
Thu Dec 28 06:35:03 EST 2006


Hello fellow CoCo-enthousiasts,

I have been trying to figure out how exactly the CoCo's VDG works.
However, I am uncertain about getting the math right and understand
what precisely happens when an analog video signal is produced by
processing binary data. Can anyone guide me?

This is what I understand so far:

The VDG is allowed access by the SAM to a specific portion of RAM that
it cyclically iterates. The VDG accesses one byte per bus cycle. Since
the frequency is (normally) at 0.98 Mhz, say 1 Mhz, one byte is read
every 0,001 milliseconds, so 1000 bytes are processed per millisecond.

On the basis of the contents of this particular portion of RAM, and
the video mode, an analog signal is generated. This analog signal has
a frequency of 50 Hz meaning that all the pixels constituting the
screen must be processed at least every 1/50 seconds, or every 20 ms.

Depending on the video mode, the following amounts of bytes would have
to be processed:

TEXT MODE: 	32*16 = 256 (8bpp)
PMODE3: 	128*192/4 = 6144 (2bpp)
PMODE4:		256*192/8 = 6144 (1bpp)

According to my understanding, the VDG can get to process about 20.000
bytes for each 20ms. So even at the largest screen resolution, it can
process the screen around 3 times for each screen pulse sent to the
display.

So what is happening? Does the VDG slow down the binary signal when
converting it to an analog signal? Does it buffer the information in
the video RAM to burst it out at the right time? Or does it just send
whatever is coming from VideoRAM directly on to the display? What is
going on precisely?

Thanks for any direct help and a Happy New year already to everyone
reading this.

Fedor Steeman



More information about the Coco mailing list