THis is my perl program which generates modelines based on four pieces of input : hsync, vsync, resolution, and dotclock. The user only has to choose the vsync, the program makes suggestions beyond that point (new in 0.1.0) , or alternatively, they can specify the vsync on the command line in which case the program works non-interactively. It essentially follows the way of thinking in the XFree86 Video timings HOWTO. It was inspired by persistent failure of configuration programs I've used. It works on essentially the following logic: (note that though these numbers are given, they are all defined in the top of the program and can be easily changed) (a) The horizontal sync pulse should ideally be 10% of the horizontal frame length. (b) The horizontal blackout time should be 25% of the active (ie "drawing-on-the-screen") time (c) The vertical blackout time should be about 5% of the active time (d) THe minimum acceptable horizontal and vertical front and back porches are defined by constants (see first few lines of the program for details) (e) The sync pulses are placed somewhere between the minimal acceptable porches. The placement of the sync pulse is determined by a initial constants -- DOnovan