CGA pinout: Female at video card: 5 4 3 2 1 * * * 2 * 9 8 7 6 * * 7 * 1 = ground 2 = ground 3 = R 1 2 4 = G 2 1 5 = B 4 2 6 = I 8 4 7 = reserved 15 9 8 = HSYNC 9 = VSYNC I think HSYNC and VSYNC are active high - check this with oscilloscope Normal CGA modes have blanking immediately before sync, but we need a high pulse to calibrate against Sync 3.3K I 5.6K 179 chroma 2.2K 455 Blank 13K C+I 634 42.2 per step 0.5% 1% 2% 5% 10% 20% E192 E96 E48 E24 E12 E6 23.692K B 23.7K 23.7K 23.7K 24K 22K 22K R2 22K + 1.8K 23.6 42 0 42 86 128 170 212 256 298 340 382 426 468 510 552 596 638 11.846K G 11.8K 11.8K 12.1K 12K 12K 10K R3 10K + 1.8K 11.67 86 42 44 42 42 42 44 42 42 42 44 42 42 42 44 42 5.923K R 5.9K 5.9K 5.9K 6.2K 5.6K 6.8K R4 5.6K + 330R 5.88 170 2.962K I 2.98K 2.94K 3.01K 3.0K 2.7K 3.3K R5 2.7K + 270R 2.94 340 Need accuracy of better than 1/16 (6.4%) => E24 should work? Too bad we only have E12! Use two resistors for accuracy See what resistor values I have See if I have an LS244 Build it on breadboard, try it out and see if it can be made to work with the current schematic There may be output capacitance / slew rate issues There may be issues with the gates being unable to source current without LS244 RC stage delays ~.69RC Pulse is shortened if we get close to that We want to delay by more than the length of the Sync width: Programmed actual hchars Mode 10 8 -hres 10 7 normal 10 6 odd Delay needs to be 8 hchars => .69RC ~= 4 hchars = 2235 ns RC = 3239 ns With R = 10K, C = 324pF With C = 1nF, R = 3.24K - maybe use 5K or 10K trimmers Diode 2 100nf 2 other caps 1 2N3904 (from top): flat C---B---E round 1 2 3 4 5 6 7 8 9 10 11 12 13 /-\ /-\ ----*---+ *---------------------------* | | . 1 : SV1 : : | | \-VCC| | | : \-/ | : | : : | | | | | | : | | : /-\ : : | /-\ | | /-\ /-\ : | | . | | *---* . | | *--------R2---------* . 2 : \-/ :VCC: | \-/ : | \-/ \-/ : : | : | : : | | 5 : | | 4 | : : | : | : : /-\ |/ : /-\ |/ | : : /-\ . *-------* | | * . | | * *--R3---* | | 3 : : VCC : \-/ : : \-/ : : : : \-/ : : : : | : : | : : : : | : : : : | : : | : : : : | ----+ * 14--13--12--11--10---9---8 C---B---E 4 :SV1: | - : | | : | - | : : : : | - : | | : | - | : : : : /|\ /-\ : /-\ /-\ : /-\ /-\ /-\ : : . . 0u1 |-| . | | | | . | | |-| | | . * 5 : : \|/ \-/ : \-/ \-/ : \-/ \-/ \-/ : | : : | - : | IC3 : | - | : | : : | /-\ : /-\7432 : /-\ /-\ | : /|\ . . * |-| . | | | | . | | |-| . . ||| 6 : : : \-/ : \-/ \-/ : \-/ \-/ | : \|/ : : : - : | | : | - | : 33 : : : - : | | : | - | : R6 *-------* 1---2---3---4---5---6---7 . . | 7 : GND | : : : : : : : | : | : : | : 6 : : : 3 : : : | : | : : /-\ :/ : : :/ : : : | : | . . | | * . . * . *-----R4----* * 8 : : \-/ | : : | : | : | : : : : | | : : | : | : | : : : : | /-\ : : /-\ : /-\ : | : : . . . | | . *----------R5-----------* . 9 : : | \-/ : | \-/ : \-/ : | : : : : | | : | | : | : | : : : : | | : /-\ | : | : | : : *-----------------------------------* . . . 10 | : | | :GND|/ | : | : | : : | : | 8 | 9 : | | : | : | : : /-\ : |/ |/ : | | : | : | : : | | . * * *-----------* . *----100----* 11 \-/ : : : | |HS5| : | : | R7: : | : : : | | | : | : | : : | : : : | | | : | : | : : *--|<---* . . . . . *22p* . * * 12 : : : : | | | : : C1: | | | : : : : | | | : : : | | | : : : : | | | : : : | /|\ /|\ * *-----------------------------------* ||| ||| 13 | : : : | |VCC| : : : : \|/ \|/ | : : : | | | : : : 1 : 3k3 47 /|\ : : : /-\ | | : : :/ : R1 R8 ||| *---------------* *-------* * * | | 14 \|/ : : VCC \-/ : : HS4 : : | | | 2k2 : : : | : : : : : | | | R10 : : : | : : : : : /|\ | | | 14--13--12--11--10---9---8 . . 0u1 * * 15 | : | | : : | - : : \|/ : : | : | | : : | - : : | : : | : /-\ /-\ : : /-\ /-\ : : | : : * : | | | | . . | | |-| . . * . . 16 : : \-/ \-/ : : \-/ \-/ : : : : : : : | | IC1 : | - : : : : : : : | | 7486 : | - : : : : : . : . . . . . - . *---* . . 17 : : | | : : | - : :GND: : : : : | | : : | - : : : : : : : | | : : | - : : : : : . 1---2---3---4---5---6---7 . . . . . 18 : | : : | | : : : : : : : : | : : | | : : : : : : : : /-\ : : | | : : : : : : : *-------* . . . . *-------* . . + 19 | HS2 : : | | : : GND | : : | | | : : | | : : : | : : | | | : : | | : : : | : : /|\ . *-1n* . . . *-------------------* |X2 20 | : C2: : | | | : -SYNC : | \|/ | : : : | | | : : | : | | | : : : | | | : : | : | | . . *--------47k--------* . . . . - 21 | : | : |R11| | : : | : | : | : | : | | | : : | : | : | : | : | | | : : | : | : . *-----------------------* . . . . . 22 | | | : GND | | | : | : | : | | | : | | | | : | : | : | | | : | | | | : | : | : . . . *--------2k2--------* . *-------* 23 R9 GND X2 SV1 X Y O A 1 2 3 B 4 5 6 C 10 9 8 D 13 12 11 GND 7 VCC 14 A.X <-> VCC connected A.Y <-> D.X A.O <-> D.Y B.X <-> D.O connected B.Y <-> C.X connected B.O <-> C.Y GND <-> C.O a.x = VCC c.x = VCC d.x = VCC a.y = b.o a.o = R1.x b.x = X1.9 b.y = X1.8 c.o = R9.x c.y = R10.x d.o = IC3.2 d.y = R9.y if A==a then a.x == 1 but then a.y isn't opposite an output Therefore A==c or A==d Suppose A==c Then: c.x = A.X a.x <-> d.x B.Y <-> C.X So (a==B and d==C) or (a==C and d==B) a.y <-> b.o a==B implies a.x = B.Y, a.y = B.X, a.o = B.O, d.x = C.X, d.y = C.Y, d.o = C.O, b.o = D.O, c.x = A.X, c.y = A.Y, c.o = A.O <-- solution a==C implies a.x = C.X, a.y = C.Y, a.o = C.O, d.x = B.Y, d.y = B.X, d.o = B.O, b.o = D.O, c.x = A.X, c.y = A.Y, c.o = A.O Suppose A==d Then d.x = A.X a.x <-> c.x B.Y <-> C.X So (a==B and c==C) or (a==C and c==B) a.y <-> b.o a==B implies a.x = B.Y, a.y = B.Y, a.o = B.O, d.x = A.X, d.y = A.Y, d.o = A.O, b.o = D.O, c.x = C.X, c.y = C.Y, c.o = C.O a==C implies a.x = C.X, a.y = C.Y, a.o = C.O, d.x = A.X, d.y = A.Y, d.o = A.O, b.o = D.O, c.x = B.Y, c.y = B.X, c.o = B.O A.O <-> D.Y D.O <-> B.X B.O <-> C.Y