I believe the idea behind artifact color is that the beam does not have the time to turn off in between pixels, so you get solid color across dot - no dot - dot.
Kind of - but it's not an intrinsic property of the CRT hardware that it can't switch the beam on and off that fast - after all, the 5153 monitor has a very similar tube to that of contemporary composite monitors and that has no trouble going from black to white or vice-versa in a time of 1/(14.318MHz). The band-limiting is actually done as part of the composite Y/C separation, to avoid the 3.58MHz signals corresponding to colours from being displayed as light and dark patterns on the screen, not by the beam itself.
You also get faint lines too, sometimes visible, sometimes not.
That's because the Y/C separator isn't perfect and (depending on the monitor) lets some 3.58MHz signals through.
Maybe I missed it, but how do you explain the arbitrary selection of the color depending on the horizontal position of the dot? You say that the pattern is yellow, red, blue and cyan. It would seem then that the CGA hardware is cycling through the color wheel as the beam travels across the screen, since that is the proper sequence with yellow being closest to the burst.
Right, though it's really the colour-decoding hardware in the monitor that is cycling through the colour wheel as the beam travels across the screen. The CGA card outputs a yellow-hued color burst signal shortly after the horizontal sync pulse which the monitor uses to determine which phases correspond to which hues (so, same phase as burst = yellow, 180 degrees out of phase = blue, 90 degrees advanced = cyan and so on).
One possible way to do the decoding (which is actually the method that I use to do the decoding in software) is to have two 3.58MHz sinewave signals in the monitor (I for in-phase and Q for quadrature) which are 90 degrees out of phase. These are multiplied with the composite signal and the results low-pass filtered to get rid of the 3.58MHz signals. There is a third signal Y (luma) which is just the low-pass-filtered composite signal. Then the red, green and blue signals fed to the electron guns are just different linear combinations of Y, I and Q. Y is "brightness", I is "orange-blueness" and Q is "purple-greenness" (
the wikipedia article on YIQ has some diagrams which might make that easier to understand).
Now, if you have two sinewaves 90 degrees out of phase, they define a circular trajectory in 2D space (colour space in this case) and that is the "cycling through the color wheel" that happens at 3.58 million cycles per second.
A true color burst signal is a sine wave, and a CGA color burst is a square wave,
That doesn't matter. A square wave is just a sine wave with some higher frequency components added on (which you can find by doing a Fourier decomposition of the wave). The higher frequencies will be ignored by the monitor so a square wave color burst will work just as well as a sine wave.
and I assume that the square wave has a 50% duty cycle.
Right. All the 3.58MHz signals involved here are 50% duty cycle except for artifact colours produced by lighting 1 out of 4 or 3 out of 4 pixels in 640x200 mode (which are rectangle waves of 25% and 75% duty cycle respectively).
What happens if you change the duty cycle (modulating the frequency?)
Frequency is not the same thing as duty cycle - frequency is how many times per second the wave goes through a complete cycle (one high and one low), duty cycle is the proportion of the cycle the wave spends "high".
For the color burst signal that happens after the horizontal sync pulse, the duty cycle doesn't matter - as long as the frequency and phase are correct and the amplitude and DC offset are within range, the burst will do its job. If the frequency is too far off it won't be recognized as a color burst.
For the signal corresponding to the visible picture, changing the duty cycle will have the effect of brightening or darkening the corresponding colour.
I would think that the CGA card would output chroma as on, off and at 50% amplitude.
I'm not sure what you mean by this. The 6 hue signals that go into the multiplexer (i.e. not black and white) all have 50% duty cycles. So yes, referring to the output signal from the multiplexer as "chroma" - it's either on, off or a square wave of 50% duty cycle of some phase depending on the colour.
Duty cycle isn't the same thing as amplitude, though - the amplitude of the chroma signal as sent to the monitor is defined by the resistor network that forms the CGA's composite output DAC. For the 1501486 the chroma amplitude (peak to peak) is about .75V and for the 1501981 is about .31V, which explains why the chroma colours are more saturated on the earlier card.
The amplitude (and therefore saturation) of the artifact colours depends on the raw pixel colours that you're oscillating between (i.e. the colours you'd see on an RGB monitor). For the usual 640x200 mode with palette 15, it's about 1.05V swing on both cards, so the artifact colours will be much more saturated than the corresponding chroma colours, and will be consistent between cards. Though only green and magenta are directly comparable - the other two 50% duty cycle artifact colours, orange and aqua, aren't available as chroma colours and the other 4 chroma colours (blue, red, yellow and cyan) can only be represented as artifact colours with 25% and 75% duty cycles.