Changes from Version 0.1 to 0.2: It now responds to the "geometry" resource. Added an option "-instring" to insert keystrokes from the command line. To make this easier, I made fdm interpret the '#' keystroke as it would the Enter key. Changes in Version 1.0: Implemented the speed controls as in the DOS original. Also fdm now understands the "delay" resource. Fixed the use of random numbers. Added colormap features so that fdm looks as good as it did in DOS. It allocates 81 color cells read-write. Changes in Version 1.1: Removed all the useless stuff from xscreensaver. This also fixed the problem that fdm didn't respond to keystrokes under fvwm2. Changes in Version 1.11: Removed the dependency on the ptoc library. Stopped using trunc() (by #define-ing it to nothing). This fixed a seg fault. Changed "-delay" flag to "-speed" flag. Should work better. Figured out that fdm always fails unless X is using 8 bpp color depth. Must fix this. Changes in Version 1.12: Stopped using round() (by #define-ing it to nothing). This fixed the type 7 threads. Stopped using read/write color cells. Now fdm will work with hi-color displays (and no longer looks right on 256 color displays). Changes in Version 1.13: Moved fdm-conv.h into fdm.c. Indented & cleaned up. Added srand(). Took out most of the DOS stuff. Changes in Version 1.2: Now fdm window can be resized. Changes in Version 1.21: Changed fdm from C to C++. Changes in Version 1.22: Switched the "(co == xmax)" and "(ro == ymax)" comparisons--makes more sense. Stopped hogging CPU, by not polling wasakeypressed (). Changes in Versions 1.23-1.3: General cleanups. Now fdm window redraws when exposed. Changes in Version 1.31: Put back in XSetWindowBackground(). Changes in Version 1.33: Included GetVRoot() from the X FAQ so that fdm will work with xscreensaver. Changes in Version 1.34: "if (wasakeypressed ())" becomes "while (wasakeypressed ())". Changes in Version 1.35: Took out (C++-style) var declarations from for loops. Changed linedata from class to struct. Now fdm is back from C++ to C. Changes in Version 1.36: Changed nanosleep() to usleep() & other small changes. Changes in Version 1.370: Used yarandom from xscreensaver. Made variables & functions static. Changes in Version 1.38: Changed bool to Bool. Used #ifdef FDM_STANDALONE so that same file (fdm.c) can be an xscreensaver hack. Changed default instring to "yet". Used usleep() replacement from xscreensaver: fdm now considerably faster. Changed to usleep(10000): no noticable difference. Changes in Version 1.382: Used make_random_colormap(). Changes in Version 1.383: Surrounded all references to "rgb" array with "#ifdef FDM_STANDALONE". Changes in Version 1.384: Now, if you don't supply an "instring", a pleasing one will be randomly chosen. Changed default speed from 50 to 25. Changed variable name to "speed". Changes in Version 1.385: Moved make_random_colormap() from palupdate() to randpal(). Changed the whole speed scale: now goes from 1 to 1000. The pre-supplied instrings now come with individual default speeds. Removed the 'Q' key. Changes to documentation. Changes in Version 1.390: Revert to WhitePixel() if make_random_colormap() fails. Changes in Version 1.391: Fixed segfault that can happen during erasing of wall segment. Many cleanups. Changes in Version 1.392: Put in the atan2() from version 1.381. Improved sampleStrings[].