RGBI to VGA
The Commodore 128 features an 80-Column color display using an RGBI output via the 8563, known as the VDC. It offers higher resolution than the 40-Column display of the VIC-IIe (8564 NTSC, 8566 PAL-B often called simply VIC). The VDC also supports video interlacing in hardware. The VIC is easy to connect to common video displays (TVs and monitors) due to various widely-used outputs: Composite, Chroma/Luminance (S-Video), and RF (analog TV antenna). Unfortunately, the RGBI output of the VDC is not compatible with modern equipment. This poses a problem for C128 owners due to the dwindling supply (and expensive shipping) of RGBI and CGA monitors (CGA is very much like RGBI). RGBI is similar to VGA, but uses different voltages and horizontal frequency which most VGA monitors do not like. This page is about a VGA solution (other solutions are S-Video and SCART). The easy way is to use an RGB to VGA adapter, such as one available from Ambery. That particular converter needs a special 9-pin to 15-pin cable. The converter has a 15-pin input, so the cable is needed to use with the 9-pin connector on the Commodore 128. This has been reported to provide acceptable results (both PAL and NTSC) with one major exception: you get only 8 colors!
I've built two circuits to get all 16 colors with a VGA adapter. The simpler one comes first, and can be used with a VGA adapter that accepts seperate Horizontal and Vertical synchonization signals (like the one from Ambery already mentioned). Scroll down to the Composite Sync section for a more complex version needed for some fussy devices (like the GBS-8220). So first, Miro Karkus asked me to build an RGBI converter for use with his RGB to VGA adapter. I'm glad to report that it works! Below is the schematic diagram if you would like to build one yourself. On the left side is the male DB-9 connector that goes to the C128. In the center is the pull-both circuit that adds Intensity to the R,G,B lines. On the right is the male HD-15 connector that goes to your VGA adapter. Because I don't own the VGA adapter he does, I added 1k Ohm variable resistors to all the VGA output lines (except ground). These are not shown in the schematic (may not be needed, depending on tolerance of VGA converter that you use). I set them to about 250 Ohms as this seemed to drop the voltage down to what his converter needed. As long as I was adding variable resistors, I replaced the 1.2k Ohm resistor (for the C128 Intensity line) with a combination of 470 Ohm (fixed) and 1k Ohm (variable) resistors; I tuned it to 1.2k Ohm. I built it in a metal case, see photo below. (The photo is before I connected the mess of wires; I should have taken a finished photo... oh well.) Note this solution gives 16 "true" RGBI colors using passive technology (no power supply needed). A minor problem is that Commodore monitors were built with a special "brown" circuit. That is, one of the 16 colors (so-called dark yellow) was changed to look more like brown by decreasing green and/or increasing red more than a "true" RGBI signal. This is a minor issue, in my opinion, because most text and images look fine with dark yellow in place of brown. However, if you are interested in an active solution (requires seperate power supply and more parts) that will give "true brown" then see my "Ultimate" solution (Historical links: thread at Landover BBS or thread at Vintage Computers.) The parts to build this RGBI adapter cost between US $20.00 ~ $40.00, depending on what type of case (if any) is made. The circuit itself if fairly simple to build, but making the case and connecting all the wires will take a fair amount of time. Expect to spend half a day on the project if you are proficient at this sort of work; a full weekend otherwise. Of course, you still need an RGB to VGA converter and VGA monitor... I assume you already have a VGA monitor :) Anyway, Miro was kind enough to send me a photo of the working result. I think it looks acceptable, but not great. I'm not sure if the problem is bad photograph, his VGA converter, or the monitor itself (probably a combination). His photo shows standard text mode, but he reports interlaced and bitmap modes work too.
My second version is for a guy who asked me to build a complete RGBI to VGA solution. I told him the GBS-8220 VGA Adapter was reported to work for NTSC users (apparently it won't sync down to 50 Hz for PAL). When the thing arrived, I tried a direct connection (before even attempting my 16-color fix). But it only lied and said "No Signal" when connected to the C128 (even after verifying there was a signal). Now that is very strange when you consider it has 3 inputs (besides VGA pass-through):
and the fact that it supports (at least) two horizontal frequencies:
Disregarding YPbPr, that is four things it could (should) support: RGBHV at 31.5 kHz, RGBHV at 15.75 kHz, RGBS at 31.5 kHz, and RGBS at 15.75 kHz. Reading the scant documentation gave me the impression that RGBS at 15.75 kHz would work, but RGBHV at 15.75 kHz would not. I thought I was mis-reading what they were trying to say. I mean, RGBHV is easier to process than RGBS because the synchronization signals have already been separated. But no matter what I tried, it would always report "No Signal" when connected to the RGBHV input. Connecting the C128 to the RGBS input gave an unstable display (this is to be expected because the C128 does not generate a composite sync). Out of the 4 possible modes, the only one that the GBS-8220 does not support is the one needed for the C128 (Murphy's Law, you know). I tried combining the H and V sync signals with passive technology but it just wouldn't work (a bit off-topic, but combining Luma and Chroma to produce Composite with only a capacitor does work). So eventually I tried a 7486 Quad XOR Gate (only one of the four gates is needed). This produced a "stable" display, but it was still messed up! Take a look for yourself. By the way, I was using reverse-video mode for testing so the "active area" of the VDC would be clear. I then tried different logic combinations with the H and V lines. Inverting the signal made no difference. Attempting an "AND" combination made things worse. So I decided to just stick to the simple XOR gate and play around with the menu settings. The device has settings which should be familiar to most anyone who has adjusted a monitor or television: brightness, contrast, size, resolution, etc. However there were 4 settings that were not adequately described in the Chinglish instruction manual and that I've never heard of before. These are:
These sound like they are related, and playing with them gives somewhat similar results (mostly messing up the picture). However they are in two different menus. The Clamps are in the Geometry menu and the Coasts are in the Picture menu. Long story short, ignore the Clamps because the default settings work fine (well, after you fix the Coasts). So below is a photo showing the default settings of the Picture Menu. In the background you can see the image is still "torn" as in the photo above. As far as I can tell, the Coast St sets the "start coasting (ignore horizontal sync)" raster while the Coast Sp sets the "stop coasting (resume using horizontal sync)" raster. Well regardless of my theories, the below photo shows the settings that actually work... With a solid 8-color display, I went about building my "Pull-Both" RGBI to RGBA circuit. That was the easiest part. Below is the result with standard text mode showing all 16 colors. Unlike my S-Video adapter (where dark yellow kind of resembled brown) this VGA version clearly needs a "brown fix". Otherwise I was quite happy with the colors, contrast, and shapness. Sorry the photo was taken in broad daylight so the contrast is a bit low. Next I wanted to see how the GBS-8220 would do with interlace video. Below is 51-row mode of the ZED text editor. The results were a crisp, flicker-free image. Considering I was using an LCD-type monitor, I am not surprised about the "flicker-free". Unfortunately I did not have a CRT-type monitor to do further testing. Below is a schematic diagram of the circuit I used, so you can build one yourself. Or I can build one for you if you have money to spend (contact me). I put in a 3k Ohm potentiometer to be able to adjust the Intensity, but the final settings was near the middle. In other words, about 1.2k Ohm as shown in the simpler version of my "Pull-Both" circuit. The thing that makes this second version slightly more complex is the need for the 7486 XOR Chip. It needs to be powered by +5V which is available off the GBS-8220 board (only 1 of the 4 XOR gates is used, I believe you could make a "brown fix" with the other 3).
In a related topic, RGBI to SCART, it has been shown that simply using the monochrome line of the C128 (the RGBI pin 7) works to generate a composite sync. You might want to try using this line instead of the XOR gate; it would save you one IC and quite a bit of wiring. However, I have not tested this method with VGA. In detail, the monochrome line contains video information in addition to the Composite Sync signal, so it may not work with some hardware. Another important issue is that Miro (Mirkosoft) has report that monochrome does not work on a C128-DCR, although it works fine for C128-D and orignal/flat C128. In short, using a XOR gate is 100% reliable, but using the RGBI pin 7 (monochrome) may fail (some C128's or some VGA adapters).
Below is a photo showing the inside of my VGA solution. On the left is my little "RGBI to RGBA and HV-Sync to Combined-Sync" board. Eww, what a mouthful! On the right/center is the large GBS-8220 board. The C128 cable runs out the back. That little purple wire at the left is the VDC monochrome signal which is not connected to anything. On the right is yellow wire that is not connected to anyting either. You see, the GBS-8220 needs the connection to RGBS input, but it did not come with a connector for that! It did come with a connector for the RGBHV input (Murphy's Law again). Anyway, the yellow wire (should) go to the (unused) Vertical Sync. The gray wire was for Horizontal Sync (it went between the blue and the yellow), but I pulled it out and ran it to the combined sync instead. The outside of my RGBI to VGA adapter is photographed below. On the left is the "heavy duty" 5V power supply. I have several 5V supplies already, but most of them are rated for only 1 Amp (or less). The GBS-8220 needs 2 Amp so I had to buy a new one. (The new one is rated at 2.7 Amp / 13.5 Watt and purchased from Jameco for less than US $10). On top of the case you can see the on-screen menu buttons at the left and the DB-9 plug for the C128 lying on top. I kept the cord short (about 10 inches = 25 cm) to minimize video interference. I wish I had made it a bit longer. There didn't seem to be a problem with interference, so a longer cord would probably be okay. On the front: you can see
I want to mention before I go that the GBS-8220 will remember the settings you assign even after you remove the power. This is a fantastic thing, considering the default settings are fouled up (see first two screen shots above).
Kyle Kelbert reports that my "Pull Both v2" (at the top of this page) works without any VGA adapter! His computer is a Tandy 1000HX and his monitor is a Daenyx DN-153. Based on his description it sounds like CGA to RGBa conversion. He noted that only a few monitors will work without a VGA adapter (which is why I call this CGA to RGBa). Because a VGA adapter wasn't used, he was able to build my circuit as a small "dongle" board. Kyle also sent an image from King's Quest (CSDb entry / Wikipedia article). Aside from the moiré patterns (caused by the camera) I don't see any obvious problems, but he reports a mild "color bleeding". However, his "dongle" (see above) is using "power" diodes (1N4001) when "switching" diodes (like 1N4148) should be used. Update: Kyle emailed me to say that using "switching" diodes 1N4148 fixed the "color-bleeding" problem! In summary, do NOT expect good results with "power" diodes like 1N4001. See also a similar "CGA" section on my "VGA ultimate" page. |
0 comentarios:
Publicar un comentario