**************************************************************************

	MultiPlot

	MultiPlot is in the public domain.  It is intended to
	be available free to anyone who wants it.  You may use and
	distribute it as you like with the following restrictions:

	1)  You may not sell this software or charge more than a
	    small copying/hassle fee for distributing it.

	2)  You may not remove this notice from the distribution.

		Tim Mooney
		10317 Montrose Ave. #202
		Bethesda, MD 20851

****************************************************************************

	MultiPlot plots data embedded in a text file.  You tell MultiPlot in
which "columns" to expect numbers to plot.  MultiPlot reads the file, looking
for lines containing numbers in all of those "columns".  (The first word on a
line is, by definition here, in "column" 1.) When such a line is found,
MultiPlot begins to store the numbers in arrays.  If, while accumulating an
array of data, a line is found which doesn't contain numbers in all the
target "columns", the array is set aside and MultiPlot continues reading,
looking for more data.  Any number of plots can be accumulated in this way. 
Numbers, by the way, may be real, integer, or mixed.

***************************************************************************
CALLING UP THE PROGRAM

	MultiPlot is run from the CLI with the following command:

MultiPlot [flags] filename

	The flags tell MultiPlot where, in the file, to look for numbers it
can plot.  Let's say the file to be plotted is called "plotme.dat", and
the lines in this file which contain data look like:

x	y	err_in_y
.	.	.
.	.	.
.	.	.

  Some command line examples for this file:

1)	MultiPlot plotme.dat

      THIS TELLS MultiPlot TO USE DEFAULTS FOR THE COLUMN NUMBERS. 
   MultiPlot ASSUMES THE FIRST COLUMN IS X DATA, AND THE SECOND
   COLUMN IS Y DATA. 

2)	MultiPlot -x1y2 plotme.dat

   THIS MEANS EXACTLY THE SAME THING AS (1)

3)	MultiPlot -x1y2e3 plotme.dat

      THE FIRST COLUMN IS X DATA, THE SECOND IS Y DATA, AND THE
   THIRD IS ERROR_IN_Y DATA.  (MultiPlot DOESN'T COLLECT
   ERROR_IN_Y DATA UNLESS YOU TELL IT TO.)

4)	MultiPlot -x0y1 plotme.dat

      HERE IS SOMETHING NEW.  THIS SAYS THAT X DATA ARE IN COLUMN
   0.  THERE IS NO COLUMN 0, HOWEVER.  MultiPlot UNDERSTANDS
   THAT THE FILE CONTAINS NO X DATA, AND USES LINE NUMBERS --
   RELATIVE TO THE BEGINNING OF A LIST -- FOR X. 

5)	MultiPlot -e plotme.dat

      THIS USES A LOT OF DEFAULTS: X IS ASSUMED TO BE IN COLUMN 1
   SINCE NO -X FLAG OCCURS; Y IS ASSUMED TO BE IN THE NEXT
   COLUMN SINCE NO -Y FLAG OCCURS.  THE COMMAND LINE SAYS
   THAT THE FILE CONTAINS ERROR_IN_Y DATA, BUT DOESN'T SAY
   WHERE;  THE DEFAULT IS THE COLUMN AFTER THE Y DATA.  WE
   COULD HAVE GOTTEN THE SAME RESULT WITH
      "MultiPlot -x1y2e3 plotme.dat". 


**************************************************************************
SPECIFYING THE DISPLAY OF COLLECTED DATA

	When the file has been read, MultiPlot tells you how many lists of
numbers it found and asks how to plot the data.  You choose which lists and
how the chosen lists are to be plotted.  For each list, you can choose a
color or accept a default color.  You can choose a line plot, a point plot,
or both for any list.  If your choice includes a point plot, you can choose a
point size.  (Defaults exist for every choice.)

	The line of text you type to tell MultiPlot how to plot the data is
called a "HowTo string".  The syntax is tersely described in the instructions
you can get interactively by typing "?".  I'm not going to repeat all the
details here, but I will give examples which can be used with the sample data
file "plotme.dat". 

1)	carriage return

      THIS GETS A DEFAULT FOR ALL ACCUMULATED LISTS: LINE PLOTS IN
   COLORS BEGINNING WITH 0 AND INCREASING. 

2)	!p

      THIS GETS A POINT PLOT FOR ALL LISTS.  THE POINT SIZE IS 4
   (DEFAULT).  THE COLORS BEGIN WITH 0 AND INCREASE. 

3)	1p 2p 3p 4p

      THIS GETS POINT PLOTS FOR THE FIRST FOUR LISTS AND NO PLOT FOR THE
   REST.  THE COLORS ARE 1 2 3 4.  THE POINT SIZE IS 4. 

4)	p1 p2 p3 p4

      THIS GETS POINT PLOTS IN DEFAULT COLORS FOR THE FIRST FOUR LISTS
   AND NO PLOT FOR THE REST.  THE POINT SIZE IS 1 (MINIMUM) FOR THE
   FIRST PLOT, 2 FOR THE SECOND... 

5)	1l 1l 1l 1l

      THIS GETS LINE PLOTS FOR THE FIRST FOUR LISTS AND NO PLOT FOR THE
   REST.  ALL PLOTS ARE IN COLOR 1. 

6)	0p 1p 2p 3p 0l 1l 2l 3l

      THIS GETS POINT PLOTS FOR THE FIRST FOUR LISTS AND LINE PLOTS FOR
   THE NEXT FOUR.  THE POINT SIZE IS 4 SINCE IT IS NOT SPECIFIED. 
   THIS IS MY PERSONAL FAVORITE FOR THIS FILE SINCE THE FILE
   COMPRISES FOUR LISTS OF DATA AND FOUR LISTS OF FITS TO THAT DATA. 

7)	0p - - - 1l

      THIS GETS A POINT PLOT IN COLOR 0 OF THE FIRST LIST AND A LINE
   PLOT IN COLOR 1 OF THE FIFTH LIST.  NO OTHER LISTS ARE PLOTTED. 
   THE POINT SIZE IS 4. 


8)	- 0p - - - 1l

      THIS GETS A POINT PLOT FOR THE SECOND LIST AND A LINE PLOT FOR THE
   SIXTH.  OTHERWISE, THIS IS THE SAME AS (7)


	There are more things you can specify about the plot.  I went a
little crazy putting in options and still there are things left out.
This will get you started.


**************************************************************************
MultiPlot and PLPLOT

    In addition to its own plotting routines, MultiPlot is now linked
to a customized version of PLPLOT, which is a package of data-plotting
routines written by a series of people including Tim Pearson, Sze Tan, and
Tony Richardson, the last of whom ported the package to the Amiga.  To use
PLPLOT instead of MultiPlot's graphics routines, type the plot switch "/P"
at the beginning of the "HowTo" string described above.  PLPLOT will type a
menu of output devices from which you can select one by number.

     If you select the output device "IntroCAD Plus", MultiPlot (PLPLOT)
will attempt to locate IntroCAD Plus' ARexx port.  If the port is found,
PLPLOT will send messages to IntroCAD Plus to draw the plot on IntroCAD
PLus' screen and into its drawing list.  When the drawing is complete, you
can save it, print it, plot it, and edit it just as you would any other
IntroCAD drawing.

    If PLPLOT cannot find IntroCAD Plus' ARexx port, it will assume that
IntroCAD is not running and will try to start the program up.  If startup
is successful, when finished PLPLOT will ask you if you want to close
IntroCAD down.

    Complete source code for MultiPlot is not included with the IntroCAD
Plus distribution in part because one of the authors of PLPLOT has asked
that modified versions of that software not be generally distributed.
Another of the files required to make MultiPlot, "rexxglue.o", is not
included in any form because it is part of ARexx, and not freely
distributable.

    The few PLPLOT routines that were written for, or most thoroughly
modified for use with, MultiPlot have been included along with a "diff"
file, in which are listed differences between other modified PLPLOT files
and corresponding files in the original PLPLOT distribution on Fish Disk
#222.  Most of the modifications listed in the "diff" file fixed minor bugs
or allowed for compilation under Manx 3.6a.

    

**************************************************************************
MENUS, ETC. IN MULTIPLOT NATIVE (NON-PLPLOT) GRAPHICS

	Once you have a plot on the screen, you can zoom in and out, call up
a crosshair, and generally have a splashing time peering at your data from
close in, far away, etc.  Using the "Make PltFile" item from the "Project"
menu, you can write the display to a file that can then be sent to a (HPGL)
plotter via something like

	"COPY MYFILE.PLT0 TO SER:"

   You can export the full plot to IntroCAD (either IntroCAD or IntroCAD
Plus) by a two-step process:

1) Select "Make TXTFile" from the "Project" menu;
This creates a file called (in the current example) "myfile.txt0", which is
a text file that can easily be translated to an IntroCAD file.
      
2) run txt_2_icad from the CLI with a command like:
	txt_2_icad myfile.txt0 myfile.cad

