rbm
Windows User
Posts: 10
|
Post by rbm on Nov 11, 2016 9:12:57 GMT
Ah, shades. Well, the intensity of the colors are different between the C128 and CGA. Yes, the difference beetween the unintensified and intensified colors can be different in the Commodore monitors, and that is because the contrast potentiometer in the IBM monitor only acts over the unintensified colors. The input RGBI color processing in the Commodore 1902 monitor is the same as the IBM-5153 and will give four levels of intensity like the IBM monitor does. You can be comfortable with the color range found on almost six resistors network dacs, but if you want the whole range of intensity colors, you need something more.
|
|
|
Post by Pyrofer on Nov 11, 2016 13:18:52 GMT
I only ever had a monochrome green monitor for 80 column back in the day. This is in part what drove me to design a converter to make it easy to use. Something I wish I had back then! We had the 128 hooked up via an composite cable to a colour monitor (previously just RF to a small TV) and had the mono only cable from the 80 col output to the mono monitor. I remember being severely disappointed with the total lack of graphics on the 80 col output and we never really made much use of it. I believe both my adapter and the one by rbm take into account the brown fix which is the main reason we ended up with programmable logic chips.
|
|
|
Post by gsteemso on Nov 12, 2016 19:40:53 GMT
I didn't have time today to read back over this whole thread, so this may have been covered already, but I had previously understood the "brown fix" was straightforward to implement in either of two ways — (1) use a couple of simple logic gates to substitute the correct value when the Dark Yellow RGBI code is presented, or (2) use a different arithmetic weight for the Intensity input signal than for the RGB ones, such that the resultant analogue RGB signals are each specified by three-bit values instead of two-bit ones. Obviously, that one produces a different colour palette than the usual method (to my eyes a less satisfactory one, but if you were originally exposed to that one and so had different preconceptions, there's nothing actually wrong with it), but it requires no special-case logic at all.
I ran across the second method several years ago in an article on CGA video, and have not been able to find it again since, but I wasn't looking very hard either.
Anyway, with this being so simple either way, isn't it kind of massive overkill to use actual programmable logic to do it? Not trying to be snide in asking this — I'm genuinely curious as to the reasoning.
|
|
|
Post by Pyrofer on Nov 14, 2016 7:07:29 GMT
You need to present different colour values to the DAC than would be present with the inputs. This means logic. You CAN do it with standard logic chips. There are a few circuits out there and indeed this was my first method used when I tried this. Sadly due to a little logic error on my part I was missing colour 13 completely (came out black). Now I managed to turn the whole thing into a fairly simple sequence of logic. I could try and replicate that with a load of chips and hope I got it right this time or do it in one programmable chip and know I could fix it in software later So the questions, is one PLD overkill compared to a handful of normal logic chips. A friend did the math on the outputs and came up with a plan that used only 2 bits per colour and gave almost perfect results without messing around with 3 or 4 bits per colour. My board is quite minimalist compared to others and I don't consider it overkill at all. The passive only circuits look terrible in comparison. The colours are washed out and blurry. Even with the diode/transistor circuits etc you don't get as good a picture with the colour separation from a logic driven system. I also don't know of any way to do the brown fix on them short of adding in a logic chip. The PLD was simply the correct choice for me. digital in -> logic -> digital out -> simple 6bit DAC -> done.
|
|
|
Post by gsteemso on Nov 14, 2016 13:32:35 GMT
Agreed, that is very straightforward. For some reason "programmable logic" automatically meant "FPGA" to my brain; I'm sure that would be massive overkill even with 1980s parts! A PLD makes a lot more sense.
|
|
|
Post by robertb on Nov 14, 2016 17:10:58 GMT
I believe both my adapter and the one by rbm take into account the brown fix... As does the C128 Video DAC adapter made by John Carlsen... Writing from the Los Angeles area, Robert Bernardo Fresno Commodore User Group www.dickestel.com/fcug.htm
|
|
|
Post by molebrain on Nov 15, 2016 17:46:34 GMT
RBM, this is nice. How much does it cost to make? I
|
|
|
Post by hydrophilic on Mar 10, 2017 10:10:53 GMT
Thanks for interesting discussion, everyone! But if we have/want to compare color of various monitors (C1902, C1084, Magnavox, Phillips, etc.) then this will get very messy! All the modern video adapters I have built are based on "simplistic" (non-technical) aspects of the RGBI protocol, and (to an artistic extent) my memory of the CBM 1902. I don't own any of those vintage monitors (today) to give a scientific comparison with my (or other's) "VDC to VGA" adapters. In other words I fear this issue will come down to art/opinion, unless somebody has an array of vintage CRTs for precise analysis...
|
|
|
Post by Pyrofer on Mar 10, 2017 12:03:20 GMT
The colours on my one were based on a mathematical distribution of the colour space rather than trying to achieve how a CRT "looked" to the human eye.
I know John Carlsen spent a lot of time measuring internal voltages and balancing all his values to achieve a very specific balance of colours for a particular CGA compatible monitor.
I have no idea how much variance there was within CRT monitors which is why I just based mine how how we thought the colours "should" be divided. It might be that there is an official reference for the original IBM CGA spec that monitors had to conform to?
This is the formula mine is based on from the wiki entry for CGA
red := 2/3×(colorNumber & 4)/4 + 1/3×(colorNumber & 8)/8 green := 2/3×(colorNumber & 2)/2 + 1/3×(colorNumber & 8)/8 blue := 2/3×(colorNumber & 1)/1 + 1/3×(colorNumber & 8)/8
This was then applied to get the correct voltages out of my DAC for the analogue RGB. As far as I can see this is the only reference for how the colours should look and any variance would be on a per monitor basis.
|
|
|
Post by robertb on Mar 10, 2017 16:55:39 GMT
I know John Carlsen spent a lot of time measuring internal voltages and balancing all his values to achieve a very specific balance of colours for a particular CGA compatible monitor. It was a pair of Commodore 1084S-D monitors. See bit-c128.com/Truly, Robert Bernardo June 10-11 Pacific Commodore Expo NW - www.portcommodore.com/pacommexJuly 29-30 Commodore Vegas Expo v13 - www.portcommodore.com/commvex
|
|