On 11/2/06, Jim Leonard <trixter at oldskool.org> wrote:
I just read some post on the 'net regarding an
adapter as possible:
"Converting CGA digital RGBI signals to VGA analogue signal just takes
few resitors. That matches the RGB signals from digital to analogue.
Been there, done that."
This smells funny. Is that all it would take? A double-scan converter
is typically $100 and has many more components (for example
http://www.highway.net.au/parts/converters/1488.html)
It depends on the level of precision you require and if the target VGA
monitor handles RGBI scan frequencies.
So... start with a multisync that can handle the requisite sync
frequency from your RBGI-equipped CPU. Something like an old NEC-3D
can sync down to the NTSC range (~15KHz horizontal). You might or
might not need to invert hsync and vsync (I did to attach an Amiga to
an RGBI monitor). Now that you have sync taken care of, you can worry
about R, G, and B. In essence, an older VGA monitor is expecting an
analog signal on each of 3 color pins, but RGBI is a 4-bit digital
interface. It shouldn't be hard to use sets of resistors to make a
simple, if imprecise, DAC to turn 4 digital bits into 16 analog levels
on the 3 color pins (the "I" bit controls intensity of all three
channels simultaneously, such that if your RGBI pattern is 1111 vs
1110, it's white vs gray (I can't remember if "I asserted" means full
intensity or half, but worst case, if you have it backwards, it's not
hard to invert a TTL signal to flip the sense of the "I" bit before it
goes into your "DAC").
Worst case, you could start by ignoring "I" and have an 8-color output
from RGB(I) to VGA... just work out the necessary
resistance to drop
TTL levels down to the high end of what the VGA monitor is
expecting
(0.7VDC == max intensity?)
If you want to be able to tweak the color balance, one could just use
3 variable resistors that can span the range near the value you would
have used for each fixed resistor. I haven't tried to do this myself,
so I can't supply specific values, but an oscilloscope would be a
handy tool if you wanted to build a simple 8-color (no "I")
resistor-based TTL->VGA analog "DAC" - get your sync issues solved
first, then put a variable resistor on, say, Green first, then get the
computer to display a green screen, then set the resistor so you have
approximately 0.7V showing as the peak voltage on the green line.
Repeat for Red and Blue. Voila... digital RGB on an analog VGA
monitor.
-ethan