Previous: chrrtn Up: ../plot79.html Next: dir

Table of contents


 The UNIX implementations of <PLOT79> provide with user with a choice of
 about a  dozen different  output devices.   Because shared libraries in
 UNIX systems are not uniformly available or implemented  similarly, the
 current <PLOT79> implementation uses link-time libraries that result in
 the binding of an output device to an executable program at link time.


 Because the <PLOT79> system  contains several libraries, and the  order
 of these libraries is critical for correct loading, rather than use the
 convention  -lxyz  compiler and  loader  switches,  library  lists  are
 defined with UNIX shell symbols.  To define the standard ones, just do

 source $PLT/define.csh

 with the C shell (csh), or

 . $PLT/

 with the Bourne shell (sh)  or Korn shell (ksh).  If the shell variable
 PLT is not already defined at your installation, try putting

 setenv PLT /usr/local/plot79           # csh


 PLT=/usr/local/plot79                  # sh or ksh

 in your .cshrc (csh) or .profile (sh or ksh) startup files.

 The define.* files create symbol definitions that let you subsequently
 link as follows:

 f77 -o myprog myprog.o ... $ptzlib

 The complete set of defined symbols can be determined by looking at the
 $PLT/define.* files.  The current symbols are:

 pt1lib                 # Tektronix-401x
 pt4lib                 # Tektronix-4014
 pt3lib                 # Tektronix-4663
 ptblib                 # BBN BitGraph
 ptelib                 # Epson MX-100
 pthlib                 # Hewlett-Packard GL series plotters
 ptilib                 # Imagen 8/300 laser printer (raster)
 ptklib                 # Imagen 8/300 laser printer (vector)
 ptjlib                 # Hewlett-Packard Laser Jet laser printer
 ptmlib                 # Metafile
 ptllib                 # DEC LetterPrinter 100
 ptplib                 # Hewlett-Packard 2468a CRT
 ptrlib                 # Ramtek 6211 color CRT
 pt9lib                 # Ramtek 9460 color CRT
 ptslib                 # CalComp-Sanders Model 84 pen plotter
 pttlib                 # TeX generic graphics file
 ptvlib                 # Intecolor VHR-19
 ptwlib                 # C-Itoh Prowriter printer
 ptxlib                 # Printronix printer
 ptzlib                 # Apple LaserWriter laser printer
 x11lib                 # X11 Window System interface


 The VAX  VMS  3.x  (and  later  versions)  implementation  of  <PLOT79>
 provides  the  user with a choice at present of about a dozen different
 output devices.  User programs can be linked with either the  shareable
 or  non-shareable  libraries.  Shareable libraries should be the normal
 choice, because:
        * linking is faster,
        * disk space for the .EXE file is drastically reduced,
        * the output device can be chosen at runtime,
        * bug corrections applied to the library will automatically be
          in effect the next time the user program is run, without it
          having to be relinked.


 To link with a device-specific non-shareable library, do

 $ LINK yourprogram,@PLT:PT*LIB

 where  *  is  a  single  character  device  identifier as listed in the
 DEVICE-LIBRARIES section.  At run time, you then do

 $ DEFINE CRT      plotfile
 $ DEFINE HARDCOPY anotherfile  ! Optional
 $ RUN yourprogram

 The HARDCOPY file is only available for those  devices  which  use  the
 terminal  I/O  package,  generally  all CRT displays and most ASCII pen
 plotters.  It is simply an exact copy of what is  written  to  the  CRT
 file,  and  is primarily used to preserve a record of the plot when CRT
 is directed to a terminal.


 To link with the shareable library, simply do

 $ LINK yourprogram,@PLT:PLOT79

 and then at run time:

 $ DEFINE CRT      plotfile
 $ DEFINE HARDCOPY anotherfile  ! Optional
 $ DEFINE P79DDI   SHR:libname
 $ RUN yourprogram

 The HARDCOPY file is only available for those  devices  which  use  the
 terminal  I/O  package,  generally  all CRT displays and most ASCII pen
 plotters.  It is simply an exact copy of what is  written  to  the  CRT
 file,  and  is primarily used to preserve a record of the plot when CRT
 is directed to a terminal.

 If you omit the definition of the logical name P79DDI, an  installation
 default will be used.  On the University of Utah Mathematics Department
 CAGD VAX, this is DDITK4014, the Tektronix 4014 storage tube family.

 If it is anticipated that the plotfile  is  to  be  viewed  on  several
 devices,  and takes a considerable amount of time to construct, it will
 usually be advisable to choose the CORE Metafile device, DDIMFL, as the
 output  device.  This file can subsequently be translated for any other
 device by the Metafile translator described in another section.


 Non-shareable  libraries  are  selected  at  LINK time by specifying an
 indirect library command file named PLT:PTxLIB, where x is a letter  or

 Shareable device libraries have names beginning DDI (for Display Device
 Interface), followed by a device name of up to  six  characters.   They
 are  stored  as shareable images named SYS$SHARE:DDIxxxxxx.EXE, but VMS
 defaults allow only the name DDIxxxxxx to be specified as the value  of
 the logical name P79DDI.

 ===========    =====================   ================================
  Shareable     Non-shareable library           Comments
   Library          command file
 ===========    =====================   ================================
 P79DDI                                 Installation default (DDITK4014
                                        on Utah CAGD VAX)

 DDITK4010      PT1LIB.COM              Plots on Tektronix 401x CRT
                                        (10-bit resolution) and most
                                        4010-compatible alphanumeric

 DDIVT240       PT2LIB.COM              DEC VT240 CRT

 DDITK4663      PT3LIB.COM              Tektronix 4663 pen plotter

 DDITK4014      PT4LIB.COM              Tektronix 401x CRT (12-bit

 DDIALW         PTZLIB.COM              Apple LaserWriter laser printer

 DDIBIT         PTBLIB.COM              BBN BitGraph CRT.

 DDICANON       PTULIB.COM              Canon LBP-8 A2 laser printer

 DDIEPSON       PTELIB.COM              Epson MX-80 dot matrix printer

 DDIHPGL        PTHLIB.COM              Hewlett-Packard pen plotters.

 DDIHP2468      PTPLIB.COM              Hewlett-Packard 2468a CRT

 DDIHPLJ        PTJLIB.COM              Hewlett-Packard LaserJet laser printer

 DDIIMAGEN      PTILIB.COM              Imagen 8/300 laser printer
                                        in bitmap mode (use for complex

 DDIIMPRES      PTKLIB.COM              Imagen 8/300 laser printer
                                        in vector mode (use for simple

 DDIMETH        PTOLIB.COM              Metheus Omega 400 CRT.

 DDIMFL         PTMLIB.COM              METAFILE device files.

 DDIPCP         PTNLIB.COM              PCP LaserImage 200 laser printer

 DDIPRO         PTWLIB.COM              C-Itoh Prowriter dot matrix

 DDIPRX         PTXLIB.COM              Printronix 300 and 600 dot
                                        matrix printers.

 DDIRM6211      PTRLIB.COM              RAMTEK 6211 color CRT.

 DDIRM9460      PT9LIB.COM              RAMTEK 9460 color CRT.

 DDICS84        PTSLIB.COM              CalComp-Sanders Model 84 pen

 DDIVHR19       PTVLIB.COM              Intecolor VHR-19 color CRT.

 ===========    =====================   ================================


 Each  sequence  of CALL PLT00 .. CALL PLTEJ or CALL PLT00 .. CALL SETNF
 generates a new generation of the plot file.  The name of the plot file
 is  not  fixed in the <PLOT79> source code, but rather is determined at
 run time from system service translations of logical names and symbols.
 The search order is as follows:

 For all devices:
     Logical name PLOTFILE
     Symbol PLOTFILE

 For most ASCII devices:
     Logical name CRT
     Symbol CRT

 For  ASCII  devices,  which  includes  most terminals and plotters, but
 excludes dot matrix printers, and other binary devices, an  exact  copy
 of  the  plot  written  to CRT can be requested by defining the logical
 name or symbol HARDCOPY.  It is primarily used to preserve a record  of
 the plot when CRT is directed to a terminal.

 For example, on VAX VMS,  to make the plot go to a terminal attached to
 line TXA1:, do


 Similarly, to direct it into a disk file, you can do

 $ DEFINE PLOTFILE dev:[directory]file.ext
 $ ASSIGN dev:[directory]file.ext PLOTFILE
 $ PLOTFILE := dev:[directory]file.ext

 On UNIX, for a terminal window device (which you can find by typing

 % tty

 in that window)

 % setenv PLOTFILE /dev/ttyp3                   # csh


 % PLOTFILE=/dev/ttyp3 ; export PLOTFILE        # sh or ksh

 For disk files, use

 % setenv PLOTFILE myprog.crt                   # csh


 % PLOTFILE=myprog.crt ; export PLOTFILE        # sh or ksh

 For disk files,  the definition of PLOTFILE is  used  to provide a base
 name to which generation  numbers (one  per frame) are attached.  Thus,
 the  above   example   will  result   in  files   named   myprog.crt.1,
 myprog.crt.2, ...


 The  <PLOT79>  CORE  Metafile  device  is a generic graphics file which
 contains sufficient  information  and  precision  to  be  suitable  for
 translation  and  output  on  any  other  graphics device.  It contains
 textual information giving the job name, plot file name, and  date  and
 time  of creation, so that it is suitable for a graphical archive.  The
 Metafile Dumper described in another section can be used  to  dump  the
 contents of a Metafile.

 The  Metafile  is  a  binary  file  containing 16-bit "chunks", but for
 machine portability,  it  is  recorded  in  hexadecimal  with  sequence

 numbered  and  checksummed  records.  It can be processed for output on
 any other display  device  by  the  Metafile  translator  described  in
 another section.

 By default, coordinates in the Metafile have 15 data bits, representing
 a coordinate range of -32768 .. +32767, a  precision  of  one  part  in
 65536.   This  is  adequate  for all current graphics devices, with the
 possible exception of the highest-precision pen plotters.

 A precision of 31 data bits is selectable when the Metafile is  created
 by giving an arbitrary value to the logical name or symbol MFHIGH.  The
 value is not important, just the  fact  that  the  value  exists.   For
 example, on VAX VMS, you can do

 $ MFHIGH :== yes

 On UNIX, do

 % setenv MFHIGH yes                            # csh

 % MFHIGH=yes ; export MFHIGH                   # sh or ksh

 The  precision  is  encoded internally in the Metafile and the Metafile
 Translator recognizes both 15-bit and 31-bit precisions.  In  practice,
 choosing  31-bit  precision nearly doubles the size of the Metafile, so
 it should not be requested unless absolutely necessary.


 The  <PLOT79>  Metafile  translator  on  VAX  VMS  is  linked using the
 shareable libraries, so that only one version of it  is  necessary  for
 translation  of any Metafile to any supported <PLOT79> graphics device.
 To use it, simply do

 $ @PLT:METAFILE plotfilename sharedlibraryname

 The  shared  library  name,  if  omitted,  defaults  to   P79DDI   (the
 installation  default).   The  output  plot  file name will be given an
 extension conventional with the selected  device  library  (".CRT"  for
 most screens and ASCII pen plotters).

 Normally,  the  plotfilename  should have an extension ".MFL", and this
 will be assumed if a file extension is not specified.


 The   <PLOT79>   Metafile   dumper   utility  can  be  used  to  get  a
 human-readable dump of a Metafile.  This includes all  commands  except
 move/draw  commands,  which  would produce an enormous amount of output
 which is of little use.  To use it, simply do

 $ @PLT:MFLDUMP plotfilename

 Normally,  the  plotfilename  should have an extension ".MFL", and this
 will be assumed if a file extension is not specified.


 Users  are  free  to  choose  file  name  extensions unless  these  are
 predefined  in the VAX VMS  DCL  command file  which runs a  particular
 program.  Some conventions are useful however, and the recommended ones
 are as follows:

 .crt           Display screen and ASCII pen plotter files
 .hrd           Hardcopy duplicates of .CRT files
 .imp           Imagen 8/300 Impress bitmap raster files
 .mfl           Metafiles
 .tek           Tektronix files
 .x79           Vector files from x11lib

 For the Imagen 8/300 laser printer, the  extension defines the contents
 of  the  file,  since the  printer  can support several  different file
 formats.   On VAX  VMS,  if it is not  ".IMP", then the switch /IMPRESS
 must  be specified on  the IMPRINT command which sends the file to  the
 printer spooler.