\documentstyle [12pt]{article}
\textwidth=6.0in
\textheight=9.0in
\topmargin=-0.5in
\oddsidemargin=0.5in
\begin{document}

\begin{center}
\vspace*{1.0in}
{\huge\bf G R A F I T} \\
\vspace*{0.5in}
{\large\bf \underline{An Introduction}} \\
\vspace*{3.0in}
Author: \\
\vspace{0.15in}
{\large {\em Rong-Sheng Zhou}} \\
\vspace{0.35in}
{\large New York State College of Ceramics} \\
{\large Alfred University} \\
{\large Alfred, NY 14802} \\
January, 1989 \\
\end{center}

\newpage
\begin{center}
{\huge\bf \underline{Table of Contents}} \\
\end{center}
\vspace*{0.25in}
\begin{flushleft}
{\large\bf Overview of GRAFIT} \dotfill\ 3 \\
\vspace*{0.1in}
\hspace*{0.5in} {\bf A List of Interactive Dialogue Features} \dotfill\ 3 \\
\hspace*{0.5in} {\bf A List of Graphics Features in X,Y Plot} \dotfill\ 4 \\
\hspace*{0.5in} {\bf What is Layout Plot in GRAFIT?} \dotfill\ 5 \\
\hspace*{0.5in} {\bf What is Function Plot in GRAFIT?} \dotfill\ 6 \\
\hspace*{0.5in} {\bf What is Text Plot in GRAFIT?} \dotfill\ 6 \\
\vspace*{0.2in}
{\large\bf GRAFIT as A Legitimate DCL Command} \dotfill\ 8 \\
\vspace*{0.2in}
{\large\bf GRAFIT Installation Guide on Vax/VMS} \dotfill\ 11 \\
\vspace*{0.2in}
{\large\bf Appendices:} \dotfill\ 13 \\
\vspace*{0.1in}
\hspace*{0.5in} {\bf Tables of Linetypes, Symbols, and Fill-Patterns} \dotfill\ 13 \\
\hspace*{0.5in} {\bf Input Data File Formats for X,Y Plot} \dotfill\ 14 \\
\hspace*{0.5in} {\bf Input Data File Formats for Histogram} \dotfill\ 17 \\
\hspace*{0.5in} {\bf Input Data File Formats for Contour Plot} \dotfill\ 18 \\
\hspace*{0.5in} {\bf Setup File Format for X,Y Plot} \dotfill\ 19 \\
\end{flushleft}

\newpage
\begin{center}
{\large\bf \underline{Overview of GRAFIT}} \\
\end{center}
\vspace*{0.25in}
Ever felt frustrated with doing simple 2-D graphics on your friendly 
and sophisticated Vax? If your answer is yes, here could be
the ultimate 2-D plotting routine you ever need: {\bf GRAFIT},
{\em a straightforward, friendly and yet sophisticated interactive 
2-D graphics package written in Vax-FORTRAN and designed particularly 
for engineering scientists to run a Vax/VMS computer, currently 
performing the following functions:}
\vspace{0.15in}
\begin{tabbing}
12345678\=123456781234567890123456789\=12345678901234567890\=11 \kill
\>{\bf [1] X,Y Plot.}		\>{\bf [5] Pie-Chart Plot.} \\
\>{\bf [2] Layout Plot.}	\>{\bf [6] Text Plot.} \\
\>{\bf [3] Contour Plot.} 	\>{\bf [7] Function Plot.} \\
\>{\bf [4] Histogram Plot.}	\>{\bf [8] Digitization.} \\
\end{tabbing}
\vspace*{0.15in}
\begin{flushleft}
{\bf A list of Interactive Dialogue Features:} \\
\end{flushleft}

\begin{itemize}
\item Menu and form driven, risk-free and die-hard, and {\em random-access} 
      oriented dialogue scheme, combined with DCL-like command inputs, allows 
      for direct access of any single graph parameter and a group of graph 
      parameters, and fast data input and output.

\item {\em User-menu-free} oriented on-line help utility, of both concise and 
      comprehensive forms, is available anywhere along the dialogue session,
      off-line help is also available via DCL HELP facility.

\item Default plot setups are provided throughout the program. Simply giving 
      the name of a valid data file is sufficient to initiate screen plotting.
      Further manipulation of plot setup or decoration of the graph is
      automatically recorded and saved so that the same plot can be started
      from where it was last left off. Consequently it is particularly 
      {\em run-time} efficient, especially when it comes to deal with large 
      volume of data or batches of data.

\item {\em What-you-see-on-screen-is-what-you-get} oriented hardcopy making 
      utility can be invoked with a single keystroke, and the intermediate 
      plot files and DCL command procedures involved are {\em transparent} 
      to general users.

\item Program-level handling of CTRL/C and CTRL/Y interrupts are provided
      to accomplish screen-clean-up on CTRL/Y and plot-canceling on CTRL/C.
\end{itemize}

\newpage
\begin{flushleft}
{\bf A list of Graphics Features for X,Y Plot:} \\
\end{flushleft}

\begin{itemize}
\item Allow for multiple data set and multiple data file input (overlay), 
      recognize multiple data formats including some binary formats.
      ASCII files are free of data field format. A valid data file 
      can be either editor-written or program-written.

\item Does automatic data scaling as well as user-specified data scaling
      for {\em linear}, {\em inverse linear}, and {\em log10} types of axis,
      while allowing for user-control over such axis drawing parameters 
      as axis division, tickmark offset and direction, significant digits,
      etc...

\item Multiple x-axis and y-axis of same or different types and scalings,
      split axis on a single plot, and multi-plots per page, etc... are
      easily executable.

\item Error bar plot, multi-quadrant plot, non-orthogonal axis plot,
      area-fill plot, stick plot, bar plot are also implemented
      in addition to the usual line plus symbol plot.

\item Spline-smooth, least-square polynomial fit, data sorting,
      data column swap, multiple data set averaging and subtraction, 
      data filtering and differentiation are readily applicable.

\item Data point sampling, curve rescaling and offsets along both x and 
      y axis are allowed.

\item Utilization of a data independent plot setup file, which allows 
      not only for later duplication of the same plot but also for 
      plotting of batches of data with similar nature without redundant 
      manipulation of plot setup.

\item Auxiliary layout utility allows for plot labeling or annotation 
      anywhere and in any arbitrary orientation on the graph as well
      as for overlaying of a variety of 2-d geometric patterns such
      as line segment, curve, arrowhead, box, circle, polygon, etc..
      In other words, you can basically design and paint your graph
      in your own way.
\end{itemize}

\newpage
\begin{flushleft}
{\bf What is Layout Plot in GRAFIT?} \\
\vspace*{0.15in}
\end{flushleft}
GRAFIT's layout routine is basically a 2-D CAD. It allows for drawing
of precision layouts of publication quality such as flow-charts and schematic
diagrams without professional knowledge and training in CAD. It offers 
three main utilities by exploiting the segment graphics, GIN, and macro
capability of a Tektronix-4100 graphics terminal:
\begin{flushleft}
\hspace{0.5in} [1] Command format oriented layout in COMMAND mode.\\
\hspace{0.5in} [2] Graphics INput (GIN) oriented layout in GIN mode.\\
\hspace{0.5in} [3] Entry format oriented layout in ENTRY mode.\\
\vspace{0.15in}
You can do the following in layout COMMAND mode:\\
\end{flushleft}

\begin{itemize}
\item Manipulate layout files using layout commands like PLOT, OVERLAY, etc.

\item Set layout attributes such as layout scale, using layout command SET.

\item Enable ENTRY mode or GIN mode using layout command ENTRY or GIN
      to perform interactive layout other than from a layout file.

\item Transform existing layout using layout commands like MOVE, ROTATE, 
      ZOOM, COLOR, FILL, COPY, etc. in conjunction with definable function 
      keys and keypad.
\end{itemize}
\begin{flushleft}
A complete set of implemented layout commands is given below: \\
\end{flushleft}
\begin{tabbing}
123456\=123456789012345\=123456789012345\=123456789012345\=123456789012345\=11 \kill
\>CLEAR          \>CODE           \>COLOR          \>COPY \\
\>DELETE         \>ENTRY          \>EXIT,QUIT      \>FILL \\
\>GIN            \>HARDCOPY       \>HELP           \>OVERLAY,INCLUDE \\
\>MOVE           \>PICK,SELECT    \>PLOT           \>REFRESH \\
\>RELEASE        \>ROTATE         \>SAVE           \>SET \\
\>VISION         \>ZOOM           \>DCL \\
\end{tabbing}
In layout GIN mode, you can manipulate the existing layout entries,
draw lines and curves, do text annotation etc., using GIN crosshair 
cursor in conjunction with defined function keys and keypad. \\\\
In layout ENTRY mode, you can draw new layout entries by specifying precise
and detailed entry parameters from keyboard input. Following basic types of 
layout entries or 2-D geometric patterns are pre-defined: {\em arc, circle, 
ellipse, pie, bar, box, oblique, polygon}, and a variety of {\em arrowheads}
and {\em icon symbols}. {\em Line, curve} and {\em text} layout are 
implemented only in GIN mode.\\\\
Again, {\em user-menu-free} oriented on-line help utility, of both concise 
and comprehensive forms, are available in the layout.

\begin{flushleft}
{\bf What is Function Plot in GRAFIT?} \\
\end{flushleft}
GRAFIT's function plot is actually a mathematical function digitization 
routine. It allows for generation of a single-variable curve or 
two-variable density plane from an arbitrary mathematical function in the 
form of $z=f(x,y)$, where $z$ represents a digitized array or grid of function 
values to be computed in a user specified $x,y$ space. The results are written 
to a data file ready to be plotted by the $x,y$ plot or contour plot routine 
depending upon the number of variables used in the math function. 
The function to be computed is typed in interactively from the keyboard 
in the formula of FORTRAN-77 conventions; a scratch FORTRAN file is then 
written by the program which in turn gets compiled, linked, and executed 
to produce the results. \\\\
To enhance efficiency of input and flexibility of computation, a number of 
user-specifiable constants and built-in mathematical and physical constants 
(e.g. $\pi$, Avogadro constant $N$, Planck constant $h$, speed of light $c$,
etc.) can also be embedded in the formula of input function.

\begin{flushleft}
{\bf What is Text Plot in GRAFIT?} \\
\end{flushleft}
GRAFIT's text plot simulates DCL RUNOFF procedure to setup a text page. 
As in DCL RUNOFF, a command line must start with a dot at the 1st 
column but no text can follow it. Following {\em Runoff-like} commands
are implemented:
\begin{flushleft}
List format: .FULLNAME/.SHORT\_HAND {\em parameters} [defaults]\\
\end{flushleft}
\vspace*{0.1in}
.PAGESIZE/.PS {\em width,height} [8.0,5.0]
\begin{itemize}
\item Set page size in inches.
\end{itemize}
.SCALE/.SC {\em x,y-scale-factor} [1.0,1.0]
\begin{itemize}
\item Set overall plot scale factors. If you specify a pagesize beyond
      the screen size (10.0x8.0 inches), use smaller scale factors to
      shrink the page so that you can better preview the page.
\end{itemize}
.TOPMARGIN/.TM {\em margin} [1.0]
\begin{itemize}
\item Set page top margin in inches.
\end{itemize}
.LEFTMARGIN/.LM {\em margin} [0.5]
\begin{itemize}
\item Set page left margin in inches.
\end{itemize}
.SPACING/.SP {\em line-spacing} [0.15]
\begin{itemize}
\item Set line spacing in inches for subsequent text lines.
\end{itemize}
.FONT/.FT {\em keyword} [standard]
\begin{itemize}
\item Select font type for subsequent text lines where the valid
      font keywords are {\em standard, italics}, and {\em boldface}.
\end{itemize}
.SIZE/.SZ {\em width,height} [0.15,0.15]
\begin{itemize}
\item Set text character width and height in inches.
\end{itemize}
.COLOR/.CL {\em keyword} [green]
\begin{itemize}
\item Set drawing pen color for subsequent text lines where the valid color 
      keywords are {\em black, white, red, green, blue, magenta, purple, yellow}.
\end{itemize}
.RESET/.RS {\em x,y-coordinate}
\begin{itemize}
\item Re-position drawing pen to screen coordinate $(x,y)$ in inches.
      Coordinate (0.0,0.0) is on top-left corner of the screen with
      positive $x$ cross and positive $y$ down the screen. RESET command
      is used mainly for drawing multi-columns of text or a table.
      A RESET command without {\em x,y-coordinate} resets drawing pen to
      the lowest or max {\em y-coordinate} ever referred to on the page.
\end{itemize}
.CENTER/.CT {\em x-left,x-right}
\begin{itemize}
\item Begin centering for subsequent text lines between coordinate
      points {\em x-left} and {\em x-right}. If {\em x-left} and {\em x-right}
      are not specified, the text lines are centered on the page.
      Multi-column text centering can be accomplished combining
      CENTER with RESET command.
\end{itemize}
.ENDCENTER/.EC
\begin{itemize}
\item Stop centering of text lines.
\end{itemize}
.HSPACE/.HS {\em width}
\begin{itemize}
\item Set horizontal space or indentation to the right in inches
      for subsequent non-centering text lines.
\end{itemize}
.VSPACE/.VS {\em height}
\begin{itemize}
\item Set vertical space in inches between the last text line
      and the subsequent text lines.
\end{itemize}
.LINE/.LI {\em x1,y1,x2,y2,line-type}
\begin{itemize}
\item Draw a line of specified type from point $(x1,y1)$ to $(x2,y2)$
      where the coordinates are in inches and refer to top-left
      corner (0.0,0.0) of the screen.
\end{itemize}
.NEWPAGE/.NP
\begin{itemize}
\item Start a new page for subsequent text lines.
\end{itemize}

\newpage
\begin{center}
{\large\bf \underline{GRAFIT as A Legitimate DCL Command}} \\
\end{center}
\vspace*{0.1in}
There are two ways you can invoke GRAFIT:
\begin{flushleft}
\hspace{0.5in} [1] In interactive plotting mode.\\
\hspace{0.5in} [2] In non-interactive hardcopy making mode.\\
\hspace{0.5in} in DCL format: GRAFIT [filename,...]\\
\end{flushleft}
depending on the specification of command qualifier(s). Parameter P1
is optional for way [1] and mandatory for way [2] to pass name(s) of 
data file(s) to be plotted. If you choose to pass more than one file
names, separate them with commas. Following groups of command qualifiers
are implemented for DCL GRAFIT:
[1] Those apply both for interactive plotting and non-interactive 
    hardcopy making:
\begin{tabbing}
123456\=11111234567890123451234567890123\=12312345123456789012345123456789012345\=11 \kill
\> /FUNCTION=keyword		\> /LAYOUT=layout-file\\
\> /SETUP=setup-file\\
\end{tabbing}
[2] Those apply only for interactive plotting:
\begin{tabbing}
123456\=11111234567890123451234567890123\=12312345123456789012345123456789012345\=11 \kill
\> /TERMINAL=keyword		\> /NOHARDCOPY\\
\end{tabbing}
[3] Those apply only for non-interactive hardcopy making:
\begin{tabbing}
123456\=11111234567890123451234567890123\=12312345123456789012345123456789012345\=11 \kill
\> /COPIES=number		\> /DEVICE=keyword\\
\> /ID[=plot-ID-label]		\> /NOID\\
\> /OFFSET=(x-offset,y-offset)	\> /SCALE=(x-scale,y-scale)\\
\> /PAGE\_FEED			\> /NOPAGE\_FEED\\
\> /HARDCOPY[=destination]	\> /PEN\_SPEED=number\\
\> /HPAGE			\> /VPAGE\\
\end{tabbing}
All qualifiers can be placed anywhere in the command line, entered
with their own unique abbreviations, and they are case-insensitive.
When a qualifier is missing in non-interactive hardcopy making mode,
its default or setup-file value is used. You can also define your 
own commands to incorporate the desired qualifiers to shorten input 
command lines.\\\\
/TERMINAL={\em keyword}
\begin{itemize}
\item Identifies on-line terminal, where the valid keywords are
\begin{itemize}
\item {\em TEK4100}: Tektronix-4100 graphics terminal, such as a Tek-4015,
      -4107, -4205, -4207. Full graphics functionality is supported on such 
      a terminal.
\item {\em REGIS}: ReGIS graphics terminal, such as a GIGI, VT330, VT240.
         Following features are not supported on such a terminal:
     	\begin{flushleft}
     	\hspace{0.5in} [1] Graphics input (GIN) or crosshair cursor.\\
     	\hspace{0.5in} [2] Interactive layout utility.\\
     	\hspace{0.5in} [3] Continuous font size and direction.\\
     	\hspace{0.5in} [4] Screen saving or combination plot.\\
     	\end{flushleft}
\item {\em ANSI}: ANSI-protocol text terminal, which observes ANSI escape 
        sequences for cursor and advanced-video controls such as
        a VT100 terminal. No screen graphics is supported on such 
        a terminal but you can still perform interactive dialogue 
        and plot setup, and make a hardcopy. In general, most of 
        terminals including the graphics terminals listed above 
        are VT100 compatible.
\end{itemize}
\end{itemize}
/FUNCTION={\em keyword}
\begin{itemize}
\item Selects graphics function to perform, where the valid keywords
      are {\em XYPLOT, LAYOUT, CONTOUR, HISTOGRAM, PIECHART, TEXTPLOT,
      FUNCTION, DIGITIZE}. For {\em TEXTPLOT, FUNCTION, DIGITIZE} 
      options, parameter P1 and all other qualifiers if any (except 
      /TERMINAL) are ignored.
\end{itemize}
/SETUP={\em setup-file}
\begin{itemize}
\item Designates the {\em setup-file} to be used, which overrides the 
      default plot setup.
\end{itemize}
/LAYOUT={\em layout-file}
\begin{itemize}
\item Designates the auxiliary {\em layout-file} to be used, which
      overrides the default layout file.
\end{itemize}
/HPAGE
\begin{itemize}
\item Align the horizontal axis of plot with the longer edge of the 
      hardcopy page [default plot alignment].
\end{itemize}
/VPAGE
\begin{itemize}
\item Align the horizontal axis of plot with the shorter edge of the 
      hardcopy page.
\end{itemize}
/PAGE\_FEED\\
/NOPAGE\_FEED
\begin{itemize}
\item Enables or disables a hardcopy page feed. When disabled,
      subsequent plots will be printed on the same hardcopy page.
\end{itemize}
/PEN\_SPEED={\em number}
\begin{itemize}
\item Sets drawing pen speed in normalized speed-scale {\em number} 
      1 through 9 on a pen plotter.
\end{itemize}
/DEVICE={\em keyword}
\begin{itemize}
\item Select hardcopy making device, where the valid keywords are
     \begin{flushleft}
     \hspace{0.5in} {\em HP7550} ... Hewlett-Packard HP7550-HPGL Pen Plotter.\\
     \hspace{0.5in} {\em HP7221} ... Hewlett-Packard HP7221-series Pen Plotter.\\
     \hspace{0.5in} {\em SLIDEM} ... Presentation Tech. 35mm Color SlideMaker.\\
     \hspace{0.5in} {\em LN03PS} ... LN03 Postscript Laser Printer.\\
     \end{flushleft}
\end{itemize}
/COPIES={\em number}
\begin{itemize}
\item Designate number of hardcopies to be made. The valid range of {\em number} is 1 through 99.
\end{itemize}
/OFFSET={\em (x-offset,y-offset)}
\begin{itemize}
\item Offsets plot on the hardcopy page from its default position
      where offsets are specified in inches.
\end{itemize}
/SCALE={\em (x-scale,y-scale)}
\begin{itemize}
\item Sets plot overall scale factors ($>$1.0 enlarge) or ($<$1.0 shrink)
      on the hardcopy page.
\end{itemize}
/ID{\em [=plot-ID-label]}\\
/NOID
\begin{itemize}
\item A hardcopy is labeled by default with the name of the file
      plotted. This qualifier allows you to override the default
      labeling of a hardcopy.
\end{itemize}
/HARDCOPY{\em [=destination]}\\
/NOHARDCOPY\\
\begin{itemize}
\item /HARDCOPY invokes GRAFIT for non-interactive hardcopy making
     where the {\em destination} can be passed with a filename or a
     logical device address for hardcopy dump or else hardcopy
     is directed to the default print queue.

\item /NOHARDCOPY suppresses the default preparation of the device
     independent hardcopy file (of type DI), from which the hardcopy
     is derived, in order to speed up screen plotting. Hardcopy making 
     therefore can not be invoked from the interactive dialogue menu.
\end{itemize}
\vspace{0.1in}
Examples of commands to activate GRAFIT:
\begin{small}
\begin{flushleft}
\$ GRAFIT\\
\$ GRAFIT/TERM=TEK/FUNC=XYPLOT JUNK.DAT,JUNK1.DAT\\
\$ GRAFIT JUNK.DAT/SETUP=BATCH.PAR/LAYOUT=BATCH.DES\\
\$ GRAFIT JUNK.DAT/HARD=CADVAX::HP:/DEV=HP7221/SCALE=(0.8,0.8)\\
\$ XYPLOT == ``GRAFIT/TERM=TEK4100/FUNC=XYPLOT''\\
\$ XYPLOT JUNK.DAT,JUNK1.DAT,JUNK2.DAT\\
\$ HPPLOT == ``GRAFIT/HARD/DEV=HP7550/FUNC=XYPLOT''\\
\$ HPPLOT JUNK.DAT,JUNK1.DAT,JUNK2.DAT\\
\end{flushleft}
\end{small}

\newpage
\begin{center}
{\large\bf \underline{GRAFIT Installation Guide on Vax/VMS}}\\
\end{center}
\vspace{0.25in}
\begin{itemize}
\item Assign DISK:[GRAFIT]  to GRAFIT\$EXE:\\
      ``GRAFIT\$EXE:'' should point to where all the executable files 
      are stored.

\item Assign DISK:[GRAFIT.HELP\_DOC]  to GRAFIT\$HLP:\\
      ``GRAFIT\$HLP:'' should point to where GRAFIT's {\em on-line} help
      files (of type HLP) are stored.

\item Process GRAFIT.CLD, which is a DCL Command Language Description
      file, using the following DCL command line {\em with} system privilege
      to insert GRAFIT in the DCL command table:\\
\begin{small}
      \$ SET COMMAND/TABLE=SYS\$LIBRARY:DCLTABLES.EXE-\\
        /OUTPUT=SYS\$LIBRARY:DCLTABLES.EXE GRAFIT\$EXE:GRAFIT.CLD\\
\end{small}
      or using the following DCL command line {\em without} system privilege
      to insert GRAFIT in your process command table:\\
\begin{small}
      \$ SET COMMAND GRAFIT\$EXE:GRAFIT.CLD\\
\end{small}
      so that GRAFIT can be used as a legitimate DCL command.

\item Load GRAFIT's {\em off-line} help file GRAFIT.HLP into the system
      help library, using the following DCL command line {\em with} system
      privilege:\\
\begin{small}
      \$ LIBRARY SYS\$HELP:HELPLIB.HLB GRAFIT\$HLP:GRAFIT.HLP\\
\end{small}
      or into a local help library, e.g. GRAFIT.HLB, using the following
      DCL command lines {\em without} system privilege:\\
\begin{small}
      \$ LIBRARY GRAFIT\$HLP:GRAFIT.HLB/CREATE/HELP\\
      \$ LIBRARY GRAFIT\$HLP:GRAFIT.HLB GRAFIT\$HLP:GRAFIT.HLP\\
      \$ ASSIGN  GRAFIT\$HLP:GRAFIT.HLB HLP\$LIBRARY:\\
\end{small}
      so that GRAFIT's {\em off-line} help is accessible to the users
      via DCL HELP facility.
\end{itemize}
Hardcopy making, when requested in GRAFIT, is automatically done in
the default setup, by spawning a DCL subprocess to a system batch 
queue using a program-written command file *.BC, where * indicates 
the name of the data file being plotted (refer to the enclosed flow-chart
for more information). During interactive screen plotting, a hardcopy 
device independent metafile *.DI is written in your account.  The spawned 
hardcopy batchjob reads this metafile and converts it to a device dependent 
file which in turn gets printed it to a print queue dedicated to the 
designated hardcopy device. Upon successful completion of the above process, 
the metafile *.DI is then deleted. This hardcopy making environment requires 
following command symbols to be defined in the system's or user's LOGIN.COM 
before the ``\$ IF F\$MODE().NES.``INTERACTIVE'' THEN ...'' line:
\begin{itemize}
\item Define SUB\_PRINT as: SUBMIT /QUE=BATCH\_QUE /NOPRINT /DELETE
      /NOLOG /NOID\\
      This {\em interactive-mode} command is needed for spawning the hardcopy.\\
      ``BATCH\_QUE'' should have ``job\_limit=1'' and ``base\_priority=4''.

\item Define HP\_PRINT as PRINT/QUE=HP\_PRINT\_QUE/DELETE \\
      This {\em batch-mode} command is needed to print the final hardcopy
      file on a HP pen plotter. ``HP\_PRINT\_QUE'' is the print queue
      dedicated to the HP plotter. This definition can be ignored if no HP
      pen plotter is available in the local environment.

\item Define PS\_PRINT as PRINT/QUE=PS\_PRINT\_QUE/DELETE \\
      This {\em batch-mode} command is needed to print the final hardcopy
      file on a Postscript laser printer. ``PS\_PRINT\_QUE'' is the
      print queue dedicated to the Postscript laser printer.
      This definition can be ignored if no postscript laser printer is 
      available in the local environment.

\item Define IM\_PRINT as PRINT/QUE=IM\_PRINT\_QUE/DELETE \\
      This {\em batch-mode} command is needed to print the final 
      hardcopy file on a Presentation Technology 35mm Color Image/Slide-Maker.
      ``IM\_PRINT\_QUE'' is the print queue dedicated to the Image-Maker.
      This definition can be ignored if no Slide-Maker is available 
      in the local environment.
\end{itemize}
Please notice that the print command symbols if desired can be defined as 
DCL copy command lines (for example to copy a hardcopy file over the local 
network).\\\\
A hardcopy destination option is also implemented in GRAFIT to allow a user
to suppress the default printing of a hardcopy as described above. The option 
is accessible on the hardcopy page setup menu in interactive plotting, with 
qualifier /HARDCOPY in non-interactive hardcopy making. The optional 
destination can be specified as a logical device address as well as a
filename.\\\\
Virtual memory allocation by GRAFIT is in the range of 1000 pages/blocks
depending upon the sizes of data storage arrays which are easily 
re-dimensionable in the common block files of type CBS.

\newpage
\begin{center}
{\large\bf \underline{Appendices}}\\
\end{center}
\begin{flushleft}
{\bf Tables of Linetypes, Symbols, and Fill-patterns} \\
\end{flushleft}
Following types of drawing line are implemented in GRAFIT:
\begin{tabbing}
123456\=11111234567890123451234567890\=12345123456789012345123456789012345\=11 \kill
\>1: solid line              \>2: short-dash line\\
\>3: medium-dash line        \>4: long-short-dash line\\
\>5: dot-dash line           \>6: 1-dot-center line\\
\>7: 2-dot-dash line         \>8: 3-dot-dash line\\
\>9: dotted line\\
\end{tabbing}
\vspace*{-0.2in}
Following graphics marker symbols are implemented in GRAFIT:
\begin{tabbing}
123456\=11111234567890123451234567890\=12345123456789012345123456789012345\=11 \kill
\>1: square              \>10: cross\\
\>2: solid-square        \>11: star\\
\>3: hexagon             \>12: double-triangle\\
\>4: solid-hexagon       \>13: circle\\
\>5: triangle            \>14: circle+cross\\
\>6: solid-triangle      \>15: full-moon\\
\>7: diamond             \>16: right-half-moon\\
\>8: solid-diamond       \>17: left-half-moon\\
\>9: plus                \>18: top-half-moon\\
\>                       \>19: bottom-half-moon\\
\end{tabbing}
\vspace*{-0.2in}
Following area-fill/shading patterns are implemented in GRAFIT:
\begin{tabbing}
123456\=11111234567890123451234567890\=12345123456789012345123456789012345\=11 \kill
\>1: solid fill.              \>9: 45 deg lines (.06in spacing).\\
\>2: hlines (.04in spacing).  \>10:  45 deg lines (.12in spacing).\\
\>3: hlines (.06in spacing).  \>11: -45 deg lines (.04in spacing).\\
\>4: hlines (.12in spacing).  \>12: -45 deg lines (.06in spacing).\\
\>5: vlines (.04in spacing).  \>13: -45 deg lines (.12in spacing).\\
\>6: vlines (.06in spacing).  \>14:  45 deg dots (.04in spacing).\\
\>7: vlines (.12in spacing).  \>15:  45 deg dots (.06in spacing).\\
\>8: 45 deg lines (.04in spacing).  \>16:  45 deg dots (.12in spacing).\\
\end{tabbing}

\newpage
\begin{flushleft}
{\bf Input Data File Formats For X,Y Plot:} \\
\vspace{0.15in}
\end{flushleft}
Six commonly-used data formats are supported by X,Y PLOT. You can choose
any one of the six data formats when creating your data file and it will
be recognized automatically by X,Y PLOT's data acquisition routine.

\begin{verbatim}
(*) Valid Data Format #1 (FORMATTED/ASCII):
        1st line   :  NPTS       !SET ID LABEL
        2nd line on:  X, Y, YB
        ......
     NPTS is the number of data points or x,y pairs in the data set.
     YB is optional error bar value if error bar is to be plotted.
     From NPTS+2th line on, another set of data may follow.
     Example:
                3                            !1000C
                0.70   54.50000
                0.40   26.20000
                0.38   24.39744
                15                           !1500C
                0.32   15.34272   1.45
                0.30   13.20480   1.23
                ......

(*) Valid Data Format #2 (FORMATTED/ASCII):
        1st line on:  X, Y, YB, IT     !SET ID LABEL
        ......
     IT is a non-zero number entered to terminate a set of data
     IT is blank for all data lines except the last one in the set.
     After a non-zero IT, another set of data may follow.  
     IT can be omitted if there is only one set of data in the file.
     YB is the same as for data format #1.
     Example:
                100   10            !Anneal Sample
                300   36
                500   56
                700   90,, 1
                200   3.45          !Quench Sample
                400   5.87
                ......

(*) Valid Data Format #3 (FORMATTED/ASCII):
        1st line   : -NSET
        2nd line on:  X, Y(1), Y(2),..., Y(NSET)
        ......
        !SET ID LABEL FOR THE 1ST SET
        ......
        !SET ID LABEL FOR THE NTH SET
     Here NSET of data share the same X-coordinates
     and must have the same number of data points.
     Example:
                -5
                100  100  120  145  180  250.4
                200  80   97   116  140  265.5
                300  50   75   95   112  304.7
                ......
                !Anneal Sample
                !Quench Sample
                ......

(*) Valid Data Format #4 (FORMATTED/ASCII):
        1st line   :  X1, X2, X3, NPTS        !SET ID LABEL
        2nd line on:  Y(1), Y(2),..., Y(NPTS)
        .....
     NPTS is the number of Y-coordinates per line. X1 is the 
     beginning X-coordinate, X2 the ending, X3 the incremental.
     The number of data points is calculated as follows:
     	NUMBER-OF-DATA-POINTS = INTEGER((X2-X1)/X3+0.5)+1
     Example:
               1  100  1  5         !Anneal Sample
               1.05  0.98  2.34  3.45  4.20
               3.45  1.56  0.98  1.23  3.44
               ......
               502  1130  0.5  1    !Quench Sample
               20.5
               45.3
               ......

(*) Valid Data Format #5 (UNFORMATTED/BINARY):
        1st record:  X1, X2, X3        <--- 1st set of data
        2nd record:  (Y(I), I=1, NPTS)
        3rd record:  X1, X2, X3        <--- 2nd set of data
        4th record:  (Y(I), I=1, NPTS)
        ......
     X1,X2,X3 have the same definitions as in data format #4.
     NPTS is the number of data points calculated from X1,X2,X3.

(*) Valid Data Format #6 (UNFORMATTED/BINARY):
        1st record:  NPTS              <--- 1st set of data
        2nd record:  (X(I), I=1, NPTS)
        3rd record:  (Y(I), I=1, NPTS)
        4th record:  NPTS              <--- 2nd set of data
        5th record:  (X(I), I=1, NPTS)
        6th record:  (Y(I), I=1, NPTS)
        ......
     NPTS is th number of data points in the set.
\end{verbatim}

\begin{flushleft}
{\bf TIPS for creating a data file:}\\
\end{flushleft}
\begin{itemize}

\item A file can be in any one of the 6 data formats
   but you can not mix data formats in a file.

\item FORMATTED/ASCII files are free of data field formats with a max field
   length of 40 digits. Integers are acceptable data fields and can 
   be mixed with decimals anywhere in the file. Space or spaces as well as
   commas are valid field separators. TAB keys and blank lines are allowed.

\item Optional data set ID label (max=75 characters) must start with a ``!''
   at any column position after the numbers.

\item Following file types are searched for a filespec without type 
      (in precedence from left to right): PLT, DAT, RAW.
\end{itemize}

\newpage
\begin{flushleft}
{\bf Input Data File Formats For Histogram:} \\
\end{flushleft}

\begin{verbatim}
     Valid Data Format (FORMATTED/ASCII file only):
     	X(1)  Y(1,1)  Y(2,1)  Y(3,1)  Y(4,1)  ......
     	X(2)  Y(1,2)  Y(2,2)  Y(3,2)  Y(4,2)  ......
     	X(3)  Y(1,3)  Y(2,3)  Y(3,3)  Y(4,3)  ......
     	......
\end{verbatim}
where $X(I)$ is any alphanumeric label (max 8 characters allowed) for the
group of bars $Y(J,I)$ in the same line, also called the group label. $Y(J,I)$ 
is the bar height for data point $I$ of data set $J$ and can be positive or zero 
or negative. Max numbers of data sets (max index $J$) and data points (max index 
of $I$) can not exceed those allowed by the current version of program.

\begin{verbatim}
     Example of a valid data file:
     	100C 250    355.5 139.2 -220.6 65.7
     	200C 330.2  -35.5 239.2  -20.6 55.4
     	300C -460    55.5  19.2,     , 45.0
     	400C 180.54 -95.5 139.2 -100.6
     	500C 250.55 505.5,    ,      , 35.5
\end{verbatim}
In the example given above, 5 data points for each of 5 sets of bars are to
be plotted. Notice that a data file is free of data field formats with a max
field length of 40 digits per column. Integers are acceptable data fields and 
can be mixed with decimals anywhere in the file. Space or spaces as well as 
commas are valid field separators. TAB keys and blank lines are allowed.
Each input line is parsed during the input to get all the input columns.
Multiple sets or columns of bars, if any, do not have to have the same number
of data points. During plotting, blank or zero height bars are bypassed, and 
positive and negative bars, if co-existing, are plotted in the opposite 
directions with based line set at 0.0 coordinate on the y-axis. \\\\
Following file types are searched for a filespec without type
(in precedence from left to right): BAR, DAT, RAW.

\newpage
\begin{flushleft}
{\bf Input Data File Formats For Contour Plot:} \\
\end{flushleft}

\begin{verbatim}
Acceptable data format #1 for a map file (FORMATTED/ASCII):
      1st line: X1, X2, NC, Y1, Y2, NR
      2nd line: Z(1,1), Z(2,1), ...., Z(NC,1)
      3rd line: Z(1,2), Z(2,2), ...., Z(NC,2)
      ........  .......
     NRth line: Z(1,NR), Z(2,NR), ...., Z(NC,NR)
Acceptable data format #2 for a map file (UNFORMATTED/BINARY):
      1st record: X1, X2, NC, Y1, Y2, NR
      2nd record: ((Z(I,J), I=1,NC), J=1,NR)
\end{verbatim}
where $X1$ and $X2$ are beginning and ending $X$-coordinates, and $NC$ is 
number of grid points or equally-spaced columns in the map; $Y1$ and $Y2$ 
beginning and ending $Y$-coordinates, and $NR$ number of grid points or 
equally-spaced rows in the map; $Z(I,J)$ the contour level at map point
$(X(I),Y(J))$.\\\\
Following file types are searched for a filespec without type
(in precedence from left to right): MAP, DAT, RAW.

\newpage
\begin{flushleft}
{\bf Setup File Format for X,Y Plot:}\\
\end{flushleft}
By default X,Y Plot searches, after reading an input data file, 
for a setup file of the same name as the data file and but of type PAR 
to setup an xyplot, and updates the setup file every time you exit from 
the dialogue menu. A setup file contains only setup parameters but not 
the data, which makes it possible to use a common setup file to plot the 
same or modified data file or another data file of similar nature so that 
duplicated or redundant plot setup is avoided. If the search fails, default 
plot setup with automatic data scaling is performed. This section describes 
the format of the setup file used by X,Y Plot and it's intended for those 
who wish to prepare a setup file for their own xyplots.\\\\
The setup file is keyword oriented ASCII file with each keyword identifying 
a setup parameter or a group of setup parameters and occupying a single record 
line in the file. The line format is a 4-letter keyword followed by an equal 
sign followed by its setup parameter(s) and is free of data field formats. 
You only need to write the keyword lines that are necessary, and for those 
missing X,Y Plot uses the default setup values.  Following is list of defined 
keywords together with their setup parameters:

\begin{verbatim}
    TITL=graph title (alphanumeric information. max 75 chars)
    XLB1=1st x-axis label (alphanumeric information. max 75 chars)
    YLB1=1st y-axis label (alphanumeric information. max 75 chars)
    XLB2=2nd x-axis label (alphanumeric information. max 75 chars)
    YLB2=2nd y-axis label (alphanumeric information. max 75 chars)

    OVER= LB, LM, MQ, NS, C1, C2, XL, YL, XO, YO, XS, YS, XF, YF
          Overall plot setup parameters:
          LB: flag for drawing data set id labels.
              0 = skip drawing all data id set labels if any.
              1 = draw the data set id labels if any.
              2 = draw and box the data set id labels if any.
          LM: flag for drawing data set id label leading markers
              which identify color, linetype, symbol, filling
              status of the data sets.
              0 = skip drawing the leading markers.
              1 = draw the leading markers.
          MQ: flag for a multi-quadrant plot.
              0 = designate a single quadrant plot.
              1 = designate a  multi quadrant plot.
          NS: length of error bars if any in number of input sigma.
          C1: axis color number or pen code for the 1st graph band.
          C2: axis color number or pen code for the 2nd graph band.
          XL: x-coordinate in inches of the lower-left corner of
              data set id label box.
          YL: y-coordinate in inches of the lower-left corner of
              data set id label box.
          XO: x-coordinate in inches of the graph origin.
          YO: y-coordinate in inches of the graph origin.
          XS: x-coordinate in inches of the 2nd graph band offset.
          YS: y-coordinate in inches of the 2nd graph band offset.
          XF: overall scale factor of graph in x-dimension.
          YF: overall scale factor of graph in y-dimension.

    XAX1= AT, DV, dv, ND, PT, LN, TO, AO, RA, LO, HI, IN
          Axis drawing parameters for the 1st x-axis.
    YAX1= AT, DV, dv, ND, PT, LN, TO, AO, RA, LO, HI, IN
          Axis drawing parameters for the 1st y-axis.
    XAX2= AT, DV, dv, ND, PT, LN, TO, AO, RA, LO, HI, IN
          Axis drawing parameters for the 2nd x-axis.
    YAX2= AT, DV, dv, ND, PT, LN, TO, AO, RA, LO, HI, IN
          Axis drawing parameters for the 2nd y-axis.
          AT: axis type (1=linear, 2=log10, 3=inverse-linear).
              A negative type number skips drawing the axis.
          DV: axis major number of divisions with scale numbers.
              A number of zero designates automatic divisions.
              A negative number reverses the default side of
              axis annotation.
          dv: axis minor number of divisions between the majors.
              A negative number reverse the default side of
              tickmark direction.
          ND: number of significant digits for axis scale numbers.
              0=scale numbers are optimized within #####.###.
              N=scale numbers are plotted with N digits.
             -N=skip drawing the scale multiplier (x10**?) if any.
              9=skip drawing all scale numbers on the axis.
          PT: axis pattern code.
              1=draw the axis with both major and minor tickmarks.
              2=draw the axis with major tickmarks only.
              3=draw the axis with grid lines on major tickmarks only.
              4=draw the axis with grid lines on minor tickmarks as well.
              Negative PT: draw the axis with an arrowhead.
              Dual PT(e.g. 11): fence the opposite side of axis.
          LN: axis length in inches.
          TO: offset in inches of the 1st and the last major tickmarks
              away from the end points of the axis.
          AO: axis offset in inches from its default position
              in the direction normal to the axis line.
          RA: axis rotation angle in degrees from its default position
              (positive angle rotates the axis counter-clockwise)
              and it is independent of the other axis.
          LO: axis scale value on the 1st major tickmark on the axis.
          HI: axis scale value on the last major tickmark on the axis.
          IN: axis scale incremental value per major tickmark on linear
              and inverse types of axes, but it's the number of Log10
              cycles on Log10 type of axis.

    SETS= PN, SM, LI, DN, BC, BL, PM, SS, XO, YO, XF, YF, RL
          Data set drawing parameters for each set of data:
          PN: pen number from 1 through 7 (0=skip drawing this set).
          SM: symbol number from 1 through 19.
              0=no symbol is to be drawn (line plotting only).
             >0=draw symbols together with line segments.
             <0=draw symbols only (no line connection between symbols).
              If PM=1 or -1, SM designates the pattern of area fill
              and -SM skips outlining the filled area.
              If PM=3, SM designates the hatching pattern of bars
              and -SM skips connecting line segments between bars.
          LI: line type from 1 through 9.
              >0=connect data points with straight line segments.
              <0=connect data points with spline-smoothed curve.
          DN: Data point plotting-density/skipping flag.
              DN=1: plot every data point in the set of data.
              DN=2: plot every other data point in the set of data.
              DN=N: plot every Nth data point in the set of data.
          BC: graph band assignment code for the set of data:
              1=to be scaled and plotted on the 1st graph band.
              2=to be scaled and plotted on the 2nd graph band.
              3=to be scaled and plotted on both graph bands.
          BL: bold-line or linewidth code in number of the default
              linewidth.
          PM: plotting mode for drawing the set of data.
              0=regular line and/or symbol plot.
              1=regular line plot + area fill to line RL.
             -1=regular line plot + close-loop area fill.
              2=regular line and/or symbol plot + dropping a vertical
                line of type LI to line RL.
              3=regular line plot + dropping a vertical bar
                of hatching pattern SM and width SS to line RL.
          SS: size of symbols in inches if symbols are to be plotted.
              If PM=3, SS designates the bar width.
          XO: offset in inches from the calculated position along 
              x-axis for drawing the 1st set of data, but from the 
              previous data set for the rest of the data sets (offset 
              between data sets in other words). A positive value of 
              offset shifts the curve to the right and a negative value 
              to the left.
          YO: offset in inches from the calculated position along
              y-axis for drawing the 1st set of data, but from the
              previous data set for the rest of the data sets (offset 
              between data sets in other words). A positive value of
              offset shifts the curve up and a negative value down.
          RL: plot reference line in current y-axis scale units for
              a STICK/BAR/FILL plot. It is a horizontal line that 
              can be set anywhere along the y-axis.
    LABL= data set ID label for each set of data (max. 75 chars).

    PAR1= DV, NC, LB, PF, XO, YO, XF, YF, LW, VP
          Hardcopy page setup parameters:
          DV: hardcopy device intended.
              1=HP7550-HPGL series pen plotter.
              2=HP7221 series pen plotter.
              3=35mm Image/slide maker.
              4=Postscript laser printer.
          NC: number of hardcopy to be made.
          LB: plot id label drawing flag (0=no, 1=yes).
          PF: page feed flag (0=no, 1=yes).
          XO: plot offset in inches in x-direction.
          YO: plot offset in inches in y-direction.
          XF: plot overall scale factor in x-dimension.
          YF: plot overall scale factor in y-dimension.
          LW: line width in number of the default linewidth.
          VP: vertical page flag (0=off, 1=on).
    PAR2= PS, FT, BC, RS, RS, RS, RS, RS, RS, RS
          Hardcopy page setup parameters:
          PS: pen speed from 1 through 9 for a pen plotter.
          FT: film type for a 35mm slide maker.
              1=Polaroid instant slide film.
              2=Ektachrome-100 color slide film.
          BC: slide background color number.
              1=Black, 2=Medium-gray, 3=Dark-blue
              4=Medium-blue, 5=Light-gray, 6=Red
          RS: reserved parameter, not yet implemented.
    IDEN= plot identification label to replace the default filename.
\end{verbatim}

\end{document}
