Wolfgang Moser
2008-05-12 14:37:47 UTC
Hi Commodore fellows,
this is about Fotios' hack, where he used one of these
CGA-to-RGB converter boards (WEI-YA ACV-011) and hacked
it a bit to also accept the Intensity signal from a C128.
References are:
[ 1] http://groups.google.de/group/comp.sys.cbm/msg/68460b84a2235969
[ 2] http://groups.google.de/group/comp.sys.cbm/msg/4b85aac68ba2430d
[ 3]
http://landover.no-ip.com/forums/index.php?PHPSESSID=ia67jh0h7to8d3b2vinhq308q0&topic=453.msg2259#msg2259
[ 4]
http://landover.no-ip.com/forums/index.php?PHPSESSID=ia67jh0h7to8d3b2vinhq308q0&topic=2209.0
Well, Fotios surely based his work on other relating
documents laying around at Zimmers (Funet) and other
CBM archives:
[ 5]
http://www.zimmers.net/anonftp/pub/cbm/documents/cables/128-videocable.txt
[ 6] http://www.softwolves.pp.se/cbm/maskinvara/scart
[ 7] http://www.hardwarebook.info/C128_RGBI
[ 8] http://en.wikipedia.org/wiki/Color_Graphics_Adapter
[ 9] http://nemesis.lonestar.org/reference/video/cga.html
[10] http://www.oldskool.org/pc/cgacal
There are two things with his work that I did not like
much:
a) You had to solder wires directly to the board
b) To give a correct brown color, the IBM CGA palette
fix needs to be applied
So I started hacking around myself. I got a WEI-YA ACV-011
CGA-VGA board from a polish reseller. I got a power supply
with 12V for the converter board and 5V for my own
circuits. First I looked out to verify Fotios' results on
a simple hack without applying the Intensity signal. This
worked fine, but I only had 8 colors [11].
Another drawback is that you desperately need a LCD/TFT
monitor that accepts a refresh rate of only 50Hz. My main
monitor does not want to accepts the signal from the
ACV-011, I had to use a TV-LCD. That one is a bit too
small (640x480) to show the 80 column mode with good
quality. Well, it seems I have to buy a cheap 800x600
monitor.
I started with buffering the incoming signals with a
74LS244, this is a bus driver IC with integrated Schmitt
triggers, just the same IC that is used in the C128 as
output driver. Each signal, R, G, B, I, V and H is
buffered by one of the drivers and I could work with the
refreshed signals from the output stages. To mix the
analog RGB colors, I used the resistor networks as shown
in [5] or a simplified version of [6]. Since I only had
resistors of 390 Ohms and 820 Ohms I used these instead
of 470 Ohms and 680 Ohms:
______
R/G/B --|______|----+ 390R
|
+------ R/G/B_analog
______ |
I --|______|----+ 820R
For each of the three color components such a resistor
network was build.
Then I went further to do this IBM CGA palette color fix
that turns dark-yellow into brown [8]. I got a 74LS138
binary decoder and watched for the "magic" combination
1,1,0,0 for R,G,B,I. Once this was detected, another
80 Ohms resistor applied to the output channel for Green
was pulled to Low level, otherwise it was switched to
High level. So the overall resistor network for the
Green channel becomes:
______
G (only)--|______|----+ 390R
|
+------ G_analog (only)
______ |
I --|______|----+ 820R
|
______ |
C-Fix --|______|----+ 820R
This then changed the colors into a palette that should
look fine [12]. But there is a slight imbalance with this
design. With the Green channel _two_ 820 Ohms resistors
are pulling to High level most of the time while on the
other two color channels only one resistor pulls to High.
This can be fixed a bit by giving the Green channel a
special adjust on the ACV-011 input stage [14].
See the overall schematics with reference [15].
I already thought about a further improved color fix
circuit which does the fix truly digital and with only
applying 6 resistors instead of the 7 shown above. But
there you would need a programmable logic chip so that
the whole circuit does not become too clumsey.
I like the current solution very much since it just
looks fine and I did not need to solder around directly
on the ACV-011 board. I just need to get a nice case and
a suitable well sized TFT monitor.
Bye, Womo
References:
[11] Loading Image...
[12]
Loading Image...
[13] Loading Image...
[14] Loading Image...
[15] Loading Image...
this is about Fotios' hack, where he used one of these
CGA-to-RGB converter boards (WEI-YA ACV-011) and hacked
it a bit to also accept the Intensity signal from a C128.
References are:
[ 1] http://groups.google.de/group/comp.sys.cbm/msg/68460b84a2235969
[ 2] http://groups.google.de/group/comp.sys.cbm/msg/4b85aac68ba2430d
[ 3]
http://landover.no-ip.com/forums/index.php?PHPSESSID=ia67jh0h7to8d3b2vinhq308q0&topic=453.msg2259#msg2259
[ 4]
http://landover.no-ip.com/forums/index.php?PHPSESSID=ia67jh0h7to8d3b2vinhq308q0&topic=2209.0
Well, Fotios surely based his work on other relating
documents laying around at Zimmers (Funet) and other
CBM archives:
[ 5]
http://www.zimmers.net/anonftp/pub/cbm/documents/cables/128-videocable.txt
[ 6] http://www.softwolves.pp.se/cbm/maskinvara/scart
[ 7] http://www.hardwarebook.info/C128_RGBI
[ 8] http://en.wikipedia.org/wiki/Color_Graphics_Adapter
[ 9] http://nemesis.lonestar.org/reference/video/cga.html
[10] http://www.oldskool.org/pc/cgacal
There are two things with his work that I did not like
much:
a) You had to solder wires directly to the board
b) To give a correct brown color, the IBM CGA palette
fix needs to be applied
So I started hacking around myself. I got a WEI-YA ACV-011
CGA-VGA board from a polish reseller. I got a power supply
with 12V for the converter board and 5V for my own
circuits. First I looked out to verify Fotios' results on
a simple hack without applying the Intensity signal. This
worked fine, but I only had 8 colors [11].
Another drawback is that you desperately need a LCD/TFT
monitor that accepts a refresh rate of only 50Hz. My main
monitor does not want to accepts the signal from the
ACV-011, I had to use a TV-LCD. That one is a bit too
small (640x480) to show the 80 column mode with good
quality. Well, it seems I have to buy a cheap 800x600
monitor.
I started with buffering the incoming signals with a
74LS244, this is a bus driver IC with integrated Schmitt
triggers, just the same IC that is used in the C128 as
output driver. Each signal, R, G, B, I, V and H is
buffered by one of the drivers and I could work with the
refreshed signals from the output stages. To mix the
analog RGB colors, I used the resistor networks as shown
in [5] or a simplified version of [6]. Since I only had
resistors of 390 Ohms and 820 Ohms I used these instead
of 470 Ohms and 680 Ohms:
______
R/G/B --|______|----+ 390R
|
+------ R/G/B_analog
______ |
I --|______|----+ 820R
For each of the three color components such a resistor
network was build.
Then I went further to do this IBM CGA palette color fix
that turns dark-yellow into brown [8]. I got a 74LS138
binary decoder and watched for the "magic" combination
1,1,0,0 for R,G,B,I. Once this was detected, another
80 Ohms resistor applied to the output channel for Green
was pulled to Low level, otherwise it was switched to
High level. So the overall resistor network for the
Green channel becomes:
______
G (only)--|______|----+ 390R
|
+------ G_analog (only)
______ |
I --|______|----+ 820R
|
______ |
C-Fix --|______|----+ 820R
This then changed the colors into a palette that should
look fine [12]. But there is a slight imbalance with this
design. With the Green channel _two_ 820 Ohms resistors
are pulling to High level most of the time while on the
other two color channels only one resistor pulls to High.
This can be fixed a bit by giving the Green channel a
special adjust on the ACV-011 input stage [14].
See the overall schematics with reference [15].
I already thought about a further improved color fix
circuit which does the fix truly digital and with only
applying 6 resistors instead of the 7 shown above. But
there you would need a programmable logic chip so that
the whole circuit does not become too clumsey.
I like the current solution very much since it just
looks fine and I did not need to solder around directly
on the ACV-011 board. I just need to get a nice case and
a suitable well sized TFT monitor.
Bye, Womo
References:
[11] Loading Image...
[12]
Loading Image...
[13] Loading Image...
[14] Loading Image...
[15] Loading Image...