Fotios' C=128-RGBI-to-VGA hack with IBM-CGA color fix for brown

1776 views
Skip to first unread message

Wolfgang Moser

unread,
May 12, 2008, 10:37:47 AM5/12/08
to
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] http://d81.de/shared/C=128-VGA/C128-Palette-wo-Intensity.jpg
[12]
http://d81.de/shared/C=128-VGA/C128-RGBI-Palette-with-CGA-IBM-Colorfix.jpg
[13] http://d81.de/shared/C=128-VGA/CGA-IBM-Colorfix-RGBI-DAC.jpg
[14] http://d81.de/shared/C=128-VGA/ACV-011-Board.jpg
[15] http://d81.de/shared/C=128-VGA/C=128-VGA-IBM-Colorfix.png

Mangelore

unread,
May 12, 2008, 6:00:50 PM5/12/08
to
Hi Womo,

Great work!

Many thanks,
Fotios


Wolfgang Moser wrote, On 13/05/2008 12:37 AM:
> Hi Commodore fellows,
>
... snip ...

Sam Gillett

unread,
May 12, 2008, 6:21:01 PM5/12/08
to

"Wolfgang Moser" wrote ...

> Hi Commodore fellows,

Much of your message was snipped as I did not want to full quote.

I will just comment, excellent, very good, first-rate, Grade A, par
excellence. You did a great job!

If I might offer a slight suggestion, put a page on your website with a full
text description of how to build it, and perhaps a parts list. And of course
links to the pictures you placed links to in your post.

Keep up the good hacking! :-)
--
Best regards,

Sam Gillett

Change is inevitable,
except from vending machines!


Steven Hirsch

unread,
May 13, 2008, 7:57:34 AM5/13/08
to
Sam Gillett wrote:
> "Wolfgang Moser" wrote ...
>
>> Hi Commodore fellows,
>
> Much of your message was snipped as I did not want to full quote.
>
> I will just comment, excellent, very good, first-rate, Grade A, par
> excellence. You did a great job!
>
> If I might offer a slight suggestion, put a page on your website with a full
> text description of how to build it, and perhaps a parts list. And of course
> links to the pictures you placed links to in your post.
>
> Keep up the good hacking! :-)

I'll second, third and fourth that! And, yes, a schematic of your final
circuit would be great to have.

Wolfgang Moser

unread,
May 13, 2008, 4:46:48 PM5/13/08
to
Hi again,

once I thought about it a bit more and did some
calculations regarding the triple resistors network
for green, I think I got a more balanced solution.

> [ 5]
> http://www.zimmers.net/anonftp/pub/cbm/documents/cables/128-videocable.txt

Actually Marko wrote about this circuit in 1993:
[16]
http://groups.google.de/group/comp.sys.cbm/browse_thread/thread/248ade613ebb8cd9/d0284adbe00cc0a6

With the resistor combination of 470 Ohm and 680 Ohm
four different voltages can be created for each analog
R/G/B output signal (assuming that TTL high is 5V):

0V, 2.96V, 2.04V and 5V

With the color fix I propose now to get the resistor
values 560 Ohm, 680 Ohm and 2K Ohm:

560
_____
G -------|_____|---+
|
|
680 |
_____ |
I -------|_____|---+------- G_analog
|
|
2K |
_____ |
C-Fix ---|_____|---+


under normal conditions, when C-Fix is high, it pairs
up with the 560 Ohm resistor which results in 437.5
Ohm.

Normal voltage levels are: 3.04V and 1.96V


When both, G and I are low, the C-Fix signal remains
high. Because the resistance is so high, the resulting
voltage is only at 0.665V.

When the color fix condition is matched, the resulting
voltage is 2.37V instead of 3.04V and this makes
the shift from dark yellow to brown.

Please take note that I did not test these new
(improved?) resistor values. One advantage is that
these value perfectly match the ones references in
Marko's post.


Oh, by the way I updated my schematic a bit and also
made a small DIY layout (one layer and some bridges):


[17] http://d81.de/shared/C=128-VGA/C=128-VGA-IBM-Colorfix-sch.png
[18] http://d81.de/shared/C=128-VGA/C=128-VGA-IBM-Colorfix-brd.png


Happy hacking, Womo

Wolfgang Moser

unread,
May 13, 2008, 4:56:10 PM5/13/08
to
Hello Sam, Steven

Steven Hirsch schrieb:


> Sam Gillett wrote:
>>
>> I will just comment, excellent, very good, first-rate, Grade A, par
>> excellence. You did a great job!
>>
>> If I might offer a slight suggestion, put a page on your website with
>> a full text description of how to build it, and perhaps a parts list.
>> And of course links to the pictures you placed links to in your post.
>>
>> Keep up the good hacking! :-)
>
> I'll second, third and fourth that! And, yes, a schematic of your final
> circuit would be great to have.


thanks for all your plaudit. I did not set up
a fully featured web page (yet ?), because my
time constrains for the weekend were reached
and other projects also needed a bit attention.

Steven, the circuit in general will not change
anymore, but each of you may want to try out
other resistor combinations. I already made a
proposition in another follow-up. I ask for
each of you owning some old C128 and a CBM
monitor to compare colors generated with this
hack against the colors from your old machine
setup. It's a matter of effort to find really
good resistor combinations.
On the other hand I suspect the ACV-011 board
to already do some color matching for well
known CGA colors so the influence on changing
resistors is low. I'm not sure.

Womo

Steven Hirsch

unread,
May 13, 2008, 7:52:43 PM5/13/08
to
Wolfgang Moser wrote:
> thanks for all your plaudit. I did not set up
> a fully featured web page (yet ?), because my
> time constrains for the weekend were reached
> and other projects also needed a bit attention.
>
> Steven, the circuit in general will not change
> anymore, but each of you may want to try out
> other resistor combinations. I already made a
> proposition in another follow-up. I ask for
> each of you owning some old C128 and a CBM
> monitor to compare colors generated with this
> hack against the colors from your old machine
> setup. It's a matter of effort to find really
> good resistor combinations.
> On the other hand I suspect the ACV-011 board
> to already do some color matching for well
> known CGA colors so the influence on changing
> resistors is low. I'm not sure.

Sorry for not being clear: It would be hard to try the resistors without
knowing the specifics of how the buffers and 74LS decoder were wired. If that
information was in your post, it must have gone right by me.

I'm planning to build your circuit as a front end to my Highway Electronics
Model 100 RGB-->VGA converter.

Steve


Steven Hirsch

unread,
May 13, 2008, 7:55:29 PM5/13/08
to
Wolfgang Moser wrote:
>
> Steven, the circuit in general will not change
> anymore, but each of you may want to try out
> other resistor combinations. I already made a
> proposition in another follow-up. I ask for
> each of you owning some old C128 and a CBM
> monitor to compare colors generated with this
> hack against the colors from your old machine
> setup. It's a matter of effort to find really
> good resistor combinations.
> On the other hand I suspect the ACV-011 board
> to already do some color matching for well
> known CGA colors so the influence on changing
> resistors is low. I'm not sure.

Nevermind... I'm an idiot. Missed the links at the bottom of the first
posting. What would be required to convert the separated sync to composite
sync?

Wolfgang Moser

unread,
May 14, 2008, 2:13:57 PM5/14/08
to
Hi Steven,

Steven Hirsch schrieb:


> Nevermind... I'm an idiot. Missed the links at the bottom of the first
> posting. What would be required to convert the separated sync to
> composite sync?

I don't know what Composite Sync is, so I cannot
tell how it could be constructed. Hmm, I'm just
checking out that Highway 100 model you probably
mentioned:

http://www.highway.net.au/parts/converters/4040_1.html

They are telling about a SCART input. If you follow
reference [5] to Marko Mäkeläs translated and
improved article from C=Lehti 2/89, then you will
recognize that it is mentioned that SCART does not
carry HSYNC and VSYNC. Instead the article mentions
the fast blank signal input that needs to be tied
to some positive voltage to enable RGB.

That is all I can tell.


By the way, you recognized that this Highway video
converter does 50Hz-to-60Hz conversion? That way,
scrollers and other smooth effects will start to
jitter when watched with this board.


Womo

Rainer Buchty

unread,
May 14, 2008, 4:21:27 PM5/14/08
to
In article <g0fa5f$g2v$1...@vs5413.vserver4free.de>,

Wolfgang Moser <wn0...@d81.de.invalid> writes:
|> I don't know what Composite Sync is, so I cannot
|> tell how it could be constructed.

CSync is basically HSync*VSync. A more sophisticated version
can be found here:

http://www.tkk.fi/Misc/Electronics/circuits/vga2rgbs.gif

Rainer

Rainer Buchty

unread,
May 14, 2008, 5:22:37 PM5/14/08
to
In article <g0fhk7$m90$1...@news.lrz-muenchen.de>,

buc...@atbode100.lrr.in.tum.de (Rainer Buchty) writes:
|> In article <g0fa5f$g2v$1...@vs5413.vserver4free.de>,
|> Wolfgang Moser <wn0...@d81.de.invalid> writes:
|> |> I don't know what Composite Sync is, so I cannot
|> |> tell how it could be constructed.
|>
|> CSync is basically HSync*VSync. A more sophisticated version
|> can be found here:

Of course "(+)", not "*" -- or "xor" in logical terms.

Rainer

Wolfgang Moser

unread,
May 17, 2008, 3:38:21 AM5/17/08
to
Hello Rainer,

Rainer Buchty schrieb:

nice to see which sort of people are still
reading this group.

This cited more sophisticated version looks
to me, as if there are edges detected and
converted into short pulses first (XOR
gates coupled with resistor and capacitor
on its inputs). Then these pulses are fed
into the combining XOR gate and the result
gets (pre-) inverted and amplified (and
inverted again) after.

For example:

__________ _________
H ____| |_________| |______
_ _ ____ _ __ _ __
V _| |___| |__| |__| |___| |__| |__| |_


CIRCUIT _A_AA__A_A__A____A__A_A___A__A__A_A__A__A_

_ __ __ _ _ __ __
XOR _| || |_| |__| |__| |__||__| |_||_| |_


Do you think that just XOR'ing the two signals
will work, maybe because the monitor input does
its own edge detection?

On the other hand, the XOR combining could be
done first, followed by edge detection what
would save one gate.


Womo

Jim Leonard

unread,
Jun 5, 2008, 9:21:45 PM6/5/08
to
On May 12, 9:37 am, Wolfgang Moser <wn0...@d81.de.invalid> wrote:
> [10] http://www.oldskool.org/pc/cgacal

Yay, my research wasn't in vain :-)

This is **excellent** information, thank you! It's exactly what
vintage CGA people like myself have been waiting for.

Steven Hirsch

unread,
Jun 6, 2008, 8:08:08 AM6/6/08
to

I see you made it here, Jim! I just received a Wei-Ya ACV-011 board this past
week and plan to build up the RGBI interface over the weekend.

Steven Hirsch

unread,
Jun 14, 2008, 9:51:11 PM6/14/08
to
Wolfgang Moser wrote:

> Oh, by the way I updated my schematic a bit and also
> made a small DIY layout (one layer and some bridges):

I just built up one of your adapters (on a Radio Shack proto-board) and it
seems to work fine. I'm curious if there's a program floating around that
simply displays all the colors on screen for quick test.

Probably simple to write if one knows the machine well, but I'm fairly new to
C128s.

And, for a quick check, you are running with all the DIP switches set OFF on
the ACV-011 board, correct?

Thanks again for your work on the RGBI adapter!

Steve

Wolfgang Moser

unread,
Jun 15, 2008, 5:11:08 AM6/15/08
to
Hello Steven,

Steven Hirsch schrieb:


> Wolfgang Moser wrote:
>
>> Oh, by the way I updated my schematic a bit and also
>> made a small DIY layout (one layer and some bridges):
>
> I just built up one of your adapters (on a Radio Shack proto-board) and
> it seems to work fine. I'm curious if there's a program floating around
> that simply displays all the colors on screen for quick test.

I wrote one myself, nothing really complex,
omitting loops and calculations and stuff:

10 print "{rvon}{blk} {orng}{rvof} {rvon} "
15 print "{rvon}{blk} {orng}{rvof} {rvon} "
16 print
20 print "{rvon}{wht} {brn}{rvof} {rvon} "
25 print "{rvon}{wht} {brn}{rvof} {rvon} "
26 print
30 print "{rvon}{red} {lred}{rvof} {rvon} "
35 print "{rvon}{red} {lred}{rvof} {rvon} "
36 print
40 print "{rvon}{cyn} {gry1}{rvof} {rvon} "
45 print "{rvon}{cyn} {gry1}{rvof} {rvon} "
46 print
50 print "{rvon}{pur} {gry2}{rvof} {rvon} "
55 print "{rvon}{pur} {gry2}{rvof} {rvon} "
56 print
60 print "{rvon}{grn} {lgrn}{rvof} {rvon} "
65 print "{rvon}{grn} {lgrn}{rvof} {rvon} "
66 print
70 print "{rvon}{blu} {lblu}{rvof} {rvon} "
75 print "{rvon}{blu} {lblu}{rvof} {rvon} "
76 print
80 print "{rvon}{yel} {gry3}{rvof} {rvon} "
85 print "{rvon}{yel} {gry3}{rvof} {rvon} "
86 print "{home}{blk}"

I converted this with VICE' petcat from a C128
Basic program into type-in text.

> Probably simple to write if one knows the machine well, but I'm fairly
> new to C128s.
>
> And, for a quick check, you are running with all the DIP switches set
> OFF on the ACV-011 board, correct?

No, for the first tests I left all switches
at their default position, which is:

On On
Off Off

1 2 3 4

I systematically tested through all 16
combinations one time and found only two
or three positions that did work well with
the 50Hz VGA monitor that I use. Often the
screen was moved off or did flicker or was
wrong in other meanings.

> Thanks again for your work on the RGBI adapter!

We shouldn't forget that the main work is
done by the ACV-011 board ;-)


Womo

Anssi Saari

unread,
Jun 17, 2008, 4:41:21 AM6/17/08
to
Wolfgang Moser <wn0...@d81.de.invalid> writes:

> We shouldn't forget that the main work is
> done by the ACV-011 board ;-)

Do you have a cheap source for the ACV-011, preferably in the EU? I
think you mentioned Poland?

Steven Hirsch

unread,
Jun 17, 2008, 7:47:20 AM6/17/08
to

Can't help with an EU source, but for those in the US talk to Happ Controls:

www.happcontrols.com

Although not apparently listed in any of their online catalogs, they carry it
as part number 49-2727-00 at $82.40 + shipping.

Nice folks, no hassles dealing with them on onsie-twosies.

Steve

Wolfgang Moser

unread,
Jun 17, 2008, 2:12:07 PM6/17/08
to
Hello Anssi,

Anssi Saari schrieb:

that's right, I got mine from a Polish eBay seller:

euromatic1 (25)

I recommend to not only use the international eBay
pages, but maybe the polish ones, too (ebay.pl).
This seller seems to offer two of these CGA to VGA
converters at once each time. One for international
customers and another for polish buyers.

I my case shipping was very fast, the whole
transaction lasted 8 days only, including european
bank transfer.


Womo

bud

unread,
Jun 21, 2008, 1:40:06 AM6/21/08
to

Group: comp.sys.cbm Date: Tue, Jun 17, 2008, 7:47am (CDT+1) From:
snhi...@gmail.com (Steven Hirsch)

script:

>www.happcontrols.com
>
>Although not apparently listed in any
>of their online catalogs, they carry it
>as part number 49-2727-00 at $82.40
>+ shipping.

$79 + ship as of today. I should think about getting one,… in case my
CGA monitor gives up the ghost.

salaam,
dowcom

To e-mail me, add the character zero to "dowcom". i.e.:
dowcom(zero)(at)webtv(dot)net.

--
http://community.webtv.net/dowcom/DOWCOMSAMSTRADGUIDE

MSWindows is television,… Linux is radar.

ein...@gmail.com

unread,
Jul 23, 2013, 5:44:26 PM7/23/13
to
Hi!

I also got one of these cga to vga converters, the GBS8200 from e-bay. I was wondering if you could make one for me? I desperately want to connect my C128 to this board and up on any VGA screen.

Can anyone help?

Thanks in advance!

Einar

jb...@hot.rr.com

unread,
Feb 22, 2014, 7:50:09 PM2/22/14
to
Will this work on a different cga/rgb to vga converter? The one I'm looking at, the CGA plug has only 5 pins (S, x, Grnd, B, G, R) I'm assuming S is Composite synch and 'x' is a gap with no pin. There is an RGB plug that is labeled (Grnd, Grnd, HS, VS, S, B, G, R) That looks like it offer both split synch (Horizontal & Vertical,) as well as Composite. This would be assuming that HS is Horizontal synch, VS is Vertical synch, and S is again Composite synch. Finally, there is a 15 pin RGB port that probably has the separate synch as well (I assume since it's actually labeled RGBHV.)

As a final thought, what would be the effect of reducing the resistors and adding a pot on the main lines... that would be a pot off of pins 12, 14, 16, & 18 of IC1, and pin 7 of IC2. Wouldn't this allow you to tweak all the different colors. You wouldn't want a large range. Maybe 500 Ohm pots, with 3 140 Ohm resistors and 4 560 Ohm resistors. Putting the range from 140-640 (390 being the exact midpoint,) on the R, G, & B lines. And a range from 560 - 1060 (810 being as close as I could get to 810 for the midpoint - cannot find any 570 ohm resistors,) on the Intensity and Brown lines. Though, I would much rather have a smaller range I think.... So maybe 300 Ohm Pots with 240 & 680 Ohm resistors. Just a random thought.
Reply all
Reply to author
Forward
0 new messages