fun with pmac video:
The video driver on the 7500 (7600 too?) is called "control".  Perhaps after
that old TV spy show, Man from UNCLE? or is it from Get Smart?  I liked UNCLE
better.  This is all about that driver.  There is another driver for the video
hardware on the 7200, called "platinum".

There are three interfaces to the video driver: the registers, the cmap
registers and the frame buffer.  These are memory mapped (they appear as byte
reversed memory).  There are 32 normal registers, usually a page starting at
0x90001000 (the prom will return this and another address when the properties
are retrieved for the display node).  All of their functions are not known.  To
find out what is known, look in the file drivers/char/pmac-cons.c in the
structure control_regs.  The registers are 32 bits (I think) and are spaced
0x10 apart from each other.  It appears that bits 2 and 3 of the address are
ignored.  The registers appear at 0x200 intervals from the beginning of the
register page.  Oh, yeah and they're byte reversed because they're on a PCI
bus.

Currently only 8bit color is supported (anyone is welcome to add more).

The frame buffer is byte per pixel mapped to the screen.  In MacOS on my
machine, is starts at 0x94800210, so the byte there controls the top left
pixel.  In linux-pmac, it usually starts at 0x94800010.  Something about the
register at 90001160 controls which bank the VRAM is in or should be in.

cmap_regs: Paul says: You write a pixel index into the addr register, then 3
successive values into the lut reg (R,G,B) to change the color for that pixel
index.

another interesting nuance of video programming: (regarding VBL interrupts)
Paul says: VBL is vertical blanking - you can do stuff like moving the cursor
during the CRT's vertical blanking interval to avoid flicker.
cool, huh?