home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / GRAPHICS / MISC / GRAPH322.ZIP / GRAPH.DOC < prev    next >
Encoding:
Text File  |  1990-08-04  |  25.3 KB  |  664 lines

  1. NAME
  2.     graph - plot a tabulated function
  3.  
  4. SYNOPSIS
  5.     graph [file file file] [options]
  6.  
  7. DESCRIPTION
  8.     Graph takes pairs of points (two numbers per line) from the given
  9.     file as x- and y- values and plots them on the screen, connected by
  10.     straight lines.  A string surrounded by quotes "..." may follow a
  11.     pair of points.  This string is a "point label", and will be
  12.     displayed starting at that point.  The program draws axes with
  13.     convenient labels (integers times powers of 1000), plots the data,
  14.     waits for a keypress, then resets the screen parameters and clears
  15.     the screen before exiting.
  16.  
  17.     If no file is specified on the command line, data is read from the
  18.     standard input, which may be redirected.  If data is entered from
  19.     the keyboard, end of data is signaled by typing <cntl>Z.
  20.  
  21.     In the data, blank lines and lines beginning with ';' are ignored.
  22.  
  23.     More than one input file can be specified.  All the data will
  24.     be read before scaling parameters are calculated.  The plot
  25.     will be "broken" at the end of each file.  That is, there will
  26.     be no line connecting the last point of the first file with the
  27.     first point of the second file.  Similarly, if a line starts
  28.     with a null byte (that is, if a line feed is followed by a
  29.     null) the plot will be broken.  Separate curves may also be
  30.     delimited with a point label on the same line as the last point
  31.     on the curve, or by a null byte immediately following the last
  32.     point (see the -b switch).
  33.  
  34.     The -m switch can be used to select the line style or marker
  35.     style for each curve.  If both markers and connecting lines are
  36.     wanted, list the data file twice and specify different styles. 
  37.     For example,
  38.  
  39.         graph gamma gamma -m 1 -30
  40.  
  41.     would give red squares connected by white solid lines on an EGA.
  42.  
  43.     Graph should no longer leave the display in a nonstandard mode.  If it
  44.     does, please let me know.  In the mean time, the display can be
  45.     restored using the DOS command MODE:
  46.     
  47.         mode co80      or     mode mono 
  48.  
  49.     as appropriate.
  50.  
  51. OPTIONS
  52.     Options can appear before, among, or after input file names
  53.     provided a file name cannot be mistaken for the parameter of an
  54.     option.
  55.  
  56. &<name>        (hard copy versions only) Device driver switches are 
  57.         in the configuration file <name>.  See "DEVICE DRIVER 
  58.         CONFIGURATION FILES" below.
  59.  
  60. @<name> or -f <name>
  61.         More parameters (filenames and/or switches) are in the script
  62.         file <name>.  This can be used for lists of parameters
  63.         that are too long for a command line, or merely to save
  64.         retyping lists of parameters.  The parameters in the
  65.         script file have the same format as those on the
  66.         command line, but may be separated by linefeeds as well
  67.         as spaces or tabs.  More than one script file switch
  68.         may appear on the command line, and script files may
  69.         refer to other script files to any depth.  All the
  70.         script files will be read.  For example, if the file
  71.         "curves" contains the line 
  72.             parabola elipse circle 
  73.         and the file "options" contains the lines 
  74.             -g -e -m 20 30 40
  75.         then the command 
  76.             A>graph  @curves  @options 
  77.         is equivalent to 
  78.             A>graph parabola elipse circle -g -e -m 20 30 40 
  79.         In a script file, a semicolon introduces a comment that
  80.         extends to the end of the line.
  81.  
  82. -a  [<step> [<start>]]
  83.         Automatically generate abscissas.  The first argument,
  84.         if present, is the step between values (default 1). 
  85.         The second argument, if present, is the starting value
  86.         (default 0, or first argument from -x switch).
  87.  
  88. -b         break (disconnect) the plot after each label.  (See 
  89.         switch -m to plot the line segments with different
  90.         linestyles.  To break the plot without printing labels,
  91.         use empty labels: "".) This option is set automatically
  92.         if more than one input file or more than one linestyle
  93.         is specified.
  94.  
  95. -c <text>    argument is default label for data points
  96.  
  97. -e        equal vertical and horizontal scales (same number of 
  98.         inches on the display per unit in problem space), so that
  99.         circles don't look like elipses
  100.  
  101. -f <name>    See @<name>.
  102.  
  103. -g        -g with no arguments eliminates the axes.  
  104.  
  105. -g <style> <tics> <width>
  106.         First argument is grid style: 
  107.                0 = no grid and no numeric labels, 
  108.                1 = frame with tic marks inside (default), 
  109.               -1 = frame with tic marks outside the graph area, 
  110.                2 = full grid
  111.                3 = bottom and left axes only
  112.               -3 = bottom and left axes, tic marks on outside.
  113.                4 = bottom and left axes only, separated from plot
  114.               -4 = bottom and left axes, separated from plot, 
  115.                       tic marks on outside.
  116.         Second argument is approximate number of small
  117.         tic marks per numeric label (1 to 10, default 5).  Set
  118.         <tics> to 1 to eliminate small tic marks.  Third
  119.         argument is width of grid lines (default 1).
  120.  
  121. -l <text>    next argument is label for graph (printed at top).  If the
  122.         label starts with a double quote it may contain spaces:
  123.             -l "three cornered hat"
  124.  
  125. -m <n1> <n2> <n3>...
  126.         numeric arguments are linestyles for successive line
  127.         segments (see switch -b).  Each positive argument is a
  128.         number of up to three hex digits WCS, where
  129.             W is the linewidth (0-9, with 0 giving width 1), 
  130.             C is the color (0-f, with 0 being brightest), and 
  131.             S is linestyle (1-5, 1 for solid, 2 for dashed,
  132.                 3 for dotted, etc.) 
  133.         If an argument is -1, the data points are plotted as
  134.         dots not connected by lines.  In general, a negative
  135.         argument -CS generates a marker:
  136.             C is the color (0-f, with 0 being brightest), and 
  137.             S is the marker style (0-9 for box, dot, plus,
  138.               asterisk, hexagon, cross, box, diamond,
  139.               triangle with point down, triangle with point
  140.               up)
  141.  
  142.         The special style FF causes a curve not to be displayed
  143.         at all.  An argument can also include a repeat count,
  144.         as in 3*45 or 4*-205.  
  145.  
  146.         The -m switch will use as many of the following
  147.         parameters as appear to be hex numbers, either negative
  148.         or positive, noteably including the switches -a through
  149.         -f.  This misinterpretation may be avoided by putting
  150.         the -m switch and its arguments last in the command
  151.         line.
  152.  
  153. -n        Omit numeric labels on axes.  This uses more of the screen 
  154.         for the graph, therefore effectively increases
  155.         resolution slightly.  It may also be used when you want
  156.         to make a hard copy and label it with a typewriter.  To
  157.         eliminate both grid and labels, but keep the plot
  158.         scaling the same as if labels were printed, use "-g"
  159.         alone.  For plotter versions, this can be used to add
  160.         more curves to an existing graph.
  161.  
  162. -t        Transpose x and y values before plotting (-x now refers to
  163.         vertical axis).
  164.  
  165. -x[l] [min [max [junk]]] 
  166.         If l is present, x axis is logrithmic. First argument,
  167.         if present, is lower x limit.  Second argument, if
  168.         present, is upper x limit.  A third numeric argument
  169.         may be present but will be ignored.  By default, these
  170.         values are determined automatically.
  171.  
  172. -y[l]   [min [max [junk]]]  
  173.         Similarly for y axis
  174.  
  175. -y[l]m  [min [max [junk]]]  
  176. -ya[p]  [min [max [junk]]]  
  177. -yp[p]  [min [max [junk]]]  
  178.         Any of these signal that each line of the input
  179.         contains the real and imaginary parts of a complex
  180.         number (after the abscissa, unless -a is also used). 
  181.         An 'm' requests that the magnitude of the number
  182.         (square root of sum of squares of real and imaginary
  183.         parts) be plotted.  'p' or 'a' requests the phase
  184.         (atan(imaginary part/real part), also known as the
  185.         argument) be plotted.  The signs of both parts are
  186.         taken into account, so the phase ranges from -pi to
  187.         +pi.  If both real and imaginary parts are zero, the
  188.         phase is arbitrarily assumed to be zero.  An additional
  189.         'p' requests that the phase be divided by pi before
  190.         plotting.
  191.  
  192. -h  <n>        argument is the fraction of the vertical space to be 
  193.         used for the graph.
  194.  
  195. -u  <n>        argument is the fraction of the vertical space to move 
  196.         up before plotting.
  197.  
  198. -w  <n>        argument is the fraction of the horizontal space to be 
  199.         used for the graph (useful if screen dump routine
  200.         doesn't dump the entire width of the screen).
  201.  
  202. -r  <n>        argument is the fraction of the horizontal space to move 
  203.         right before plotting.
  204.  
  205. INTERACTIVE USE
  206.  
  207.     Several attempts are sometimes required to get the display
  208.     options set correctly.  There are two ways to simplify this
  209.     process.  The first is to use the command line edit facilities
  210.     provided by DOS.  To add an option: return to DOS, type F3 to
  211.     redisplay the previous command, add the option, and type
  212.     <return>.  You can use also use this procedure to invoke a
  213.     hardcopy version of GRAPH with the same options.  A more
  214.     powerful command line editor like CED makes this procedure
  215.     easier.  The disadvantage is that both GRAPH and the data must
  216.     be read in each time, which can be slow.
  217.  
  218.     In display versions of GRAPH, the user may also adjust display
  219.     options interactively via a series of pop-up menus.  To display the
  220.     top level menu, type a slash '/'.  The highlighted option may be
  221.     selected by typing <return> (sometimes labeled <enter>).  Any
  222.     options may be selected by typing the initial letter.
  223.  
  224.     >>    The following mouse functions may be expected in a future
  225.     >>    version.  In the mean time, all menu functions can be
  226.     >>    selected via the keyboard.
  227.  
  228.     If a mouse or other pointing device and a Microsoft-equivalent
  229.     driver (MOUSE.COM or MOUSE.SYS) are installed, the mouse may also
  230.     be used to adjust parameters.  Mouse commands are of three kinds. 
  231.     "Pressing" a mouse button has an effect which doesn't depend on the
  232.     location of the cursor.  "Clicking" means to point with the cursor
  233.     and press the left mouse button quickly.  "Dragging" means to point
  234.     one place with the cursor, press the left button, and hold it down
  235.     while moving the cursor to another place.
  236.     
  237.     Pressing the left mouse button will pop up the top level menu and
  238.     make the mouse cursor visible.  On a two- or three-button mouse,
  239.     pressing the right button is equivalent to pressing <esc> on the
  240.     keyboard.  This will clear the most recent menu or, if there is no
  241.     menu, terminate the program.  When the top level menu is cleared,
  242.     the data are redisplayed using the new settings.  (You may
  243.     envision the left button sending you further "in", and the right
  244.     button backing you "out".)
  245.  
  246.     When the menu is visible, an item may be selected by clicking on
  247.     it.  
  248.     
  249.     The cursor may be used to adjust the portion of the user's data
  250.     space being displayed (the "window") in four ways.  
  251.     
  252.         The X and Y menu items can be used to set limits explicitly.
  253.     
  254.         To zoom in, drag from one corner of the desired display area to
  255.         the opposite corner.
  256.     
  257.         The "zoom" menu item zooms out - enlarges the window in all
  258.         directions.
  259.     
  260.         To enlarge the area being displayed in only one direction, drag
  261.         from somewhere near the center of the display area toward that
  262.         edge of the display.
  263.     
  264.     For the first method, you must explicitly request a redisplay.  For
  265.     the other methods, the redisplay is automatic.
  266.  
  267.     To save the current options for a future plot (in particular,
  268.     for a hard copy), use the Output command under File.  For
  269.     example, if you display some data by starting with the command
  270.  
  271.         C>graph stuff -m 50 60 70
  272.  
  273.     and use the menubars to set additional options, you can get a
  274.     hardcopy by entering
  275.  
  276.         / F O <return> Q
  277.  
  278.     followed by the DOS command
  279.  
  280.         C>graph stuff -f f
  281.  
  282.     Note that these commands use default format output file name,
  283.     'f'.
  284.  
  285. VERSIONS
  286.     Graph is available in several versions for different hardware. 
  287.     When necessary for configuration control, these versions are
  288.     given different file names (see FILES section below).  It is
  289.     suggested that the "normal" version for a given computer be
  290.     renamed GRAPH for simplicity.  Two measures are taken to ensure
  291.     no damage is done by inadvertently executing the wrong version. 
  292.     First, any version of graph can be executed with a question
  293.     mark as the only parameter:
  294.  
  295.         GRAPH ?
  296.  
  297.     It will then print a help screen which indicates the hardware it
  298.     supports, and exit immediately without accessing any
  299.     machine-specific hardware.  Second, graph tests that the hardware
  300.     it needs is present before using it (except for the plotter and
  301.     laser printer versions).  
  302.  
  303.     For the display version of GRAPH, you will need a device driver in the
  304.     form of a .BGI (for Borland Graphics Interface) appropriate for
  305.     your hardware.  If you have one of the following standard graphics
  306.     cards, you can use one of those supplied by Borland:
  307.  
  308.         CGA
  309.         MCGA
  310.         EGA
  311.         ATT400
  312.         VGA
  313.         PC3270
  314.         IBM8514
  315.         Hercules mono
  316.  
  317.     If so, you need only put the .BGI file where GRAPH can find it.  GRAPH
  318.     will look in the directories listed in the environment variable
  319.     BGIPATH if it is set, otherwise it will look in the directories
  320.     indicated by PATH.  For example:
  321.  
  322.         C>set bgipath=C:\MY\BGIFILES;C:\TC\BGI
  323.         C>graph mydata
  324.  
  325.     If you put both GRAPH.EXE and the required .BGI file into one of the
  326.     directories in your PATH, you will not need to add anything to
  327.     your environment.
  328.  
  329.     If you want to select a particular graphics mode, you may set the
  330.     environment variable GRAPHMODE to one of the numeric constants of
  331.     "graphics_modes" enumeration type as defined by Borland.  The
  332.     constants are as follows:
  333.  
  334.                mode           value
  335.     ------------------    -----
  336.     CGA    320*200    C0    0
  337.     CGA    320*200    C1    1
  338.     CGA    320*200    C2    2
  339.     CGA    320*200    C3    3
  340.     CGA    640*200     4
  341.  
  342.     MCGA    320*200 C0    0
  343.     MCGA    320*200 C1    1
  344.     MCGA    320*200 C2    2
  345.     MCGA    320*200 C3    3
  346.     MCGA    640*200        4
  347.     MCGA    640*480        5
  348.  
  349.     EGA    640*200        0
  350.     EGA    640*350        1
  351.     EGAMONO    640*350        3
  352.  
  353.     HERC    720*348        0
  354.  
  355.     ATT400    320*200    C0    0
  356.     ATT400    320*200    C1    1
  357.     ATT400    320*200    C2    2
  358.     ATT400    320*200    C3    3
  359.     ATT400    640*200        4
  360.     ATT400    640*400        5
  361.  
  362.     VGA    640*200        0
  363.     VGA    640*350        1
  364.     VGA    640*480        2
  365.  
  366.     PC3270    720*350        0
  367.  
  368.     IBM8514    640*480        0
  369.         1024*768    0
  370.  
  371.     ...where C0, C1, C2, and C3 refer to the four palettes on the CGA
  372.     and compatible systems.
  373.  
  374.     If you have nonstandard video hardware, you will have to obtain or
  375.     write a .BGI file.  In that case, set the environment variable
  376.     BGIDRIVER to the name of the file.  For example, if your driver
  377.     is named SGA.BGI, you would set the environment variable as
  378.     follows:
  379.  
  380.         C>set bgidriver=SGA
  381.  
  382.     No hardware autodetection of nonstandard video cards is supported.
  383.  
  384.  
  385.     For the Houstin Instruments plotter, HP plotter, or LIPS-10
  386.     laser printer, or Postscript versions, the output port may be
  387.     specified by setting an environment variable:
  388.  
  389.         C>set plot_port=COM1        (the default)
  390.         C>set plot_port=COM2
  391.         C>set plot_port=PRN
  392.  
  393.     Alternately, the output can be saved in a file for later use:
  394.  
  395.         C>set plot_port=c:\path\filename
  396.  
  397.     The device driver asks about several other options: pen speed,
  398.     margins (or pen displacement before plotting begins), and
  399.     dimensions of desired plotting area.  Note that the area
  400.     includes space for numeric labels (unless defeated by the "-n"
  401.     switch) and tic marks (if moved outside the graph by the "-g"
  402.     switch).
  403.  
  404.     The Houstin Instruments plotter version asks which plotter is in use:
  405.     a DMP-29, which has eight pens, or a DMP-7, which has only two.  The
  406.     DMP-29 is the default.  The question can be suppressed by setting the
  407.     environment variable PLOTTER to DMP-7 or DMP-29.
  408.  
  409.     By default an HI plotter is initialized with the character string
  410.  
  411.         \n\n\n;: EC5 V8 A 0,40 O @
  412.  
  413.     which the plotter interprets as follows:
  414.  
  415.         Carriage return (allows auto baud rate), 
  416.         plotter select, mode 1, .005" resolution, 
  417.         8 in/sec,
  418.         absolute mode,
  419.         move .2 inches up and set origin,
  420.         deselect
  421.  
  422.     If necessary, a different setup string may be specified using the
  423.     environment variable "plot_setup".  As with the PROMPT command in
  424.     MS-DOS, the device driver interprets the sequence "$e" to represent
  425.     an ASCII escape character.  The escape sequences available are:
  426.  
  427.         $e  ->  escape character
  428.         \n  ->  line feed 
  429.         \r  ->  carriage return 
  430.         \t  ->  tab character
  431.         \\  ->  \ (escape an otherwise special character) 
  432.         \$  ->  $ (escape an otherwise special character)
  433.  
  434.     For example, the default setup string could be specified using the
  435.     following command:
  436.  
  437.         C>set plot_setup=\n\n\n;: EC5 V8 A 0,40 O @
  438.  
  439.     The HP plotter version assumes an RS-232 connection with
  440.     hardware flow control: The plotter pulls pin 20 (DTR) low to
  441.     stop data transmission.  Other conditions are set to their
  442.     defaults.  To implement this, HP recommends wiring a "null
  443.     modem" RS-232 cable which exchanges pins 2 and 3, and connects pin
  444.     20 on each end to pins 5 and 6 on the opposite end.  A second
  445.     adaptor cable may be used to connect the null modem cable to the
  446.     9-pin connector on an IBM PC serial adaptor, or the two functions
  447.     may be combined in a single cable.  The cable schematics are as
  448.     follows:
  449.  
  450.                       IBM                   plotter
  451.                      9-pin     25-pin     25-pin DTE
  452.     chassis ground    .. -------- 1 ---------- 1         chassis ground
  453.      signal ground     5 -------- 7 ---------- 7         signal ground
  454.                DTR     4 ------> 20 ------+--> 5         CTS
  455.                                           +--> 6         DSR
  456.                CTS     8 <------- 5 <---+---- 20         DTR
  457.                DSR     6 <------- 6 <---+
  458.                TxD     3 -------> 2 ---------> 3         RxD
  459.                RxD     2 <------- 3 <--------- 2         TxD
  460.  
  461.             gender     >--------->>------------>
  462.  
  463.     The last line indicates, for example, that the plotter has a female
  464.     connector, so the mating cable must have a male connector.  The IBM
  465.     BIOS serial port handler will stop transmitting data when
  466.     requested.  However, it interprets the signal as an error, and
  467.     prompts the operator with the message
  468.  
  469.         Not ready error writing to COM1:
  470.         Abort, Retry, Ignore?
  471.  
  472.     Type "r" to continue plotting.  These messages may be avoided by using
  473.     a communications program to send the file.
  474.  
  475.     By default, the HP plotter is initialized with the character string
  476.  
  477.         DF; <esc>.R 
  478.  
  479.     which the plotter interprets as follows:
  480.  
  481.         default conditions
  482.         reset handshake to hardware flow control 
  483.             (The plotter uses RS-232 connector pin 20, or DTR.  
  484.             It pulls the pin low to stop data transmission.)
  485.  
  486.     If necessary, a replacement string may be specified using the
  487.     environment variable "plot_setup", as above.  The default
  488.     setup string could be specified using the following command:
  489.  
  490.         C>set plot_setup=DF; $e.R
  491.  
  492.     The LIPS-10 version clears all macros and all fonts while
  493.     initializing to maximize the memory space available, with the
  494.     setup string
  495.  
  496.         DAF; DAM; UNIT D; SCF; FONT 2;
  497.  
  498.     As with the HP plotter version, the environment variable
  499.     plot_setup can be set to a replacement string.  For example,
  500.     "DAM;" or "DAF;" can be omitted to preserve the macros or
  501.     fonts, respectively.
  502.  
  503. DEVICE DRIVER CONFIGURATION FILES
  504.  
  505.     The hard copy versions (GRAPHHI, GRAPHHP, GRAPHLI, GRAPHPS) can also
  506.     accept parameters from an ASCII configuration file.  Entries in
  507.     the file are switches, some with arguments, as on a command line. 
  508.     The following switches are available:
  509.  
  510.     -p        portrait orientation (LI and PS only)
  511.     -l        landscape orientation (the default) (LI and PS only)
  512.     -o <xoffset> <yoffset>
  513.     -r <xoffset>
  514.     -t <yoffset>
  515.             offset from top left corner of page
  516.     -s <width> <height>
  517.     -w <width>
  518.     -h <height>
  519.             plot size
  520.     -f <name>    name of output file (or port)
  521.     -v <velocity>    pen velocity (HP and HI versions only).
  522.             Units are cm/sec for HP and in/sec for HI.
  523.     -n <name>    Plotter name (HI version only).  Choices
  524.             are "DMP-29" (the default) and "DMP-7".  Case is not
  525.             distinct, and "29" and "7" are also accepted.
  526.  
  527.     None of the arguments can be omitted.  A semicolon introduces a
  528.     comment that extends to the end of the line.
  529.  
  530.     A switch may start with '+' instead of '-', in which case it will
  531.     establish the default, but the program will still ask for the
  532.     final value.
  533.  
  534.     The device driver configuration file name will be, in decreasing order
  535.     of priority:
  536.  
  537.         1. An "&filename" entry on the command line or script file,
  538.         2. An "&filename" entry in the environment variable GRAPH,
  539.             or a script file referenced by that environment
  540.             variable.
  541.         3. GRAPHPS.CFG in the current directory.
  542.  
  543.     If more than one &filename entry appears, only the last 
  544.     configuration file referenced is read.
  545.  
  546.     A PostScript output file name will be, in decreasing order of
  547.     priority:
  548.  
  549.         1. The argument of the -f switch in the device
  550.             driver configuration file,
  551.         2. The value of the environment variable PLOT_PORT, or
  552.         3. FOO.PS, where FOO is the root name of the first
  553.             data file.
  554.  
  555.     Output file names for the other versions are generated similarly, but
  556.     with extensions .HI, .HP, or .LI.
  557.  
  558. FILES
  559.     These are the currently available executable files:
  560.  
  561.     GRAPH.EXE     IBM PC with any standard graphics adaptor
  562.     GRAPHHI.EXE   Houstin Instruments DMP-29 plotter
  563.     GRAPHHP.EXE   HP 7470A plotter
  564.     GRAPHLI.EXE   CIE Laser Image Printing System, or LIPS 10
  565.     GRAPHPS.EXE   Postscript
  566.     GRAPHZ.EXE    Zenith Z-100 (previous version with menubar)
  567.  
  568.     All these files have been compressed with LZEXE.
  569.  
  570. NOTES
  571.     Graph is largely equivalent to the program of the same name on
  572.     Unix, with the following exceptions: Data may come from one or
  573.     more files rather than the standard input.  Line segments that
  574.     go out of bounds are windowed rather than being dropped.  Graph
  575.     may adjust the specified lower or upper limits (outwards) to
  576.     give convenient axis labels.  Steps along axes may not be
  577.     specified.  The screen is always cleared before plotting.  The
  578.     default grid type is frame with tics rather than full grid. 
  579.     Axes may not be reversed by specifying a lower limit greater
  580.     than the upper limit.
  581.  
  582. UPDATE HISTORY
  583.     15 Jul 90    All hard copy versions accept parameters from
  584.             a configuration file.
  585.     5 Jul 90    Ver 3.21: Script files may have comments.
  586.             GRAPHPS default output filename is FOO.PS.
  587.     4 Jul 90    Ver 3.20: Added support for device driver
  588.             configuration files (see &<name> switch).
  589.     16 Jun 90    Ver 3.19: Accepting @file as well as -f file as a
  590.             script file reference.  If a log scale switch causes a
  591.             labeled point to be discarded, the label is
  592.             moved to the last retained point.
  593.     14 Jun 90    Ver 3.18: Fetching options from environment variable
  594.             GRAPH.
  595.     19 Apr 90    Ver 3.17: Displaying up to 16380 data points, if
  596.             user memory permits.
  597.     6 Mar 90    Ver 3.16: allowing axes separated from graph area.
  598.     27 Feb 90    Ver 3.15: no longer attempts to restore video mode
  599.             if graphics mode was never set.  Fixed occasional
  600.             divide-by-zero bug for screens with subsquare
  601.             pixels (pixel width > pixel height, like the
  602.             VGA).
  603.     19 Feb 90    Ver 3.14: No more text mode error messages if a memory
  604.             allocation fails while in graphics mode.  Coherent
  605.             error message if script file cannot be opened. 
  606.             Default script file name is constructed from
  607.             data file name.  Menu starts at top right. 
  608.             Fixed occasional divide-by-zero bug for screens with
  609.             subsquare pixels (pixel width > pixel height,
  610.             like the VGA).
  611.     16 Sep 89    Ver 3.13: Switching to log scales no longer temporarily 
  612.             drops a linestyle.  "abscissa" menu option can
  613.             now discard y values.
  614.     15 Sep 89    Ver 3.12: Adding styles interactively automatically
  615.             enables breaking, keystrokes entered during a redraw
  616.             are not echoed through DOS when they are
  617.             discarded.
  618.     13 Aug 89    Ver 3.11: Automatically adjusting width to be 
  619.             consistent with right move, etc.
  620.     1 Jul 89    Ver 3.10: graphics mode menus, mouse handler.
  621.     16 May 89    Cleaned up nonportable constructions.
  622.     4 May 89    Ver 3.09: user can adjust grid width & number of tic
  623.             marks interactively.  Markers don't have corner glitches.
  624.     25 Apr 89    Ver 3.08: not adjusting # tic marks for label size
  625.             if no numeric labels are requested.
  626.     24 Apr 89    using intensity if color isn't available.
  627.     8 Apr 89    Ver 3.07: name of input script file becomes default for 
  628.             output script file
  629.     6 Apr 89    Ver 3.06: optionally writes data file names to script file
  630.     5 Apr 89    Ver 3.05: writes -c and -n switches to output script file
  631.             The part of argv[] referring to data files is preserved.
  632.     22 Mar 89    Ver 3.04: requests correct number of tic marks in
  633.             script file.
  634.     27 Feb 89    Ver 3.03: quits gracefully if there are no data points
  635.     23 Nov 88    Ver 3.02: Menubars allow interactive update of switches.
  636.     1 Aug 88    Ver 2.49: Allowing 100 styles rather than 30.
  637.             Style of FF suppresses display entirely.
  638.     4 May 88    Ver 2.48: Allows axis labels as high as 10000 before
  639.             switching to scientific notation.
  640.     23 Mar 88    Ver 2.47: Warns about data points dropped after memory 
  641.             is full.
  642.     4 Mar 88    Ver 2.46: Can display bottom and left axes only.
  643.     10 Feb 88    Ver 2.45: Automatic abscissas restart with each
  644.             new curve.
  645.     23 Jan 88    Ver 2.44: Reads parameters from script file.
  646.     25 Nov 87    Ver 2.42: The linestyle is interpreted as a hex
  647.             number, so the color digit can range from 0 (white)
  648.             through f.  Plot area is shrunk if necessary so
  649.             wide grid stays within specified width and height.
  650.     29 Oct 87    Ver 2.41: Marker color controlled only by the
  651.             second digit of the style number.
  652.     25 Aug 87    Ver 2.40: Large number of labels permitted, via
  653.             dynamic reallocation (shrinking) of data arrays. 
  654.             Saving repeat counts.
  655.     20 Aug 87    Ver 2.39: Tic marks can be outside graph area.  # small
  656.             tic marks is adjustable.
  657.     17 Aug 87    Ver 2.38: width of grid lines can be specified.
  658.  
  659. AUTHOR
  660.     Copyright (c) 1985 - 1988 by James R.  Van Zandt
  661.     (jrv@mitre-bedford.arpa) 27 Spencer Dr., Nashua NH 03062,
  662.     603-888-2272.  Resale forbidden, copying for personal use
  663.     encouraged.  Constructive comments welcome.  
  664.