So it turns out the original version of my adapter had a logic error that missed out a colour. While I am kicking myself for that I got on with making a new design. This time, to avoid logic errors that require a new PCB I used programmable logic.
Using a single GAL I put all the logic to turn the RGBI+HV into RRGGBB+s. Thats 4bit into 6bit and h/v sync into proper composite sync. The 6bit output (2bits per colour) feeds a resistor DAC to provide the most perfect colour output I think it’s possible to get from the 128’s CGA output. It was also possible to make changes to the logic in the chip if I made a mistake. Turns out I got it right first time this time but made up for that by getting other things wrong on the PCB.
As well as the VDC output I put a pin header on for connecting to the VIC Video out DIN. This allows feeding 5v from the 128 to the adapter board as well as hooking up the VICs S-Video output and audio in an easier way than the DIN plug. The S-Video from the VIC goes to a real S-Video socket and the audio goes to a 3.5mm audio jack.
The final board is pretty amazing and seems to work really well. It makes hooking up to monitors easier by having a VGA style 15pin connector so my BenQ monitor which handles 15khz natively works fine by simply plugging directly in to the 128 (via this board). the Gonbes style arcade RGB to VGA adapters also work and can be connected easily with a normal VGA cable between the 128 and the Gonbes.
There is a pad near the S-Video jack to insert a resistor on the chroma line but I have not had need of that yet and normally just short this pad. The power LED helps remember to plug the 5v line in 🙂
Apart from getting the audio jack connected backwards I am pretty happy with the end result. I have since ordered new boards with the audio pinout fixed.
The 6pin header is as follows,
4 Composite video (not connected)
5 Luma (from S-Vid)
6 Chroma (from S-Vid)