packages icon
Somewhere around 1986-87 I wrote a set of Mandelbrot calculation/display
programs for DEC VT340 terminals.  For the past few years, I've been
sitting in front of various displays but haven't come across anything
that can handle color sixel.  Therefore, these programs have been sitting
around collecting dust.

I was just poking around on a recent Infomagic linux disk the other day
when I stumbled across libsx.  This is a set of routines which make
writing Xwindows applications very easy.  Since I had been wanting to
write an Xwindows display program but didn't know enough about the
details of writing X applications, I explored this as an option.  xmdisp
is basically a day's worth of work with libsx.  Kudos to the author!  See
README.libsx for more information.  The package is available somewhere
around sunsite.unc.edu:/pub/Linux/X11/devel and probably other locations.

freq.c and dirlist.c were borrowed (ok, stolen) from within the libsx
examples.  hlsrgb.c includes modified versions of some routines I pulled
off DEC's internal network many eons ago.

Included in this package are sources for mcalc, xmdisp and mxwd.  mcalc
does the calculations and writes a datafile.  xmdisp reads the datafile
and produces an Xwindows display containing a fractal picture.  mxwd
reads the datafile and writes an Xwindows dump format file which can be
read by xwud and xpr.  This can also be used to convert to other file
formats via pbm or like utilities.

This kit contains the libsx header file and a static library.  The
binaries in this kit require the libsx shared library (available from
sunsite).

Also included is the file m0000.mdb which is a starter data file.  It was
calculated with 'mcalc -2 -2 4 1024 2 m0000.mdb'.  This shows the full
Mandelbrot set.

The default image size is 600x600.  This can be changed by adjusting the
values in mandelbrot.h and invoking make.  These values used to be
800x480 for VT340.  I thought 600x600 might be nicer for an Xwindows
display.

Command line arguments to mcalc are:
	left		coordinate of left edge of box
	top		coordinate of top edge of box
	height		distance from top to bottom (or left to right)
	iterations	maximum iterations before giving up (< 32766)
	limit		cutoff value (normally 2)
	filename	where to store the calculated data

xmdisp takes an optional argument which is the name of the initial file
to load.

xmdisp displays and controls include:
    Top Form:
	Quit		Leave the application
	Reload		Reload the current image. Useful for watching an
			in-progress calculation.
	Load...		Select a file to load
	File Name	Currently loaded file
    Coordinates Form:
	Left		Coordinate of left edge
	Top		Coordinate of top edge
	Height		Distance from top to bottom (or left to right)
    Parameters Form:
	Limit		Cutoff value
	Iterations	Maximum iteration count
	Processes	Number of processes used in calculation
    Color Form:
	Cycle		Start/stop color cycling
	Reset		Reset to initial colors
    Image Display:
	Press mouse button 1 and dragged across an area.  Press mouse
	button 3 to start mcalc in batch over the selected area.  This
	passes the mcalc command as input to 'batch -q J'.  If you want
	to change this command, modify SUBMIT_COMMAND in submit.h and
	rebuild.

mxwd takes two arguments.  The mcalc format input file and the name of a
file to write in xwd format.

------------------------------------------------------------------------

If you make any modifications to this software, please forward them to
me.  My email address is pfau@cnj.digex.net.