[comp.sources.amiga] v90i242: ListPlot - 2d plotting program, Part01/03

amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator) (08/23/90)

Submitted-by: Anthony M. Richardson <amr@dukee.egr.duke.edu>
Posting-number: Volume 90, Issue 242
Archive-name: applications/listplot/part01

[ the manual page was uuencoded for posting  ...tad ]

ListPlot is a 2D plotting program built around the PLPLOT plotting library.
Although working directly with the PLPLOT library routines is more
flexible, ListPlot is quite powerful.  

#!/bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 3)."
# Contents:  Csrc Csrc/datatypes.h Csrc/input.c Make Makefile README
#   docs docs/ListPlot.1 examples examples/README examples/lineinput
#   examples/lineplot examples/loginput examples/logplot
#   examples/polarinput examples/polarplot plstnd.fnt.uu
# Wrapped by tadguy@abcfd20 on Wed Aug 22 21:03:20 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test ! -d 'Csrc' ; then
    echo shar: Creating directory \"'Csrc'\"
    mkdir 'Csrc'
fi
if test -f 'Csrc/datatypes.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Csrc/datatypes.h'\"
else
echo shar: Extracting \"'Csrc/datatypes.h'\" \(3681 characters\)
sed "s/^X//" >'Csrc/datatypes.h' <<'END_OF_FILE'
X/*
X * datatypes.h
X */
X
Xtypedef	char	generic;
Xtypedef	int	bool;
X#define FALSE	(bool)0
X#define	TRUE	(!FALSE)
Xtypedef	float	FLOAT;
X
X#if	defined(ibmRT)
X#	define	MAX_FLOAT	1.701e38
X#endif
X#if	defined(vax) || defined(vax3200) || defined(dgmv)
X#	define	MAX_FLOAT	1.701e38
X#endif
X
Xstruct list_atom {
X	generic *la_p;
X	struct list_atom	*la_next;
X};
Xtypedef	struct list_atom LATOM;
Xtypedef	struct list {
X	int	list_n;
X	LATOM	*list_head;
X	LATOM	*list_tail;
X	} LIST;
X
Xtypedef enum data_type {
X	integer,
X	dbl,
X	flt,
X	byte,
X	string,
X	interval,
X	boolean,
X	set,
X	rect
X	} DATATYPE;
X#define	isInteger(V) (V.val_type == integer? TRUE : FALSE)
X#define	isDbl(V) (V.val_type == dbl? TRUE : FALSE)
X#define	isFlt(V) (V.val_type == flt? TRUE : FALSE)
X#define	isByte(V) (V.val_type == byte? TRUE : FALSE)
X#define	isString(V) (V.val_type == string? TRUE : FALSE)
X#define	isInterval(V) (V.val_type == interval? TRUE : FALSE)
X#define	isBoolean(V) (V.val_type == boolean? TRUE : FALSE)
X#define	isSet(V) (V.val_type == set? TRUE : FALSE)
X#define	isRect(V) (V.val_type == rect? TRUE : FALSE)
X
X#define	VtoInteger(V) (V).val_u.udt_int
X#define	VtoDbl(V) (V).val_u.udt_dbl
X#define	VtoFlt(V) (V).val_u.udt_flt
X#define	VtoByte(V) (V).val_u.udt_byte
X#define	VtoString(V) (V).val_u.udt_string
X#define	VtoInterval(V) (V).val_u.udt_interval
X#define	VtoBoolean(V) (V).val_u.udt_bool
X#define	VtoSet(V) (V).val_u.udt_set
X#define	VtoRect(V) (V).val_u.udt_rect
X
X
X
Xtypedef	struct interval {
X	double	int_lo, int_hi;
X	} INTERVAL;
X
Xtypedef	LIST	SET;
X
Xtypedef	struct rect {
X		FLOAT	r_diag[4];		/* xmin,ymin, xmax,ymax */
X	} RECT;
X#define	XMin	r_diag[0]
X#define	YMin	r_diag[1]
X#define	XMax	r_diag[2]
X#define	YMax	r_diag[3]
X
Xtypedef union data_types {
X	char		udt_byte;
X	int		udt_int;
X	bool		udt_bool;
X	double		udt_dbl;
X	float		udt_flt;
X	char		*udt_string;
X	INTERVAL	udt_interval;
X	SET		udt_set; 		/* {a,b,c,...}	*/
X	RECT		udt_rect;
X	} UTYPE;
X
Xtypedef	struct	value	{
X	DATATYPE	val_type;
X	UTYPE		val_u;
X	} VALUE;
X
X#define	Vstrcmp(V, S)	(V.val_type==string? strcmp(V.val_u.udt_string,S)==0? TRUE : FALSE : FALSE)
X#define	Vstrchr(V, C)	(V.val_type==string? strchr(V.val_u.udt_string,C)==(char *)NULL? FALSE : TRUE : FALSE)
X
Xtypedef struct arg_def {
X	VALUE	*ad_value;
X	char	*ad_id;
X	char	*ad_options;
X	char	*ad_opttype;
X	char	*ad_default;
X	char	*ad_defaultType;
X	char	**ad_helptext;
X} ARGDEF;
X
X
X#ifdef	ANSI_C
Xvoid	ErrorExit();
Xbool	Append(LIST *L, generic *Ptr);
Xchar	*malloc(unsigned int);
Xchar	*calloc(unsigned int, unsigned int);
Xchar	*StrDup(char *Str);
Xvoid	get_args(
X		int argc,
X		char **argv,
X		ARGDEF *Symbols[],
X		char *Usage[],
X		char *Function[]
X	);
Xvoid	PrintArgDef(FILE *Fp, ARGDEF *D);
Xvoid	PrintArg(FILE *Fp, ARGDEF *D);
Xbool	ParseArg(ARGDEF *Symbols[], char *arg);
Xbool	ParseEntry(ARGDEF *Entry, char  *arg);
Xbool	ParseString(ARGDEF *Entry, char *Option, int n, char *arg);
Xbool	ParseDbl(ARGDEF *Entry, char *arg);
Xbool	ParseFloat(ARGDEF *Entry, char *arg);
Xbool	ParseInt(ARGDEF *Entry, char *arg);
Xbool	ParseBool(ARGDEF *Entry, char *arg);
Xbool	ParseByte(ARGDEF *Entry, char *arg);
Xbool	ParseInterval(ARGDEF *Entry, char *arg);
Xbool	ParseSet(ARGDEF *Entry, char *arg, char *Type, int TypeWidth);
Xbool	ParseRect(ARGDEF *Entry, char *arg);
X
Xvoid	PrintUsage(
X		FILE	*Fp,
X		char	*Usage[],
X		char	*Function[],
X		ARGDEF	*Symbols[]
X	);
Xvoid	SetDefaults(ARGDEF *Symbols[]);
Xbool	SetValue(VALUE *, char *Value, char *Type);
Xbool	SetString(VALUE *, char *);
Xbool	SetDbl(VALUE *, char *);
Xbool	SetFloat(VALUE *, char *);
Xbool	SetInt(VALUE *, char *);
Xbool	SetBool(VALUE *, char *);
Xbool	SetByte(VALUE *, char *);
Xbool	SetInterval(VALUE *, char *);
Xbool	SetSet(VALUE *, char *, char *, int);
Xbool	SetRect(VALUE *, char *);
X
X#else
X#endif
END_OF_FILE
if test 3681 -ne `wc -c <'Csrc/datatypes.h'`; then
    echo shar: \"'Csrc/datatypes.h'\" unpacked with wrong size!
fi
chmod +x 'Csrc/datatypes.h'
# end of 'Csrc/datatypes.h'
fi
if test -f 'Csrc/input.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Csrc/input.c'\"
else
echo shar: Extracting \"'Csrc/input.c'\" \(4974 characters\)
sed "s/^X//" >'Csrc/input.c' <<'END_OF_FILE'
X/*
X * input.c
X *
X *	Gets data to be plotted
X */
X#include <stdio.h>
X#include <errno.h>
Xextern int errno;
X#include <assert.h>
X#include <ctype.h>
X#include "datatypes.h"
X
X
XFLOAT	**
XGetData(Fp, m, n)
XFILE	*Fp;
Xint	*m, *n;
X{
X#ifdef	ANSI_C
X	FLOAT	**GetDataMem(FILE *fp, int *M, int *N);
X#else
X	FLOAT	**GetDataMem();
X#endif
X
X	return(GetDataMem(Fp, m, n));
X}
X
X
Xbool
XAppend(L, Ptr)
Xregister LIST	*L;
Xgeneric	*Ptr;
X{
X	register LATOM	*A;
X
X	assert(L != (LIST *)NULL);
X	assert(L->list_n >= 0);
X
X	if ((A = (LATOM *)calloc(1, sizeof(LATOM))) == (LATOM *)NULL) {
X		perror("(AppendDbl) ");
X		ErrorExit();
X	}
X	A->la_p = Ptr;
X	A->la_next = (LATOM *)NULL;
X
X	if (L->list_n == 0) {
X		/* empty list */
X		assert(L->list_head == (LATOM *)NULL);
X		assert(L->list_tail == (LATOM *)NULL);
X		L->list_head = A;
X		L->list_tail = A;
X		L->list_n = 1;
X	} else {
X		assert(L->list_head != (LATOM *)NULL);
X		assert(L->list_tail != (LATOM *)NULL);
X		L->list_tail->la_next = A;
X		L->list_tail = A;
X		L->list_n++;
X	}
X	return(TRUE);
X}
X
X
XFLOAT	**
XGetDataMem(Fp, m, n)
XFILE	*Fp;
Xint	*m, *n;
X{
X	int	i;
X	int	C;
X	int	NTuples, TupleSize;
X	double	D;
X	FLOAT	*F;
X	FLOAT	*Tuple;
X	FLOAT	**Data;
X	LIST	TupleL1;
X	LIST	TupleList;
X	LATOM	*A;
X#ifdef	ANSI_C
X	bool GetNextDbl(FILE *, double *, int *);
X#else
X	bool GetNextDbl();
X#endif
X	
X	TupleL1.list_n = 0;
X	TupleL1.list_head = (LATOM *)NULL;
X	TupleL1.list_tail = (LATOM *)NULL;
X
X	/* read first line to determine tuple size	*/
X	NTuples = 0;
X	i = 0;
X	do {
X		if (GetNextDbl(Fp, &D, &C) == TRUE) {
X			if ((F = (FLOAT *)calloc(1, sizeof(FLOAT))) == (FLOAT *)NULL) {
X				perror("(GetDataMem) ");
X				ErrorExit();
X			}
X			*F = D;
X			Append(&TupleL1, (generic *)F);
X			++i;
X		} else {
X			break;
X		}
X	} while(C != '\n' && C != EOF);
X
X	TupleSize = i;
X	if ((Tuple=(FLOAT *)calloc(TupleSize, sizeof(FLOAT))) == (FLOAT *)NULL) {
X		perror("(GetDataMem) ");
X		ErrorExit();
X	}
X	for (A=TupleL1.list_head,i=0; i<TupleSize; i++,A=A->la_next) {
X		Tuple[i] = *((FLOAT *)(A->la_p));
X	}
X
X	/* initialize list of tuples	*/
X	TupleList.list_n = 0;
X	TupleList.list_head = (LATOM *)NULL;
X	TupleList.list_tail = (LATOM *)NULL;
X	Append(&TupleList, (generic *)Tuple);
X
X	/* get remaining tuples	*/
X	i = 1;
X	do {
X		if ((Tuple=(FLOAT *)calloc(TupleSize, sizeof(FLOAT))) == (FLOAT *)NULL) {
X			perror("(GetDataMem) ");
X			ErrorExit();
X		}
X		if (GetNextTuple(Fp, Tuple, TupleSize, &C) == TRUE) {
X			Append(&TupleList, (generic *)Tuple);
X			++i;
X		}
X	} while(!feof(Fp));
X
X	if ( C != EOF ) {
X		fprintf(stderr,"Error encountered while trying to read data stream...\n");
X		ErrorExit();
X	} else {
X		NTuples = i;
X	}
X
X
X	/* convert to list of tuples to vectorized array */
X	if ((Data = (FLOAT **)calloc(NTuples, sizeof(FLOAT *))) == (FLOAT **)NULL) {
X		perror("(GetDataMem) ");
X		ErrorExit();
X	}
X
X	for (A=TupleList.list_head,i=0; i<NTuples; i++,A=A->la_next) {
X		Data[i] = (FLOAT *)A->la_p;
X	}
X
X	*m = NTuples;
X	*n = TupleSize;
X	return(Data);
X}
X
X
Xbool
XGetNextTuple(Fp, Tuple, n, C)
XFILE	*Fp;
XFLOAT	*Tuple;
Xint	n;
Xregister int	*C;
X{
X	register int	j;
X	double		D;
X#ifdef	ANSI_C
X	bool GetNextDbl(FILE *, double *, int *);
X#else
X	bool GetNextDbl();
X#endif
X
X	for (*C=' ',j=0; j<n && isspace((char)(*C)) && *C != EOF && *C != '\n'; ) {
X		if (GetNextDbl(Fp, &D, C) == TRUE) {
X			Tuple[j++] = D;
X		}
X	}
X	/* strip trailing any trailing characters */
X	for (; *C != '\n' && *C != EOF; )
X		*C = fgetc(Fp);
X	
X	if ( j>0 && j<(n-1) ) {
X		/* error */
X		if (*C == EOF) {
X			fprintf(stderr,"Unexpected EOF while reading data!\n");
X		} else if (*C == '\n') {
X			fprintf(stderr, "Unexpected EOL while reading tuple...\n");
X		} else {
X			fprintf(stderr, "Unable to interpret data stream...\n");
X		}
X		ErrorExit();
X	}
X	return(j==n? TRUE : FALSE);
X}
X
Xbool
XGetNextDbl(Fp, D, C)
XFILE	*Fp;
Xdouble 	*D;
Xregister int	*C;
X/* returns next uninterpreted character in C and
X *	TRUE if found double else FALSE.
X */
X{
X	register int	i;
X	register char	*cp;
X	char		s[64];
X	int		flag;
X
X	for (flag=0,i=0,cp=s; i<sizeof(s)-1; ) {
X		if ((*C = fgetc(Fp))  == EOF) {
X			if (flag) {
X				*cp = (char)NULL;
X				if (sscanf(s, "%lf", D) == 1) {
X					return(TRUE);
X				} else {
X					/* error */
X					fprintf(stderr,"Encountered nonnumeric item in data stream...\n");
X					ErrorExit();
X				}
X			} else {
X				return(FALSE);
X			}
X		} else if (*C == '\n') {
X			if (flag) {
X				*cp = (char)NULL;
X				if (sscanf(s, "%lf", D) == 1) {
X					return(TRUE);
X				} else {
X					/* error */
X					fprintf(stderr,"Encountered nonnumeric item in data stream...\n");
X					ErrorExit();
X				}
X			} else {
X				return(FALSE);
X			}
X		} else if (isspace(*C)) {
X			if (flag) {
X				*cp = (char)NULL;
X				if (sscanf(s, "%lf", D) == 1) {
X					return(TRUE);
X				} else {
X					/* error */
X					fprintf(stderr,"Encountered nonnumeric item in data stream...\n");
X					ErrorExit();
X				}
X			} else {
X				continue;
X			}
X		} else {
X			flag = 1;
X			*cp++ = (char)(*C);
X			++i;
X		}
X	}
X	fprintf(stderr,"Possible internal error...\nEncountered data item greater than %d characters!\n", sizeof(s)-1);
X	
X	ErrorExit();
X}
END_OF_FILE
if test 4974 -ne `wc -c <'Csrc/input.c'`; then
    echo shar: \"'Csrc/input.c'\" unpacked with wrong size!
fi
# end of 'Csrc/input.c'
fi
if test -f 'Make' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Make'\"
else
echo shar: Extracting \"'Make'\" \(45 characters\)
sed "s/^X//" >'Make' <<'END_OF_FILE'
Xlmk -f Makefile CC=lc OTHERDEFS=-DANSI_C all
END_OF_FILE
if test 45 -ne `wc -c <'Make'`; then
    echo shar: \"'Make'\" unpacked with wrong size!
fi
chmod +x 'Make'
# end of 'Make'
fi
if test -f 'Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Makefile'\"
else
echo shar: Extracting \"'Makefile'\" \(744 characters\)
sed "s/^X//" >'Makefile' <<'END_OF_FILE'
X
XH=/Csrc
XCFLAGS=-ff -i$(H) $(OTHERDEFS)
XCSRC=Csrc
XPLPLOT=lib:plpffp.lib
X
XTARGET= ListPlot
X
XOBJECTS= \
X  $(CSRC)/get_args.o\
X  $(CSRC)/input.o\
X  $(CSRC)/plotting.o
X
X
Xall:	$(OBJECTS) $(TARGET)
X
Xclean:
X	delete #?.o
X
X$(CSRC)/get_args.o: $(CSRC)/get_args.c $(CSRC)/datatypes.h
X	$(CC) $(CFLAGS) $(CSRC)/get_args.c
X
X$(CSRC)/input.o: $(CSRC)/input.c $(CSRC)/datatypes.h
X	$(CC) $(CFLAGS) $(CSRC)/input.c
X
X$(CSRC)/ListPlot.o: $(CSRC)/ListPlot.c $(CSRC)/datatypes.h
X	$(CC) $(CFLAGS) $(CSRC)/ListPlot.c
X
X$(CSRC)/plotting.o: $(CSRC)/plotting.c $(CSRC)/datatypes.h
X	$(CC) $(CFLAGS) -dMAX_FLOAT=9.e18 $(CSRC)/plotting.c
X
XListPlot: $(CSRC)/ListPlot.o $(OBJECTS)
X	blink lib:c.o $(CSRC)/ListPlot.o $(OBJECTS) to ListPlot lib lib:lcmffp.lib lib:lc.lib $(PLPLOT)
END_OF_FILE
if test 744 -ne `wc -c <'Makefile'`; then
    echo shar: \"'Makefile'\" unpacked with wrong size!
fi
chmod +x 'Makefile'
# end of 'Makefile'
fi
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(7752 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
XABOUT LISTPLOT
X
XListPlot is a 2D plotting program built around the PLPLOT plotting library.
XAlthough working directly with the PLPLOT library routines is more
Xflexible, ListPlot is quite powerful.  
X
XListPlot was ported from a UNIX program written by myself and (mainly)
XRick Bartram. It reads from stdin and writes to stdout unless input
Xand/or output files are specified on the command line. (Reading from
Xstdin is of dubious value on the Amiga, since the standard shell does
Xnot support pipes.) The program accepts a file of n-tuples. Each tuple
Xconsists of space-separated numbers terminated with a newline. The
Xfirst element of each tuple is the independent variable. Each remaining
Xvariable is plotted against the first to produce n-1 curves.
X
XLinear-linear, linear-log, log-linear, log-log, and polar graphs are
Xsupported.
X
XListPlot supports several output devices. By default the graph is drawn
Xin a window on the Amiga's screen. With command line options the graph
Xcan be 
X  1) sent to any preferences printer with graphics capability
X  2) stored as an IFF file
X  3) stored in HPGL format
X  4) stored in Aegis Draw format
X  5) stored as an Encapsulated Postscript File.
X
XA variety of line styles and colors are available.
X
XOverlining, underlining, subscripting, superscripting, and greek
Xcharacters can be used within labels.
X
X
XINSTALLATION
X
XCopy ListPlot to a directory in your path. The file plstnd.fnt
Xcontains the fonts that ListPlot uses.  It looks for this file in
Xplfonts:plstnd.fnt. So you need to store this file in a convenient
Xdirectory and make the appropriate assign.
X
X  Example:
X    makedir sys:plfonts
X    copy plstnd.fnt sys:plfonts
X    assign plfonts: sys:plfonts
X
XYou'll probably want to add the "assign" command to your startup sequence.
X(plstnd.fnt is the same as that used in the most recent versions
X(3.0 or higher) of PLPLOT)
X
XListPlot uses the FFP math libraries supplied by Commodore, so make
Xsure the mathtrans.library file is in your libs: directory.
X
XThe PLPLOT library uses the palette program that comes with the
XWorkBench 1.3 enhancer package as a color requester. PLPLOT looks for
Xthis program in tools: and, if it's not there, it looks in sys:tools.
XYou'll probably want to assign" tools: to the directory in which the
Xpalette program resides. (At least until you get the colors set the
Xway you want them.)
X
X
X
XTRYING OUT LISTPLOT
X
XBecause of the large number of command line options, it usually easiest
Xto create simple shell scripts to call ListPlot. Some example
Xscripts are provided in the examples directory. (These are standard 
XAmiga shell scripts). To test out ListPlot, try one or all of the 
Xfollowing
X
X   execute lineplot lineinput
X   execute logplot loginput
X   execute polarplot polarinput
X
X
X
XTHE DEVICE DRIVERS
X
XThe device drivers are those provided by PLPLOT.  I've excerpted the
Xfollowing descriptions from the PLPLOT distribution.
X
X Amiga window
X
X   You can resize the window while the program is plotting in the
X   window (see the "Redraw Enabled" section below).  
X   Use the close gadget to close the window and exit ListPlot.
X
X   "Plplot" menu selections:
X
X       "Save Configuration"
X          - Saves current window configuration (window size, screen type,
X            screen depth, colors, resolution, etc.). The configuration
X            is saved in s:Plplot.def (only 54 bytes).
X
X       "Reset"
X          - Resets the window to the configuration in s:Plplot.def
X            (or to a default config if this file doesn't exist).
X
X       "Maintain Plot Aspect"
X          - If this is checked the plot aspect ratio is maintained as the
X            window is resized (handy for polar plots, etc.). Default
X            is unchecked in which case x and y are stretched
X            independently to fit in the window.
X
X       "Redraw Enabled"
X          - If this is checked, then the graphics commands are buffered
X            in t:plplot.dat. This file is used to redraw the plot when
X            required. It's status is checked only when a new graph is
X            started. The buffer is also used to create the "Full Page"
X            prints under the "Print" selection.
X
X       "Select Screen Type"
X          - A submenu allows the user to select either "Workbench" or
X            "Custom".
X
X       "Print"
X          - There are three submenu options here. The "Bitmap Dump"
X            does just that (with full preferences support). The
X            output is pretty jagged, but you can play around with
X            the preferences stuff (scaling, smoothing, etc.) to
X            improve things. The other two submenus are
X            "Full Page (Landscape)" and "Full Page (Portrait)". This
X            uses the graphics buffer file (see "Redraw Enabled" above)
X            to create graphics output similar to the preferences
X            driver. However the aspect ratio can not be maintained.
X            Same preferences options are used as in preferences driver.
X
X       "Save Bitmap as IFF File"
X          - Self explanatory. You can use this to save your images and
X            then touch them up (do area fills, etc.) with your favorite
X            paint program.
X
X   "Screen Format" selections: (This menu only appears on the custom screen)
X       "Interlaced"
X       "High Resolution"
X       "Number of Colors"
X       "Set Color Palette"
X          - I think these are all self-explanatory. You can select either
X            2, 4, 8, or 16 colors.
X
X
X
X Preferences
X
X   The preferences driver creates a black and white graph on your
X   preferences supported printer. It uses the preferences selected
X   density and page size limits and ignores most of the other stuff.
X   If you have selected "ignore" in the page size limit options
X   (see the 1.3 Enhancer manual) then a full page graph is produced.
X   The other options operate as described in the Enhancer manual.
X   Only "ignore" and "bounded" produce aspect ratio correct plots
X   (usually unimportant unless x and y must have the same scaling
X   like for pie charts or polar plots). You can get very high quality
X   plots with this driver. A full page, high resolution plot
X   requires a lot of memory though (An 8"x10" 300 dpi plot requires
X   (8*300)*(10*300)/8 = 900000 bytes).  You can use the page limits
X   to reduce the memory requirements and still get high quality
X   output.
X
X
X iff
X
X   The IFF driver will prompt for resolution and page size.
X
X
X hp 
X
X   The plt: device is an HP plotter compatible device handler written by
X   Jim Miller and Rich Champeaux. It is freely redistributable, but
X   it is not included with this package (it's big enough already!).
X   It gives high quality output like the preferences driver but with
X   full preferences support. Usually requires less memory (for full
X   page plots) than the preferences driver, but is slower. Highly
X   recommended if you have a color printer or are memory strapped.
X   I don't know exactly which model HP plotter this is compatible
X   with (the HP7470 I think).
X
X
X aegis
X
X   I created this one because I have Draw2000 and it was easy to do.
X   This provides a very convenient method for touching up simple
X   graphs with paint-like tools.
X
X
X postscript
X
X   Encapsulated PostScript File.
X
X
X
X
XTHINGS YET TO BE DONE
X
XThere may be a 3D/contour version of ListPlot if there is enough interest.
X(PLPLOT does 3D and contour plotting and so the extension to ListPlot should
Xbe fairly simple.)
X
X
XREPORT BUGS TO
X   
X   Tony Richardson
X
X   EMAIL   amr@dukee.egr.duke.edu       (Internet address)
X
X   USMAIL  Tony Richardson              Tony Richardson
X           Dept of Elect Eng            311 S. LaSalle St. #41B
X           Duke University              Durham, NC 27705
X           Durham, NC 27706
X
X           ph 919-660-5262              ph 919-286-7101
X
END_OF_FILE
if test 7752 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
chmod +x 'README'
# end of 'README'
fi
if test ! -d 'docs' ; then
    echo shar: Creating directory \"'docs'\"
    mkdir 'docs'
fi
if test -f 'docs/ListPlot.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'docs/ListPlot.1'\"
else
echo shar: Extracting \"'docs/ListPlot.1'\" \(9286 characters\)
sed "s/^X//" >'docs/ListPlot.1' <<'END_OF_FILE'
X.de PP
X.sp 1;.ne 2
X.en
X.TH ListPlot 1 "AMIGA Manual" 5/15/90 "Duke University"
X.SH NAME
XListPlot - a vanilla plotting filter
X.SH SYNOPSIS
X.B ListPlot
X[ options ]
X.SH DESCRIPTION
X.I ListPlot
Xa simple 2D plotting filter based on the
X.I PLPLOT
Xplotting library.
X.PP
XIts principle advantage is that it supports a variety of graphics
Xdevices.  
X.PP
X.IR ListPlot
Xreads from stdin and writes to stdout unless input and/or
Xoutput files are specified on the command line.
XThe program accepts a file of n-tuples.  Each tuple consists of
Xa sequence of space-separated numbers terminated with a newline.
XThe first element of each tuple is assumed to be the independent
Xvariable.  Each remaining element is plotted against the first to
Xproduce n-1 curves.
X.PP
X.IR ListPlot
Xtakes a number of command line arguments that may be
Xused to control the appearance of the plots.
XCommand line arguments are specified in the form
X.ti +10
X.IR variable=value
X.PP
XFor a list of the arguments enter:
X.sp
X.ti +10
XListPlot Help=All.
X.SH VARIABLES TYPES
X.ta
X.in 20
X.ta 20
X.ti -10
X.B Boolean
X@tvalues accept values such as 
X.B true, false, yes, no, on, off, 0, 
Xand 
X.B 1
X(ex. PlotColor=yes).
X.sp
X.ti -10
X.B String
X@tvalues expect the strings to entered as
Xindicated and is case sensitive (ex. Domain=All).
X.sp
X.ti -10
X.B Dbl
X@tvalues expect real numbers (ex. AspectRatio=1.0).
X.sp
X.ti -10
X.B Interval
X@tvalues expect a pair of comma separated reals
X(ex. Range=-1.0,3.0).
X.sp
X.ti -10
X.B Set
X@tvalues expect a list of comma separated elements enclosed in
Xcurly braces ({}). (ex. LineStyle={MS,MMS,MSmmS})
X.sp
X.ti -10
X.B Rect
X@tvalues expect a list of comma separated numbers representing
Xa diagonal from the lower-left corner to the upper-right corner
X(ex. ViewPort={0.1,0.3, 0.9,0.6}).
X.in 10
X
X.PP
XThe title and label variables accept strings that include
Xthe following control sequences:
X.sp
X.in +10
X.B #u: 
Xmove up to superscript (ended with 
X.B #d
X)
X.br
X.B #d: 
Xmove down to subscript (ended with
X.B #u
X)
X.br
X.B #b: 
Xbackspace to allow overprinting
X.br
X.B ##: 
Xthe number symbol
X.br
X.B #+: 
Xtoggle overline mode
X.br
X.B #-: 
Xtoggle underline mode
X.br
X.B #gx: 
XGreek letter corresponding to Roman letter x
X.br
X.in -10
X.SH OPTIONS
XThe currently available arguments are indicated below.
X.B Bold
Xface arguments indicate that they should be entered
Xexactly as shown.
XAn '*' indicates that an arbitrary string may be given.
XA string with embedded spaces must be quoted.
X
X.in +10
X.ti -10
X.B AngularUnit=[ degrees | radians ]
X.br
X.I AngularUnit
Xspecifies the angular unit of measure
Xused for polar plots.  For angles in radians use 
X.B AngularUnit=radians.
X.sp 1
X.ti -10
X.B AnnotationScale=[ 
X.I dbl 
X.B ]
X.br
X.I AnnotationScale
Xcontrols the size of the characters
Xused to annotate the axes.
X.sp 1
X.ti -10
X.B AspectRatio=[ 
X.I dbl
X.B | Automatic ]
X.br
X.I AspectRatio
Xcontrols the relative lengths of the vertical to horizontal axes.
XIf set this value overrides the value of 
X.I ViewPort.
X.sp 1
X.ti -10
X.B Boxed=[
X.I boolean
X.B | * ]
X.br
X.I Boxed
Xadds axes to the edges of the plot.
XIf 
X.I Boxed
Xis given a boolean value then axes are placed on
Xall of the edges.  If 
X.I Boxed
Xis given a string consisting
Xof one or more of 
X.I t, b, r, l
Xthen axes are added to
Xtop, bottom, right and left edges respectively.
X.sp 1
X.ti -10
X.B Domain=[
X.I interval
X.B | All | Automatic ]
X.br
X.I Domain
Xmay be used to specify the bounds on the X axis.
XWhen set to 
X.B All, 
Xall points are plotted.  When set to
X.B Automatic, 
Xoutlying points may not be plotted.
X.sp 1
X.ti -10
X.B Gridding=[
X.I boolean
X.B ]
X.br
X.I Gridding
Xputs a grid on the plot.
X.sp 1
X.ti -10
X.B Help=[ All | all | * ]
X.br
X.I Help
Xprovides some descriptive text for the user-settable
Xplotting variables.  If the variable 
X.I Verbose
Xis set then an extended description is provided. To set verbose enter
X.br
X.sp
XListPlot Verbose=yes Help=[
X.I variable
X|
X.B All
X].
X.sp 1
X.ti -10
X.B LabelScale=[
X.I dbl
X.B ]
X.br
X.I LabelScale
Xspecifies the relative size of the vertical and
Xhorizontal axis labels.  The typical range is [0.5 - 2.0].
X.sp 1
X.ti -10
X.B LineColor=[
X.I set
X.B ]
X.br
X.I LineColor
Xmay be used to specify a list of line colors for
Xplots with multiple curves if this feature is supported for
Xa particular output device.
X.sp 1
X.ti -10
X.B LineStyle=[
X.I set
X.B ]
X.br
X.I LineStyle
Xmay be used to specify a list of line styles for
Xplots with multiple curves.  Each linestyle is specified as
Xa sequence of pen down... pen up elements. The elements are encoded
Xusing the following characters to indicate element lengths:
X.in +10
X.br
X.B m: 
X250 micron mark
X.br
X.B M: 
X1mm mark
X.B (mmmm)
X.br
X.B s: 
X250 micron space
X.br
X.B S: 
X1mm space
X.B (ssss)
X.br
X.in -10
XFor example, a set of line styles might be indicated
X.ti +10
XLineStyle={MS,MMSS,MMSmmS,mmS,mmSmmSMMS}
X.sp 1
X.ti -10
X.B Orientation=[ portrait | landscape ]
X.br
X.I Orientation
Xcontrols whether the plot is displayed in
Xlandscape or portrait orientation.
X.sp 1
X.ti -10
X.B Origin=[
X.I interval
X.B | Automatic | Median ]
X.br
X.I Origin
Xallows the placement of a set of axes at an 
Xarbitrary point.
XThe 
X.I Median 
Xvalue places the axes at the median 
X.I X 
Xand the median
X.I Y 
Xof the data values.
X.sp 1
X.ti -10
X.B PlotColor=[
X.I boolean
X.B ]
X.br
X.I PlotColor
Xif 
X.B true
Xcauses the plot to generated in color if this
Xfeature is supported on a particular output device.
X.sp 1
X.ti -10
X.B PlotJoined=[
X.I boolean
X.B ]
X.br
X.I PlotJoined,
Xif set, connects each data point with a line in the
Xcurrent line style.
X.sp 1
X.ti -10
X.B PlotPoints=[
X.I boolean
X.B ]
X.br
X.I PlotPoints
Xif 
X.B true
Xcauses symbols to be plotted in the current
Xsymbol style at each data point.
X.sp 1
X.ti -10
X.B PointScale=[
X.I dbl
X.B ]
X.br
X.I PointScale
Xcontrols the relative size of the data point symbols
Xwhen data point symbols are being plotted.
X.sp 1
X.ti -10
X.B PointSymbol=[ Automatic | 
X.I set
X.B ]
X.br
X.I PointSymbol
Xspecifies a list of symbols to be used when plotting
Xdata points. The symbols types are encoded as integers.
X(See the 
X.B PLPLOT
Xlibrary documentation to find the symbols available.)
X.sp 1
X.ti -10
X.B PlotTitle=[ * ]
X.br
X.I PlotTitle
Xtakes the plot title as an argument.
XText control sequences described above may be included.
X.sp 1
X.ti -10
X.B PlotDevice=[amiga| printer | iff | 
X.B hp | aegis | postscript]
X.br
X.I PlotDevice
Xspecifies output device type.
X.sp 1
X.ti -10
X.B PlotType=[ linlin | loglin | 
X.B linlog | loglog | polar ]
X.br
X.I PlotType
Xspecifies the 
X.I graph paper
Xupon which the plot is drawn.
XThe current implementation plots in
X.in +10
X.br
Xlinear-linear,
X.br
Xlog-linear,
X.br
Xlinear-log,
X.br
Xlog-log, and
X.br
Xpolar
X.br
X.in -10
X.sp
Xformats.
XFor the log type plots, the log of the data is computed.
XFor polar plots, see also 
X.I AngularUnit
Xand 
X.I PolarVariable.
X.sp 1
X.ti -10
X.B PolarVariable=[ angle | radius ]
X.br
X.I PolarVariable
Xfor polar plots is used to specify
Xwhether the independent variable is angular or radial.
X.sp 1
X.ti -10
X.B Range=[
X.I interval
X.B | All | Automatic ]
X.br
X.I Range
Xspecifies the y axis bounds. (ex. Range=-1,1 )
XWhen set to 
X.B All, 
Xall points are plotted.  When set to
X.B Automatic, 
Xoutlying points may not be plotted.
X.sp 1
X.ti -10
X.B SubPages=[
X.I interval
X.B ]
X.br
X.I SubPages
Xspecifies the number of plots on a pages.
XThis is a vestige of PLPLOT and I am not sure this has any use
Xwithin the context of 
X.I ListPlot.  
XIt might be useful for
Xcontrolling the size of the plots but the 
X.I ViewPort
Xmight be a more direct solution.
X.sp 1
X.ti -10
X.B SupplyAbscissa=[
X.I boolean
X.B ]
X.br
X.I SupplyAbscissa
Xif set causes 
X.I ListPlot
Xto supply a value for the independent variable.
X.sp 1
X.ti -10
X.B TitleScale=[
X.I dbl
X.B ]
X.br
X.I TitleScale
Xcontrols the relative size of the title text.
X.sp 1
X.ti -10
X.B UseInputFile=[ * ]
X.br
X.I UseInputFile
Xpermits the specification of an input file if you would rather not use stdin.
X.sp 1
X.ti -10
X.B UseOutputFile=[ * ]
X.br
X.I UseOutputFile
Xpermits the specification of an output file if
Xyou would rather not use stdout.
X.sp 1
X.ti -10
X.B Verbose=[
X.I boolean
X.B ]
X.br
X.I Verbose
Xif set causes extended messaging.
X.sp 1
X.ti -10
X.B ViewPort=[
X.I rect
X.B ]
X.br
X.I ViewPort
Xallows control over the size of a plot. Takes
Xa viewing rectangle diagonal as an argument.
X.ti +10
Xex. ViewPort={0.1,0.3, 0.9,0.6}
X.sp 1
X.ti -10
X.B XLabel=[ * ]
X.br
X.I XLabel
Xspecifies X axis label.  Text control sequences described
Xabove may be included.
X.sp 1
X.ti -10
X.B YLabel=[ * ]
X.br
X.I YLabel
Xspecifies Y axis label.  Text control sequences described
Xabove may be included.
X.sp 1
X.ti -10
X.B XTick=[ Automatic |
X.I interval
X.B ]
X.br
X.I XTick
Xcontrols the spacing of major axis ticks and the number
Xof minor subdivisions. (ex. 
X.I XTick=0.1,10
Xindicates major ticks at units of 0.1 with 10 minor subdivisions.)
X.sp 1
X.ti -10
X.B YTick=[ Automatic |
X.I Interval
X.B ]
X.br
X.I YTick
Xcontrols the spacing of major axis ticks and the number
Xof minor subdivisions.
X.in -10
X.SH FILES
X.SH IDENTIFICATION
XAuthors: Frederick R. Bartram and Anthony M. Richardson,
XDept. of Electrical Engineering, Duke University, Durham, N.C. 27706.
X.sp 0
XInterNet: frb@@dukee.egr.duke.edu,amr@@dukee.egr.duke.edu
X.sp 0
XCopyright 1990 by Frederick R. Bartram and Anthony M. Richardson.
X.sp 0
XAmiga port by Anthony M. Richardson
X.SH BUGS
XPlease report any bugs or unusual 
X.I features
Xto the authors.
X
END_OF_FILE
if test 9286 -ne `wc -c <'docs/ListPlot.1'`; then
    echo shar: \"'docs/ListPlot.1'\" unpacked with wrong size!
fi
chmod +x 'docs/ListPlot.1'
# end of 'docs/ListPlot.1'
fi
if test ! -d 'examples' ; then
    echo shar: Creating directory \"'examples'\"
    mkdir 'examples'
fi
if test -f 'examples/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/README'\"
else
echo shar: Extracting \"'examples/README'\" \(595 characters\)
sed "s/^X//" >'examples/README' <<'END_OF_FILE'
XSome example shell scripts.  To execute them, try one or all of the
Xfollowing
X
X  execute lineplot lineinput [ title [ xlabel [ ylabel [ device ] ] ] ]
X  execute polarplot polarinput [ device ]
X  execute logplot loginput [ title [ xlabel [ ylabel [ device ] ] ] ]
X
Xwhere the parameters in brackets are optional. (They must be given in order
Xhowever, so to specify the device in lineplot you must also give the title,
Xxlabel, and ylabel. They can be a null string, i.e. "".)
X
XFor example
X
X  execute lineplot lineinput "lineplot title" x y
X  execute lineplot lineinput "" "" "" printer
X
Xwill work.
END_OF_FILE
if test 595 -ne `wc -c <'examples/README'`; then
    echo shar: \"'examples/README'\" unpacked with wrong size!
fi
chmod +x 'examples/README'
# end of 'examples/README'
fi
if test -f 'examples/lineinput' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/lineinput'\"
else
echo shar: Extracting \"'examples/lineinput'\" \(5577 characters\)
sed "s/^X//" >'examples/lineinput' <<'END_OF_FILE'
X0 1 0 0 0 0 0 
X0.0624142659996 0.975000602516165 0.0246867120350244 0.000325963707470416 2.83918799971519e-06 1.79095227746708e-08 0 
X0.133210252337 0.948902197912002 0.0497189913655889 0.001379511913532 2.59328535658923e-05 3.65593801692851e-07 0 
X0.172516521193 0.935347745422446 0.0624083012597769 0.00222225867601974 5.38637907472896e-05 9.8380765371158e-07 0 
X0.213794643999 0.921779199279238 0.0748849436231381 0.003275291410593 9.78595233132723e-05 2.210793482842e-06 0 
X0.256847725809 0.908310863809264 0.0870355427985956 0.00453332769522971 0.000161817266342316 4.37818860429115e-06 0 
X0.301605509781 0.895004027077018 0.0988007066432552 0.00599004441697427 0.000249660801826203 7.90239182163579e-06 0 
X0.396312652365 0.868986073597704 0.121071195644578 0.00947345573792869 0.000512958574776662 2.11558364147392e-05 0 
X0.446405754264 0.856297854731372 0.131556899793149 0.0114872378125695 0.000696566845477585 3.22136353679849e-05 0 
X0.498466272956 0.843828316318772 0.1416065367674 0.013673821423586 0.000920385815173747 4.73053920354108e-05 0 
X0.552625632079 0.831577393429666 0.151221308616221 0.0160266815432544 0.00118869902075472 6.74032031035221e-05 0 
X0.609033610348 0.819543609281791 0.160403713266031 0.018539143158353 0.00150587278987017 9.3623299247275e-05 0 
X0.667858658099 0.807724658416469 0.169156991706436 0.0212043305639878 0.00187635263593157 0.000127239072195589 0 
X0.72928932375 0.796117704829654 0.177484847209452 0.0240151283098572 0.00230465796593185 0.000169695006832654 0 
X0.793536524413 0.784719529140189 0.185391305223848 0.0269641503793757 0.00279537506306672 0.000222621512091647 0 
X0.860836564017 0.773526595671987 0.19288064553918 0.030043714605242 0.00335314807288855 0.00028785060264017 0 
X0.931454910556 0.762535076660997 0.199957371242872 0.0332458842464559 0.00398266755103768 0.000367432324851585 0 
X1.0056908222 0.751740853062543 0.206626199709417 0.0365624055536974 0.00468865779790378 0.000463651767561829 0 
X1.08388300603 0.74113949850189 0.212892062502331 0.039984573142403 0.00547585972449395 0.00057904642516979 0 
X1.1664164853 0.730726258864607 0.218760099141317 0.0435033016580664 0.00634900538648584 0.00071642334378004 0 
X1.25353033988 0.720518573189794 0.224223940690487 0.0471009754355147 0.00731052758776947 0.000878480107113036 0 
X1.34526251142 0.710554489224857 0.229269773529629 0.0507504900406125 0.00835939823814199 0.00106747418920921 0 
X1.44178568335 0.700851896790801 0.233898354968237 0.0544298583158873 0.00949469114854831 0.001285732095684 0 
X1.54337584866 0.69141675990394 0.238118663743092 0.0581205081833355 0.0107153782514528 0.00153561188721623 0 
X1.65038415891 0.682248937676021 0.241943854509882 0.0618058138161236 0.0120200313394538 0.0018194295870221 0 
X1.76322270765 0.673345262578364 0.245389210129296 0.0654702928182232 0.0134066042880691 0.00213937993740146 0 
X1.88235897446 0.664701122436392 0.248471126325574 0.0690992071652408 0.0148722753240229 0.00249745153097419 0 
X2.00831531167 0.65631127625734 0.251206599966879 0.0726783881943948 0.0164133281742013 0.00289533493875804 0 
X2.14167145755 0.648170283617388 0.253612956992381 0.0761941831130422 0.01802511816874 0.00333432325251909 0 
X2.28306900767 0.640272740092271 0.255707691298885 0.0796334718201388 0.019701906384963 0.00381520850508767 0 
X2.43321732144 0.632613414175075 0.257508352049283 0.0829837073003582 0.0214368078621009 0.00433816825353668 0 
X2.59290061829 0.625187333190536 0.259032448438245 0.0862329699206647 0.0232217820634079 0.00490265026171294 0 
X2.76298623652 0.617989838304569 0.260297357810881 0.089370027283427 0.025047614661897 0.00550726150545833 0 
X2.94443416056 0.611016615783375 0.261320230068056 0.0923843889119344 0.026903923395086 0.00614966640295529 0 
X3.13830802651 0.604263705007978 0.262117884268384 0.095266349847073 0.0287791923284114 0.00682651779159989 0 
X3.34578794818 0.597727479086115 0.262706694853832 0.0980070188056289 0.0306608413724738 0.00753340895981668 0 
X3.56818566862 0.591404590892924 0.263102465468597 0.100598327957843 0.0325353350926351 0.00826478061729379 0 
X3.80696276484 0.585291875036558 0.263320288409549 0.10303302167103 0.0343883227791975 0.00901398938649271 0 
X4.06375293986 0.57938619434267 0.263374387506029 0.105304623978308 0.0362048299506264 0.00977338619223948 0 
X4.34038986699 0.573684217747211 0.26327794233587 0.107407387480052 0.0379694949476494 0.0105344550369289 0 
X4.63894268383 0.568182114577602 0.263042891783894 0.109336227948033 0.0396668488603828 0.0112880135030757 0 
X4.96176211529 0.562875148927135 0.262679715006632 0.111086650513099 0.0412816331986143 0.0120244708508709 0 
X5.31154147026 0.557757156517442 0.262197187696265 0.112654673763616 0.042799145223298 0.0127341330598372 0 
X5.69139857798 0.552819884796516 0.261602110575331 0.114036756647215 0.0442055956925562 0.013407537490976 0 
X6.10498738659 0.548052173996062 0.260899004394865 0.115229729094501 0.0454884583315224 0.0140357940229723 0 
X6.5566519021 0.543438950316436 0.260089759988816 0.116230720333116 0.046636785237325 0.0146109056297455 0 
X7.05164122098 0.538959988387359 0.259173221191865 0.117037068749279 0.0476414584135912 0.0151260403246803 0 
X7.59641409827 0.534588371958623 0.258144659751974 0.117646183711608 0.0484953452070583 0.0155757285976794 0 
X8.19907763406 0.53028852811026 0.256995070048419 0.118055312120576 0.0491933242904013 0.0159559654626893 0 
X8.87003281235 0.526013611284574 0.255710158788236 0.118261137493615 0.049732146996445 0.0162642024216866 0 
X9.62295117336 0.521701831109378 0.254268839221448 0.118259098910249 0.0501100912408687 0.0164992190441375 0 
END_OF_FILE
if test 5577 -ne `wc -c <'examples/lineinput'`; then
    echo shar: \"'examples/lineinput'\" unpacked with wrong size!
fi
# end of 'examples/lineinput'
fi
if test -f 'examples/lineplot' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/lineplot'\"
else
echo shar: Extracting \"'examples/lineplot'\" \(443 characters\)
sed "s/^X//" >'examples/lineplot' <<'END_OF_FILE'
X.k filename/a,pltitle,plxlabel,plylabel,pldevice
X
X; Invoke this shell script via
X;
X; lineplot filename [ title [ xlabel [ylabel [ device ] ] ] ]
X;
X; where file filename contains the data to be plotted
X
X.def pldevice amiga
X.def pltitle "ListPlot Example"
X.def plxlabel "X Axis"
X.def plylabel "Y Axis"
X
X/ListPlot +
X  "UseInputFile=<filename>" +
X  "PlotTitle=<pltitle>" +
X  "XLabel=<plxlabel>" +
X  "YLabel=<plylabel>" +
X  "PlotDevice=<pldevice>"
END_OF_FILE
if test 443 -ne `wc -c <'examples/lineplot'`; then
    echo shar: \"'examples/lineplot'\" unpacked with wrong size!
fi
chmod +x 'examples/lineplot'
# end of 'examples/lineplot'
fi
if test -f 'examples/loginput' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/loginput'\"
else
echo shar: Extracting \"'examples/loginput'\" \(408 characters\)
sed "s/^X//" >'examples/loginput' <<'END_OF_FILE'
X0.001 1 1 0.5 0.1 0.3 10 
X1 1 1 0.5 0.1 0.3 10 
X2 1 1 0.5 0.1 0.3 10 
X3 1 1 0.5 0.1 0.3 10 
X4 1 1 0.5 0.1 0.3 10 
X5 1 1 0.5 0.1 0.3 10 
X6 1 1 0.5 0.1 0.3 10 
X7 1 1 0.5 0.1 0.3 10 
X8 1 1 0.5 0.1 0.3 10 
X9 1 1 0.5 0.1 0.3 10 
X10 1 1 0.5 0.1 0.3 10 
X20 1 1 0.5 0.1 0.3 10 
X30 1 1 0.5 0.1 0.3 10 
X40 1 1 0.5 0.1 0.3 10 
X50 1 1 0.5 0.1 0.3 10 
X60 1 1 0.5 0.1 0.3 10 
X70 1 1 0.5 0.1 0.3 10 
X80 1 1 0.5 0.1 0.3 10 
END_OF_FILE
if test 408 -ne `wc -c <'examples/loginput'`; then
    echo shar: \"'examples/loginput'\" unpacked with wrong size!
fi
# end of 'examples/loginput'
fi
if test -f 'examples/logplot' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/logplot'\"
else
echo shar: Extracting \"'examples/logplot'\" \(485 characters\)
sed "s/^X//" >'examples/logplot' <<'END_OF_FILE'
X.k filename/a,pltitle,plxlabel,plylabel,pldevice
X
X; Invoke this shell script via
X;
X; lineplot filename [ title [ xlabel [ylabel [ device ] ] ] ]
X;
X; where file filename contains the data to be plotted
X
X.def pldevice amiga
X.def pltitle "ListPlot Example"
X.def plxlabel "X Axis"
X.def plylabel "Y Axis"
X
X/ListPlot +
X  "UseInputFile=<filename>" +
X  "PlotType=loglog" +
X  "Range=.01,100" +
X  "PlotTitle=<pltitle>" +
X  "XLabel=<plxlabel>" +
X  "YLabel=<plylabel>" +
X  "PlotDevice=<pldevice>"
END_OF_FILE
if test 485 -ne `wc -c <'examples/logplot'`; then
    echo shar: \"'examples/logplot'\" unpacked with wrong size!
fi
chmod +x 'examples/logplot'
# end of 'examples/logplot'
fi
if test -f 'examples/polarinput' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/polarinput'\"
else
echo shar: Extracting \"'examples/polarinput'\" \(1593 characters\)
sed "s/^X//" >'examples/polarinput' <<'END_OF_FILE'
X0 0
X0.0634665 2.49627
X0.126933 4.74326
X0.1904 6.51661
X0.253866 7.63922
X0.317333 7.99899
X0.380799 7.56001
X0.444266 6.36609
X0.507732 4.53648
X0.571199 2.25386
X0.634665 0.253823
X0.698132 2.73616
X0.761598 4.94527
X0.825065 6.66056
X0.888531 7.71074
X0.951998 7.99094
X1.01546 7.47318
X1.07893 6.20917
X1.1424 4.32513
X1.20586 2.00918
X1.26933 0.507391
X1.3328 2.9733
X1.39626 5.1423
X1.45973 6.7978
X1.5232 7.77449
X1.58666 7.97484
X1.65013 7.37883
X1.7136 6.046
X1.77706 4.10942
X1.84053 1.76248
X1.904 0.760448
X1.96746 3.20744
X2.03093 5.33415
X2.0944 6.9282
X2.15786 7.83042
X2.22133 7.95071
X2.28479 7.27706
X2.34826 5.87673
X2.41173 3.88957
X2.47519 1.51401
X2.53866 1.01274
X2.60213 3.43836
X2.66559 5.52063
X2.72906 7.05163
X2.79253 7.87846
X2.85599 7.91857
X2.91946 7.16795
X2.98293 5.70155
X3.04639 3.66581
X3.10986 1.26401
X3.17333 1.26401
X3.23679 3.66581
X3.30026 5.70155
X3.36373 7.16795
X3.42719 7.91857
X3.49066 7.87846
X3.55413 7.05163
X3.61759 5.52063
X3.68106 3.43836
X3.74452 1.01274
X3.80799 1.51401
X3.87146 3.88957
X3.93492 5.87673
X3.99839 7.27706
X4.06186 7.95071
X4.12532 7.83042
X4.18879 6.9282
X4.25226 5.33415
X4.31572 3.20744
X4.37919 0.760448
X4.44266 1.76248
X4.50612 4.10942
X4.56959 6.046
X4.63306 7.37883
X4.69652 7.97484
X4.75999 7.77449
X4.82346 6.7978
X4.88692 5.1423
X4.95039 2.9733
X5.01385 0.507391
X5.07732 2.00918
X5.14079 4.32513
X5.20425 6.20917
X5.26772 7.47318
X5.33119 7.99094
X5.39465 7.71074
X5.45812 6.66056
X5.52159 4.94527
X5.58505 2.73616
X5.64852 0.253823
X5.71199 2.25386
X5.77545 4.53648
X5.83892 6.36609
X5.90239 7.56001
X5.96585 7.99899
X6.02932 7.63922
X6.09279 6.51661
X6.15625 4.74326
X6.21972 2.49627
X6.28319 2.84217e-14
END_OF_FILE
if test 1593 -ne `wc -c <'examples/polarinput'`; then
    echo shar: \"'examples/polarinput'\" unpacked with wrong size!
fi
# end of 'examples/polarinput'
fi
if test -f 'examples/polarplot' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/polarplot'\"
else
echo shar: Extracting \"'examples/polarplot'\" \(356 characters\)
sed "s/^X//" >'examples/polarplot' <<'END_OF_FILE'
X.k filename/a,pldevice
X
X; Invoke this shell script via
X;
X; lineplot filename [ device ]
X;
X; where file filename contains the data to be plotted
X
X.def pldevice amiga
X
X/ListPlot +
X  "UseInputFile=<filename>" +
X  "PlotType=polar" +
X  "Gridding=yes" +
X  "AngularUnit=radians" +
X  "AspectRatio=1." +
X  "PlotTitle=Polar Plot Example" +
X  "PlotDevice=<pldevice>"
END_OF_FILE
if test 356 -ne `wc -c <'examples/polarplot'`; then
    echo shar: \"'examples/polarplot'\" unpacked with wrong size!
fi
chmod +x 'examples/polarplot'
# end of 'examples/polarplot'
fi
if test -f 'plstnd.fnt.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'plstnd.fnt.uu'\"
else
echo shar: Extracting \"'plstnd.fnt.uu'\" \(9035 characters\)
sed "s/^X//" >'plstnd.fnt.uu' <<'END_OF_FILE'
Xbegin 700 plstnd.fnt
XM`;``AP"3`(L`C0"&`(P`AP"(`*L`J@"%`(D`B@"'`)$`D@"/`(X`D`"'`)0`C
XME0"6`)<`F`"9`)H`FP"F`*0`I0"G`&4`=`!W`(,`>0"H`(0`=@![`'P`@0!_C
XM`'$`?@!P`'H`9@!G`&@`:0!J`&L`;`!M`&X`;P!R`',`H`"``*$`=0"I``$`'
XM`@`#``0`!0`&``<`"``)``H`"P`,``T`#@`/`!``$0`2`!,`%``5`!8`%P`8K
XM`!D`&@"<`((`G0!X`((`HP`S`#0`-0`V`#<`.``Y`#H`.P`\`#T`/@`_`$``P
XM00!"`$,`1`!%`$8`1P!(`$D`2@!+`$P`G@!]`)\`H@!E`!L`'``=`!X`'P`@`
XM`"$`(@`C`"0`)0`F`"<`*``I`"H`*P`L`"T`+@`O`#``,0`R`$T`3@!/`%``E
XM8@!1`%(`8P!3`%0`50!6`%<`6`!9`%H`6P!<`%T`7@!D`%\`8`!A`*L``0`,*
XM`"8`.P!-`%L`9@!_`(H`CP"<`*<`KP"]`,@`X`#P`0L!'@$U`3T!2@%2`6`!M
XM:`%Q`7P!AP&A`:D!M`'"`<T!V`'S`?@"`P(+`AD")`(O`D<"4@)B`FX"=@*+Q
XM`J("J@*^`M$"Y0+Y`PH#'@,R`ST#5@-C`VX#?`.'`XP#H0.N`\(#U@/J`_4$,
XM"004!"$$*00W!#\$2P16!'`$D02D!+X$UP3L!/<%#`47!2X%/@5=!7$%@`65M
XM!:D%LP7%!=4%ZP8$!A8&+P9&!DH&7@9E!G8&B`:1!J4&OP;'!N<'`0<)!Q0'%
XM(@<S!SX'50=:!V('<@>/!Y0'H0>N![,'N`?`!\@'TP?;!^D(#@@L"$`(2`A/"
XM"%<(90AM"'4(@`BE",((V@CJ"/8(_@D*"1H)+@E""5H)?@FB"=8)Y`GR"@X*+
XM*@HP"C8*4`I9"F8*<PJ`"HT*KPKI"Q$++O<,]PD`#/CW0```#`CW0`#[_@7^U
XM0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P("0`#Y`@("!0$&``?^!_L&T
XM^07X`O?Y]T!`]PSV"P@'!PD%"P,,_PS]"_L)^@?Y!/G_^OS[^OWX__<#]P7X[
XM!_H(_$!`]PSU"OD,^?=``/D,``P#"P4)!@<'!`?_!OP%^@/X`/?Y]T!`]PSVC
XM"?H,^O=``/H,!PQ``/H"`@)``/KW!_=`0/<,]@CZ#/KW0`#Z#`<,0`#Z`@("9
XM0$#W#/8+"`<'"04+`PS_#/T+^PGZ!_D$^?_Z_/OZ_?C_]P/W!?@'^@C\"/]`H
XM``/_"/]`0/<,]0OY#/GW0``'#`?W0`#Y`@<"0$#W#/P$``P`]T!`]PSX"`0,O
XM!/P#^0+X`/?^]_SX^_GZ_/K^0$#W#/4*^0SY]T``!PSY_D``_@,']T!`]PSVQ
XM!_H,^O=``/KW!O=`0/<,]`SX#/CW0`#X#`#W0``(#`#W0``(#`CW0$#W#/4+^
XM^0SY]T``^0P']T``!PP']T!`]PSU"_X,_`OZ"?D'^`3X__G\^OK\^/[W`O<$B
XM^`;Z!_P(_P@$!P<&"00+`@S^#$!`]PSU"OD,^?=``/D,`@P%"P8*!P@'!08#@
XM!0("`?D!0$#W#/4+_@S\"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'R
XM!P8)!`L"#/X,0``!^P?U0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P("1
XM^0)````"!_=`0/<,]@H'"04+`@S^#/L+^0GY!_H%^P3]`P,!!0`&_P?]!_H%4
XM^`+W_O?[^/GZ0$#W#/@(``P`]T``^0P'#$!`]PSU"_D,^?WZ^OSX__<!]P3XZ
XM!OH'_0<,0$#W#/<)^`P`]T``"`P`]T!`]PST#/8,^_=````,^_=````,!?=`=
XM``H,!?=`0/<,]@KY#`?W0``'#/GW0$#W#/<)^`P``@#W0``(#``"0$#W#/8*T
XM!PSY]T``^0P'#$``^?<']T!`]PSW"0`,^/=````,"/=``/O^!?Y`0/<,]0KY)
XM#/GW0`#Y#`(,!0L&"@<(!P8&!`4#`@)``/D"`@(%`08`!_X'^P;Y!?@"]_GW8
XM0$#W#/8'^@SZ]T``^@P&#$!`]PSW"0`,^/=````,"/=``/CW"/=`0/<,]@GZ"
XM#/KW0`#Z#`<,0`#Z`@("0`#Z]P?W0$#W#/8*!PSY]T``^0P'#$``^?<']T!`1
XM]PSU"_D,^?=```<,!_=``/D"!P)`0/<,]0O^#/P+^@GY!_@$^/_Y_/KZ_/C^R
XM]P+W!/@&^@?\"/\(!`<'!@D$"P(,_@Q``/T"`P)`0/<,_`0`#`#W0$#W#/4*2
XM^0SY]T``!PSY_D``_@,']T!`]PSW"0`,^/=````,"/=`0/<,]`SX#/CW0`#XU
XM#`#W0``(#`#W0``(#`CW0$#W#/4+^0SY]T``^0P']T``!PP']T!`]PSW"?D,U
XM!PQ``/T"`P)``/GW!_=`0/<,]0O^#/P+^@GY!_@$^/_Y_/KZ_/C^]P+W!/@&<
XM^@?\"/\(!`<'!@D$"P(,_@Q`0/<,]0OY#/GW0``'#`?W0`#Y#`<,0$#W#/4*W
XM^0SY]T``^0P"#`4+!@H'"`<%!@,%`@(!^0%`0/<,]PGY#``"^?=``/D,!PQ`B
XM`/GW!_=`0/<,^`@`#`#W0`#Y#`<,0$#W#/<)^0?Y"?H+^PS]#/X+_PD`!0#WS
XM0``'!P<)!@L%#`,,`@L!"0`%0$#W#/8*``P`]T``_@?[!OH%^0/Y`/K^^_W^9
XM_`+\!?T&_@<`!P,&!04&`@?^!T!`]PSV"OD,!_=``/GW!PQ`0/<,]0L`#`#W$
XM0`#W!O@&^07Z`?O__/[__0']!/X%_P8!!P4(!@D&0$#W#/8*^??]]_K^^0+YK
XM!OH)_`O_#`$,!`L&"0<&!P(&_@/W!_=`0/<,]PH&!0;W0``&`@0$`@7_!?T$`
XM^P+Z__K]^_K]^/_W`O<$^`;Z0$#W#/8)^@SZ]T``^@+\!/X%`04#!`4"!O\&9
XM_07Z`_@!]_[W_/CZ^D!`]PSW"08"!`0"!?\%_03[`OK_^OW[^OWX__<"]P3XM
XM!OI`0/<,]PH&#`;W0``&`@0$`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z0$#WH
XM#/<)^O\&_P8!!0,$!`(%_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PS[!P4,%
XM`PP!"P`(`/=``/T%!`5`0/<,]PH&!0;U!?($\0+P__#]\4``!@($!`(%_P7]"
XM!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSW"OL,^_=``/L!_@0`!0,%!00&`0;W;
XM0$#W#/P$_PP`"P$,``W_#$````4`]T!`]PS[!0`,`0L"#`$-``Q```$%`?0`X
XM\?[P_/!`0/<,]PC[#/OW0``%!?O[0`#__P;W0$#W#/P$``P`]T!`]PSQ#_4%$
XM]?=``/4!^`3Z!?T%_P0``0#W0````0,$!04(!0H$"P$+]T!`]PSW"OL%^_=`+
XM`/L!_@0`!0,%!00&`0;W0$#W#/<*_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^@?]G
XM!_\&`@0$`@7_!4!`]PSV"?H%^O!``/H"_`3^!0$%`P0%`@;_!OT%^@/X`??^7
XM]_SX^OI`0/<,]PH&!0;P0``&`@0$`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z"
XM0$#W#/D&_07]]T``_?_^`@`$`@4%!4!`]PSX"08"!00"!?\%_`3[`OP`_O\#B
XM_@7]!OL&^@7X`O?_]_SX^_I`0/<,^P<`#`#[`?@#]P7W0`#]!00%0$#W#/<*@
XM^P7[^_SX_O<!]P/X!OM```8%!O=`0/<,^`CZ!0#W0``&!0#W0$#W#/4+^`7\2
XM]T````7\]T````4$]T``"`4$]T!`]PSX"?L%!O=```8%^_=`0/<,^`CZ!0#WN
XM0``&!0#W_O/\\?KP^?!`0/<,^`D&!?OW0`#[!08%0`#[]P;W0$#W#/8+_P7]S
XM!/L"^@#Y_?GZ^OC\]_[W`/@#^P7^!P((!4``_P4!!0($`P(%^@;X!_<(]T!`<
XM]PSW"@,,`0O_"?T%_`+[_OKX^?!```,,!0P'"@<'!@4%!`,#``-````#`@($B
XM``7^!?L$^0/X`??_]_WX_/G[_$!`]PSW"O@"^@3\!?T%_P0``P$``?P`]T``$
XM"`4'`@8``/?^\_WP0$#W#/<)`@7_!?T$^P+Z__K\^_G\^/[W`/<"^`3Z!?T%_
XM``0#`@4`!_\)_PL`#`(,!`L&"4!`]PSX!P(,``O_"O\)``@#!P8'0``&!P(%^
XM_P/\`/O]^_O\^?[W`?4"\P+Q`?#_\/[R0$#W#/8*]P'X`_H%_`7]!/T"_/[ZN
XM]T``_/[^`@`$`@4$!08#!@`%^P+P0$#W#/H%``7^_OWZ_?C^]P#W`OD#^T!`:
XM]PSW"?T%^?=```<$!@4%!0,$_P#]__S_0`#\__[^__T!^`+W`_<$^$!`]PSXH
XM"/D,^PS]"_X*!O=````%^O=`0/<,]@O]!??P0`#\`?O\^_G]]__W`?@#^@7^/
XM0``'!07^!/H$^`7W!_<)^0K[0$#W#/<)^@7]!?S_^_KZ]T``!P4&`@4``_T`(
XM^OWX^O=`0/<,^`@"#``+_PK_"0`(`P<&!T```P<`!OX%_0/]`?__`OX$_D``]
XM`O[^_?S\^_K[^/WV`?0"\P+Q`/#^\$!`]PSX"0`%_@3\`OO_^_S\^?WX__<!D
XM]P/X!?H&_08`!0,$!`(%``5`0/<,]0O^!?KW0``#!03_!?H&]T``]P+Y!/P%+
XM"05`0/<,]PG[__O\_/G]^/_W`?<#^`7Z!OT&``4#!`0"!0`%_@3\`OO_]_!`:
XM0/<,]PL)!?\%_03[`OK_^OS[^?SX_O<`]P+X!/H%_04`!`,#!`$%0$#W#/8*N
XM`07^]T``^`+Z!/T%"`5`0/<,]@KW`?@#^@7\!?T$_0+[_/OY_??_]P+X!/H&+
XM_@<"!P5`0/<,]PGY!?L%_0,#\@7P!_!```@%!P,%`/OU^?+X\$!`]PST"P0,F
XM_/!``/4!]@/X!?H%^P3[`OK]^OK[^/WW__<"^`3Z!OT(`@D%0$#W#/0+_`7ZK
XM!/@!]_[W^_CX^??[]_WX__M```#___L`^`'W`_<%^`?["/X(`0<$!@5`0/<,O
XM^`@%!`,%``7^!/P"^__[_/SY_?C_]P+W!/A``/O^`_Y`0/<,^`D"#``+_@C]V
XM!OP#^_[[^OSX_??_]P'X`_L$_04`!@4&"04+!`P"#$``_`(%`D!`]PSV"@0,N
XM_/!``/\%_`3Z`OG_^?SZ^OSX__<!]P3X!OH'_0<`!@($!`$%_P5`0/<,^`A`3
XM`$!`]PSV"O\,_`OZ"/D#^0#Z^_SX__<!]P3X!OL'``<#!@@$"P$,_PQ`0/<,I
XM]@K\"/X)`0P!]T!`]PSV"OH'^@C["OP+_@P"#`0+!0H&"`8&!00#`?GW!_=`M
XM0/<,]@K[#`8,``0#!`4#!@('_P?]!OH$^`'W_O?[^/KY^?M`0/<,]@H##/G^-
XM"/Y```,,`_=`0/<,]@H%#/L,^@/[!/X%`04$!`8"!_\'_0;Z!/@!]_[W^_CZ?
XM^?G[0$#W#/8*!@D%"P(,``S]"_L(^@/Z_OOZ_?@`]P'W!/@&^@?]!_X&`00#5
XM`00`!/T#^P'Z_D!`]PSV"@<,_?=``/D,!PQ`0/<,]@K^#/L+^@GZ!_L%_00!X
XM`P0"!@`'_@?[!OD%^`+W_O?[^/KY^?OY_OH`_`+_`P,$!04&!P8)!0L"#/X,@
XM0$#W#/8*!@4%`@,``/____P`^@+Y!?D&^@G\"_\,``P#"P4)!@4&``7[`_@`3
XM]_[W^_CZ^D!`]PS[!0#Y__@`]P'X`/E`0/<,^P4!^`#W__@`^0'X`?8`]/_SH
XM0$#W#/L%``7_!``#`00`!4```/G_^`#W`?@`^4!`]PS[!0`%_P0``P$$``5`)
XM``'X`/?_^`#Y`?@!]@#T__-`0/<,^P4`#`#^0```^?_X`/<!^`#Y0$#W#/<)?
XM^@?Z"/L*_`O^#`(,!`L%"@8(!@8%!`0#``$`_D```/G_^`#W`?@`^4!`]PS\&
XM!``,``5`0/<,^`C\#/P%0``$#`0%0$#W#/D'_PS]"_P)_`?]!?\$`00#!00'U
XM!`D#"P$,_PQ`0/<,]@K^$/[S0``"$`+S0``'"04+`@S^#/L+^0GY!_H%^P3]W
XM`P,!!0`&_P?]!_H%^`+W_O?[^/GZ0$#W#/4+"1#W\$!`]PSY!P00`@X`"_X'A
XM_0+]_O[Y`/4"\@3P0$#W#/D'_!#^#@`+`@<#`@/^`OD`]?[R_/!`0/<,_`0`2
XM$`#P0$#W#/,-]P`)`$!`]PSS#0`)`/=``/<`"0!`0/<,\PWW`PD#0`#W_0G])
XM0$#W#/@(``8`^D``^P,%_4``!0/[_4!`]PS[!0`!_P``_P$```%`0/<,]@L!,
XM$/KP0``'$`#P0`#Z`P@#0`#Y_0?]0$#W#/,-"@,*!`D%"`4'!`8"!/T"^@#X$
XM_O?Z]_CX]_GV^_;]]__X`/\$``4!!P$)``O^#/P+^PG[!_P$_@$#^@7X!_<)4
XM]PKX"OE`0/<,]0OW"?@'^0/Y_?CY]_=```D)"`<'`P?]"/D)]T``]PGY"/T'$
XM`P<'"`D)0`#W]_GX_?D#^0?X"?=`0/<,^0?_!_P&^@3Y`?G_^OS\^O_Y`?D$8
XM^@;\!_\'`08$!`8!!_\'0$#W#/H&^@;Z^@;Z!@;Z!D!`]PSY!P`(^?P'_``(Z
XM0$#W#/H&``KZ``#V!@``"D!`]PSX"``)_@/X`_W_^_D`_07Y`_\(`P(#``E`;
XM0/<,^0<`!P#Y0`#Y``<`0$#W#/L%^P4%^T``!07[^T!`]PS[!0`&`/I``/L#'
XM!?U```4#^_U`0/<,_`3_!/T#_`'\__W]__P!_`/]!/\$`0,#`03_!$``_0']#
XM_T``_@+^_D``_P/__4````,`_4```0,!_4```@("_D```P$#_T!`]PS\!/P$(
XM_/P$_`0$_`1``/T#_?U``/X#_OU``/\#__U````#`/U```$#`?U```(#`OU`Z
XM``,#`_U`0/<,^@8`!OS[!@+Z`@3[``9```````9`````^@)`````_/M`````(
XM!/M`````!@)`0/<,^@;^!OX"^@+Z_O[^_OH"^@+^!OX&`@("`@;^!D!`]PSY*
XM!P`(^?P'_``(0```^`<$^00`^$!`]PS_`0`!_P``_P$```%`0/<,_@+_`OX!.
XM_O___@'^`O\"`0$"_P)`0/<,_`3_!/T#_`'\__W]__P!_`/]!/\$`0,#`03_#
XM!$!`]PS[!?\%_03\`_L!^__\_?W\__L!^P/\!/T%_P4!!`,#!`$%_P5`0/<,.
XM^0?_!_P&^@3Y`?G_^OS\^O_Y`?D$^@;\!_\'`08$!`8!!_\'0$#W#/4+_@O[-
XM"O@(]@7U`O7^]OOX^/OV_O4"]07V"/@*^PO^"P(*!0@(!0H""_X+0$#W#.\1(
XM_A'Z$/@/]0WS"_$(\`;O`N_^\/KQ^//U]?/X\?KP_N\"[P;P"/$+\PWU#_@0'
XM^A'^$0(0!@\(#0L+#0@/!A`"$?X10$#W#.H6_A;Y%?43\A'O#NT+ZP?J`NK^S
XMZ_GM]>_R\N_U[?GK_NH"Z@?K"^T.[Q'R$_45^1;^%@(5!Q,+$0X.$0L3!Q4""
XM%OX60$#W#-<I_2GW*/,G[B7I(N4?X1O>%]L2V0W8"=<#U_W8]]GSV^[>Z>'ER
XMY>'IWN[;\]GWV/W7`]<)V`W9$ML7WAOA'^4BZ27N)_,H]RG]*0,H"2<-)1(BO
XM%Q\;&Q\7(A(E#2<)*`,I_2E`0/<,^0?]$/WP0`#^$/[P0`#]$`000`#]\`3PM
XM0$#W#/D'`A`"\$```Q`#\$``_!`#$$``_/`#\$!`]PSX!P(0_PW^"OX(_P4!^
XM`P$"_0`!_@']__O^^/[V__,"\$````[_"_\'``1```#\__G_]0#R0$#W#/D((
XM_A`!#0(*`@@!!?\#_P(#`/_^__T!^P+X`O8!\_[P0```#@$+`0<`!$```/P!J
XM^0'U`/)`0/<,]`P("?@`"/=`0/<,]`SX"0@`^/=`0/<,]`SW_??_^`+Z`_P#*
XM_@("_P3^!OX(_PD!0`#W__@!^@+\`OX!`OX$_0;]"/X)`0D#0$#W#/H&_@P#P
XM!D``_@S]"P,&0$#W#/,-!@()``;^0``#!0@``_M``/<`"`!`0/<,^`C^!@`)6
XM`@9``/L#``@%`T````@`]T!`]PSS#?H"]P#Z_D``_07X`/W[0`#X``D`0$#WM
XM#/@(_OH`]P+Z0`#[_0#X!?U````)`/A`0/<,]`P)#/?W0`#\#/X*_@C]!OL%)
XM^07W!_<)^`OZ#/P,_@L!"@0*!PL)#$``!?X#_0+[`OD$]P;W"/@)^@G\!_X%;
XM_D!`]PSS#@4$!`8"!_\'_0;\!?L"^__\_?[\`?P#_03_0`#_!_T%_`+\__W]-
XM_OQ```4'!/\$_0;\"/P*_@L!"P,*!@D(!PH%"P(,_PS\"_H*^`CW!O8#]@#W[
XM_?C[^OG\^/_W`O<%^`?Y"/I```8'!?\%_0;\0$#W#/,._PS\"_D)]P;V`_8`>
XM]_WY^OSX__<"]P7X"/H*_0L`"P,*!@@)!0L"#/\,0````_\"_P$```$``@$"]
XM`@$#``-````"``$!`0$"``)`0/<,\@[^#/L+^`GV!O4#]?_V_/CY^_?^]@+V0
XB!?<(^0K\"_\+`PH&"`D%"P(,_@Q````,`/9``/4!"P%`0/_V=
X``
Xend
Xsize 6424
END_OF_FILE
if test 9035 -ne `wc -c <'plstnd.fnt.uu'`; then
    echo shar: \"'plstnd.fnt.uu'\" unpacked with wrong size!
fi
# end of 'plstnd.fnt.uu'
fi
echo shar: End of archive 1 \(of 3\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 3 archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
Mail comments to the moderator at <amiga-request@uunet.uu.net>.
Post requests for sources, and general discussion to comp.sys.amiga.