
	To get gamma correction, I just filled a 'xcmap' style XPM image
with the Maelstrom colormap, and displayed it with 'xv'.  I used 'xv' to
perform gamma correction on the colors, and then saved the gamma corrected
XPM, and extracted the colors to a new colormap.

	It turns out that shared memory XImage manipulation is actually
faster than shared background pixmaps.  This is because the contents of
the window can be directly manipulated via the XImage, instead of having
to be copied from the XImage.  XShmPutImage() acts as XClearArea(),
rather than XCopyArea(), and has corresponding speed.  XShmPutImage()
is faster than using shared background pixmaps, because the server
no longer has to deal with tiling and such issues.

	Asynchronous I/O works reliably under Linux, but seems to lead
to race conditions on other versions of UNIX, when used for communication
between Maelstrom and the sound server..

Actually, with the use of POSIX signal handling and select() to check
for I/O in the I/O handler, asynchronous I/O seems to work well in every
other system on which Maelstrom runs.

	The port to other UNIXes besides Linux is beyond the scope
of the rest of this document.  Let's just say it involved quite a bit of
work with byte order and sound driver development.

