[comp.sources.amiga] v90i007: plplot 2.6 - C library for making scientific plots, Part06/12

Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (01/15/90)

Submitted-by: Anthony M. Richardson <amr@dukee.egr.duke.edu>
Posting-number: Volume 90, Issue 007
Archive-name: applications/plplot-2.6/part06

#! /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 6 (of 12)."
# Contents:  Amiga/Amiga.c drivers/postscript.c fonts/plstnd.fnt.uu
#   fonts/plxtnd.idx.uu unix/postscript.c
# Wrapped by tadguy@xanth on Sun Jan 14 18:11:37 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Amiga/Amiga.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Amiga/Amiga.c'\"
else
echo shar: Extracting \"'Amiga/Amiga.c'\" \(6991 characters\)
sed "s/^X//" >'Amiga/Amiga.c' <<'END_OF_FILE'
X /* Amiga PLPLOT window routines. */
X
X#include "plplot.h"
X#include "plamiga.h"
X#include <stdio.h>
X#ifdef AZTEC_C
X   /* Psuedo-ANSI compatibility */
X   #define remove(name)    unlink(name)
X   /* Lattice defines these for you */
X   struct IntuitionBase *IntuitionBase;
X   struct GfxBase *GfxBase;
X#endif
X
XPLINT XOffset, YOffset, PLWidth, PLHeight;
XPLINT MaxPLWidth, MaxPLHeight;
XPLINT InitPLWidth, InitPLHeight;
Xextern PLINT MaxColors;
X
XFILE *PlotFile;
Xshort fbuffer;
Xstatic PLINT CurColor;
X
Xvoid amisetup(xmm, ymm, xpg, ypg)
XPLINT xpg, ypg;
XPLFLT xmm, ymm;
X{
X}
X
Xvoid amiselect(ori, file)
XPLINT ori;
Xchar *file;
X{
X}
X
X/* amiini is the PLPLOT window initialization routine.  It opens the
X   necessary libraries and the window. */
Xvoid amiinit()
X{
X   PLFLT Initdpmx, Initdpmy;
X
X   /* Scan defaults file */
X   GetPLDefs();
X   /* Open the required libraries. */
X   OpenLibs();
X   /* Open window for graphics */
X   OpenPLWind();
X   /* Set up virtual screen width and height */
X   /* Virtual screen is 25 times the actual one. */
X   MaxPLWidth = PLScreen->Width - PLWindow->BorderLeft - PLWindow->BorderRight - 16;
X   MaxPLHeight = PLScreen->Height - PLWindow->BorderTop - PLWindow->BorderBottom - 16;
X   InitPLWidth = MaxPLWidth*25;
X   InitPLHeight = MaxPLHeight*25;
X   Initdpmx = GfxBase->NormalDPMX;
X   Initdpmy = GfxBase->NormalDPMY;
X   if(PLScreen->ViewPort.Modes & HIRES)
X      Initdpmx *= 2.;
X   if(PLScreen->ViewPort.Modes & LACE)
X      Initdpmy *= 2.;
X   setpxl((PLFLT)(Initdpmx/40.),(PLFLT)(Initdpmy/40.));
X   setphy(0, (InitPLWidth-1), 0, (InitPLHeight-1));
X   scol(1);
X   swid(1);
X   smod(1);
X
X   SetAPen(PLWRPort,1);
X   SetDrMd(PLWRPort,JAM1);
X   setlimits();
X}
X
Xvoid setlimits()
X{
X   XOffset = PLWindow->BorderLeft+8;
X   YOffset = PLWindow->BorderTop+8;
X   PLWidth = PLWindow->Width - XOffset - PLWindow->BorderRight - 8;
X   PLHeight = PLWindow->Height - YOffset - PLWindow->BorderBottom - 8;
X   if(PLCurPrefs.WinType & PLASP) {
X      if(PLWidth*MaxPLHeight > PLHeight*MaxPLWidth) {
X         PLWidth = (MaxPLWidth*PLHeight)/MaxPLHeight;
X         XOffset += (PLWindow->Width - PLWidth - PLWindow->BorderLeft -
X                    PLWindow->BorderRight)/2;
X      }
X      else {
X         PLHeight = (MaxPLHeight*PLWidth)/MaxPLWidth;
X         YOffset += (PLWindow->Height - PLHeight - PLWindow->BorderTop -
X                    PLWindow->BorderBottom)/2;
X      }
X   }
X}
X
Xvoid amitidy()
X{
X   void beepw();
X
X   beepw();
X   ClosePLWind();
X   CloseLibs();
X   if(fbuffer) {
X      fclose(PlotFile);
X      remove(PLOTBFFR);
X   }
X}
X
Xvoid OpenLibs()
X{
X  IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",0L);
X  if( IntuitionBase == NULL ) {
X     puts("\nError opening Intuition library.");
X     goto IntError;
X  }
X
X  GfxBase = (struct GfxBase *)OpenLibrary("graphics.library",0L);
X  if( GfxBase == NULL ) {
X     puts("\nError opening Graphics library.");
X     goto GfxError;
X  }
X
X  return;
X
XGfxError:
X  CloseLibrary((struct Library *)IntuitionBase);
XIntError:
X  pl_exit();
X}
X
Xvoid CloseLibs()
X{
X   CloseLibrary((struct Library *)GfxBase);
X   CloseLibrary((struct Library *)IntuitionBase);
X}
X
Xvoid amitext()
X{
X}
X
Xvoid amigraph()
X{
X}
X
Xvoid amiclear()
X{
X   void beepw(), setpen();
X
X   beepw();
X   setpen(0);
X   RectFill(PLWRPort,XOffset,YOffset,PLWidth+XOffset,PLHeight+YOffset);
X   setpen(CurColor);
X   if(fbuffer) {
X      fclose(PlotFile);
X      remove(PLOTBFFR);
X   }
X}
X
Xstatic PLINT xold, yold;
X
Xvoid amipage()
X{
X   fbuffer = 0;
X   if(PLCurPrefs.WinType & PLBUFF) {
X      PlotFile = fopen(PLOTBFFR,"w+");
X      if(PlotFile == NULL) {
X         fprintf(stderr,"\nError opening plot data storage file.\n");
X         ClosePLWind();
X         CloseLibs();
X         exit(1);
X      }
X      fbuffer = 1;
X   }
X   xold = -100000; yold = -100000;
X}
X
X
Xvoid amiline(x1, y1, x2, y2)
XPLINT x1, y1, x2, y2;
X{
X   short comm, xshrt, yshrt;
X
X   /* Check for intuition messages */
X   procmess();
X   if(x1 == xold && y1 == yold) {
X      comm = PEND;
X      xshrt = x2;
X      yshrt = y2;
X      if(fbuffer) {
X         (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
X         (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
X         (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
X      }
X      PLDraw((PLWidth*x2)/InitPLWidth,(PLHeight*y2)/InitPLHeight);
X   }
X   else {
X      comm = PENU;
X      xshrt = x1;
X      yshrt = y1;
X      if(fbuffer) {
X         (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
X         (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
X         (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
X      }
X      comm = PEND;
X      xshrt = x2;
X      yshrt = y2;
X      if(fbuffer) {
X         (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
X         (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
X         (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
X      }
X      PLMove((PLWidth*x1)/InitPLWidth,(PLHeight*y1)/InitPLHeight);
X      PLDraw((PLWidth*x2)/InitPLWidth,(PLHeight*y2)/InitPLHeight);
X   }
X   xold = x2;
X   yold = y2;
X}
X
Xvoid PLMove(x, y)
XPLINT x, y;
X{
X   PLINT xsc, ysc;
X
X   xsc = XOffset + x;
X   ysc = YOffset + PLHeight - y;
X   Move(PLWRPort,xsc,ysc);
X}
X
Xvoid PLDraw(x, y)
XPLINT x, y;
X{
X   PLINT xsc, ysc;
X
X   xsc = XOffset + x;
X   ysc = YOffset + PLHeight - y;
X   Draw(PLWRPort,xsc,ysc);
X}
X
Xvoid remakeplot()
X{
X   long cxy, x1, y1;
X   long x, y;
X   void setpen();
X
X   setpen(0);
X   RectFill(PLWRPort,PLWindow->BorderLeft,PLWindow->BorderTop,
X            PLWindow->Width-PLWindow->BorderRight,
X            PLWindow->Height-PLWindow->BorderBottom);
X
X   setpen(1);
X
X   if(fbuffer == 0)
X      return;
X   prepupdate();
X
X   while(!getpoint(&cxy, &x1, &y1)) {
X      if(cxy == PENU) {
X         x = ((long)PLWidth*(long)x1)/InitPLWidth;
X         y = ((long)PLHeight*(long)y1)/InitPLHeight;
X         PLMove((PLINT)x, (PLINT)y);
X      }
X      else if(cxy == PEND) {
X         x = ((long)PLWidth*(long)x1)/InitPLWidth;
X         y = ((long)PLHeight*(long)y1)/InitPLHeight;
X         PLDraw((PLINT)x, (PLINT)y);
X      }
X      else if(cxy == SPEN) {
X         CurColor = x1;
X         if(x1 >= MaxColors)
X            CurColor = 1;
X         setpen((PLINT)CurColor);
X      }
X   }
X
X   finiupdate();
X   DisplayBeep(PLScreen);
X}
X
Xvoid amiwidth(width)
XPLINT width;
X{
X   short shwid, comm;
X
X   if(width>=1 && width <=3) {
X      comm = PWID;
X      shwid = width;
X      if(fbuffer) {
X         fwrite((char *)&comm,sizeof(short),1,PlotFile);
X         fwrite((char *)&shwid,sizeof(short),1,PlotFile);
X      }
X   }
X}
X
Xvoid amicolor(color)
XPLINT color;
X{
X   short shcol, comm;
X   void setpen();
X
X   if(color >= 0 && color < 16) {
X     shcol = color;
X     comm = SPEN;
X     if(fbuffer) {
X        fwrite((char *)&comm,sizeof(short),1,PlotFile);
X        fwrite((char *)&shcol,sizeof(short),1,PlotFile);
X     }
X     if(color >= MaxColors)
X        color = 1;
X     CurColor = color;
X     setpen(color);
X   }
X}
X
Xstatic void setpen(color)
XPLINT color;
X{
X   SetAPen(PLWRPort,color);
X}
X
Xstatic void beepw()
X{
X   DisplayBeep(PLScreen);
X   eventwait();
X}
END_OF_FILE
if test 6991 -ne `wc -c <'Amiga/Amiga.c'`; then
    echo shar: \"'Amiga/Amiga.c'\" unpacked with wrong size!
fi
# end of 'Amiga/Amiga.c'
fi
if test -f 'drivers/postscript.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'drivers/postscript.c'\"
else
echo shar: Extracting \"'drivers/postscript.c'\" \(9517 characters\)
sed "s/^X//" >'drivers/postscript.c' <<'END_OF_FILE'
X/* This file contains the PostScript device dependent subroutines for */
X/* use with plplot. */
X
X#include "plplot.h"
X#include <stdio.h>
X
X#define LINELENGTH      70
X#define COPIES          1
X#define XSIZE           540
X#define YSIZE           720
X#define XPSSIZE         3000
X#define YPSSIZE         2250
X#define XOFFSET         576
X#define YOFFSET         36
X#define XSCALE          100
X#define YSCALE          100
X#define LINESCALE       100
X#define ANGLE           90
X#define PSX             XPSSIZE-1
X#define PSY             YPSSIZE-1
X
Xchar *getdate();
Xstatic int numpages = 0;
Xstatic int linepos = 0;
X
Xstatic FILE *OutFile;
Xstatic PLINT orient;
Xstatic PLINT select=0;
Xstatic char FileName[80];
X
Xvoid pssetup(xdpi, ydpi, xwid, ywid)
XPLINT xwid, ywid;
XPLFLT xdpi, ydpi;
X{
X}
X
Xvoid psselect(ori, name)
XPLINT ori;
Xchar *name;
X{
X   orient = ori;
X   strncpy(FileName,name,sizeof(FileName)-1);
X   FileName[sizeof(FileName)-1] = '\0';
X   select = 1;
X}
X
X
X/* Open file.  Set up for graphics. */
Xvoid psinit()
X{
X      char line[80];
X
X      if(!select) {
X         printf("Landscape or portrait orientation? (0 or 1) ");
X         fgets(line,sizeof(line),stdin);
X         if(sscanf(line,"%d",&orient) != 1)
X            orient = 0;
X      }
X
X   /* setpxl() sets the dots/mm in the x and y directions */
X      setpxl((PLFLT)11.81,(PLFLT)11.81);         /* 300 dpi */
X
X   /* setphy() sets the device coordinates. These are integer */
X   /* values. Set up for landscape orientation (long axis of page in the */
X   /* x direction). Origin is in the lower left hand corner. */
X      if(!orient)
X         setphy(0,PSX,0,PSY);
X      else
X         setphy(0,PSY,0,PSX);
X
X   /* Set default pen color using scol(color). */
X   /* Any default pen color can be used but a black pen is probably best. */
X      scol(1);
X
X   /* Set default pen width using swid(width) */
X      swid(1);
X
X   /* Set device interaction mode using smod(mode). Set mode to 0 for */
X   /* a noninteractive device, Unless you are writing your */
X   /* own Amiga screen driver mode should be 0. */
X      smod(0);
X
X   /* Well that's all the information plplot needs. Let's prompt for a */
X   /* graphics file name. */
X      for(;;) {
X         if(!select) {
X            printf("Enter PostScript graphics file name. ");
X            fgets(line,sizeof(line),stdin);
X            if(sscanf(line,"%s",FileName)!=1)
X               continue;
X         }
X
X         if (!(OutFile = fopen(FileName,"w"))) {
X            fprintf(stderr,"Can't open %s.\n",FileName);
X            select = 0;
X         }
X         else
X            break;
X      }
X      select = 0;
X
X  /* Header comments into PostScript file */
X
X      fprintf(OutFile,"%%!PS-Adobe-2.0 EPSF-2.0\n");
X      fprintf(OutFile,"%%%%BoundingBox: 36 36 540 720\n");
X      fprintf(OutFile,"%%%%Title: %s\n", FileName);
X      fprintf(OutFile,"%%%%Creator: PLPLOT Version 2.0\n");
X      fprintf(OutFile,"%%%%CreationDate: %s\n", getdate());
X      fprintf(OutFile,"%%%%Pages: (atend)\n");
X      fprintf(OutFile,"%%%%EndComments\n\n");
X
X  /* Definitions */
X
X      fprintf(OutFile, "/PSSave save def\n");      /* save VM state */
X      fprintf(OutFile, "/PSDict 200 dict def\n");  /* define a dictionary */
X      fprintf(OutFile, "PSDict begin\n");          /* start using it */
X      fprintf(OutFile, "/@restore /restore load def\n");
X      fprintf(OutFile, "/restore\n");
X      fprintf(OutFile, "   {vmstatus pop\n");
X      fprintf(OutFile, "    dup @VMused lt {pop @VMused} if\n");
X      fprintf(OutFile, "    exch pop exch @restore /@VMused exch def\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@pri\n");
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    ( ) print\n");
X      fprintf(OutFile, "    (                                       ) cvs print\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@copies\n");   /* n @copies - */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    /#copies exch def\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@start\n");    /* - @start -  -- start everything */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    vmstatus pop /@VMused exch def pop\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@end\n");      /* - @end -  -- finished */
X      fprintf(OutFile, "   {(VM Used: ) print @VMused @pri\n");
X      fprintf(OutFile, "    (. Unused: ) print vmstatus @VMused sub @pri pop pop\n");
X      fprintf(OutFile, "    (\\n) print flush\n");
X      fprintf(OutFile, "    end\n");
X      fprintf(OutFile, "    PSSave restore\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/bop\n");       /* bop -  -- begin a new page */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    /SaveImage save def\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/eop\n");       /* - eop -  -- end a page */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    showpage\n");
X      fprintf(OutFile, "    SaveImage restore\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@line\n");     /* set line parameters */
X      fprintf(OutFile, "   {0 setlinecap\n");
X      fprintf(OutFile, "    0 setlinejoin\n");
X      fprintf(OutFile, "    1 setmiterlimit\n");
X      fprintf(OutFile, "   } def\n");
X                        /* d @hsize -  horizontal clipping dimension */
X      fprintf(OutFile, "/@hsize   {/hs exch def} def\n");
X      fprintf(OutFile, "/@vsize   {/vs exch def} def\n");
X                        /* d @hoffset - shift for the plots */
X      fprintf(OutFile, "/@hoffset {/ho exch def} def\n");
X      fprintf(OutFile, "/@voffset {/vo exch def} def\n");
X                        /* s @hscale - scale factors */
X      fprintf(OutFile, "/@hscale  {100 div /hsc exch def} def\n");
X      fprintf(OutFile, "/@vscale  {100 div /vsc exch def} def\n");
X                        /* s @lscale - linewidth scale factor */
X      fprintf(OutFile, "/@lscale  {100 div /lin exch def} def\n");
X                        /* a @angle - rotation angle */
X      fprintf(OutFile, "/@angle   {/ang exch def} def\n");
X      fprintf(OutFile, "/@SetPlot\n");  /* setup user specified offsets, */
X      fprintf(OutFile, "   {\n");       /* scales, sizes for clipping    */
X      fprintf(OutFile, "    ho vo translate\n");
X      fprintf(OutFile, "    XScale YScale scale\n");
X      fprintf(OutFile, "    ang rotate\n");
X      fprintf(OutFile, "    lin lw mul setlinewidth\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/XScale\n");    /* setup x scale */
X      fprintf(OutFile, "   {hsc hs mul %d div} def\n", YPSSIZE);
X      fprintf(OutFile, "/YScale\n");    /* setup y scale */
X      fprintf(OutFile, "   {vsc vs mul %d div} def\n", XPSSIZE);
X      fprintf(OutFile, "/lw 3 def\n");  /* default line width */
X      fprintf(OutFile, "/M {moveto} def\n");
X      fprintf(OutFile, "/D {lineto} def\n");
X      fprintf(OutFile, "/S {stroke} def\n");
X      fprintf(OutFile, "/Z {stroke newpath} def\n");
X      fprintf(OutFile, "end\n\n");      /* end of dictionary definition */
X
X  /* Set up the plots */
X
X      fprintf(OutFile, "PSDict begin\n");
X      fprintf(OutFile, "@start\n");
X      fprintf(OutFile, "%d @copies\n", COPIES);
X      fprintf(OutFile, "@line\n");
X      fprintf(OutFile, "%d @hsize\n", XSIZE);
X      fprintf(OutFile, "%d @vsize\n", YSIZE);
X      fprintf(OutFile, "%d @hoffset\n", XOFFSET);
X      fprintf(OutFile, "%d @voffset\n", YOFFSET);
X      fprintf(OutFile, "%d @hscale\n", XSCALE);
X      fprintf(OutFile, "%d @vscale\n", YSCALE);
X      fprintf(OutFile, "%d @lscale\n", LINESCALE);
X      fprintf(OutFile, "%d @angle\n", ANGLE);
X      fprintf(OutFile, "@SetPlot\n\n");
X      fprintf(OutFile, "bop\n");
X      fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
X}
X
X/* Sets the printer to text mode */
Xvoid pstext()
X{
X}
X
X/* Sets the printer to graphics mode */
Xvoid psgraph()
X{
X}
X
X/* Form feed */
Xvoid psclear()
X{
X     fprintf(OutFile," S\neop\nbop\n");
X}
X
Xstatic PLINT xlast, ylast;
X
Xvoid pspage()
X{
X     numpages++;
X     fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
X     linepos = 0;
X     xlast = -100000; ylast = -100000;
X}
X
X/* May put something here someday */
Xvoid pscolor(colour)
Xint colour;
X{
X}
X
X/* I don't know what to put here - Tony */
Xvoid pswidth()
X{
X}
X
Xvoid psline(x1,y1,x2,y2)
XPLINT x1,y1,x2,y2;
X{
X      if (linepos + 21 > LINELENGTH) {
X          putc('\n', OutFile);
X          linepos = 0;
X      } else
X          putc(' ', OutFile);
X
X      if(!orient) {
X         if(x1 == xlast && y1 == ylast)
X            fprintf(OutFile, "%ld %ld D", x2, y2);
X         else
X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", x1, y1, x2, y2);
X      }
X      else {
X         if(x1 == xlast && y1 == ylast)
X            fprintf(OutFile, "%ld %ld D", PSX-y2, x2);
X         else
X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", PSX-y1,x1,PSX-y2,x2);
X      }
X
X      xlast = x2;
X      ylast = y2;
X      linepos += 21;
X}
X
X/* Close graphics file */
Xvoid pstidy()
X{
X      fprintf(OutFile," S\neop\n");
X      numpages++;
X      fprintf(OutFile, "@end\n\n");
X      fprintf(OutFile, "%%%%Trailer\n");
X      fprintf(OutFile, "%%%%Pages: %d\n", numpages);
X      fclose(OutFile);
X      numpages = 0;
X      linepos = 0;
X}
X
X/* Get the date and time */
Xstatic char *getdate()
X{
X        int len;
X        long t, time();
X        char *p, *ctime();
X
X        t = time((long *) 0);
X        p = ctime(&t);
X        len = strlen(p);
X        *(p + len - 1) = '\0';  /* zap the newline character */
X        return p;
X}
END_OF_FILE
if test 9517 -ne `wc -c <'drivers/postscript.c'`; then
    echo shar: \"'drivers/postscript.c'\" unpacked with wrong size!
fi
# end of 'drivers/postscript.c'
fi
if test -f 'fonts/plstnd.fnt.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts/plstnd.fnt.uu'\"
else
echo shar: Extracting \"'fonts/plstnd.fnt.uu'\" \(8058 characters\)
sed "s/^X//" >'fonts/plstnd.fnt.uu' <<'END_OF_FILE'
Xbegin 644 plstnd.fnt
XM"R_W#/<)``SX]T````P(]T``^_X%_D!`]PSU"OD,^?=``/D,`@P%"P8*!P@'_
XM!@8$!0,"`D``^0("`@4!!@`'_@?[!OD%^`+W^?=`0/<,]@L(!P<)!0L##/\,@
XM_0O["?H'^03Y__K\^_K]^/_W`_<%^`?Z"/Q`0/<,]0KY#/GW0`#Y#``,`PL%O
XM"08'!P0'_P;\!?H#^`#W^?=`0/<,]@GZ#/KW0`#Z#`<,0`#Z`@("0`#Z]P?W+
XM0$#W#/8(^@SZ]T``^@P'#$``^@("`D!`]PSV"P@'!PD%"P,,_PS]"_L)^@?YD
XM!/G_^OS[^OWX__<#]P7X!_H(_`C_0``#_PC_0$#W#/4+^0SY]T``!PP']T``G
XM^0('`D!`]PS\!``,`/=`0/<,^`@$#`3\`_D"^`#W_O?\^/OY^OSZ_D!`]PSU-
XM"OD,^?=```<,^?Y``/X#!_=`0/<,]@?Z#/KW0`#Z]P;W0$#W#/0,^`SX]T``C
XM^`P`]T``"`P`]T``"`P(]T!`]PSU"_D,^?=``/D,!_=```<,!_=`0/<,]0O^F
XM#/P+^@GY!_@$^/_Y_/KZ_/C^]P+W!/@&^@?\"/\(!`<'!@D$"P(,_@Q`0/<,M
XM]0KY#/GW0`#Y#`(,!0L&"@<(!P4&`P4"`@'Y`4!`]PSU"_X,_`OZ"?D'^`3X:
XM__G\^OK\^/[W`O<$^`;Z!_P(_P@$!P<&"00+`@S^#$```?L']4!`]PSU"OD,?
XM^?=``/D,`@P%"P8*!P@'!@8$!0,"`OD"0````@?W0$#W#/8*!PD%"P(,_@S[&
XM"_D)^0?Z!?L$_0,#`04`!O\'_0?Z!?@"]_[W^_CY^D!`]PSX"``,`/=``/D,Z
XM!PQ`0/<,]0OY#/G]^OK\^/_W`?<$^`;Z!_T'#$!`]PSW"?@,`/=```@,`/=`#
XM0/<,]`SV#/OW0```#/OW0```#`7W0``*#`7W0$#W#/8*^0P']T``!PSY]T!`8
XM]PSW"?@,``(`]T``"`P``D!`]PSV"@<,^?=``/D,!PQ``/GW!_=`0/<,]PD`E
XM#/CW0```#`CW0`#[_@7^0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P(">
XM0`#Y`@("!0$&``?^!_L&^07X`O?Y]T!`]PSV!_H,^O=``/H,!@Q`0/<,]PD`)
XM#/CW0```#`CW0`#X]PCW0$#W#/8)^@SZ]T``^@P'#$``^@("`D``^O<']T!`U
XM]PSV"@<,^?=``/D,!PQ``/GW!_=`0/<,]0OY#/GW0``'#`?W0`#Y`@<"0$#W0
XM#/4+_@S\"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'!P8)!`L"#/X,T
XM0`#]`@,"0$#W#/P$``P`]T!`]PSU"OD,^?=```<,^?Y``/X#!_=`0/<,]PD`-
XM#/CW0```#`CW0$#W#/0,^`SX]T``^`P`]T``"`P`]T``"`P(]T!`]PSU"_D,=
XM^?=``/D,!_=```<,!_=`0/<,]PGY#`<,0`#]`@,"0`#Y]P?W0$#W#/4+_@S\:
XM"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'!P8)!`L"#/X,0$#W#/4+E
XM^0SY]T``!PP']T``^0P'#$!`]PSU"OD,^?=``/D,`@P%"P8*!P@'!08#!0("U
XM`?D!0$#W#/<)^0P``OGW0`#Y#`<,0`#Y]P?W0$#W#/@(``P`]T``^0P'#$!`9
XM]PSW"?D'^0GZ"_L,_0S^"_\)``4`]T``!P<'"08+!0P##`(+`0D`!4!`]PSV+
XM"@`,`/=``/X'^P;Z!?D#^0#Z_OO]_OP"_`7]!OX'``<#!@4%!@('_@=`0/<,M
XM]@KY#`?W0`#Y]P<,0$#W#/4+``P`]T``]P;X!OD%^@'[__S^__T!_03^!?\&Z
XM`0<%"`8)!D!`]PSV"OGW_??Z_OD"^0;Z"?P+_PP!#`0+!@D'!@<"!OX#]P?W5
XM0$#W#/<*!@4&]T``!@($!`(%_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSVC
XM"?H,^O=``/H"_`3^!0$%`P0%`@;_!OT%^@/X`??^]_SX^OI`0/<,]PD&`@0$]
XM`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z0$#W#/<*!@P&]T``!@($!`(%_P7]Y
XM!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSW"?K_!O\&`04#!`0"!?\%_03[`OK_@
XM^OW[^OWX__<"]P3X!OI`0/<,^P<%#`,,`0L`"`#W0`#]!00%0$#W#/<*!@4&<
XM]07R!/$"\/_P_?%```8"!`0"!?\%_03[`OK_^OW[^OWX__<"]P3X!OI`0/<,1
XM]PK[#/OW0`#[`?X$``4#!04$!@$&]T!`]PS\!/\,``L!#``-_PQ````%`/=`,
XM0/<,^P4`#`$+`@P!#0`,0``!!0'T`/'^\/SP0$#W#/<(^PS[]T``!07[^T``$
XM__\&]T!`]PS\!``,`/=`0/<,\0_U!?7W0`#U`?@$^@7]!?\$``$`]T````$#<
XM!`4%"`4*!`L!"_=`0/<,]PK[!?OW0`#[`?X$``4#!04$!@$&]T!`]PSW"O\%-
XM_03[`OK_^OW[^OWX__<"]P3X!OH'_0?_!@($!`(%_P5`0/<,]@GZ!?KP0`#Z-
XM`OP$_@4!!0,$!0(&_P;]!?H#^`'W_O?\^/KZ0$#W#/<*!@4&\$``!@($!`(%,
XM_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSY!OT%_?=``/W__@(`!`(%!05`0
XM0/<,^`D&`@4$`@7_!?P$^P+\`/[_`_X%_0;[!OH%^`+W__?\^/OZ0$#W#/L'T
XM``P`^P'X`_<%]T``_04$!4!`]PSW"OL%^_O\^/[W`?<#^`;[0``&!0;W0$#W7
XM#/@(^@4`]T``!@4`]T!`]PSU"_@%_/=````%_/=````%!/=```@%!/=`0/<,Z
XM^`G[!0;W0``&!?OW0$#W#/@(^@4`]T``!@4`]_[S_/'Z\/GP0$#W#/@)!@7[Q
XM]T``^P4&!4``^_<&]T!`]PSV"_\%_03[`OH`^?WY^OKX_/?^]P#X`_L%_@<"V
XM"`5``/\%`04"!`,"!?H&^`?W"/=`0/<,]PH##`$+_PG]!?P"^_[Z^/GP0``#:
XM#`4,!PH'!P8%!00#`P`#0````P("!``%_@7[!/D#^`'W__?]^/SY^_Q`0/<,Q
XM]PKX`OH$_`7]!?\$``,!``'\`/=```@%!P(&``#W_O/]\$!`]PSW"0(%_P7]S
XM!/L"^O_Z_/OY_/C^]P#W`O@$^@7]!0`$`P(%``?_"?\+``P"#`0+!@E`0/<,E
XM^`<"#``+_PK_"0`(`P<&!T``!@<"!?\#_`#[_?O[_/G^]P'U`O,"\0'P__#^N
XM\D!`]PSV"O<!^`/Z!?P%_03]`OS^^O=``/S^_@(`!`(%!`4&`P8`!?L"\$!`B
XM]PSZ!0`%_O[]^OWX_O<`]P+Y`_M`0/<,]PG]!?GW0``'!`8%!04#!/\`_?_\G
XM_T``_/_^_O_]`?@"]P/W!/A`0/<,^`CY#/L,_0O^"@;W0```!?KW0$#W#/8+P
XM_07W\$``_`'[_/OY_??_]P'X`_H%_D``!P4%_@3Z!/@%]P?W"?D*^T!`]PSWX
XM"?H%_07\__OZ^O=```<%!@(%``/]`/K]^/KW0$#W#/@(`@P`"_\*_PD`"`,'C
XM!@=```,'``;^!?T#_0'__P+^!/Y```+^_OW\_/OZ^_C]]@'T`O,"\0#P_O!`G
XM0/<,^`D`!?X$_`+[__O\_/G]^/_W`?<#^`7Z!OT&``4#!`0"!0`%0$#W#/4+T
XM_@7Z]T```P4$_P7Z!O=``/<"^03\!0D%0$#W#/<)^__[_/SY_?C_]P'W`_@%,
XM^@;]!@`%`P0$`@4`!?X$_`+[__?P0$#W#/<+"07_!?T$^P+Z__K\^_G\^/[WA
XM`/<"^`3Z!?T%``0#`P0!!4!`]PSV"@$%_O=``/@"^@3]!0@%0$#W#/8*]P'X"
XM`_H%_`7]!/T"^_S[^?WW__<"^`3Z!OX'`@<%0$#W#/<)^07[!?T#`_(%\`?P+
XM0``(!0<#!0#[]?GR^/!`0/<,]`L$#/SP0`#U`?8#^`7Z!?L$^P+Z_?KZ^_C]?
XM]__W`O@$^@;]"`()!4!`]PST"_P%^@3X`??^]_OX^/GW^_?]^/_[0```___[;
XM`/@!]P/W!?@'^PC^"`$'!`8%0$#W#/@(!00#!0`%_@3\`OO_^_S\^?WX__<"Z
XM]P3X0`#[_@/^0$#W#/@)`@P`"_X(_0;\`_O^^_K\^/WW__<!^`/[!/T%``8%F
XM!@D%"P0,`@Q``/P"!0)`0/<,]@H$#/SP0`#_!?P$^@+Y__G\^OK\^/_W`?<$(
XM^`;Z!_T'``8"!`0!!?\%0$#W#/@(0`!`0/<,]@K_#/P+^@CY`_D`^OO\^/_W+
XM`?<$^`;[!P`'`P8(!`L!#/\,0$#W#/8*_`C^"0$,`?=`0/<,]@KZ!_H(^PK\5
XM"_X,`@P$"P4*!@@&!@4$`P'Y]P?W0$#W#/8*^PP&#``$`P0%`P8"!_\'_0;Z7
XM!/@!]_[W^_CZ^?G[0$#W#/8*`PSY_@C^0``##`/W0$#W#/8*!0S[#/H#^P3^P
XM!0$%!`0&`@?_!_T&^@3X`??^]_OX^OGY^T!`]PSV"@8)!0L"#``,_0O["/H#L
XM^O[[^OWX`/<!]P3X!OH'_0?^!@$$`P$$``3]`_L!^OY`0/<,]@H'#/WW0`#YD
XM#`<,0$#W#/8*_@S["_H)^@?[!?T$`0,$`@8`!_X'^P;Y!?@"]_[W^_CZ^?G[2
XM^?[Z`/P"_P,#!`4%!@<&"04+`@S^#$!`]PSV"@8%!0(#``#____\`/H"^07Y*
XM!OH)_`O_#``,`PL%"08%!@`%^P/X`/?^]_OX^OI`0/<,^P4`^?_X`/<!^`#Y^
XM0$#W#/L%`?@`]__X`/D!^`'V`/3_\T!`]PS[!0`%_P0``P$$``5```#Y__@`!
XM]P'X`/E`0/<,^P4`!?\$``,!!``%0``!^`#W__@`^0'X`?8`]/_S0$#W#/L%Z
XM``P`_D```/G_^`#W`?@`^4!`]PSW"?H'^@C["OP+_@P"#`0+!0H&"`8&!00$2
XM`P`!`/Y```#Y__@`]P'X`/E`0/<,_`0`#``%0$#W#/@(_`S\!4``!`P$!4!`4
XM]PSY!_\,_0O\"?P'_07_!`$$`P4$!P0)`PL!#/\,0$#W#/8*_A#^\T```A`"$
XM\T``!PD%"P(,_@S["_D)^0?Z!?L$_0,#`04`!O\'_0?Z!?@"]_[W^_CY^D!`5
XM]PSU"PD0]_!`0/<,^0<$$`(.``O^!_T"_?[^^0#U`O($\$!`]PSY!_P0_@X`C
XM"P('`P(#_@+Y`/7^\OSP0$#W#/P$`!``\$!`]PSS#?<`"0!`0/<,\PT`"0#WO
XM0`#W``D`0$#W#/,-]P,)`T``]_T)_4!`]PSX"``&`/I``/L#!?U```4#^_U`&
XM0/<,^P4``?\``/\!```!0$#W#/8+`1#Z\$``!Q``\$``^@,(`T``^?T'_4!`,
XM]PSS#0H#"@0)!0@%!P0&`@3]`OH`^/[W^O?X^/?Y]OOV_??_^`#_!``%`0<!J
XM"0`+_@S\"_L)^P?\!/X!`_H%^`?W"?<*^`KY0$#W#/4+]PGX!_D#^?WX^??WZ
XM0``)"0@'!P,'_0CY"?=``/<)^0C]!P,'!P@)"4``]_?Y^/WY`_D'^`GW0$#WG
XM#/D'_P?\!OH$^0'Y__K\_/K_^0'Y!/H&_`?_!P$&!`0&`0?_!T!`]PSZ!OH&5
XM^OH&^@8&^@9`0/<,^0<`"/G\!_P`"$!`]PSZ!@`*^@``]@8```I`0/<,^`@`;
XM"?X#^`/]__OY`/T%^0/_"`,"`P`)0$#W#/D'``<`^4``^0`'`$!`]PS[!?L%1
XM!?M```4%^_M`0/<,^P4`!@#Z0`#[`P7]0``%`_O]0$#W#/P$_P3]`_P!_/_]^
XM_?_\`?P#_03_!`$#`P$$_P1``/T!_?]``/X"_OY``/\#__U````#`/U```$##
XM`?U```("`OY```,!`_]`0/<,_`3\!/S\!/P$!/P$0`#]`_W]0`#^`_[]0`#_`
XM`__]0````P#]0``!`P']0``"`P+]0``#`P/]0$#W#/H&``;\^P8"^@($^P`&4
XM0``````&0````/H"0````/S[0`````3[0`````8"0$#W#/H&_@;^`OH"^O[^Y
XM_O[Z`OH"_@;^!@("`@(&_@9`0/<,^0<`"/G\!_P`"$```/@'!/D$`/A`0/<,4
XM_P$``?\``/\!```!0$#W#/X"_P+^`?[___X!_@+_`@$!`O\"0$#W#/P$_P3](
XM`_P!_/_]_?_\`?P#_03_!`$#`P$$_P1`0/<,^P7_!?T$_`/[`?O__/W]_/_[L
XM`?L#_`3]!?\%`00#`P0!!?\%0$#W#/D'_P?\!OH$^0'Y__K\_/K_^0'Y!/H&[
XM_`?_!P$&!`0&`0?_!T!`]PSU"_X+^PKX"/8%]0+U_O;[^/C[]O[U`O4%]@CX9
XM"OL+_@L""@4("`4*`@O^"T!`]PSO$?X1^A#X#_4-\POQ"/`&[P+O_O#Z\?CS5
XM]?7S^/'Z\/[O`N\&\`CQ"_,-]0_X$/H1_A$"$`8/"`T+"PT(#P80`A'^$4!`<
XM]PSJ%OX6^17U$_(1[P[M"^L'Z@+J_NOY[?7O\O+O]>WYZ_[J`NH'ZPOM#N\1%
XM\A/U%?D6_A8"%0<3"Q$.#A$+$P<5`A;^%D!`]PS7*?TI]RCS)^XEZ2+E'^$;2
XMWA?;$MD-V`G7`]?]V/?9\]ONWNGAY>7AZ=[NV_/9]]C]UP/7"=@-V1+;%]X;K
XMX1_E(NDE[B?S*/<I_2D#*`DG#242(A<?&QL?%R(2)0TG"2@#*?TI0$#W#/D'!
XM_1#]\$``_A#^\$``_1`$$$``_?`$\$!`]PSY!P(0`O!```,0`_!``/P0`Q!`D
XM`/SP`_!`0/<,^`<"$/\-_@K^"/\%`0,!`OT``?X!_?_[_OC^]O_S`O!````.H
XM_PO_!P`$0```_/_Y__4`\D!`]PSY"/X0`0T""@((`07_`_\"`P#__O_]`?L"G
XM^`+V`?/^\$````X!"P$'``1```#\`?D!]0#R0$#W#/0,"`GX``CW0$#W#/0,D
XM^`D(`/CW0$#W#/0,]_WW__@"^@/\`_X"`O\$_@;^"/\)`4``]__X`?H"_`+^:
XM`0+^!/T&_0C^"0$)`T!`]PSZ!OX,`P9``/X,_0L#!D!`]PSS#08""0`&_D``J
XM`P4(``/[0`#W``@`0$#W#/@(_@8`"0(&0`#[`P`(!0-````(`/=`0/<,\PWZO
XM`O<`^OY``/T%^`#]^T``^``)`$!`]PSX"/[Z`/<"^D``^_T`^`7]0```"0#X%
XM0$#W#/0,"0SW]T``_`S^"OX(_0;[!?D%]P?W"?@+^@S\#/X+`0H$"@<+"0Q`U
XM``7^`_T"^P+Y!/<&]PCX"?H)_`?^!?Y`0/<,\PX%!`0&`@?_!_T&_`7[`OO_D
XM_/W^_`'\`_T$_T``_P?]!?P"_/_]_?[\0``%!P3_!/T&_`C\"OX+`0L#"@8)Y
XM"`<*!0L"#/\,_`OZ"O@(]P;V`_8`]_WX^_KY_/C_]P+W!?@'^0CZ0``&!P7_&
XM!?T&_$!`]PSS#O\,_`OY"?<&]@/V`/?]^?K\^/_W`O<%^`CZ"OT+``L#"@8()
XM"04+`@S_#$````/_`O\!```!``(!`@(!`P`#0````@`!`0$!`@`"0$#W#/(.2
XM_@S["_@)]@;U`_7_]OSX^?OW_O8"]@7W"/D*_`O_"P,*!@@)!0L"#/X,0```>
X+#`#V0`#U`0L!0$#_#
X``
Xend
Xsize 5726
END_OF_FILE
if test 8058 -ne `wc -c <'fonts/plstnd.fnt.uu'`; then
    echo shar: \"'fonts/plstnd.fnt.uu'\" unpacked with wrong size!
fi
# end of 'fonts/plstnd.fnt.uu'
fi
if test -f 'fonts/plxtnd.idx.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts/plxtnd.idx.uu'\"
else
echo shar: Extracting \"'fonts/plxtnd.idx.uu'\" \(8444 characters\)
sed "s/^X//" >'fonts/plxtnd.idx.uu' <<'END_OF_FILE'
Xbegin 644 plxtnd.idx
XM"[@``0`,`!X`*P`Y`$<`4@!C`&X`<P!\`(<`CP"=`*@`N`#$`-<`Y@#U`/T!R
XM"`$0`1X!)@$O`3H!10%7`5\!:@%X`8,!C@&D`:D!M`&\`<H!U0'C`?,!_@(*$
XM`A8"'@(O`CX"1@)4````````````````````````````````````````````'
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM``````````````````````````````````````````````)C`F<":P)O`GT"M
XM@P*.`I\"J`*X`L@"T`+E`O4"_0,&`Q0#(P,Q`T0#20-1`UT#;P-T`WT#A@.+2
XM`Y`#F`.@`Z@#LP.[`\0#S0/6`^0#^P01```$*`0V!%@```1=````````````]
XM``1E```$DP``!+$```2[```$PP``!.($YP``!.\%(057!8H%S`8;!GH&TP<A#
XM!VL'AP?`!^D()@A6"&0```AX")$(J@B\",X```C@````````````````````\
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM````````````````".L(]@D0"24)-PE%"5`):0ET"7D)A@F1"9D)IPFR"<H)B
XMV@GU"@@*'PHG"C0*/`I*"E(*6PIF"G$*BPJ3"IX*K`JW"L(*W0KB"NT*]0L#\
XM"PX+&0LQ"SP+3`M8"V`+=0N,"Y0+J`N["]$+_`P6##L,60QW#)8,O@S9#/0-F
XM'0T\#6L-C0VL#<T-[PX7#C4.4`YS#I4.L`[6#OX````````````````/*```6
XM```````````````````````````````````````````/,P]'#UL/;`^`#Y0/^
XMGP^X#\4/T`_>#^D/[A`#$!`0)!`X$$P05Q!K$'80@Q"+$)D0H1"M$+@0TA#S@
XM$081(!$U$4X18Q&`$8L1H!&K$<(1TA'Q$@42%!(I$CT21Q)9$G`2@!*6$J\2-
XMQQ+@$O`3"A,=$S<351-T$X83G!._$],3]A0/%"@40A1?%'`4@A24%*D4O!37L
XM%.T5!A4?`````````````!4W%5,5915^%94````````````````````````50
XMIQ6K%:\5LQ7'%<X5WQ7Q%?H6#A8H%C`64!9J%G(6?1:+%IP6IQ:^%L,6RQ;;S
XM%O@6_1<*%Q<7'!<A%RD7,1<Y%T073!=6%V`7:Q=Y%YX``!>\%\07S!?2%^88K
XM"1@E&#L8;1BF````````&-\8\QD%&1`9+AE*&5H99AES&8(9CQF8&:`9J1FR'
XM&<D9X!H!&AD`````````````````````````````````````````````````I
XM```````````````````````:.1H^&D,:2!I-&E(:5QI<&F$:9AIK&G`:=1IZ1
XM&G\:B1J3&IT:IQJR&KT:R!K3&MH:X1KH&N\;"!LA&SH;4QMJ&W\;FQNH&[,;P
XMNAO"&\T`````````````&]@;[!OT&_L<`QP1'!D<(0`````<+!Q1'&X<@1R4H
XM'*<<NAS2`````!S?'.X<^QT+'1\=-AU#'5,==1V!':4=YQY''G$>DP``````%
XM`````````````````````````````````````````````````````````!ZD"
XM'JP>N![('MP>\!\('RP?4!^$'Z@?RP``````````````````````````````#
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM````````````````````````````````````````````````````````'^P@K
XM`"`O(%$@<2")()\@R2#F(/0A"B$G(3<A5R%N(9PANR'](BPB4")B(GLBC"*F<
XM(KTBTR+E(ODC*",X(TDC82-S(Y`CRB/8(_4D!B0F)#TD8R21)*@DQR3=).\E6
XM$B5$)5LEAB6S)<<E\B86)C8F3B9D)I`FK2:[)M(F[R;_)Q\G-B=B)W\GOB?J[
XM*`\H(2@\*$TH9RA^*)0HI@``````````````````````````````````````8
XM```````````````````````HUBC_*2(I0"EF*8<IGRG=*?LJ#RHJ*D<J52J#T
XM*J$JQRKM*Q`K*2M+*UTK>RN,*Z8KO2O5*^<L$2Q,+&HLF"RZ+-LL_2TK+3PM;
XM6RUT+9(MK"W;+?TN%2XV+ELN;2Z.+K4NSB[R+R`O22]O+XHOMB_2+_<P)#!%_
XM,&$P@S"G,+LP\3$8,3HQ9C&),:4QPS'7,?XR&C)%,G$RG#*],NHS#3,R,VHSA
XMI```,[(SS3/Z-"8`````-$,T<C2Y-.\U)S5_-=DU[S7S-?<U^S8E-C(V83:2E
XM-J$VRC;\-QTW7C>0-Y@WHC>P-\`WT3?S-_LX"3@9."0X*3@_.%4X8SAQ.(TXW
XMJ3BO.+4XNCC".,<XSSC:..4X[3CU.08Y#CD9.20Y*CDP.3PY2#E?.7DY@SF,R
XM.94YJ3FS.;TYQSG1.=TY[#G[.@HZ&3HK.C@Z13I2.E\ZC3J>.JHZS#L`.QP[S
XM/CMQ.ZL[USOE/!4\-3QO```\?3RE/-0\\3T//3`]3CUN/9P]PSWD/?X^&SXIJ
XM/EL^C3Z</JL^N@``/LD^\S\H/T@_>C^L/]Y`"4`I0$Q`;T"5``````````!`(
XMQT#50.E`_4$C04E!;4&!095!L$'$0=A""T(G0G]"Z```````````````````F
XM`````````````````````````````````````````````````````````````
XM````````````0PA#%D,J0SY#8$.&0ZI#OD/20^U$`4051#M$5T2O10H`````K
XM``````````````````````````````````````````!%845X19%%KT7-1=U%F
XM[4851CU&7T:!1I$`````````````````````````````````````````````.
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM`````````$;,1N)'$$<X1UI'=T>.1[Q'U$?>1_1(#$@<2#A(3DAX2)5(QTCKO
XM21A)*4E#25-);TF!290`````````````````````````````````````````:
XM``````````````````````!)JDG22AI*14IR2J5*U4L,2T5+:$N,2\E+\TPF`
XM3$Y,<DRI3-9-&4T_36=-D$VV3>%.%TY#````````````````````````````9
XM````````````````````````````````````3G%.ETZ]3M]/!4\K3T5/=T^2E
XM3ZQ/QD_>3^A0%%`O4%50>U"A4+A0[%#^41E1*5%%45=1:@``````````````G
XM`````````````````````````````````````````````````%&`4:-1O%'4W
XM4?=2$%(M4E52=5**4J12Q5+84P=3*5-(4VA3C5.G4[]3U5/R5`M4,51=5'\`7
XM````````````````````````````````````````````````````5*=4JU2O]
XM5+-4WU3M51%50U5758Y5SE7<5B)68E9T5HY6L%;:5O17,%=*5V17K5?B5^Q8U
XM!E@@6$E84UAE6'=8A%B<````````````````````````````````````````F
XM`````%B\6,!8Q%C(6/19!5DQ6659<5F:6<I9ZEHK6EM:8UIM6GI:BEJ=6L%:?
XMRUK56PY;.5L^6U1;:EMU6WI;@EN*6Y);H```````````````````````````3
XM`````````````````````````````%NP6\1;Y5P47"1<15Q=7*9<U5SR71E=(
XM1EUA78%=GEW,7>->`EXD7C9>4%Z"7IE>ME[47O1?&E\[7V9?A5^N7^L`````L
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
XM````````````````````````````````````````````````````````8!I@:
XM0V!U8)Q@K&#$8.5A(F%.86MADF&Z8=)A\F(/8C5B3&)R8I!BHF*Z8O!C!V,@V
XM8SYC7F.`8YUCQ&/?9`-D.```````````````````````````````````````Q
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````````
X1`````````````````````````
X``
Xend
Xsize 6002
END_OF_FILE
if test 8444 -ne `wc -c <'fonts/plxtnd.idx.uu'`; then
    echo shar: \"'fonts/plxtnd.idx.uu'\" unpacked with wrong size!
fi
# end of 'fonts/plxtnd.idx.uu'
fi
if test -f 'unix/postscript.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'unix/postscript.c'\"
else
echo shar: Extracting \"'unix/postscript.c'\" \(9503 characters\)
sed "s/^X//" >'unix/postscript.c' <<'END_OF_FILE'
X/* This file contains the PostScript device dependent subroutines for */
X/* use with plplot. */
X
X#include "plplot.h"
X#include <stdio.h>
X
X#define LINELENGTH      70
X#define COPIES          1
X#define XSIZE           540
X#define YSIZE           720
X#define XPSSIZE         3000
X#define YPSSIZE         2250
X#define XOFFSET         576
X#define YOFFSET         36
X#define XSCALE          100
X#define YSCALE          100
X#define LINESCALE       100
X#define ANGLE           90
X#define PSX             XPSSIZE-1
X#define PSY             YPSSIZE-1
X
Xchar *getdate();
Xstatic int numpages = 0;
Xstatic int linepos = 0;
X
Xstatic FILE *OutFile;
Xstatic PLINT orient;
Xstatic PLINT select=0;
Xstatic char FileName[80];
X
Xvoid pssetup(xdpi, ydpi, xwid, ywid)
XPLINT xwid, ywid;
XPLFLT xdpi, ydpi;
X{
X}
X
Xvoid psselect(ori, name)
XPLINT ori;
Xchar *name;
X{
X   orient = ori;
X   strncpy(FileName,name,sizeof(FileName)-1);
X   FileName[sizeof(FileName)-1] = '\0';
X   select = 1;
X}
X
X
X/* Open file.  Set up for graphics. */
Xvoid psinit()
X{
X      char line[80];
X
X      if(!select) {
X         printf("Landscape or portrait orientation? (0 or 1) ");
X         fgets(line,sizeof(line),stdin);
X         if(sscanf(line,"%d",&orient) != 1)
X            orient = 0;
X      }
X
X   /* setpxl() sets the dots/mm in the x and y directions */
X      setpxl(11.81,11.81);         /* 300 dpi */
X
X   /* setphy() sets the device coordinates. These are integer */
X   /* values. Set up for landscape orientation (long axis of page in the */
X   /* x direction). Origin is in the lower left hand corner. */
X      if(!orient)
X         setphy(0,PSX,0,PSY);
X      else
X         setphy(0,PSY,0,PSX);
X
X   /* Set default pen color using scol(color). */
X   /* Any default pen color can be used but a black pen is probably best. */
X      scol(1);
X
X   /* Set default pen width using swid(width) */
X      swid(1);
X
X   /* Set device interaction mode using smod(mode). Set mode to 0 for */
X   /* a noninteractive device, Unless you are writing your */
X   /* own Amiga screen driver mode should be 0. */
X      smod(0);
X
X   /* Well that's all the information plplot needs. Let's prompt for a */
X   /* graphics file name. */
X      for(;;) {
X         if(!select) {
X            printf("Enter PostScript graphics file name. ");
X            fgets(line,sizeof(line),stdin);
X            if(sscanf(line,"%s",FileName)!=1)
X               continue;
X         }
X
X         if (!(OutFile = fopen(FileName,"w"))) {
X            fprintf(stderr,"Can't open %s.\n",FileName);
X            select = 0;
X         }
X         else
X            break;
X      }
X      select = 0;
X
X  /* Header comments into PostScript file */
X
X      fprintf(OutFile,"%%!PS-Adobe-2.0 EPSF-2.0\n");
X      fprintf(OutFile,"%%%%BoundingBox: 36 36 540 720\n");
X      fprintf(OutFile,"%%%%Title: %s\n", FileName);
X      fprintf(OutFile,"%%%%Creator: PLPLOT Version 2.0\n");
X      fprintf(OutFile,"%%%%CreationDate: %s\n", getdate());
X      fprintf(OutFile,"%%%%Pages: (atend)\n");
X      fprintf(OutFile,"%%%%EndComments\n\n");
X
X  /* Definitions */
X
X      fprintf(OutFile, "/PSSave save def\n");      /* save VM state */
X      fprintf(OutFile, "/PSDict 200 dict def\n");  /* define a dictionary */
X      fprintf(OutFile, "PSDict begin\n");          /* start using it */
X      fprintf(OutFile, "/@restore /restore load def\n");
X      fprintf(OutFile, "/restore\n");
X      fprintf(OutFile, "   {vmstatus pop\n");
X      fprintf(OutFile, "    dup @VMused lt {pop @VMused} if\n");
X      fprintf(OutFile, "    exch pop exch @restore /@VMused exch def\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@pri\n");
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    ( ) print\n");
X      fprintf(OutFile, "    (                                       ) cvs print\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@copies\n");   /* n @copies - */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    /#copies exch def\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@start\n");    /* - @start -  -- start everything */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    vmstatus pop /@VMused exch def pop\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@end\n");      /* - @end -  -- finished */
X      fprintf(OutFile, "   {(VM Used: ) print @VMused @pri\n");
X      fprintf(OutFile, "    (. Unused: ) print vmstatus @VMused sub @pri pop pop\n");
X      fprintf(OutFile, "    (\\n) print flush\n");
X      fprintf(OutFile, "    end\n");
X      fprintf(OutFile, "    PSSave restore\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/bop\n");       /* bop -  -- begin a new page */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    /SaveImage save def\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/eop\n");       /* - eop -  -- end a page */
X      fprintf(OutFile, "   {\n");
X      fprintf(OutFile, "    showpage\n");
X      fprintf(OutFile, "    SaveImage restore\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/@line\n");     /* set line parameters */
X      fprintf(OutFile, "   {0 setlinecap\n");
X      fprintf(OutFile, "    0 setlinejoin\n");
X      fprintf(OutFile, "    1 setmiterlimit\n");
X      fprintf(OutFile, "   } def\n");
X                        /* d @hsize -  horizontal clipping dimension */
X      fprintf(OutFile, "/@hsize   {/hs exch def} def\n");
X      fprintf(OutFile, "/@vsize   {/vs exch def} def\n");
X                        /* d @hoffset - shift for the plots */
X      fprintf(OutFile, "/@hoffset {/ho exch def} def\n");
X      fprintf(OutFile, "/@voffset {/vo exch def} def\n");
X                        /* s @hscale - scale factors */
X      fprintf(OutFile, "/@hscale  {100 div /hsc exch def} def\n");
X      fprintf(OutFile, "/@vscale  {100 div /vsc exch def} def\n");
X                        /* s @lscale - linewidth scale factor */
X      fprintf(OutFile, "/@lscale  {100 div /lin exch def} def\n");
X                        /* a @angle - rotation angle */
X      fprintf(OutFile, "/@angle   {/ang exch def} def\n");
X      fprintf(OutFile, "/@SetPlot\n");  /* setup user specified offsets, */
X      fprintf(OutFile, "   {\n");       /* scales, sizes for clipping    */
X      fprintf(OutFile, "    ho vo translate\n");
X      fprintf(OutFile, "    XScale YScale scale\n");
X      fprintf(OutFile, "    ang rotate\n");
X      fprintf(OutFile, "    lin lw mul setlinewidth\n");
X      fprintf(OutFile, "   } def\n");
X      fprintf(OutFile, "/XScale\n");    /* setup x scale */
X      fprintf(OutFile, "   {hsc hs mul %d div} def\n", YPSSIZE);
X      fprintf(OutFile, "/YScale\n");    /* setup y scale */
X      fprintf(OutFile, "   {vsc vs mul %d div} def\n", XPSSIZE);
X      fprintf(OutFile, "/lw 3 def\n");  /* default line width */
X      fprintf(OutFile, "/M {moveto} def\n");
X      fprintf(OutFile, "/D {lineto} def\n");
X      fprintf(OutFile, "/S {stroke} def\n");
X      fprintf(OutFile, "/Z {stroke newpath} def\n");
X      fprintf(OutFile, "end\n\n");      /* end of dictionary definition */
X
X  /* Set up the plots */
X
X      fprintf(OutFile, "PSDict begin\n");
X      fprintf(OutFile, "@start\n");
X      fprintf(OutFile, "%d @copies\n", COPIES);
X      fprintf(OutFile, "@line\n");
X      fprintf(OutFile, "%d @hsize\n", XSIZE);
X      fprintf(OutFile, "%d @vsize\n", YSIZE);
X      fprintf(OutFile, "%d @hoffset\n", XOFFSET);
X      fprintf(OutFile, "%d @voffset\n", YOFFSET);
X      fprintf(OutFile, "%d @hscale\n", XSCALE);
X      fprintf(OutFile, "%d @vscale\n", YSCALE);
X      fprintf(OutFile, "%d @lscale\n", LINESCALE);
X      fprintf(OutFile, "%d @angle\n", ANGLE);
X      fprintf(OutFile, "@SetPlot\n\n");
X      fprintf(OutFile, "bop\n");
X      fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
X}
X
X/* Sets the printer to text mode */
Xvoid pstext()
X{
X}
X
X/* Sets the printer to graphics mode */
Xvoid psgraph()
X{
X}
X
X/* Form feed */
Xvoid psclear()
X{
X     fprintf(OutFile," S\neop\nbop\n");
X}
X
Xstatic PLINT xlast, ylast;
X
Xvoid pspage()
X{
X     numpages++;
X     fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
X     linepos = 0;
X     xlast = -100000; ylast = -100000;
X}
X
X/* May put something here someday */
Xvoid pscolor(colour)
Xint colour;
X{
X}
X
X/* I don't know what to put here - Tony */
Xvoid pswidth()
X{
X}
X
Xvoid psline(x1,y1,x2,y2)
XPLINT x1,y1,x2,y2;
X{
X      if (linepos + 21 > LINELENGTH) {
X          putc('\n', OutFile);
X          linepos = 0;
X      } else
X          putc(' ', OutFile);
X
X      if(!orient) {
X         if(x1 == xlast && y1 == ylast)
X            fprintf(OutFile, "%ld %ld D", x2, y2);
X         else
X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", x1, y1, x2, y2);
X      }
X      else {
X         if(x1 == xlast && y1 == ylast)
X            fprintf(OutFile, "%ld %ld D", PSX-y2, x2);
X         else
X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", PSX-y1,x1,PSX-y2,x2);
X      }
X
X      xlast = x2;
X      ylast = y2;
X      linepos += 21;
X}
X
X/* Close graphics file */
Xvoid pstidy()
X{
X      fprintf(OutFile," S\neop\n");
X      numpages++;
X      fprintf(OutFile, "@end\n\n");
X      fprintf(OutFile, "%%%%Trailer\n");
X      fprintf(OutFile, "%%%%Pages: %d\n", numpages);
X      fclose(OutFile);
X      numpages = 0;
X      linepos = 0;
X}
X
X/* Get the date and time */
Xstatic char *getdate()
X{
X        int len;
X        long t, time();
X        char *p, *ctime();
X
X        t = time((long *) 0);
X        p = ctime(&t);
X        len = strlen(p);
X        *(p + len - 1) = '\0';  /* zap the newline character */
X        return p;
X}
END_OF_FILE
if test 9503 -ne `wc -c <'unix/postscript.c'`; then
    echo shar: \"'unix/postscript.c'\" unpacked with wrong size!
fi
# end of 'unix/postscript.c'
fi
echo shar: End of archive 6 \(of 12\).
cp /dev/null ark6isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 12 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Submissions to comp.sources.amiga and comp.binaries.amiga should be sent to:
	amiga@cs.odu.edu	
or	amiga@xanth.cs.odu.edu	( obsolescent mailers may need this address )
or	...!uunet!xanth!amiga	( very obsolescent mailers need this address )

Comments, questions, and suggestions s should be addressed to ``amiga-request''
(only use ``amiga'' for submissions) at the above addresses.