Welcome to Kreative Korporation
Home About Site Map
 Kreative Entertainment Kreative Software Miscellany
Mika City
High School Math
DWT
Learn Mikiana
Relay Fonts
Open Source
Legacy Software
More...
The Language Pages
The Gender Pages
Miscellaneous Pages

Jon Relay's Apple II Info Archives

Video Display Theory


This came up on comp.sys.apple2 long ago. It was on a thread about a new Apple II emulator, I think, and they needed help with high-resolution graphics. Here was my theory. (At least as I remember it. The Deja archives are temporarily unavailable, and I didn't save it.)

A composite video signal has a chroma and a luma signal. The luma controls the brightness of a pixel. The chroma is actually two axes on a two-dimensional surface of color. The x axis goes from magenta to green, and the y axis goes from orange to blue. At the center of each axis is white:

+-----------+
|     O     | O=Orange, G=Green,
|           | B=Blue, M=Magenta,
|M    W    G| W=White
|           |
|     B     |
+-----------+

Filling in the corners, we can find the whole spectrum:

+-----------+
|R    O    Y| R=Red, O=Orange,
|           | Y=Yellow, G=Green,
|M    W    G| C=Cyan, B=Blue,
|           | P=Purple, M=Magenta,
|P    B    C| W=White
+-----------+

You'll notice that the extremes of each axis look like the four high-resolution graphics colors. However, Robert Munafo posted some information a while ago about the way the Apple II generates NTSC output. The actual high-resolution graphics colors are not exactly the same as the polarities of the axes. The colors generated by the Apple II are actually twelve degrees lower in phase, but it is so little of a difference since the tint setting on your monitor is probably a little off anyway.

Someone, I don't remember who, replied that the hi-res color magenta was actually purple. The Apple people were confused when purple didn't fit on the color table (as was I), so they called it magenta in the documentation.

It wasn't in the post (although someone did reply with it) that the color group bit of each byte of graphics data determined which axis to use for color, and the two bits of each pair of columns defined the polarity of the axis at that point.

One explanation for why you get weird colors on byte boundaries was because the Apple II's composite video output wasn't exactly NTSC (or PAL). You got what was called "color bleeding." A single point of light somewhere on the screen showed a variety of colors depending on exactly where it was. The different color group bits on the bytes at the byte boundaries pushed and pulled the pixel one way or another, and that's why you get all sorts of weird colors there. The Apple IIgs has a totally different video system, but it still uses a slightly-off color-bleeding composite signal.

The earlier Apple II's used TTL logic and all that off-the-shelf stuff to display video, so the signals where just switched on and off. The Apple IIgs has a complicated microchip to handle video, so it can produce all those 4096 colors you can use. With an RGB monitor, the Apple IIgs doesn't do a very good job at putting high-resolution and double high-resolution up on an RGB screen, so you get some bad colors there. Some colors show up as all black, or all white, or a different color. And, of course, my favorite; dark green shows up as a flickering green that seems to stabilize to solid green at some times.

For more video display theory, try the following links:

munafo.shtml
http://www.ee.washington.edu/conselec/CE/kuhn/ntsc/95x4.htm
http://www.landfield.com/faqs/apple2/faq/part16/
http://www-viz.tamu.edu/faculty/parke/ends489f00/notes/sec1_4.html
http://www.neutralzone.org/home/faqsys/docs/codet
http://www.belle-nuit.com/archives/videoglossary.html
http://www.itc-usa.com/noframe/radapclr.htm


Return to Index