home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume16 / gnuplot2.02 / patch7 / patch2f
Encoding:
Text File  |  1991-01-05  |  58.4 KB  |  2,140 lines

  1. diff -cr ./docs/gnuplot.doc ../gnuplot2.02/docs/gnuplot.doc
  2. *** ./docs/gnuplot.doc    Tue Sep 18 14:58:01 1990
  3. --- ../gnuplot2.02/docs/gnuplot.doc    Thu Nov 29 11:04:53 1990
  4. ***************
  5. *** 5,11
  6.    are not the same as those written in CAPS).  All command names may be
  7.    abbreviated, as long as the abbreviation is not ambiguous.  Any number
  8.    of commands may appear on a line, separated by semicolons (;). 
  9.    Any command-line arguments are assumed to be names of files containing 
  10.    gnuplot commands. Each file is loaded with the `load` command, in the
  11.    order specified. Gnuplot exits after the last file is processed.
  12.  
  13. --- 5,11 -----
  14.    are not the same as those written in CAPS).  All command names may be
  15.    abbreviated, as long as the abbreviation is not ambiguous.  Any number
  16.    of commands may appear on a line, separated by semicolons (;). 
  17. !  
  18.    Any command-line arguments are assumed to be names of files containing 
  19.    gnuplot commands, with the exception of standard X11 arguments, which
  20.    are processed first. Each file is loaded with the `load` command, in the
  21. ***************
  22. *** 7,13
  23.    of commands may appear on a line, separated by semicolons (;). 
  24.   
  25.    Any command-line arguments are assumed to be names of files containing 
  26. !  gnuplot commands. Each file is loaded with the `load` command, in the
  27.    order specified. Gnuplot exits after the last file is processed.
  28.   
  29.    Commands may extend over several input lines, by ending each line but
  30.  
  31. --- 7,14 -----
  32.    of commands may appear on a line, separated by semicolons (;). 
  33.    
  34.    Any command-line arguments are assumed to be names of files containing 
  35. !  gnuplot commands, with the exception of standard X11 arguments, which
  36. !  are processed first. Each file is loaded with the `load` command, in the
  37.    order specified. Gnuplot exits after the last file is processed.
  38.    
  39.    Commands may extend over several input lines, by ending each line but
  40. ***************
  41. *** 9,15
  42.    Any command-line arguments are assumed to be names of files containing 
  43.    gnuplot commands. Each file is loaded with the `load` command, in the
  44.    order specified. Gnuplot exits after the last file is processed.
  45.    Commands may extend over several input lines, by ending each line but
  46.    the last with a backslash (\). The backslash must be the LAST
  47.    character on each line. The effect is as if the backslash and newline
  48.  
  49. --- 10,16 -----
  50.    gnuplot commands, with the exception of standard X11 arguments, which
  51.    are processed first. Each file is loaded with the `load` command, in the
  52.    order specified. Gnuplot exits after the last file is processed.
  53. !  
  54.    Commands may extend over several input lines, by ending each line but
  55.    the last with a backslash (\). The backslash must be the LAST
  56.    character on each line. The effect is as if the backslash and newline
  57. ***************
  58. *** 16,22
  59.    were not there. That is, no white space is implied, nor is a comment
  60.    terminated. Therefore, commenting out a continued line comments out
  61.    the entire command (see `comment`).
  62.    In this documentation, curly braces ({}) denote optional arguments to
  63.    many commands.
  64.   
  65.  
  66. --- 17,23 -----
  67.    were not there. That is, no white space is implied, nor is a comment
  68.    terminated. Therefore, commenting out a continued line comments out
  69.    the entire command (see `comment`).
  70. !  
  71.    In this documentation, curly braces ({}) denote optional arguments to
  72.    many commands.
  73.    
  74. ***************
  75. *** 19,25
  76.   
  77.    In this documentation, curly braces ({}) denote optional arguments to
  78.    many commands.
  79.    For help on any topic, type 'help' followed by the name of the topic.
  80.   2 cd
  81.   ?cd
  82.  
  83. --- 20,26 -----
  84.    
  85.    In this documentation, curly braces ({}) denote optional arguments to
  86.    many commands.
  87. !  
  88.    For help on any topic, type 'help' followed by the name of the topic.
  89.   2 cd
  90.   ?cd
  91. ***************
  92. *** 58,64
  93.    
  94.    On Unix and MS-DOS, GNUHELP may be defined to be the pathname of the 
  95.    HELP file (gnuplot.gih).
  96.    On VMS, the symbol GNUPLOT$HELP should be defined as the name of 
  97.    the help library for gnuplot.
  98.    
  99.  
  100. --- 59,65 -----
  101.    
  102.    On Unix and MS-DOS, GNUHELP may be defined to be the pathname of the 
  103.    HELP file (gnuplot.gih).
  104. !  
  105.    On VMS, the symbol GNUPLOT$HELP should be defined as the name of 
  106.    the help library for gnuplot.
  107.    
  108. ***************
  109. *** 446,452
  110.    
  111.            load 'work.gnu'
  112.            load "func.dat"
  113.    The `load` command is performed implicitly on any file names given as
  114.    arguments to gnuplot. These are loaded in the order specified, and
  115.    then gnuplot exits. 
  116.  
  117. --- 447,453 -----
  118.    
  119.            load 'work.gnu'
  120.            load "func.dat"
  121. !  
  122.    The `load` command is performed implicitly on any file names given as
  123.    arguments to gnuplot. These are loaded in the order specified, and
  124.    then gnuplot exits. 
  125. ***************
  126. *** 481,488
  127.    
  128.      plot {ranges}  <function> {title} {style} {, <function> {title} {style}...}
  129.    
  130. !  Where <function> is either a mathematical expression or the name of a
  131. !  data file enclosed in quotes.  User-defined functions and variables
  132.    may also be defined here. 
  133.    
  134.    Curly braces {,} denote optional items.
  135.  
  136. --- 482,490 -----
  137.    
  138.      plot {ranges}  <function> {title} {style} {, <function> {title} {style}...}
  139.    
  140. !  Where <function> is either a mathematical expression, the name of a
  141. !  data file enclosed in quotes, or a pair of mathematical expressions in
  142. !  the case of parametric functions.  User-defined functions and variables
  143.    may also be defined here. 
  144.    
  145.    Curly braces {,} denote optional items.
  146. ***************
  147. *** 508,514
  148.    be specified either as an X and Y value separated by blank space, or
  149.    as just the Y value, in which case the program will use the number
  150.    of the coordinate as the X value.  Coordinate numbers start at 0
  151. !  and are incremented for each data point read.  Lines beginning with #
  152.    (or ! on VMS) will be treated as comments and ignored. 
  153.   
  154.    NOTE that blank lines cause a break in the input, and if the plot
  155.  
  156. --- 510,517 -----
  157.    be specified either as an X and Y value separated by blank space, or
  158.    as just the Y value, in which case the program will use the number
  159.    of the coordinate as the X value.  Coordinate numbers start at 0
  160. !  and are incremented for each data point read.  To specify other 
  161. !  formats, see `plot datafile using`.  Lines beginning with #
  162.    (or ! on VMS) will be treated as comments and ignored. 
  163.    
  164.    NOTE that blank lines cause a break in the input, and if the plot
  165. ***************
  166. *** 510,516
  167.    of the coordinate as the X value.  Coordinate numbers start at 0
  168.    and are incremented for each data point read.  Lines beginning with #
  169.    (or ! on VMS) will be treated as comments and ignored. 
  170.    NOTE that blank lines cause a break in the input, and if the plot
  171.    style is `lines` or `linespoints` (see `plot style`) there will be no
  172.    line drawn between the preceding and following points. This does not
  173.  
  174. --- 513,519 -----
  175.    and are incremented for each data point read.  To specify other 
  176.    formats, see `plot datafile using`.  Lines beginning with #
  177.    (or ! on VMS) will be treated as comments and ignored. 
  178. !  
  179.    NOTE that blank lines cause a break in the input, and if the plot
  180.    style is `lines` or `linespoints` (see `plot style`) there will be no
  181.    line drawn between the preceding and following points. This does not
  182. ***************
  183. *** 530,535
  184.     1975   34
  185.     1980   24
  186.     1985   10
  187.   3 ranges
  188.   ?plot ranges
  189.   ?ranges
  190.  
  191. --- 533,596 -----
  192.     1975   34
  193.     1980   24
  194.     1985   10
  195. + 4 using
  196. + ?plot datafile using
  197. + ?plot data-file using
  198. + ?using
  199. +  The format of data within a file can be selected with the `using` 
  200. +  option.  The `xy` and `yx` specify the order of the `x` and `y` 
  201. +  variables in the data file. To reverse the variables specify `yx`.
  202. +  To specify that the datafile should contain one variable specify `y`.
  203. +  
  204. +  Syntax:
  205. +  
  206. +          plot "datafile" { using { xy | yx | y } {"scanf string"} } ...
  207. +  
  208. +  If the `xy`, `yx` or `y` option is omitted, `xy` is used.
  209. +  If the scanf string is omitted, the default of `"%f%f"` is used.
  210. +  
  211. +  Examples:
  212. +  
  213. +          plot "MyData" using yx "%*f%f%*20[^\n]%f" with lines
  214. +  This causes data to be read from the file "MyData" using the format 
  215. +  `yx "%*f%f%*20[^\n]%f"`.  The meaning of this format is: `%*f` 
  216. +  ignore the first number, `%f` then read in the second and assign to y 
  217. +  (the `yx` option of using), `%*20[^\n]` then ignore 20 non-newline 
  218. +  characters, `%f` then read in the x value.
  219. +  
  220. +          plot "MyData" using "%f%f", "MyData" using "%f%*f%f"
  221. +  Causes gnuplot to plot the second and third columns of MyData versus
  222. +  the first column.
  223. +  
  224. +  Note: gnuplot first reads a line of the data file into a buffer and 
  225. +  then does a 
  226. +          sscanf(input_buffer, scanf_string, &x, &y);
  227. +  where `x` and `y` are of type `float`.  Any scanf string that specifies
  228. +  two `float` numbers may be used.
  229. + 3 parametric
  230. + ?plot parametric
  231. + ?parametric
  232. +  When in parametric mode (`set parametric`) mathematical expressions must
  233. +  be given in pairs:
  234. +   plot sin(t),t**2
  235. +  
  236. +  Data files are plotted as before, except the parametric function
  237. +  must be fully specified before a data file is given as a plot.  In
  238. +  other words, the x parametric function (sin(t) above) and the y 
  239. +  parametric function (t**2 above) must not be interrupted with any 
  240. +  modifiers or data functions; doing so will generate a syntax error
  241. +  stating that the parametric function is not fully specified.
  242. +  
  243. +  Ranges take on a different meaning when in parametric mode.  The
  244. +  first specifiable range on the plot command is the trange, the
  245. +  next the xrange, and the last is the yrange.  The following plot
  246. +  shows setting the trange to [-pi:pi], the xrange to [-1.3:1.3]
  247. +  and the yrange to [-1:1] for the duration of the plot:
  248. +   plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2
  249. +  
  250. +  Other modifiers, such as `with` and `title` are required after
  251. +  the function has been fully specified:
  252. +   plot sin(t),t**2 with linespoints title 'Parametric example'
  253.   3 ranges
  254.   ?plot ranges
  255.   ?ranges
  256. ***************
  257. *** 629,635
  258.    This plots sin(x) and cos(x) with linespoints, using the
  259.    same line type but different point types:
  260.            plot sin(x) with linesp 1 3, cos(x) with linesp 1 4
  261.    This plots file "data" with points style 3:
  262.            plot "data" with points 1 3 
  263.    Note that the line style must be specified in order to specify the
  264.  
  265. --- 690,696 -----
  266.    This plots sin(x) and cos(x) with linespoints, using the
  267.    same line type but different point types:
  268.            plot sin(x) with linesp 1 3, cos(x) with linesp 1 4
  269. !  
  270.    This plots file "data" with points style 3:
  271.            plot "data" with points 1 3 
  272.    Note that the line style must be specified in order to specify the
  273. ***************
  274. *** 742,748
  275.    arrow. To change any attribute of an existing arrow, use the `set
  276.    arrow` command with the appropriate tag, and specify the parts of the
  277.    arrow to be changed. 
  278.    Arrows outside the plotted boundaries are permitted but may cause
  279.    device errors; use at your own risk.
  280.    
  281.  
  282. --- 803,809 -----
  283.    arrow. To change any attribute of an existing arrow, use the `set
  284.    arrow` command with the appropriate tag, and specify the parts of the
  285.    arrow to be changed. 
  286. !  
  287.    Arrows outside the plotted boundaries are permitted but may cause
  288.    device errors; use at your own risk.
  289.    
  290. ***************
  291. *** 796,802
  292.    
  293.    This disables autoscaling of the X and Y axes.
  294.            set noautoscale
  295.    This disables autoscaling of the X axis only.
  296.            set noautoscale x
  297.   3 clip
  298.  
  299. --- 857,863 -----
  300.    
  301.    This disables autoscaling of the X and Y axes.
  302.            set noautoscale
  303. !  
  304.    This disables autoscaling of the X axis only.
  305.            set noautoscale x
  306.   4 parametric mode
  307. ***************
  308. *** 799,804
  309.   
  310.    This disables autoscaling of the X axis only.
  311.            set noautoscale x
  312.   3 clip
  313.   ?set clip
  314.   ?set noclip
  315.  
  316. --- 860,890 -----
  317.    
  318.    This disables autoscaling of the X axis only.
  319.            set noautoscale x
  320. + 4 parametric mode
  321. + ?autoscale parametric
  322. + ?set autoscale t
  323. +  When in parametric mode (`set parametric`) the xrange is as
  324. +  fully scalable as the yrange.  In other words, in parametric
  325. +  mode the X axis can be automatically scaled to fit the range
  326. +  of the parametric function that is being plotted.  Of course,
  327. +  the Y axis can also be automatically scaled just as in the
  328. +  non-parametric case.  If autoscaling on the X axis is not set,
  329. +  the current X range is used.
  330. +  
  331. +  When there is a mix of data files and functions, the xrange of
  332. +  the functions is selected as that of the data files if autoscale
  333. +  is true for X.  While this keeps the behavior compatible with
  334. +  non-parametric plotting, it may not be retained in the future.
  335. +  The problem is that, in parametric mode, the x and y ranges are
  336. +  not as distinguishable as in the non-parametric mode and this
  337. +  behavior may not be the most useful.
  338. +  
  339. +  For completeness sake a last command `set autoscale t` is accepted.  
  340. +  However, the effect of this "scaling" is very minor.  When
  341. +  gnuplot determines that the t range would be empty it makes a
  342. +  small adjustment if autoscaling is true.  Otherwise, gnuplot
  343. +  gives an error.  Such behavior may, in fact, not be very useful
  344. +  and the command `set autoscale t` is certainly questionable.  
  345.   3 clip
  346.   ?set clip
  347.   ?set noclip
  348. ***************
  349. *** 815,821
  350.    Syntax:
  351.            set clip points
  352.            set noclip points
  353.    GNUPLOT can also clip lines that connect a point that is in range
  354.    with a point that is out of range. The default is to draw the 
  355.    in-range portion of such lines (i.e., to "clip" them). With the 
  356.  
  357. --- 901,907 -----
  358.    Syntax:
  359.            set clip points
  360.            set noclip points
  361. !  
  362.    GNUPLOT can also clip lines that connect a point that is in range
  363.    with a point that is out of range. The default is to draw the 
  364.    in-range portion of such lines (i.e., to "clip" them). With the 
  365. ***************
  366. *** 826,832
  367.    Syntax:
  368.            set clip one
  369.            set noclip one
  370.    GNUPLOT does not show lines that are wholly out of range. Some lines
  371.    may have both endpoints out of range, but pass through the plotting
  372.    area. By default, GNUPLOT does not draw these lines (`set noclip
  373.  
  374. --- 912,918 -----
  375.    Syntax:
  376.            set clip one
  377.            set noclip one
  378. !  
  379.    GNUPLOT does not show lines that are wholly out of range. Some lines
  380.    may have both endpoints out of range, but pass through the plotting
  381.    area. By default, GNUPLOT does not draw these lines (`set noclip
  382. ***************
  383. *** 831,837
  384.    may have both endpoints out of range, but pass through the plotting
  385.    area. By default, GNUPLOT does not draw these lines (`set noclip
  386.    two`). They may be drawn (and clipped) with `set clip two`.
  387.    Syntax:
  388.            set clip two
  389.            set noclip two
  390.  
  391. --- 917,923 -----
  392.    may have both endpoints out of range, but pass through the plotting
  393.    area. By default, GNUPLOT does not draw these lines (`set noclip
  394.    two`). They may be drawn (and clipped) with `set clip two`.
  395. !  
  396.    Syntax:
  397.            set clip two
  398.            set noclip two
  399. ***************
  400. *** 835,841
  401.    Syntax:
  402.            set clip two
  403.            set noclip two
  404.    To check the state of all forms of clipping, use
  405.            show clip
  406.   
  407.  
  408. --- 921,927 -----
  409.    Syntax:
  410.            set clip two
  411.            set noclip two
  412. !  
  413.    To check the state of all forms of clipping, use
  414.            show clip
  415.    
  416. ***************
  417. *** 838,844
  418.   
  419.    To check the state of all forms of clipping, use
  420.            show clip
  421.    The following forms are also permitted. These allow backward
  422.    compatibility with older versions. 
  423.           set clip
  424.  
  425. --- 924,930 -----
  426.    
  427.    To check the state of all forms of clipping, use
  428.            show clip
  429. !  
  430.    The following forms are also permitted. These allow backward
  431.    compatibility with older versions. 
  432.           set clip
  433. ***************
  434. *** 966,972
  435.    label. To change any attribute of an existing label, use the `set
  436.    label` command with the appropriate tag, and specify the parts of the
  437.    label to be changed. 
  438.    By default, the text is placed flush left against point x,y. If you
  439.    want to adjust the way the label is positioned with respect to the
  440.    point x,y, add the parameter <justification>, which may be `left`,
  441.  
  442. --- 1052,1058 -----
  443.    label. To change any attribute of an existing label, use the `set
  444.    label` command with the appropriate tag, and specify the parts of the
  445.    label to be changed. 
  446. !  
  447.    By default, the text is placed flush left against point x,y. If you
  448.    want to adjust the way the label is positioned with respect to the
  449.    point x,y, add the parameter <justification>, which may be `left`,
  450. ***************
  451. *** 990,996
  452.             set nolabel
  453.    To show all labels (in tag order) use:
  454.             show label
  455.    The Imagen driver allows \\ in a string to specify a newline.
  456.   3 logscale
  457.   ?set logscale
  458.  
  459. --- 1076,1082 -----
  460.             set nolabel
  461.    To show all labels (in tag order) use:
  462.             show label
  463. !  
  464.    The Imagen driver allows \\ in a string to specify a newline.
  465.   3 logscale
  466.   ?set logscale
  467. ***************
  468. *** 1041,1046
  469.    
  470.    The filename must be enclosed in quotes.  If the filename is
  471.    omitted, output will be sent to the standard output. 
  472.   3 polar
  473.   ?set polar
  474.   ?show polar
  475.  
  476. --- 1127,1160 -----
  477.    
  478.    The filename must be enclosed in quotes.  If the filename is
  479.    omitted, output will be sent to the standard output. 
  480. + 3 parametric
  481. + ?set parametric
  482. + ?show parametric
  483. + ?parametric
  484. +  The `set parametric` command changes the meaning of the plot from
  485. +  normal functions to parametric functions.  The command 
  486. +  `set noparametric` changes the plotting style back to normal, 
  487. +  single-valued expression plotting.
  488. +  
  489. +  Parametric functions are determined by a pair of functions 
  490. +  operating on a `parameter`, such as sin(t),cos(t) (which describes 
  491. +  a circle if `t` ranges over [-pi:pi]).  Hence it takes two 
  492. +  parametric function specifications in terms of the parametric 
  493. +  dummy argument to describe a single graph.  
  494. +  
  495. +  The total set of possible plots is a superset of the simple f(x) 
  496. +  style plots, since the two functions can describe both the 
  497. +  x and y values to be computed separately.  In fact, plots of 
  498. +  the type t,f(t) are equivalent to those produced with f(x) since 
  499. +  the x values are computed with just the identity function.  Note 
  500. +  that the order the parametric function is specified is xfunction,
  501. +  yfunction and that each operates over the common parametric domain.
  502. +  
  503. +  Also, the `set parametric` function implies a new range of values.  
  504. +  Whereas the normal f(x) style plotting assumes an xrange and yrange,
  505. +  the parametric mode additionally specifies a trange.  The trange 
  506. +  may be specified directly with `set trange`, by specifying the 
  507. +  range on the plot command, or indirectly with `set autoscale t`.
  508.   3 polar
  509.   ?set polar
  510.   ?show polar
  511. ***************
  512. *** 1112,1118
  513.            set size 0.5,0.5
  514.    To show the size use:
  515.            show size
  516.    For the LaTeX and Fig terminals the default size (scale factor 1,1)
  517.    is 5 inches wide by 3 inches high. Note that the size of the plot
  518.    includes the space used by the labels; the plotting area itself is
  519.  
  520. --- 1226,1232 -----
  521.            set size 0.5,0.5
  522.    To show the size use:
  523.            show size
  524. !  
  525.    For the LaTeX and Fig terminals the default size (scale factor 1,1)
  526.    is 5 inches wide by 3 inches high. Note that the size of the plot
  527.    includes the space used by the labels; the plotting area itself is
  528. ***************
  529. *** 1188,1194
  530.    
  531.    The first clears the title (default).
  532.    The second form sets the title to "title-text" (without the quotes).
  533.    The Imagen driver allows \\ in a string to specify a newline.
  534.   3 variables
  535.   ?show variables
  536.  
  537. --- 1302,1308 -----
  538.    
  539.    The first clears the title (default).
  540.    The second form sets the title to "title-text" (without the quotes).
  541. !  
  542.    The Imagen driver allows \\ in a string to specify a newline.
  543.   3 trange
  544.   ?set trange
  545. ***************
  546. *** 1190,1195
  547.    The second form sets the title to "title-text" (without the quotes).
  548.   
  549.    The Imagen driver allows \\ in a string to specify a newline.
  550.   3 variables
  551.   ?show variables
  552.    The `show variables` command lists all user-defined variables and
  553.  
  554. --- 1304,1331 -----
  555.    The second form sets the title to "title-text" (without the quotes).
  556.    
  557.    The Imagen driver allows \\ in a string to specify a newline.
  558. + 3 trange
  559. + ?set trange
  560. + ?show trange
  561. + ?trange
  562. +  The `set trange` command sets the parametric range used to compute
  563. +  x and y values when in parametric mode.  If not in parametric mode
  564. +  (see `set parametric`) then this range is not used.  This command 
  565. +  does not affect XY autoscaling or XY ranges.
  566. +  
  567. +  This range may also be specified on the `plot` command line when
  568. +  in parametric mode.
  569. +  
  570. +  Syntax:
  571. +          set trange [{<tmin> : <tmax>}]
  572. +  
  573. +  Where <tmin> and <tmax> terms are expressions or constants.
  574. +  
  575. +  Both the <tmin> and <tmax> terms are optional. Anything omitted will
  576. +  not be changed, so 
  577. +          set trange [:10]
  578. +  changes tmax to 10 without affecting tmin. 
  579. + 3 xtics
  580.   3 variables
  581.   ?show variables
  582.    The `show variables` command lists all user-defined variables and
  583. ***************
  584. *** 1211,1217
  585.    
  586.    The first clears the x-axis label (default).
  587.    The second form sets the x-axis label to "label" (without the quotes).
  588.    The Imagen driver allows \\ in a string to specify a newline.
  589.   3 xrange
  590.   ?set xrange
  591.  
  592. --- 1347,1353 -----
  593.    
  594.    The first clears the x-axis label (default).
  595.    The second form sets the x-axis label to "label" (without the quotes).
  596. !  
  597.    The Imagen driver allows \\ in a string to specify a newline.
  598.   3 xrange
  599.   ?set xrange
  600. ***************
  601. *** 1241,1247
  602.    xtics` and `set noxtics` command. The x-axis tic marks may be turned
  603.    off with the `set noxtics` command. They may be turned on (the
  604.    default state) with `set xtics`.
  605.    If you prefer your own series of tic marks, you may use the form
  606.             set xtics <start>, <incr>{, <end>}
  607.    The curly braces indicate that the <end> parameter is optional. 
  608.  
  609. --- 1377,1383 -----
  610.    xtics` and `set noxtics` command. The x-axis tic marks may be turned
  611.    off with the `set noxtics` command. They may be turned on (the
  612.    default state) with `set xtics`.
  613. !  
  614.    If you prefer your own series of tic marks, you may use the form
  615.             set xtics <start>, <incr>{, <end>}
  616.    The curly braces indicate that the <end> parameter is optional. 
  617. ***************
  618. *** 1251,1257
  619.    increment may be negative. Example:
  620.              set xtics 0,.5,10
  621.    makes tics 0, 0.5, 1, 1.5, ..., 9.5, 10.
  622.    If you need arbitrary tic positions, or non-numeric tic labels, 
  623.    any non-empty set of tic positions and labels may be given with this
  624.    format:
  625.  
  626. --- 1387,1393 -----
  627.    increment may be negative. Example:
  628.              set xtics 0,.5,10
  629.    makes tics 0, 0.5, 1, 1.5, ..., 9.5, 10.
  630. !  
  631.    If you need arbitrary tic positions, or non-numeric tic labels, 
  632.    any non-empty set of tic positions and labels may be given with this
  633.    format:
  634. ***************
  635. *** 1266,1272
  636.             set xtics ("low" 0, "medium" 50, "high" 100)
  637.             set xtics (1,2,4,8,16,32,64,128,256,512,1024)
  638.             set xtics ("bottom" 0, "" 10, "top" 20)
  639.    Tics will only be plotted when in range.
  640.   
  641.    The `set ytics` and `set noytics` commands work identically.
  642.  
  643. --- 1402,1408 -----
  644.             set xtics ("low" 0, "medium" 50, "high" 100)
  645.             set xtics (1,2,4,8,16,32,64,128,256,512,1024)
  646.             set xtics ("bottom" 0, "" 10, "top" 20)
  647. !  
  648.    Tics will only be plotted when in range.
  649.    
  650.    The `set ytics` and `set noytics` commands work identically.
  651. ***************
  652. *** 1268,1274
  653.             set xtics ("bottom" 0, "" 10, "top" 20)
  654.   
  655.    Tics will only be plotted when in range.
  656.    The `set ytics` and `set noytics` commands work identically.
  657.    See also `set format` command.
  658.   3 ylabel
  659.  
  660. --- 1404,1410 -----
  661.             set xtics ("bottom" 0, "" 10, "top" 20)
  662.    
  663.    Tics will only be plotted when in range.
  664. !  
  665.    The `set ytics` and `set noytics` commands work identically.
  666.    See also `set format` command.
  667.   3 xzeroaxis
  668. ***************
  669. *** 1271,1276
  670.   
  671.    The `set ytics` and `set noytics` commands work identically.
  672.    See also `set format` command.
  673.   3 ylabel
  674.   ?set ylabel
  675.   ?show ylabel
  676.  
  677. --- 1407,1434 -----
  678.    
  679.    The `set ytics` and `set noytics` commands work identically.
  680.    See also `set format` command.
  681. + 3 xzeroaxis
  682. + ?set xzeroaxis
  683. + ?show xzeroaxis
  684. + ?xzeroaxis
  685. +  `set xzeroaxis` draws the x-axis.  By default, this option is on.
  686. +  `set noxzeroaxis` causes gnuplot to omit the x-axis.
  687. +  
  688. +  Syntax:
  689. +          set xzeroaxis
  690. +          set noxzeroaxis
  691. +          show xzeroaxis
  692. + 3 yzeroaxis
  693. + ?set yzeroaxis
  694. + ?show yzeroaxis
  695. + ?yzeroaxis
  696. +  `set yzeroaxis` draws the y-axis.  By default, this option is on.
  697. +  `set noyzeroaxis` causes gnuplot to omit the y-axis.
  698. +  
  699. +  Syntax:
  700. +          set yzeroaxis
  701. +          set noyzeroaxis
  702. +          show yzeroaxis
  703.   3 ylabel
  704.   ?set ylabel
  705.   ?show ylabel
  706. ***************
  707. *** 1338,1343
  708.    Syntax:
  709.            set zero <expression>
  710.            show zero
  711.   2 shell
  712.   ?shell
  713.    The `shell` command spawns an interactive shell.  To return to
  714.  
  715. --- 1496,1513 -----
  716.    Syntax:
  717.            set zero <expression>
  718.            show zero
  719. + 3 zeroaxis
  720. + ?set zeroaxis
  721. + ?show zeroaxis
  722. + ?zeroaxis
  723. +  `set zeroaxis` draws the x-axis and y-axis.  By default, this option is on.
  724. +  `set noxzeroaxis` causes gnuplot to omit the axes.
  725. +  
  726. +  Syntax:
  727. +          set zeroaxis
  728. +          set nozeroaxis
  729. +          show zeroaxis
  730. +  See `set xzeroaxis` and `set yzeroaxis`.
  731.   2 shell
  732.   ?shell
  733.    The `shell` command spawns an interactive shell.  To return to
  734. Common subdirectories: ./docs/latextut and ../gnuplot2.02/docs/latextut
  735. diff -cr ./docs/titlepage.ms ../gnuplot2.02/docs/titlepage.ms
  736. *** ./docs/titlepage.ms    Fri Mar  9 00:48:30 1990
  737. --- ../gnuplot2.02/docs/titlepage.ms    Wed Nov 28 09:15:45 1990
  738. ***************
  739. *** 7,13
  740.   .AU
  741.   Thomas Williams & Colin Kelley
  742.   .br
  743. ! John Campbell, David Kotz, and Russell Lang (Version 2.0)
  744.   .AI
  745.   pixar!info-gnuplot@sun.com
  746.   \*(DY
  747.  
  748. --- 7,13 -----
  749.   .AU
  750.   Thomas Williams & Colin Kelley
  751.   .br
  752. ! John Campbell, David Kotz, and Russell Lang (Version 2.0 patchlevel 2)
  753.   .AI
  754.   pixar!info-gnuplot@sun.com
  755.   \*(DY
  756. diff -cr ./docs/titlepage.tex ../gnuplot2.02/docs/titlepage.tex
  757. *** ./docs/titlepage.tex    Fri Mar  9 00:48:31 1990
  758. --- ../gnuplot2.02/docs/titlepage.tex    Wed Nov 28 09:15:26 1990
  759. ***************
  760. *** 23,29
  761.      \verb+pixar!info-gnuplot@sun.com+
  762.   
  763.      \vfill
  764. !    {\small This manual is for GNUPLOT version 2.0.}
  765.   
  766.      \end{center}
  767.   \newpage
  768.  
  769. --- 23,29 -----
  770.      \verb+pixar!info-gnuplot@sun.com+
  771.   
  772.      \vfill
  773. !    {\small This manual is for GNUPLOT version 2.0 patchlevel 2.}
  774.   
  775.      \end{center}
  776.   \newpage
  777. diff -cr ./docs/latextut/Makefile ../gnuplot2.02/docs/latextut/Makefile
  778. *** ./docs/latextut/Makefile    Tue Mar 27 08:59:57 1990
  779. --- ../gnuplot2.02/docs/latextut/Makefile    Fri Dec  7 08:34:22 1990
  780. ***************
  781. *** 1,6
  782.   # Makefile for gnuplot LaTeX tutorial
  783. ! # To make the manual from scratch, we run latex three times
  784. ! all: tutorial.dvi
  785.       latex tutorial
  786.   
  787.   # To touch it up after changes:
  788.  
  789. --- 1,8 -----
  790.   # Makefile for gnuplot LaTeX tutorial
  791. ! # To make the manual from scratch, we run latex two times
  792. ! all: tutorial.dvi done
  793. ! done:
  794.       latex tutorial
  795.       echo > done
  796.   
  797. ***************
  798. *** 2,7
  799.   # To make the manual from scratch, we run latex three times
  800.   all: tutorial.dvi
  801.       latex tutorial
  802.   
  803.   # To touch it up after changes:
  804.   remake: tutorial.dvi
  805.  
  806. --- 4,10 -----
  807.   
  808.   done:
  809.       latex tutorial
  810. +     echo > done
  811.   
  812.   # To touch it up after changes:
  813.   remake: tutorial.dvi
  814. ***************
  815. *** 13,18
  816.   tutorial.dvi: eg1.tex eg2.tex eg3.tex eg4.tex eg5.tex eg6.tex \
  817.       tutorial.tex header.tex
  818.       latex tutorial
  819.   
  820.   .SUFFIXES: .tex .plt
  821.   
  822.  
  823. --- 16,22 -----
  824.   tutorial.dvi: eg1.tex eg2.tex eg3.tex eg4.tex eg5.tex eg6.tex \
  825.       tutorial.tex header.tex
  826.       latex tutorial
  827. +     rm -f done
  828.   
  829.   .SUFFIXES: .tex .plt
  830.   
  831. diff -cr ./term/cgi.trm ../gnuplot2.02/term/cgi.trm
  832. *** ./term/cgi.trm    Mon Nov 26 13:07:06 1990
  833. --- ../gnuplot2.02/term/cgi.trm    Mon Dec 17 09:59:49 1990
  834. ***************
  835. *** 0
  836.  
  837. --- 1,227 -----
  838. + /* GNUPLOT - cgi.trm */
  839. + /*
  840. +  * Copyright (C) 1990 Ronald Florence
  841. +  *
  842. +  * Permission is hereby granted for unlimited non-commercial
  843. +  * use of this code, on condition that the copyright
  844. +  * notices are left intact and any modifications to the source
  845. +  * code are noted as such.  No warranty of any kind is implied
  846. +  * or granted for this material.
  847. +  *
  848. +  * This file is included by ../term.c.
  849. +  *
  850. +  * This terminal driver supports SCO CGI drivers
  851. +  *
  852. +  * AUTHOR
  853. +  *   Ronald Florence <ron@mlfarm.com>
  854. +  */
  855. + #ifdef VGA_MONO
  856. + static short rgb[16][3] = {
  857. +   0,    0,      0,      /* Black        */
  858. +   1000,    1000,    1000,    /* White    */
  859. +   800,    800,    0,    /* Red        */
  860. +   0,    600,    0,    /* Green    */
  861. +   0,    800,    800,    /* Blue        */
  862. +   1000,    1000,    400,    /* Yellow    */
  863. +   0,    600,    600,    /* Cyan        */
  864. +   600,    600,    600,    /* Magenta    */
  865. +   800,    800,    0,    /* Brown    */
  866. +   600,    600,    600,    /* Lt. Grey    */
  867. +   400,    600,    400,    /* Dark Grey    */
  868. +   400,    600,    1000,    /* Lt. Blue    */
  869. +   400,    1000,    400,    /* Lt Green    */
  870. +   400,    1000,    1000,    /* Lt Cyan    */
  871. +   1000,    600,    400,    /* Lt Red    */
  872. +   600,    600,    1000    /* Lt Magenta    */
  873. + };
  874. + #endif
  875. + #define CGI_XMAX    32767
  876. + #define CGI_YMAX    32767
  877. + #define CGI_VTIC    (CGI_YMAX / 75)
  878. + #define CGI_HTIC    term_tbl[term].h_tic
  879. + #define CGI_VCHAR    term_tbl[term].v_char
  880. + #define CGI_HCHAR    term_tbl[term].h_char
  881. + #define CRT        (gout[45] == 0)
  882. + #define CGICOLORS    gout[13]
  883. + #define CGILINES    gout[6]
  884. + #define CGIROTATES    gout[36]
  885. + #define CGITEXTALIGN    gout[48]
  886. + static short gout[66];
  887. + static short cgidev;
  888. + static short vect[4];
  889. + static short gin[19] = {
  890. +  0,    /* default aspect ratio */
  891. +  1,    /* solid line */
  892. +  1,    /* line color */
  893. +  1,    /* marker type . */
  894. +  1,    /* marker color */
  895. +  1,    /* graphics text font */
  896. +  1,    /* graphics text color */
  897. +  0,    /* fill interior style */
  898. +  0,    /* fill style index */
  899. +  1,    /* fill color index */
  900. +  1     /* prompt for paper changes */
  901. +  };
  902. + char    *cgidriver, *getenv();
  903. + CGI_init()
  904. + {
  905. +   if (getenv(cgidriver = "CGIDISP") == NULL)
  906. +     HCGI_init();
  907. + }
  908. + HCGI_init()
  909. + {
  910. +   if (getenv(cgidriver = "CGIPRNT") == NULL)
  911. +     int_error("no CGI driver", NO_CARET);
  912. + }
  913. + CGI_graphics()
  914. + {
  915. +   int    i, aspect;
  916. +   char *s;
  917. +   short font_cap[9];
  918. +   char    err_str[80];
  919. +   if ( (s=getenv("ASPECT")) != NULL && (aspect=atoi(s)) >= 0 && aspect <= 3 )
  920. +     gin[0] = aspect;
  921. +   for (i = 0; cgidriver[i]; i++) 
  922. +     gin[11+i] = cgidriver[i];
  923. +   gin[18] = ' ';
  924. +   if (v_opnwk(gin, &cgidev, gout) < 0) 
  925. +     {
  926. +       sprintf(err_str, "CGI error %d opening %s", -vq_error(), cgidriver);
  927. +       int_error(err_str, NO_CARET);
  928. +     }
  929. +   vqt_representation(cgidev, 9, font_cap);
  930. +   CGI_VCHAR = font_cap[8] * 3 / 2;
  931. +   CGI_HCHAR = font_cap[7];
  932. +   CGI_HTIC = CGI_VTIC * ((double) gout[1] / (double) gout[4]) / 
  933. +             ((double) gout[0] / (double) gout[3]);
  934. + #ifdef VGA_MONO
  935. +   if (CGICOLORS > 2)
  936. +     vsc_table(cgidev, 0, CGICOLORS, rgb);
  937. + #endif
  938. + }
  939. + CGI_text()
  940. + {
  941. +   if (CRT)  
  942. +     {
  943. +       short ptin[2];
  944. +       char  strin[2];
  945. +       
  946. +       ptin[0] = 0;
  947. +       ptin[1] = 0;
  948. +       vrq_string(cgidev, 1, 0, ptin, strin);
  949. +     }
  950. +   v_clswk(cgidev);
  951. + }
  952. + CGI_reset()
  953. + {
  954. + }
  955. + CGI_move(x, y)
  956. +      int x, y;
  957. + {
  958. +   vect[0] = x;
  959. +   vect[1] = y;
  960. + }
  961. + CGI_vector(x, y)
  962. +      int x, y;
  963. + {
  964. +   vect[2] = x;
  965. +   vect[3] = y;
  966. +   v_pline(cgidev, 2, vect);
  967. +   vect[0] = x;
  968. +   vect[1] = y;
  969. + }
  970. + CGI_linetype(linetype)
  971. +      int linetype;
  972. + {
  973. +   short lcolor;
  974. +   if (CGICOLORS > 2) 
  975. +     {
  976. +       lcolor = (linetype + 2) % CGICOLORS + 1;
  977. +       vsl_color(cgidev, lcolor);
  978. +       vsm_color(cgidev, lcolor);
  979. +     }
  980. +   vsl_type(cgidev, (linetype < 1) ? 1 : (linetype % CGILINES) + 1);
  981. + }
  982. + CGI_put_text(x, y, str)
  983. + int x, y;
  984. + char *str;
  985. + {
  986. +   v_gtext(cgidev, (short) x, (short) y, str);
  987. + }
  988. + CGI_text_angle(ang)
  989. + int    ang;
  990. + {
  991. +   if (!CGIROTATES)
  992. +     return FALSE;
  993. +                 /* angles are 1/10 degree ccw */
  994. +   vst_rotation(cgidev, (ang) ? 900 : 0);
  995. +   return TRUE;
  996. + }
  997. + CGI_justify_text(mode)
  998. + enum JUSTIFY mode;
  999. + {
  1000. +   short hor_in, hor_out, vert_out;
  1001. +   if (!CGITEXTALIGN)
  1002. +     return FALSE;
  1003. +   switch (mode)
  1004. +     {
  1005. +     case LEFT:   hor_in = 0; break;
  1006. +     case CENTRE: hor_in = 1; break;
  1007. +     case RIGHT:  hor_in = 2; break;
  1008. +     }
  1009. +   vst_alignment(cgidev, hor_in, 1, &hor_out, &vert_out); 
  1010. +   return TRUE;
  1011. + }
  1012. + #define POINT_TYPES 6
  1013. + CGI_point(x,y,num)
  1014. +      int x, y, num;
  1015. + {
  1016. +   short  point[2];
  1017. +   static short cgimarker[POINT_TYPES] = {1, 2, 6, 4, 5, 3};
  1018. +                           /* .  +  <> [] X  * */
  1019. +   if (num < 0)
  1020. +     {
  1021. +       CGI_move(x, y);
  1022. +       CGI_vector(x, y);
  1023. +     }
  1024. +   else
  1025. +     {
  1026. +       vsm_type(cgidev, cgimarker[num % POINT_TYPES]);
  1027. +       point[0] = x;
  1028. +       point[1] = y;
  1029. +       v_pmarker(cgidev, 1, point);
  1030. +     }
  1031. + }
  1032. diff -cr ./term/epson.trm ../gnuplot2.02/term/epson.trm
  1033. *** ./term/epson.trm    Mon Dec 17 09:53:09 1990
  1034. --- ../gnuplot2.02/term/epson.trm    Wed Dec 19 09:14:16 1990
  1035. ***************
  1036. *** 0
  1037.  
  1038. --- 1,481 -----
  1039. + /* GNUPLOT - epson.trm */
  1040. + /*
  1041. +  * Copyright (C) 1990   
  1042. +  *
  1043. +  * Permission to use, copy, and distribute this software and its
  1044. +  * documentation for any purpose with or without fee is hereby granted, 
  1045. +  * provided that the above copyright notice appear in all copies and 
  1046. +  * that both that copyright notice and this permission notice appear 
  1047. +  * in supporting documentation.
  1048. +  *
  1049. +  * Permission to modify the software is granted, but not the right to
  1050. +  * distribute the modified code.  Modifications are to be distributed 
  1051. +  * as patches to released version.
  1052. +  *  
  1053. +  * This software  is provided "as is" without express or implied warranty.
  1054. +  * 
  1055. +  * This file is included by ../term.c.
  1056. +  *
  1057. +  * This terminal driver supports:
  1058. +  *  epson_lx800, nec_cp6c, nec_cp6d, nec_cp6b, starc,
  1059. +  *  epson_60dpi, tandy_60dpi
  1060. +  *
  1061. +  * AUTHORS
  1062. +  *  Russell Lang
  1063. +  *  William Wilson
  1064. +  *
  1065. +  * send your comments or suggestions to (pixar!info-gnuplot@sun.com).
  1066. +  * 
  1067. +  */
  1068. + /* The following epson lx800 driver uses generic bit mapped graphics
  1069. +    routines to build up a bit map in memory. */
  1070. + /* by Russell Lang, rjl@monu1.cc.monash.edu.au */
  1071. + /* On PC, print using 'copy file /b lpt1:', do NOT use 'print' */
  1072. + /* EPSON_init changes outfile to binary mode on PC's */
  1073. + #ifdef EPSON
  1074. + #define EPSONXMAX    512 
  1075. + #define EPSONYMAX    384
  1076. + #define EPSONXLAST (EPSONXMAX - 1)
  1077. + #define EPSONYLAST (EPSONYMAX - 1)
  1078. + #define EPSONVCHAR        FNT5X9_VCHAR      
  1079. + #define EPSONHCHAR        FNT5X9_HCHAR        
  1080. + #define EPSONVTIC        6
  1081. + #define EPSONHTIC        6
  1082. + EPSONinit()
  1083. + {
  1084. + #ifdef PC
  1085. +     reopen_binary();
  1086. + #endif
  1087. + #ifdef vms
  1088. +     reopen_binary();
  1089. + #endif
  1090. + }
  1091. + EPSONgraphics()
  1092. + {
  1093. +     b_charsize(FNT5X9);
  1094. +     b_makebitmap((unsigned int)(EPSONXMAX*xsize),
  1095. +                  (unsigned int)(EPSONYMAX*ysize),1);
  1096. + }
  1097. + EPSONtext()
  1098. + {
  1099. +     epson_dump();
  1100. +     b_freebitmap();
  1101. + }
  1102. + #define EPSONlinetype b_setlinetype
  1103. + #define EPSONmove b_move
  1104. + #define EPSONvector b_vector
  1105. + #define EPSONput_text b_put_text
  1106. + #define EPSON_text_angle b_text_angle
  1107. + EPSONreset()
  1108. + {
  1109. + #ifdef vms
  1110. +     fflush_binary();
  1111. + #endif
  1112. + }
  1113. + /* output file must be binary mode for epson_dump */
  1114. + epson_dump()
  1115. + {
  1116. +   register unsigned int x;
  1117. +   int j;
  1118. +     for (j=(b_ysize/8)-1; j>=0; j--) {
  1119. +         /* select plotter graphics mode (square pixels) */
  1120. +         fprintf(outfile,"\033J\030");    /* line feed 8/72" = 8 dots */
  1121. +         fprintf(outfile,"\r\033*\005");
  1122. +         (void) fputc((char)(b_xsize%256),outfile);
  1123. +         (void) fputc((char)(b_xsize/256),outfile);
  1124. +         for (x=0; x<b_xsize; x++) {
  1125. +             (void) fputc( (char)(*((*b_p)[j]+x)), outfile );
  1126. +         }
  1127. +     }
  1128. + #ifdef PC
  1129. +     fprintf(stderr,"Print using: COPY /B\n");
  1130. + #endif
  1131. + }
  1132. + #endif /* EPSON */
  1133. + /* The following NEC CP6 Pinwriter driver uses generic bit mapped graphics
  1134. +    routines to build up a bit map in memory. */
  1135. + /* by Russell Lang, rjl@monu1.cc.monash.edu.au */
  1136. + /* On PC, print using 'copy file /b lpt1:', do NOT use 'print' */
  1137. + /* NECinit changes outfile to binary mode for PC's */
  1138. + /* Add a Monochrome NEC printer (for faster speed and line types) jdc */
  1139. + #ifdef NEC
  1140. + #define NECXMAX    400 
  1141. + #define NECYMAX    320
  1142. + #define NECXLAST (NECXMAX - 1)
  1143. + #define NECYLAST (NECYMAX - 1)
  1144. + #define NECVCHAR        FNT5X9_VCHAR      
  1145. + #define NECHCHAR        FNT5X9_HCHAR        
  1146. + #define NECVTIC        6
  1147. + #define NECHTIC        6
  1148. + /* plane 0=black, 1=cyan(blue), 2=magenta(red), 3=yellow */
  1149. + static unsigned int neccolor[] = {1,8,4,2,10,12,6,14};
  1150. + static unsigned int necpcolor[]= {0,2,1,4};
  1151. + NECinit()
  1152. + {
  1153. + #ifdef PC
  1154. +     reopen_binary();
  1155. + #endif
  1156. + #ifdef vms
  1157. +     reopen_binary();
  1158. + #endif
  1159. + }
  1160. + /* Monochrome only NEC CP6 printer (set term nec_cp6m or nec_cp6d). */
  1161. + /* will probably work with NEC P6 printer */
  1162. + NECMgraphics()
  1163. + {
  1164. +     b_charsize(FNT5X9);
  1165. +     b_makebitmap((unsigned int)(NECXMAX*xsize),
  1166. +                  (unsigned int)(NECYMAX*ysize),1);
  1167. + }
  1168. + /* Color ribbon in NEC CP6 printer (set term nec_cp6c) */
  1169. + NECCgraphics()
  1170. + {
  1171. +     b_charsize(FNT5X9);
  1172. +     b_makebitmap((unsigned int)(NECXMAX*xsize),
  1173. +                  (unsigned int)(NECYMAX*ysize),4);
  1174. + }
  1175. + NECdraft_text()
  1176. + {
  1177. +     nec_draft_dump();
  1178. +     b_freebitmap();
  1179. + }
  1180. + NECtext()
  1181. + {
  1182. +     nec_dump();
  1183. +     b_freebitmap();
  1184. + }
  1185. + NECClinetype(linetype)
  1186. + int linetype;
  1187. + {
  1188. +     if (linetype>=6)
  1189. +         linetype %= 6;
  1190. +     b_setvalue(neccolor[linetype+2]);
  1191. + }
  1192. + #define NECMlinetype b_setlinetype
  1193. + #define NECmove b_move
  1194. + #define NECvector b_vector
  1195. + #define NECput_text b_put_text
  1196. + #define NEC_text_angle b_text_angle
  1197. +     
  1198. + NECreset()
  1199. + {
  1200. + #ifdef vms
  1201. +     fflush_binary();
  1202. + #endif
  1203. + }
  1204. + /* output file must be binary mode for nec_dump */
  1205. + nec_dump()
  1206. + {
  1207. + unsigned int x;
  1208. + unsigned int plane,offset;
  1209. + int j;
  1210. + unsigned int column8;
  1211. + unsigned long column24;
  1212. + char column3, column2, column1;
  1213. +     fprintf(outfile,"\033P\033l\005");  /* 10cpi, left margin 5 char */
  1214. +     for (j=(b_ysize/8)-1;j>=0;j--) {
  1215. +             fprintf(outfile,"\033J\030");  /* 24/180" line feed */
  1216. +             for (plane=0; plane<b_planes; plane++) {
  1217. +                 offset=plane*b_psize;
  1218. +                 if (b_planes>1) {
  1219. +                     /* select colour for plane */
  1220. +                     fprintf(outfile,"\033r");
  1221. +                     (void) fputc((char)necpcolor[plane],outfile);
  1222. +                 }
  1223. +                 /* select plotter graphics mode (square pixels) */
  1224. +                 fprintf(outfile,"\r\033*\047");
  1225. +                 (void) fputc((char)((b_xsize*3)%256),outfile);
  1226. +                 (void) fputc((char)((b_xsize*3)/256),outfile);
  1227. +                 for (x=0; x<b_xsize; x++) {
  1228. +                     column8= (unsigned int)(*((*b_p)[j+offset]+x));
  1229. +                     column24=0;
  1230. +                     if (column8&0x01) column24|=(long)0x000007;
  1231. +                     if (column8&0x02) column24|=(long)0x000038;
  1232. +                     if (column8&0x04) column24|=(long)0x0001c0;
  1233. +                     if (column8&0x08) column24|=(long)0x000e00;
  1234. +                     if (column8&0x10) column24|=(long)0x007000;
  1235. +                     if (column8&0x20) column24|=(long)0x038000;
  1236. +                     if (column8&0x40) column24|=(long)0x1c0000;
  1237. +                     if (column8&0x80) column24|=(long)0xe00000;
  1238. +                     column1 = (char) ( column24      & (long)0xff);
  1239. +                     column2 = (char) ((column24>>8)  & (long)0xff);
  1240. +                     column3 = (char) ((column24>>16) & (long)0xff);
  1241. +                     (void) fputc(column3,outfile);
  1242. +                     (void) fputc(column2,outfile);
  1243. +                     (void) fputc(column1,outfile);
  1244. +                     (void) fputc(column3,outfile);
  1245. +                     (void) fputc(column2,outfile);
  1246. +                     (void) fputc(column1,outfile);
  1247. +                     (void) fputc(column3,outfile);
  1248. +                     (void) fputc(column2,outfile);
  1249. +                     (void) fputc(column1,outfile);
  1250. +                 }
  1251. +             }
  1252. +     }
  1253. +     fprintf(outfile,"\r\033l");
  1254. +     (void) fputc('\0',outfile);                /* set left margin to 0 */
  1255. +     if (b_planes > 1) {
  1256. +         fprintf(outfile,"\033r");
  1257. +         (void) fputc('\0',outfile);                /* set color to black */
  1258. +     }
  1259. + #ifdef PC
  1260. +     fprintf(stderr,"Print using: COPY /B\n");
  1261. + #endif
  1262. + #ifdef vms
  1263. +     fflush_binary();
  1264. + #endif
  1265. + }
  1266. + /* output file must be binary mode for nec_dump */
  1267. + nec_draft_dump()
  1268. + {
  1269. + unsigned int x;
  1270. + unsigned int plane,offset;
  1271. + int j;
  1272. +     fprintf(outfile,"\033P\033l\005\r");  /* 10cpi, left margin 5 char */
  1273. +     for (j=(b_ysize/8)-1;j>=0;j--) {
  1274. +             fprintf(outfile,"\033J\030");  /* 24/180" line feed */
  1275. +             for (plane=0; plane<b_planes; plane++) {
  1276. +                 offset=plane*b_psize;
  1277. +                 if (b_planes>1) {
  1278. +                     /* select colour for plane */
  1279. +                     fprintf(outfile,"\033r");
  1280. +                     (void) fputc((char)necpcolor[plane],outfile);
  1281. +                 }
  1282. +                 /* select plotter graphics mode (square pixels) */
  1283. +                 fprintf(outfile,"\r\033*");
  1284. +                 (void) fputc('\0',outfile);
  1285. +                 (void) fputc((char)(b_xsize%256),outfile);
  1286. +                 (void) fputc((char)(b_xsize/256),outfile);
  1287. +                 for (x=0; x<b_xsize; x++) {
  1288. +                     (void) fputc( (char)(*((*b_p)[j+offset]+x)), outfile );
  1289. +                 }
  1290. +             }
  1291. +     }
  1292. +     fprintf(outfile,"\r\033l");
  1293. +     (void) fputc('\0',outfile);                /* set left margin to 0 */
  1294. +     if (b_planes > 1) {
  1295. +         fprintf(outfile,"\033r");
  1296. +         (void) fputc('\0',outfile);                /* set color to black */
  1297. +     }
  1298. + #ifdef PC
  1299. +     fprintf(stderr,"Print using: COPY /B\n");
  1300. + #endif
  1301. + }
  1302. + #endif /* NEC */
  1303. + #ifdef STARC
  1304. + /* The following Star color driver uses generic bit mapped graphics
  1305. +    routines to build up a bit map in memory. */
  1306. + /* Star Color changes made by William Wilson, wew@naucse.cse.nau.edu */
  1307. + /* On PC, print using 'copy file /b lpt1:', do NOT use 'print' */
  1308. + /* STARC_init changes outfile to binary mode on PC's */
  1309. + #define STARCXMAX    512 
  1310. + #define STARCYMAX    384
  1311. + #define STARCXLAST (STARCXMAX - 1)
  1312. + #define STARCYLAST (STARCYMAX - 1)
  1313. + #define STARCVCHAR        FNT5X9_VCHAR      
  1314. + #define STARCHCHAR        FNT5X9_HCHAR        
  1315. + #define STARCVTIC        6
  1316. + #define STARCHTIC        6
  1317. + /* plane 0=black, 1=cyan(blue), 2=magenta(red), 3=yellow */
  1318. + static unsigned int STARCcolor[] = {1,8,4,2,10,12,6,14};
  1319. + static unsigned int STARCpcolor[]= {0,2,1,4};
  1320. + STARCinit()
  1321. + {
  1322. + #ifdef PC
  1323. +     reopen_binary();
  1324. + #endif
  1325. + #ifdef vms
  1326. +     reopen_binary();
  1327. + #endif
  1328. + }
  1329. + STARCgraphics()
  1330. + {
  1331. +     b_charsize(FNT5X9);
  1332. +     b_makebitmap((unsigned int)(STARCXMAX*xsize),
  1333. +                  (unsigned int)(STARCYMAX*ysize),4);
  1334. + }
  1335. + STARCtext()
  1336. + {
  1337. +     STARC_dump();
  1338. +     b_freebitmap();
  1339. + }
  1340. + STARClinetype(linetype)
  1341. + int linetype;
  1342. + {
  1343. +     if (linetype>=6)
  1344. +         linetype %= 6;
  1345. +     b_setvalue(STARCcolor[linetype+2]);
  1346. + }
  1347. + #define STARCmove b_move
  1348. + #define STARCvector b_vector
  1349. + #define STARCput_text b_put_text
  1350. + #define STARC_text_angle b_text_angle
  1351. + STARCreset()
  1352. + {
  1353. + #ifdef vms
  1354. +     fflush_binary();
  1355. + #endif
  1356. + }
  1357. + /* output file must be binary mode for STARC_dump */
  1358. + STARC_dump()
  1359. + {
  1360. + unsigned int x;
  1361. + unsigned int plane,offset;
  1362. + int j;
  1363. +     for (j=(b_ysize/8)-1;j>=0;j--) {
  1364. +         fprintf(outfile,"\033J\030");    /* line feed 8/72" = 8 dots */
  1365. +         for (plane=0; plane<b_planes; plane++) {
  1366. +             offset=plane*b_psize;
  1367. +             if (b_planes>1) {
  1368. +                 /* select colour for plane */
  1369. +                 fprintf(outfile,"\033r");
  1370. +                 (void) fputc((char)STARCpcolor[plane],outfile);
  1371. +             }
  1372. +             /* select plotter graphics mode (square pixels) */
  1373. +             fprintf(outfile,"\r\033*\005");
  1374. +             (void) fputc((char)(b_xsize%256),outfile);
  1375. +             (void) fputc((char)(b_xsize/256),outfile);
  1376. +             for (x=0; x<b_xsize; x++) {
  1377. +                 (void) fputc( (char)(*((*b_p)[j+offset]+x)), outfile );
  1378. +             }
  1379. +         }
  1380. +     }
  1381. +     if (b_planes > 1) {
  1382. +         fprintf(outfile,"\033r");
  1383. +         (void) fputc('\0',outfile);                /* set color to black */
  1384. +     }
  1385. + #ifdef PC
  1386. +     fprintf(stderr,"Print using: COPY /B\n");
  1387. + #endif
  1388. + }
  1389. + #endif /* STARC */
  1390. + #ifdef EPS60
  1391. + /* make the total dimensions 8 inches by 5 inches */
  1392. + #define EPS60XMAX    480
  1393. + #define EPS60YMAX    360
  1394. + #define EPS60XLAST (EPS60XMAX - 1)
  1395. + #define EPS60YLAST (EPS60YMAX - 1)
  1396. + EPS60graphics()
  1397. + {
  1398. +     b_charsize(FNT5X9);
  1399. +     b_makebitmap((unsigned int)(EPS60XMAX*xsize),
  1400. +                  (unsigned int)(EPS60YMAX*ysize),1);
  1401. + }
  1402. + EPS60text()
  1403. + {
  1404. +     eps60_dump();
  1405. +     b_freebitmap();
  1406. + }
  1407. + /* output file must be binary mode for eps60_dump */
  1408. + eps60_dump()
  1409. + {
  1410. +   register unsigned int x;
  1411. +   int j;
  1412. +     fprintf(outfile,"\033%c\030",'3'); /* set line spacing 24/216" = 8 dots */
  1413. +     for (j=(b_ysize/8)-1; j>=0; j--) {
  1414. +         /* select printer graphics mode 'K' */
  1415. +         fprintf(outfile,"\r\n\033K");
  1416. +         (void) fputc((char)(b_xsize%256),outfile);
  1417. +         (void) fputc((char)(b_xsize/256),outfile);
  1418. +         for (x=0; x<b_xsize; x++) {
  1419. +             (void) fputc( (char)(*((*b_p)[j]+x)), outfile );
  1420. +         }
  1421. +     }
  1422. +     fprintf(outfile,"\033%c\044\r\n",'3'); /* set line spacing 36/216" = 1/6" */
  1423. + #ifdef PC
  1424. +     fprintf(stderr,"Print using: COPY /B\n");
  1425. + #endif
  1426. + }
  1427. + #endif /* EPS60 */
  1428. + #ifdef TANDY60
  1429. + /* The only difference between TANDY60 and EPS60 is the inclusion
  1430. +    of codes to swap the Tandy printer into IBM mode and back
  1431. +    into Tandy mode.  For a Tandy already in IBM mode, use EPS60. */
  1432. + TANDY60text()
  1433. + {
  1434. + #ifdef PC
  1435. +     fprintf(stderr, "Inserting Tandy/IBM mode conversion codes\n");
  1436. + #endif
  1437. +     /* Switch to IBM mode, and leave 3 inches above the plot so as
  1438. +        to get rough vertical centring on the page.  Perform the
  1439. +        centring by setting 1" line feeds and issuing 3 of them. */
  1440. +     fprintf(outfile, "\033!\033%c%c\n\n\n", '3',216);
  1441. +     eps60_dump();
  1442. +     b_freebitmap();
  1443. +     /* A form feed must be sent before switching back to Tandy mode,
  1444. +        or else the form setting will be messed up. */
  1445. +     fprintf(outfile, "\f\033!");
  1446. + }
  1447. + #endif  /* TANDY60 */
  1448. Only in ./term: hpljet.trm
  1449. diff -cr ./term/hpljii.trm ../gnuplot2.02/term/hpljii.trm
  1450. *** ./term/hpljii.trm    Fri Nov 23 17:50:38 1990
  1451. --- ../gnuplot2.02/term/hpljii.trm    Thu Dec  6 13:10:09 1990
  1452. ***************
  1453. *** 0
  1454.  
  1455. --- 1,235 -----
  1456. + /* GNUPLOT - hpljii.trm */
  1457. + /*
  1458. +  * Copyright (C) 1990   
  1459. +  *
  1460. +  * Permission to use, copy, and distribute this software and its
  1461. +  * documentation for any purpose with or without fee is hereby granted, 
  1462. +  * provided that the above copyright notice appear in all copies and 
  1463. +  * that both that copyright notice and this permission notice appear 
  1464. +  * in supporting documentation.
  1465. +  *
  1466. +  * Permission to modify the software is granted, but not the right to
  1467. +  * distribute the modified code.  Modifications are to be distributed 
  1468. +  * as patches to released version.
  1469. +  *  
  1470. +  * This software  is provided "as is" without express or implied warranty.
  1471. +  * 
  1472. +  * This file is included by ../term.c.
  1473. +  *
  1474. +  * This terminal driver supports:
  1475. +  *  hpljii_75dpi, hpljii_100dpi, hpljii_150dpi, hpljii_300dpi
  1476. +  *
  1477. +  * AUTHORS
  1478. +  *  John Engels
  1479. +  *  Russell Lang
  1480. +  *
  1481. +  * send your comments or suggestions to (pixar!info-gnuplot@sun.com).
  1482. +  * 
  1483. +  */
  1484. + /* The following HP laserjet series II driver uses generic bit mapped graphics
  1485. +    routines from bitmap.c to build up a bit map in memory.  The driver
  1486. +    interchanges colomns and lines in order to access entire lines
  1487. +    easily and returns the lines to get bits in the right order :
  1488. +    (x,y) -> (y,XMAX-1-x). */
  1489. + /* This interchange is done by calling b_makebitmap() with reversed 
  1490. +    xmax and ymax, and then setting b_rastermode to TRUE.  b_setpixel()
  1491. +    will then perform the interchange before each pixel is plotted */
  1492. + /* by John Engels JENGELS@BNANDP51.BITNET, inspired by the hpljet driver
  1493. +    of Jyrki Yli-Nokari */
  1494. + #ifdef HPLJII
  1495. + /* We define 4 different print qualities : 300ppi, 150ppi, 100ppi and
  1496. +    75ppi.  (Pixel size = 1, 2, 3, 4 dots) */
  1497. + #define HPLJII_DPP (hplj_dpp)   /* dots per pixel */
  1498. + #define HPLJII_PPI (300/HPLJII_DPP) /* pixel per inch */
  1499. + #define HPLJII_XMAX (8*(unsigned int)(xsize*1920/HPLJII_DPP/8.0+0.9))
  1500. + #define HPLJII_YMAX (8*(unsigned int)(ysize*1920/HPLJII_DPP/8.0+0.9))
  1501. + #define HPLJII_300PPI_XMAX (1920/1)
  1502. + #define HPLJII_300PPI_YMAX (1920/1)
  1503. + #define HPLJII_150PPI_XMAX (1920/2)
  1504. + #define HPLJII_150PPI_YMAX (1920/2)
  1505. + #define HPLJII_100PPI_XMAX (1920/3)
  1506. + #define HPLJII_100PPI_YMAX (1920/3)
  1507. + #define HPLJII_75PPI_XMAX (1920/4)
  1508. + #define HPLJII_75PPI_YMAX (1920/4)
  1509. + #define HPLJII_XLAST (HPLJII_XMAX-1)
  1510. + #define HPLJII_YLAST (HPLJII_YMAX-1)
  1511. + #define HPLJII_VCHAR (HPLJII_PPI/6) /* Courier font with 6 lines per inch */
  1512. + #define HPLJII_HCHAR (HPLJII_PPI/10) /* Courier font with 10 caracters
  1513. +                                         per inch */
  1514. + #define HPLJII_300PPI_VCHAR (300/6)
  1515. + #define HPLJII_300PPI_HCHAR (300/10)
  1516. + #define HPLJII_150PPI_VCHAR (150/6)
  1517. + #define HPLJII_150PPI_HCHAR (150/10)
  1518. + #define HPLJII_100PPI_VCHAR (100/6)
  1519. + #define HPLJII_100PPI_HCHAR (100/10)
  1520. + #define HPLJII_75PPI_VCHAR (75/6)
  1521. + #define HPLJII_75PPI_HCHAR (75/10)
  1522. + #define HPLJII_300PPI_VTIC 8 /* Use smaller tics with greater resolution */
  1523. + #define HPLJII_300PPI_HTIC 8
  1524. + #define HPLJII_150PPI_VTIC 6
  1525. + #define HPLJII_150PPI_HTIC 6
  1526. + #define HPLJII_100PPI_VTIC 6
  1527. + #define HPLJII_100PPI_HTIC 6
  1528. + #define HPLJII_75PPI_VTIC 5
  1529. + #define HPLJII_75PPI_HTIC 5
  1530. + #define HPLJII_PUSH_CURSOR fprintf(outfile,"\033&f0S") /* Save current
  1531. +                   cursor position */
  1532. + #define HPLJII_POP_CURSOR fprintf(outfile,"\033&f1S") /* Restore
  1533. +                   cursor position */
  1534. + #define HPLJII_COURIER fprintf(outfile,"\033(0N\033(s0p10.0h12.0v0s0b3T\033&l6D")
  1535. +          /* be sure to use courier font with 6lpi and 10cpi */
  1536. + static int hplj_dpp;
  1537. + /* bm_pattern not appropriate for 300ppi graphics */
  1538. + static unsigned int b_300ppi_pattern[] = {0xffff, 0x1111,
  1539. +         0xffff, 0x3333, 0x0f0f, 0x3f3f, 0x0fff, 0x00ff, 0x33ff};
  1540. + HPLJIIinit()
  1541. + {
  1542. + #ifdef vms
  1543. +    reopen_binary();
  1544. + #endif /* vms */
  1545. + #ifdef PC
  1546. +    reopen_binary();
  1547. + #endif /* PC */
  1548. + }
  1549. + HPLJII_300PPIgraphics()
  1550. + {
  1551. +    hplj_dpp = 1;
  1552. +    HPLJIIgraphics();
  1553. + }
  1554. + HPLJII_150PPIgraphics()
  1555. + {
  1556. +    hplj_dpp = 2;
  1557. +    HPLJIIgraphics();
  1558. + }
  1559. + HPLJII_100PPIgraphics()
  1560. + {
  1561. +    hplj_dpp = 3;
  1562. +    HPLJIIgraphics();
  1563. + }
  1564. + HPLJII_75PPIgraphics()
  1565. + {
  1566. +    hplj_dpp = 4;
  1567. +    HPLJIIgraphics();
  1568. + }
  1569. + HPLJIIgraphics()
  1570. + {
  1571. +    HPLJII_COURIER;
  1572. +    HPLJII_PUSH_CURSOR;
  1573. +    /* rotate plot -90 degrees by reversing XMAX and YMAX and by 
  1574. +       setting b_rastermode to TRUE */
  1575. +    b_makebitmap(HPLJII_YMAX,HPLJII_XMAX,1);
  1576. +    b_rastermode = TRUE;
  1577. + }
  1578. + /* HPLJIItext by rjl - no compression */
  1579. + HPLJIItext()
  1580. + {
  1581. +   register int x,j,row;
  1582. +    fprintf(outfile,"\033*t%dR", HPLJII_PPI);
  1583. +    HPLJII_POP_CURSOR;
  1584. +    fprintf(outfile, "\033*r1A");
  1585. +    /* dump bitmap in raster mode */
  1586. +    for (x = b_xsize-1; x >= 0; x--) {
  1587. +       row = (b_ysize/8)-1;
  1588. +       fprintf(outfile, "\033*b2m%dW", b_ysize/8);
  1589. +       for (j = row; j >= 0; j--) {
  1590. +          (void) fputc( (char)(*((*b_p)[j]+x)), outfile );
  1591. +       }
  1592. +    }
  1593. +    fprintf(outfile, "\033*rB");
  1594. +    b_freebitmap();
  1595. + #ifndef vms  /* most vms spoolers add a formfeed character */
  1596. +    fprintf(outfile,"\f");
  1597. + #endif /* not vms */
  1598. + }
  1599. + HPLJIIlinetype(linetype)
  1600. + int linetype;
  1601. + {
  1602. +    if (hplj_dpp == 1) {
  1603. +       if (linetype>=7)
  1604. +           linetype %= 7;
  1605. +       /* b_pattern not appropriate for 300ppi graphics */
  1606. +       b_linemask = b_300ppi_pattern[linetype+2];
  1607. +       b_maskcount=0;
  1608. +    }
  1609. +    else {
  1610. +       b_setlinetype(linetype);
  1611. +    }
  1612. + }
  1613. + #define HPLJIImove b_move
  1614. + #define HPLJIIvector b_vector
  1615. + #define HPLJIItext_angle b_text_angle
  1616. + HPLJIIput_text(x,y,str)
  1617. + unsigned int x, y;
  1618. + char *str;
  1619. + {
  1620. +    switch (b_angle) {
  1621. +       case 0:
  1622. +          y -= HPLJII_VCHAR/5;
  1623. +          HPLJII_POP_CURSOR;
  1624. +          HPLJII_PUSH_CURSOR;
  1625. +          /* (0,0) is the upper left point of the paper */
  1626. +          fprintf(outfile, "\033*p%+dx%+dY", x*HPLJII_DPP
  1627. +                                          ,  (HPLJII_YMAX-y-1)*HPLJII_DPP );
  1628. +          fputs(str, outfile);
  1629. + /*       for (; *str; ++str, x += HPLJII_HCHAR)
  1630. +             HPLJIIputc (x, y, *str, b_angle);*/
  1631. +          break;
  1632. +       case 1:
  1633. +          y += (HPLJII_HCHAR-2*HPLJII_VCHAR)/2;
  1634. +          y += (HPLJII_VCHAR+HPLJII_HCHAR)*strlen(str)/2;
  1635. +          for (; *str; ++str, y -= HPLJII_VCHAR)
  1636. +             HPLJIIputc (x, y, *str, b_angle);
  1637. +          break;
  1638. +    }
  1639. + }
  1640. + HPLJIIputc(x,y,c,angle)
  1641. + unsigned int x,y;
  1642. + int angle;
  1643. + char c;
  1644. + {
  1645. +    HPLJII_POP_CURSOR;
  1646. +    HPLJII_PUSH_CURSOR;
  1647. +    /* (0,0) is the upper left point of the paper */
  1648. +    fprintf(outfile, "\033*p%+dx%+dY", x*HPLJII_DPP
  1649. +                                    ,  (HPLJII_YMAX-y-1)*HPLJII_DPP );
  1650. +    fputc(c, outfile);
  1651. + }
  1652. + HPLJIIreset()
  1653. + {
  1654. + #ifdef vms
  1655. +    fflush_binary();
  1656. + #endif /* vms */
  1657. + }
  1658. + #endif /* HPLJII */
  1659. diff -cr ./term/kyo.trm ../gnuplot2.02/term/kyo.trm
  1660. *** ./term/kyo.trm    Fri Nov 23 17:50:44 1990
  1661. --- ../gnuplot2.02/term/kyo.trm    Mon Dec  3 17:17:07 1990
  1662. ***************
  1663. *** 0
  1664.  
  1665. --- 1,107 -----
  1666. + /* Prescribe (KYOCERA) driver - Michael Waldor */
  1667. + /* Modified for gnuplot 2.0 sk@sun4 24-Apr-1990 13:23 */
  1668. + #ifdef PRESCRIBE
  1669. + #define PRE_XMAX 2567
  1670. + #define PRE_YMAX 1815    /* X:Y = sqrt(2) */
  1671. + #define PRE_XLAST (PRE_XMAX - 1)
  1672. + #define PRE_YLAST (PRE_YMAX - 1)
  1673. + #define PRE_VCHAR (PRE_YMAX/30)
  1674. + #define PRE_HCHAR 33    /* about 9 chars per inch */
  1675. + #define PRE_HTIC (PRE_XMAX/80)
  1676. + #define PRE_VTIC PRE_HTIC
  1677. + /* for Courier font: */
  1678. + #define KYO_VCHAR (14*(300/72))    /* 12 pt + 2 pt baselineskip */
  1679. + #define KYO_HCHAR (300/10)    /*  10 chars per inch */
  1680. + enum JUSTIFY pre_justify=LEFT;    /* text is flush left */
  1681. + PRE_init()
  1682. + {
  1683. +   (void) fprintf(outfile,"!R! RES;\n") ;
  1684. +   /* UNIT: units are dots, 300 dots = 1 in = 72 pt */
  1685. +   /* SPO: landscape format */
  1686. +   /* STM, SLM set top, left margin*/
  1687. +   /* Font: bold Helvetica (proportional font) */
  1688. +   (void) fprintf(outfile,"PAGE; UNIT D; SPO L; STM 280; SLM 440;\n") ;
  1689. +   (void) fprintf(outfile,"FTMD 15; FONT 29; SCPI 9;\n") ;
  1690. + }
  1691. + KYO_init()
  1692. + {
  1693. +   (void) fprintf(outfile,"!R! RES;\n") ;
  1694. +   /* UNIT: units are dots, 300 dots = 1 in = 72 pt */
  1695. +   /* SPO: landscape format */
  1696. +   /* STM, SLM set top, left margin */
  1697. +   /* Font: Courier (fixed width font) */
  1698. +   (void) fprintf(outfile,"PAGE; UNIT D; SPO L; STM 280; SLM 440;\n") ;
  1699. +   (void) fprintf(outfile,"FTMD 15; FONT 17; SCPI 10;\n") ;
  1700. + }
  1701. + PRE_graphics()
  1702. + {
  1703. + }
  1704. + PRE_text()            /* eject page after each plot */
  1705. + {
  1706. +   (void) fprintf(outfile,"PAGE;\n") ; 
  1707. + }
  1708. + PRE_linetype(linetype)
  1709. + int linetype ;
  1710. + {
  1711. +   /* actually choose pendiameter */
  1712. +   if (linetype < 0) linetype = -linetype;
  1713. +   else linetype = 3;
  1714. +   (void) fprintf(outfile,"SPD %d;\n", linetype) ;
  1715. + }
  1716. +  
  1717. + PRE_move(x,y)
  1718. + unsigned int x,y ;
  1719. + {
  1720. +   (void) fprintf(outfile,"MAP %1d,%1d;\n",x,PRE_YMAX-y) ;
  1721. + }
  1722. +  
  1723. + PRE_vector(x,y)
  1724. + unsigned int x,y ;
  1725. + {
  1726. +   (void) fprintf(outfile,"DAP %1d, %1d;\n",x,PRE_YMAX-y) ;
  1727. + }
  1728. +  
  1729. + PRE_put_text(x, y, str)
  1730. + unsigned int x,y ;
  1731. + char *str;
  1732. + {
  1733. +   PRE_move(x,y);
  1734. +   switch(pre_justify){
  1735. +   case RIGHT:
  1736. +     (void) fprintf(outfile,"RTXT \"%s\", B;\n",str) ;
  1737. +     break;
  1738. +   default:
  1739. +     (void) fprintf(outfile,"TEXT \"%s\", B;\n",str) ;
  1740. +   }
  1741. + }
  1742. +  
  1743. + int PRE_justify_text(mode)
  1744. + enum JUSTIFY mode;
  1745. + {
  1746. +   pre_justify=mode;
  1747. +   switch(pre_justify){
  1748. +   case LEFT:
  1749. +   case RIGHT:
  1750. +     return(TRUE);
  1751. +   default:
  1752. +     return(FALSE);
  1753. +   }
  1754. +   
  1755. + }
  1756. + PRE_reset()
  1757. + {
  1758. +   (void) fprintf(outfile,"PAGE; RES; EXIT;\n");
  1759. + }
  1760. + #endif /* PRESCRIBE */
  1761. diff -cr ./term/pc.trm ../gnuplot2.02/term/pc.trm
  1762. *** ./term/pc.trm    Tue Sep 18 14:59:12 1990
  1763. --- ../gnuplot2.02/term/pc.trm    Thu Dec  6 16:08:17 1990
  1764. ***************
  1765. *** 61,68
  1766.   int startx, starty;
  1767.   
  1768.   int pc_angle;
  1769. ! #define PC_VCHAR 11
  1770. ! #define PC_HCHAR 7
  1771.   
  1772.   pause()                                /* press any key to continue... */
  1773.   {
  1774.  
  1775. --- 61,68 -----
  1776.   int startx, starty;
  1777.   
  1778.   int pc_angle;
  1779. ! #define PC_VCHAR FNT5X9_VCHAR
  1780. ! #define PC_HCHAR FNT5X9_HCHAR
  1781.   
  1782.   pause()                                /* press any key to continue... */
  1783.   {
  1784. ***************
  1785. *** 105,113
  1786.   int i,j,k;
  1787.   unsigned int pixelon;
  1788.       i = (int)(c) - 32;
  1789. !     for (j=0; j<9; j++) {
  1790. !         for (k=0; k<5; k++) {
  1791. !             pixelon = (((unsigned int)(font5x7[i][j])) >> k & 1);
  1792.               if (pixelon) {
  1793.                   switch(angle) {
  1794.                       case 0 : (*line_func)(x+k+1,y-j,x+k+1,y-j);
  1795.  
  1796. --- 105,113 -----
  1797.   int i,j,k;
  1798.   unsigned int pixelon;
  1799.       i = (int)(c) - 32;
  1800. !     for (j=0; j<FNT5X9_VBITS; j++) {
  1801. !         for (k=0; k<FNT5X9_HBITS; k++) {
  1802. !             pixelon = (((unsigned int)(fnt5x9[i][j])) >> k & 1);
  1803.               if (pixelon) {
  1804.                   switch(angle) {
  1805.                       case 0 : (*line_func)(x+k+1,y-j,x+k+1,y-j);
  1806. diff -cr ./term/tek.trm ../gnuplot2.02/term/tek.trm
  1807. *** ./term/tek.trm    Tue Mar 27 09:03:10 1990
  1808. --- ../gnuplot2.02/term/tek.trm    Mon Nov 12 12:23:24 1990
  1809. ***************
  1810. *** 55,60
  1811.   
  1812.   TEK40graphics()
  1813.   {
  1814.       fprintf(outfile,"\033\014");
  1815.   /*                   1
  1816.       1. clear screen
  1817.  
  1818. --- 55,63 -----
  1819.   
  1820.   TEK40graphics()
  1821.   {
  1822. + #ifdef vms
  1823. +     term_pasthru();
  1824. + #endif /* vms */
  1825.       fprintf(outfile,"\033\014");
  1826.   /*                   1
  1827.       1. clear screen
  1828. ***************
  1829. *** 72,77
  1830.   /*                   1
  1831.       1. into alphanumerics
  1832.   */
  1833.   }
  1834.   
  1835.   
  1836.  
  1837. --- 75,83 -----
  1838.   /*                   1
  1839.       1. into alphanumerics
  1840.   */
  1841. + #ifdef vms
  1842. +     term_nopasthru();
  1843. + #endif /* vms */
  1844.   }
  1845.   
  1846.   
  1847. ***************
  1848. *** 177,182
  1849.   
  1850.   KTEK40graphics()
  1851.   {
  1852.       fprintf(outfile,"\033\014");
  1853.   /*                   1
  1854.       1. clear screen
  1855.  
  1856. --- 183,192 -----
  1857.   
  1858.   KTEK40graphics()
  1859.   {
  1860. + #ifdef vms
  1861. +         term_mode_tek();
  1862. +     term_pasthru();
  1863. + #endif /* vms */
  1864.       fprintf(outfile,"\033\014");
  1865.   /*                   1
  1866.       1. clear screen
  1867. ***************
  1868. *** 188,193
  1869.   {
  1870.       TEK40text();
  1871.       KTEK40Clinetype(0);  /* change to green */
  1872.   }
  1873.   
  1874.   /* special color linetypes for MS-DOS Kermit v2.31 tektronix emulator */
  1875.  
  1876. --- 198,206 -----
  1877.   {
  1878.       TEK40text();
  1879.       KTEK40Clinetype(0);  /* change to green */
  1880. + #ifdef vms
  1881. +     term_nopasthru();
  1882. + #endif /* vms */
  1883.   }
  1884.   
  1885.   /* special color linetypes for MS-DOS Kermit v2.31 tektronix emulator */
  1886. ***************
  1887. *** 225,230
  1888.   KTEK40reset()
  1889.   {
  1890.       fprintf(outfile,"\030\n");  /* turn off Tek emulation */
  1891.   }
  1892.   
  1893.   #endif /* KERMIT */
  1894.  
  1895. --- 238,246 -----
  1896.   KTEK40reset()
  1897.   {
  1898.       fprintf(outfile,"\030\n");  /* turn off Tek emulation */
  1899. + #ifdef vms
  1900. +     term_mode_native();
  1901. + #endif /* vms */
  1902.   }
  1903.   
  1904.   #endif /* KERMIT */
  1905. ***************
  1906. *** 276,278
  1907.   }
  1908.   #endif /* SELANAR */
  1909.   
  1910.  
  1911. --- 292,345 -----
  1912.   }
  1913.   #endif /* SELANAR */
  1914.   
  1915. + #ifdef VTTEK
  1916. + VTTEK40init()
  1917. + {
  1918. +         fprintf(outfile,"\033[?38h");
  1919. +         fflush(outfile);
  1920. +         sleep(1);
  1921. +         /* sleep 1 second to allow screen time to clear on some terminals */
  1922. + #ifdef vms
  1923. +         term_mode_tek();
  1924. + #endif /* vms */
  1925. + }
  1926. + VTTEK40reset()
  1927. + {
  1928. +         fprintf(outfile,"\033[?38l");
  1929. +         fflush(outfile);
  1930. +         sleep(1);
  1931. +         /* sleep 1 second to allow screen time to clear on some terminals */
  1932. + #ifdef vms
  1933. +         term_mode_native();
  1934. + #endif /* vms */
  1935. + }
  1936. + /* linetypes for VT-type terminals in tektronix emulator mode */
  1937. + /* `=solid, a=fine dots, b=short dashes, c=dash dot,
  1938. +    d=long dash dot, h=bold solid, i=bold fine dots, j=bold short dashes,
  1939. +    k=bold dash dot, l=bold long dash dot */
  1940. + static char *vt_linetype = "`a`abcdhijkl" ;
  1941. + static int last_vt_linetype = 0;
  1942. + VTTEK40linetype(linetype)
  1943. + int linetype;
  1944. + {
  1945. +         if (linetype >= 10)
  1946. +                 linetype %= 10;
  1947. +         fprintf(outfile,"\033%c",vt_linetype[linetype+2]);
  1948. +         last_vt_linetype = linetype;
  1949. + }
  1950. + VTTEK40put_text(x,y,str)
  1951. + unsigned int x,y;
  1952. + char str[];
  1953. + {
  1954. +         int linetype;
  1955. +         linetype = last_vt_linetype;
  1956. +         VTTEK40linetype(0);
  1957. +         TEK40put_text(x,y,str);
  1958. +         VTTEK40linetype(linetype);
  1959. + }
  1960. + #endif /* VTTEK */
  1961.