home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume16 / gnuplot2.02 / patch6 / patch2e
Encoding:
Text File  |  1991-01-05  |  49.5 KB  |  1,786 lines

  1. diff -cr ./term.c ../gnuplot2.02/term.c
  2. *** ./term.c    Tue Sep 18 14:59:25 1990
  3. --- ../gnuplot2.02/term.c    Mon Dec 10 10:08:24 1990
  4. ***************
  5. *** 29,34
  6.   
  7.   #include <stdio.h>
  8.   #include "plot.h"
  9.   #include "term.h"
  10.   
  11.   /* for use by all drivers */
  12.  
  13. --- 29,35 -----
  14.   
  15.   #include <stdio.h>
  16.   #include "plot.h"
  17. + #include "setshow.h"
  18.   #include "term.h"
  19.   #include "bitmap.h"
  20.   
  21. ***************
  22. *** 30,35
  23.   #include <stdio.h>
  24.   #include "plot.h"
  25.   #include "term.h"
  26.   
  27.   /* for use by all drivers */
  28.   #define sign(x) ((x) >= 0 ? 1 : -1)
  29.  
  30. --- 31,37 -----
  31.   #include "plot.h"
  32.   #include "setshow.h"
  33.   #include "term.h"
  34. + #include "bitmap.h"
  35.   
  36.   /* for use by all drivers */
  37.   #define sign(x) ((x) >= 0 ? 1 : -1)
  38. ***************
  39. *** 61,78
  40.   #ifdef __TURBOC__
  41.   char *turboc_init();
  42.   #endif
  43. ! #ifdef vms
  44. ! /* these are needed to sense a regis terminal and
  45. !  * to do a SET TERM/NOWRAP */
  46. ! #include <descrip.h>
  47. ! #include <dvidef.h>
  48. ! #include <iodef.h>
  49. ! #include <ttdef.h>
  50. ! #include <tt2def.h>
  51. ! static unsigned short   chan;
  52. ! static int  old_char_buf[3], new_char_buf[3];
  53. ! $DESCRIPTOR(sysoutput_desc,"SYS$OUTPUT");
  54.   char *vms_init();
  55.   #endif
  56.   
  57.  
  58. --- 63,72 -----
  59.   #ifdef __TURBOC__
  60.   char *turboc_init();
  61.   #endif
  62. ! #ifdef PC
  63. ! void reopen_binary();
  64. ! #endif
  65. ! #ifdef VMS
  66.   char *vms_init();
  67.   void vms_reset();
  68.   void term_mode_tek();
  69. ***************
  70. *** 74,79
  71.   static int  old_char_buf[3], new_char_buf[3];
  72.   $DESCRIPTOR(sysoutput_desc,"SYS$OUTPUT");
  73.   char *vms_init();
  74.   #endif
  75.   
  76.   
  77.  
  78. --- 68,80 -----
  79.   #endif
  80.   #ifdef VMS
  81.   char *vms_init();
  82. + void vms_reset();
  83. + void term_mode_tek();
  84. + void term_mode_native();
  85. + void term_pasthru();
  86. + void term_nopasthru();
  87. + void reopen_binary();
  88. + void fflush_binary();
  89.   #endif
  90.   
  91.   /* This is needed because the unixplot library only writes to stdout. */
  92. ***************
  93. *** 76,82
  94.   char *vms_init();
  95.   #endif
  96.   
  97.   /* This is needed because the unixplot library only writes to stdout. */
  98.   #ifdef UNIXPLOT
  99.   FILE save_stdout;
  100.  
  101. --- 77,82 -----
  102.   void fflush_binary();
  103.   #endif
  104.   
  105.   /* This is needed because the unixplot library only writes to stdout. */
  106.   #ifdef UNIXPLOT
  107.   FILE save_stdout;
  108. ***************
  109. *** 225,235
  110.   
  111.   }
  112.   
  113. - #ifdef PC
  114. - #ifndef __TURBOC__
  115. - #define FONT57
  116. - #endif
  117. - #endif
  118.   
  119.   #ifdef NEC
  120.   #ifndef EPSON
  121.  
  122. --- 225,230 -----
  123.   
  124.   }
  125.   
  126.   
  127.   #ifdef PC            /* all PC types */
  128.   #include "term/pc.trm"
  129. ***************
  130. *** 231,279
  131.   #endif
  132.   #endif
  133.   
  134. - #ifdef NEC
  135. - #ifndef EPSON
  136. - #define EPSON
  137. - #endif
  138. - #endif
  139. - #ifdef PROPRINTER 
  140. - #ifndef EPSON
  141. - #define EPSON 
  142. - #endif
  143. - #endif
  144. - #ifdef STARC 
  145. - #ifndef EPSON
  146. - #define EPSON 
  147. - #endif
  148. - #endif
  149. - #ifdef TANDY60
  150. - #ifndef EPS60
  151. - #define EPS60
  152. - #endif
  153. - #endif
  154. - #ifdef EPS60
  155. - #ifndef EPSON
  156. - #define EPSON
  157. - #endif
  158. - #endif
  159. - #ifdef EPSON
  160. - #define FONT57
  161. - #endif
  162. - #ifdef UNIXPC
  163. - #define FONT57
  164. - #endif
  165. - #ifdef FONT57
  166. - #include "term/font5x7.trm"
  167. - #endif  /* FONT57  */
  168.   #ifdef PC            /* all PC types */
  169.   #include "term/pc.trm"
  170.   #endif
  171.  
  172. --- 226,231 -----
  173.   }
  174.   
  175.   
  176.   #ifdef PC            /* all PC types */
  177.   #include "term/pc.trm"
  178.   #endif
  179. ***************
  180. *** 279,285
  181.   #endif
  182.   
  183.   /*
  184. !    all TEK types (TEK,BITGRAPH,KERMIT,SELANAR) are ifdef'd in tek.trm,
  185.      but most require various TEK routines.  Hence TEK must be defined for
  186.      the others to compile.
  187.   */
  188.  
  189. --- 231,237 -----
  190.   #endif
  191.   
  192.   /*
  193. !    all TEK types (TEK,BITGRAPH,KERMIT,VTTEK,SELANAR) are ifdef'd in tek.trm,
  194.      but most require various TEK routines.  Hence TEK must be defined for
  195.      the others to compile.
  196.   */
  197. ***************
  198. *** 301,306
  199.   # endif
  200.   #endif
  201.   
  202.   #ifdef T410X        /* Tektronix 4106, 4107, 4109 and 420x terminals */
  203.   #include "term/t410x.trm"
  204.   #endif
  205.  
  206. --- 253,264 -----
  207.   # endif
  208.   #endif
  209.   
  210. + #ifdef VTTEK
  211. + # ifndef TEK
  212. + #  define TEK
  213. + # endif
  214. + #endif
  215.   #ifdef T410X        /* Tektronix 4106, 4107, 4109 and 420x terminals */
  216.   #include "term/t410x.trm"
  217.   #endif
  218. ***************
  219. *** 305,311
  220.   #include "term/t410x.trm"
  221.   #endif
  222.   
  223. ! #ifdef TEK            /* all TEK types, TEK, BBN, SELANAR, KERMIT */
  224.   #include "term/tek.trm"
  225.   #endif
  226.   
  227.  
  228. --- 263,269 -----
  229.   #include "term/t410x.trm"
  230.   #endif
  231.   
  232. ! #ifdef TEK            /* all TEK types, TEK, BBN, SELANAR, KERMIT, VTTEK */
  233.   #include "term/tek.trm"
  234.   #endif
  235.   
  236. ***************
  237. *** 313,320
  238.   #include "term/epson.trm"
  239.   #endif
  240.   
  241. ! #ifdef EPS60        /* old-style EPSON 60-dpi */
  242. ! #include "term/eps60.trm"
  243.   #endif
  244.   
  245.   #ifdef FIG                /* Fig 1.4FS Interactive graphics program */
  246.  
  247. --- 271,278 -----
  248.   #include "term/epson.trm"
  249.   #endif
  250.   
  251. ! #ifdef HPLJII        /* HP LaserJet II */
  252. ! #include "term/hpljii.trm"
  253.   #endif
  254.   
  255.   #ifdef FIG                /* Fig 1.4FS Interactive graphics program */
  256. ***************
  257. *** 346,351
  258.   #include "term/post.trm"
  259.   #endif
  260.   
  261.   #ifdef HPLJET        /* hplaserjet */
  262.   #include "term/hpljet.trm"
  263.   #endif
  264.  
  265. --- 304,313 -----
  266.   #include "term/post.trm"
  267.   #endif
  268.   
  269. + #ifdef PRESCRIBE    /* PRESCRIBE type */
  270. + #include "term/kyo.trm"
  271. + #endif
  272.   #ifdef HPLJET        /* hplaserjet */
  273.   #include "term/hpljet.trm"
  274.   #endif
  275. ***************
  276. *** 358,363
  277.   #include "term/aed.trm"
  278.   #endif /* AED */
  279.   
  280.   #ifdef HP2648
  281.   /* also works for HP2647 */
  282.   #include "term/hp2648.trm"
  283.  
  284. --- 320,329 -----
  285.   #include "term/aed.trm"
  286.   #endif /* AED */
  287.   
  288. + #ifdef CGI
  289. + #include "term/cgi.trm"
  290. + #endif /* CGI */
  291.   #ifdef HP2648
  292.   /* also works for HP2647 */
  293.   #include "term/hp2648.trm"
  294. ***************
  295. *** 594,599
  296.          null_justify_text, line_and_point, do_arrow}
  297.   #endif
  298.   
  299.   #ifdef DXY800A
  300.       ,{"dxy800a", "Roland DXY800A plotter",
  301.          DXY_XMAX, DXY_YMAX, DXY_VCHAR, DXY_HCHAR,
  302.  
  303. --- 560,581 -----
  304.          null_justify_text, line_and_point, do_arrow}
  305.   #endif
  306.   
  307. + #ifdef CGI
  308. +     ,{"cgi", "SCO CGI drivers (requires CGIDISP or CGIPRNT env variable)",
  309. +        CGI_XMAX, CGI_YMAX, 0, 0, 
  310. +        CGI_VTIC, 0, CGI_init, CGI_reset, 
  311. +        CGI_text, null_scale, CGI_graphics, CGI_move, CGI_vector, 
  312. +        CGI_linetype, CGI_put_text, CGI_text_angle, 
  313. +        CGI_justify_text, CGI_point, do_arrow}
  314. +     ,{"hcgi", "SCO CGI drivers (hardcopy, requires CGIPRNT env variable)",
  315. +        CGI_XMAX, CGI_YMAX, 0, 0, 
  316. +        CGI_VTIC, 0, HCGI_init, CGI_reset, 
  317. +        CGI_text, null_scale, CGI_graphics, CGI_move, CGI_vector, 
  318. +        CGI_linetype, CGI_put_text, CGI_text_angle, 
  319. +        CGI_justify_text, CGI_point, do_arrow}
  320. + #endif
  321.   #ifdef DXY800A
  322.       ,{"dxy800a", "Roland DXY800A plotter",
  323.          DXY_XMAX, DXY_YMAX, DXY_VCHAR, DXY_HCHAR,
  324. ***************
  325. *** 625,632
  326.   #ifdef EPS60
  327.       ,{"epson_60dpi", "Epson-style 60-dot per inch printers",
  328.          EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
  329. !        EPSONVTIC, EPSONHTIC, EPS60init, EPSONreset,
  330. !        EPS60text, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
  331.          EPSONlinetype, EPSONput_text, EPSON_text_angle,
  332.          null_justify_text, do_point, do_arrow}
  333.   #endif
  334.  
  335. --- 607,614 -----
  336.   #ifdef EPS60
  337.       ,{"epson_60dpi", "Epson-style 60-dot per inch printers",
  338.          EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
  339. !        EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset,
  340. !        EPS60text, null_scale, EPS60graphics, EPSONmove, EPSONvector,
  341.          EPSONlinetype, EPSONput_text, EPSON_text_angle,
  342.          null_justify_text, do_point, do_arrow}
  343.   #endif
  344. ***************
  345. *** 632,638
  346.   #endif
  347.   
  348.   #ifdef EPSON
  349. !     ,{"epson_lx800", "Epson LX-800, Star NL-10, NX-1000 and lots of others",
  350.          EPSONXMAX, EPSONYMAX, EPSONVCHAR, EPSONHCHAR, 
  351.          EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset, 
  352.          EPSONtext, null_scale, EPSONgraphics, EPSONmove, EPSONvector, 
  353.  
  354. --- 614,620 -----
  355.   #endif
  356.   
  357.   #ifdef EPSON
  358. !     ,{"epson_lx800", "Epson LX-800, Star NL-10, NX-1000, PROPRINTER ...",
  359.          EPSONXMAX, EPSONYMAX, EPSONVCHAR, EPSONHCHAR, 
  360.          EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset, 
  361.          EPSONtext, null_scale, EPSONgraphics, EPSONmove, EPSONvector, 
  362. ***************
  363. *** 685,709
  364.          null_justify_text, do_point, do_arrow}
  365.   #endif
  366.   
  367. ! #ifdef HPLJET
  368. !     ,{"laserjet1", "HP Laserjet, smallest size",
  369. !        HPLJETXMAX, HPLJETYMAX, HPLJET1VCHAR, HPLJET1HCHAR, 
  370. !        HPLJETVTIC, HPLJETHTIC, HPLJET1init, HPLJETreset, 
  371. !        HPLJETtext, null_scale, HPLJETgraphics, HPLJETmove, HPLJETvector,
  372. !        HPLJETlinetype, HPLJETput_text, null_text_angle, 
  373. !        null_justify_text, line_and_point, do_arrow}
  374. !     ,{"laserjet2", "HP Laserjet, medium size",
  375. !        HPLJETXMAX, HPLJETYMAX, HPLJET2VCHAR, HPLJET2HCHAR, 
  376. !        HPLJETVTIC, HPLJETHTIC, HPLJET2init, HPLJETreset, 
  377. !        HPLJETtext, null_scale, HPLJETgraphics, HPLJETmove, HPLJETvector,
  378. !        HPLJETlinetype, HPLJETput_text, null_text_angle, 
  379. !        null_justify_text, line_and_point, do_arrow}
  380. !     ,{"laserjet3", "HP Laserjet, largest size",
  381. !        HPLJETXMAX, HPLJETYMAX, HPLJET3VCHAR, HPLJET3HCHAR, 
  382. !        HPLJETVTIC, HPLJETHTIC, HPLJET3init, HPLJETreset, 
  383. !        HPLJETtext, null_scale, HPLJETgraphics, HPLJETmove, HPLJETvector, 
  384. !        HPLJETlinetype, HPLJETput_text, null_text_angle, 
  385. !        null_justify_text, line_and_point, do_arrow}
  386.   #endif
  387.   
  388.   #ifdef IMAGEN
  389.  
  390. --- 667,701 -----
  391.          null_justify_text, do_point, do_arrow}
  392.   #endif
  393.   
  394. ! #ifdef HPLJII
  395. !     ,{"hpljii_300ppi", "HP Laserjet series II with 300 pixels per inch",
  396. !        HPLJII_300PPI_XMAX, HPLJII_300PPI_YMAX, HPLJII_300PPI_VCHAR,
  397. !        HPLJII_300PPI_HCHAR, HPLJII_300PPI_VTIC, HPLJII_300PPI_HTIC,
  398. !        HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
  399. !        HPLJII_300PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
  400. !        HPLJIIput_text, HPLJIItext_angle,  null_justify_text, line_and_point,
  401. !        do_arrow}
  402. !     ,{"hpljii_150ppi", "HP Laserjet series II with 150 pixels per inch",
  403. !        HPLJII_150PPI_XMAX, HPLJII_150PPI_YMAX, HPLJII_150PPI_VCHAR,
  404. !        HPLJII_150PPI_HCHAR, HPLJII_150PPI_VTIC, HPLJII_150PPI_HTIC,
  405. !        HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
  406. !        HPLJII_150PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
  407. !        HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
  408. !        do_arrow}
  409. !     ,{"hpljii_100ppi", "HP Laserjet series II with 100 pixels per inch",
  410. !        HPLJII_100PPI_XMAX, HPLJII_100PPI_YMAX, HPLJII_100PPI_VCHAR,
  411. !        HPLJII_100PPI_HCHAR, HPLJII_100PPI_VTIC, HPLJII_100PPI_HTIC,
  412. !        HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
  413. !        HPLJII_100PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
  414. !        HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
  415. !        do_arrow}
  416. !     ,{"hpljii_75ppi", "HP Laserjet series II with 75 pixels per inch",
  417. !        HPLJII_75PPI_XMAX, HPLJII_75PPI_YMAX, HPLJII_75PPI_VCHAR,
  418. !        HPLJII_75PPI_HCHAR, HPLJII_75PPI_VTIC, HPLJII_75PPI_HTIC,
  419. !        HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
  420. !        HPLJII_75PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
  421. !        HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
  422. !        do_arrow}
  423.   #endif
  424.   
  425.   #ifdef IMAGEN
  426. ***************
  427. *** 749,755
  428.   #endif
  429.   
  430.   #ifdef NEC
  431. !     ,{"nec_cp6m", "NEC printer CP6 Monochrome",
  432.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  433.          NECVTIC, NECHTIC, NECMinit, NECreset, 
  434.          NECtext, null_scale, NECgraphics, NECmove, NECvector, 
  435.  
  436. --- 741,747 -----
  437.   #endif
  438.   
  439.   #ifdef NEC
  440. !     ,{"nec_cp6m", "NEC printer CP6, Epson LQ-800 Monochrome",
  441.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  442.          NECVTIC, NECHTIC, NECinit, NECreset, 
  443.          NECtext, null_scale, NECMgraphics, NECmove, NECvector, 
  444. ***************
  445. *** 751,758
  446.   #ifdef NEC
  447.       ,{"nec_cp6m", "NEC printer CP6 Monochrome",
  448.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  449. !        NECVTIC, NECHTIC, NECMinit, NECreset, 
  450. !        NECtext, null_scale, NECgraphics, NECmove, NECvector, 
  451.          NECMlinetype, NECput_text, NEC_text_angle, 
  452.          null_justify_text, line_and_point, do_arrow}
  453.       ,{"nec_cp6c", "NEC printer CP6 Color",
  454.  
  455. --- 743,750 -----
  456.   #ifdef NEC
  457.       ,{"nec_cp6m", "NEC printer CP6, Epson LQ-800 Monochrome",
  458.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  459. !        NECVTIC, NECHTIC, NECinit, NECreset, 
  460. !        NECtext, null_scale, NECMgraphics, NECmove, NECvector, 
  461.          NECMlinetype, NECput_text, NEC_text_angle, 
  462.          null_justify_text, line_and_point, do_arrow}
  463.       ,{"nec_cp6c", "NEC printer CP6 Color",
  464. ***************
  465. *** 757,764
  466.          null_justify_text, line_and_point, do_arrow}
  467.       ,{"nec_cp6c", "NEC printer CP6 Color",
  468.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  469. !        NECVTIC, NECHTIC, NECCinit, NECreset, 
  470. !        NECtext, null_scale, NECgraphics, NECmove, NECvector, 
  471.          NECClinetype, NECput_text, NEC_text_angle, 
  472.          null_justify_text, do_point, do_arrow}
  473.       ,{"nec_cp6d", "NEC printer CP6 Draft monochrome",
  474.  
  475. --- 749,756 -----
  476.          null_justify_text, line_and_point, do_arrow}
  477.       ,{"nec_cp6c", "NEC printer CP6 Color",
  478.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  479. !        NECVTIC, NECHTIC, NECinit, NECreset, 
  480. !        NECtext, null_scale, NECCgraphics, NECmove, NECvector, 
  481.          NECClinetype, NECput_text, NEC_text_angle, 
  482.          null_justify_text, do_point, do_arrow}
  483.       ,{"nec_cp6d", "NEC printer CP6, Epson LQ-800 Draft monochrome",
  484. ***************
  485. *** 761,767
  486.          NECtext, null_scale, NECgraphics, NECmove, NECvector, 
  487.          NECClinetype, NECput_text, NEC_text_angle, 
  488.          null_justify_text, do_point, do_arrow}
  489. !     ,{"nec_cp6d", "NEC printer CP6 Draft monochrome",
  490.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  491.          NECVTIC, NECHTIC, NECMinit, NECreset, 
  492.          NECdraft_text, null_scale, NECgraphics, NECmove, NECvector, 
  493.  
  494. --- 753,759 -----
  495.          NECtext, null_scale, NECCgraphics, NECmove, NECvector, 
  496.          NECClinetype, NECput_text, NEC_text_angle, 
  497.          null_justify_text, do_point, do_arrow}
  498. !     ,{"nec_cp6d", "NEC printer CP6, Epson LQ-800 Draft monochrome",
  499.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  500.          NECVTIC, NECHTIC, NECinit, NECreset, 
  501.          NECdraft_text, null_scale, NECMgraphics, NECmove, NECvector, 
  502. ***************
  503. *** 763,770
  504.          null_justify_text, do_point, do_arrow}
  505.       ,{"nec_cp6d", "NEC printer CP6 Draft monochrome",
  506.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  507. !        NECVTIC, NECHTIC, NECMinit, NECreset, 
  508. !        NECdraft_text, null_scale, NECgraphics, NECmove, NECvector, 
  509.          NECMlinetype, NECput_text, NEC_text_angle, 
  510.          null_justify_text, line_and_point, do_arrow}
  511.   #endif
  512.  
  513. --- 755,762 -----
  514.          null_justify_text, do_point, do_arrow}
  515.       ,{"nec_cp6d", "NEC printer CP6, Epson LQ-800 Draft monochrome",
  516.          NECXMAX, NECYMAX, NECVCHAR, NECHCHAR, 
  517. !        NECVTIC, NECHTIC, NECinit, NECreset, 
  518. !        NECdraft_text, null_scale, NECMgraphics, NECmove, NECvector, 
  519.          NECMlinetype, NECput_text, NEC_text_angle, 
  520.          null_justify_text, line_and_point, do_arrow}
  521.   #endif
  522. ***************
  523. *** 796,809
  524.          PS_justify_text, PS_point, do_arrow}
  525.   #endif
  526.   
  527. ! #ifdef PROPRINTER
  528. !     ,{"proprinter", "IBM Proprinter",
  529. !        EPSONXMAX, EPSONYMAX, EPSONVCHAR, EPSONHCHAR, 
  530. !        EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset, 
  531. !        PROPRINTERtext, null_scale, EPSONgraphics, EPSONmove, EPSONvector, 
  532. !        EPSONlinetype, EPSONput_text, EPSON_text_angle, 
  533. !        null_justify_text, line_and_point, do_arrow}
  534. ! #endif
  535.   
  536.   #ifdef QMS
  537.       ,{"qms", "QMS/QUIC Laser printer (also Talaris 1200 and others)",
  538.  
  539. --- 788,807 -----
  540.          PS_justify_text, PS_point, do_arrow}
  541.   #endif
  542.   
  543. ! #ifdef PRESCRIBE
  544. !     ,{"prescribe", "Prescribe - for the Kyocera Laser Printer",
  545. !     PRE_XMAX, PRE_YMAX, PRE_VCHAR, PRE_HCHAR, 
  546. !     PRE_VTIC, PRE_HTIC, PRE_init, PRE_reset, 
  547. !     PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector, 
  548. !     PRE_linetype, PRE_put_text, null_text_angle, 
  549. !     PRE_justify_text, line_and_point, do_arrow}
  550. !     ,{"kyo", "Kyocera Laser Printer with Courier font",
  551. !     PRE_XMAX, PRE_YMAX, KYO_VCHAR, KYO_HCHAR, 
  552. !     PRE_VTIC, PRE_HTIC, KYO_init, PRE_reset, 
  553. !     PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector, 
  554. !     PRE_linetype, PRE_put_text, null_text_angle, 
  555. !     PRE_justify_text, line_and_point, do_arrow}
  556. ! #endif /* PRESCRIBE */
  557.   
  558.   #ifdef QMS
  559.       ,{"qms", "QMS/QUIC Laser printer (also Talaris 1200 and others)",
  560. ***************
  561. *** 854,861
  562.   #ifdef TANDY60
  563.       ,{"tandy_60dpi", "Tandy DMP-130 series 60-dot per inch graphics",
  564.          EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
  565. !        EPSONVTIC, EPSONHTIC, EPS60init, EPSONreset,
  566. !        TANDY60text, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
  567.          EPSONlinetype, EPSONput_text, EPSON_text_angle,
  568.          null_justify_text, do_point, do_arrow}
  569.   #endif
  570.  
  571. --- 852,859 -----
  572.   #ifdef TANDY60
  573.       ,{"tandy_60dpi", "Tandy DMP-130 series 60-dot per inch graphics",
  574.          EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
  575. !        EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset,
  576. !        TANDY60text, null_scale, EPS60graphics, EPSONmove, EPSONvector,
  577.          EPSONlinetype, EPSONput_text, EPSON_text_angle,
  578.          null_justify_text, do_point, do_arrow}
  579.   #endif
  580. ***************
  581. *** 905,910
  582.          null_justify_text, do_point, do_arrow}
  583.   #endif
  584.   
  585.   #ifdef X11
  586.       ,{"x11", "X11 Window System",
  587.          X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR, 
  588.  
  589. --- 903,917 -----
  590.          null_justify_text, do_point, do_arrow}
  591.   #endif
  592.   
  593. + #ifdef VTTEK
  594. +     ,{"vttek", "VT-like tek40xx terminal emulator",
  595. +        TEK40XMAX,TEK40YMAX,TEK40VCHAR, TEK40HCHAR,
  596. +        TEK40VTIC, TEK40HTIC, VTTEK40init, VTTEK40reset,
  597. +        TEK40text, null_scale, TEK40graphics, TEK40move, TEK40vector,
  598. +        VTTEK40linetype, VTTEK40put_text, null_text_angle,
  599. +        null_justify_text, line_and_point, do_arrow}
  600. + #endif
  601.   #ifdef X11
  602.       ,{"x11", "X11 Window System",
  603.          X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR, 
  604. ***************
  605. *** 1014,1020
  606.   {
  607.       char *term_name = NULL;
  608.       int t;
  609. - #ifdef SUN  /* turbo C doesn't like unused variables */
  610.       char *term = NULL;        /* from TERM environment var */
  611.   #endif
  612.       char *gnuterm = NULL;
  613.  
  614. --- 1021,1026 -----
  615.   {
  616.       char *term_name = NULL;
  617.       int t;
  618.       char *term = NULL;        /* from TERM environment var */
  619.   #ifdef X11
  620.       char *display = NULL;
  621. ***************
  622. *** 1016,1021
  623.       int t;
  624.   #ifdef SUN  /* turbo C doesn't like unused variables */
  625.       char *term = NULL;        /* from TERM environment var */
  626.   #endif
  627.       char *gnuterm = NULL;
  628.   
  629.  
  630. --- 1022,1029 -----
  631.       char *term_name = NULL;
  632.       int t;
  633.       char *term = NULL;        /* from TERM environment var */
  634. + #ifdef X11
  635. +     char *display = NULL;
  636.   #endif
  637.       char *gnuterm = NULL;
  638.   
  639. ***************
  640. *** 1026,1031
  641.       else {
  642.   #ifdef __TURBOC__
  643.          term_name = turboc_init();
  644.   #endif
  645.          
  646.   #ifdef vms
  647.  
  648. --- 1034,1040 -----
  649.       else {
  650.   #ifdef __TURBOC__
  651.          term_name = turboc_init();
  652. +        term = (char *)NULL; /* shut up turbo C */
  653.   #endif
  654.          
  655.   #ifdef vms
  656. ***************
  657. *** 1039,1044
  658.           term_name = "sun";
  659.   #endif /* sun */
  660.   
  661.   #ifdef UNIXPC
  662.              if (iswind() == 0) {
  663.                 term_name = "unixpc";
  664.  
  665. --- 1048,1063 -----
  666.           term_name = "sun";
  667.   #endif /* sun */
  668.   
  669. + #ifdef X11
  670. +        term = getenv("TERM");    /* try $TERM */
  671. +        if (term_name == (char *)NULL
  672. +           && term != (char *)NULL && strcmp(term, "xterm") == 0)
  673. +         term_name = "x11";
  674. +        display = getenv("DISPLAY");
  675. +        if (term_name == (char *)NULL && display != (char *)NULL)
  676. +         term_name = "x11";
  677. + #endif /* x11 */
  678.   #ifdef UNIXPC
  679.              if (iswind() == 0) {
  680.                 term_name = "unixpc";
  681. ***************
  682. *** 1044,1049
  683.                 term_name = "unixpc";
  684.              }
  685.   #endif /* unixpc */
  686.       }
  687.   
  688.       /* We have a name, try to set term type */
  689.  
  690. --- 1063,1073 -----
  691.                 term_name = "unixpc";
  692.              }
  693.   #endif /* unixpc */
  694. + #ifdef CGI
  695. +        if (getenv("CGIDISP") || getenv("CGIPRNT"))
  696. +          term_name = "cgi";
  697. + #endif /*CGI */
  698.       }
  699.   
  700.       /* We have a name, try to set term type */
  701. ***************
  702. *** 1103,1109
  703.   }
  704.   #endif /* __TURBOC__ */
  705.   
  706. - #ifdef vms
  707.   /*
  708.    * Determine if we have a regis terminal.  
  709.    * and do a SET TERM/NOWRAP
  710.  
  711. --- 1127,1132 -----
  712.   }
  713.   #endif /* __TURBOC__ */
  714.   
  715.   /*
  716.       This is always defined so we don't have to have command.c know if it
  717.       is there or not.
  718. ***************
  719. *** 1105,1178
  720.   
  721.   #ifdef vms
  722.   /*
  723. -  * Determine if we have a regis terminal.  
  724. -  * and do a SET TERM/NOWRAP
  725. - */
  726. - char *
  727. - vms_init()
  728. - {
  729. - char *term_str="tt:";
  730. - typedef struct
  731. -           {
  732. -           short cond_value;
  733. -           short count;
  734. -           int info;
  735. -           }  status_block;
  736. - typedef struct
  737. -           {
  738. -           short buffer_len;
  739. -           short item_code;
  740. -           int buffer_addr;
  741. -           int ret_len_addr;
  742. -           }  item_desc;
  743. - struct {
  744. -     item_desc dev_type;
  745. -       int terminator;
  746. -    }  dvi_list;
  747. -    int status, dev_type, zero=0;
  748. -    char buffer[255];
  749. -    $DESCRIPTOR(term_desc, term_str);
  750. - /* This does the equivalent of a SET TERM/NOWRAP command */
  751. -     int i;
  752. -     sys$assign(&sysoutput_desc,&chan,0,0);
  753. -     sys$qiow(0,chan,IO$_SENSEMODE,0,0,0,old_char_buf,12,0,0,0,0);
  754. -     for (i = 0 ; i < 3 ; ++i) new_char_buf[i] = old_char_buf[i];
  755. -     new_char_buf[1] &= ~(TT$M_WRAP);
  756. -     sys$qiow(0,chan,IO$_SETMODE,0,0,0,new_char_buf,12,0,0,0,0);
  757. -     sys$dassgn(chan);
  758. - /* set up dvi item list */
  759. -     dvi_list.dev_type.buffer_len = 4;
  760. -     dvi_list.dev_type.item_code = DVI$_TT_REGIS;
  761. -     dvi_list.dev_type.buffer_addr = &dev_type;
  762. -     dvi_list.dev_type.ret_len_addr = 0;
  763. -     dvi_list.terminator = 0;
  764. - /* See what type of terminal we have. */
  765. -     status = SYS$GETDVIW (0, 0, &term_desc, &dvi_list, 0, 0, 0, 0);
  766. -     if ((status & 1) && dev_type) {
  767. -         return("regis");
  768. -     }
  769. -      return(NULL);
  770. - }
  771. - /*
  772. -  *  vms_reset
  773. -  */
  774. - vms_reset()
  775. - {
  776. -     /* set wrap back to original state */
  777. -     sys$assign(&sysoutput_desc,&chan,0,0);
  778. -     sys$qiow(0,chan,IO$_SETMODE,0,0,0,old_char_buf,12,0,0,0,0);
  779. -     sys$dassgn(chan);
  780. - }
  781. - #endif /* VMS */
  782. - /*
  783.       This is always defined so we don't have to have command.c know if it
  784.       is there or not.
  785.   */
  786.  
  787. --- 1128,1133 -----
  788.   #endif /* __TURBOC__ */
  789.   
  790.   /*
  791.       This is always defined so we don't have to have command.c know if it
  792.       is there or not.
  793.   */
  794. ***************
  795. *** 1237,1242
  796.       register struct termentry *t = &term_tbl[term];
  797.       char *str;
  798.       int x,y, xl,yl, i;
  799.       char label[MAX_ID_LEN];
  800.   
  801.       if (!term_init) {
  802.  
  803. --- 1192,1198 -----
  804.       register struct termentry *t = &term_tbl[term];
  805.       char *str;
  806.       int x,y, xl,yl, i;
  807. +     unsigned int xmax, ymax;
  808.       char label[MAX_ID_LEN];
  809.   
  810.       if (!term_init) {
  811. ***************
  812. *** 1244,1249
  813.          term_init = TRUE;
  814.       }
  815.       screen_ok = FALSE;
  816.       (*t->graphics)();
  817.       /* border linetype */
  818.       (*t->linetype)(-2);
  819.  
  820. --- 1200,1208 -----
  821.          term_init = TRUE;
  822.       }
  823.       screen_ok = FALSE;
  824. +     (void)(*t->scale)(xsize, ysize);
  825. +     xmax = (unsigned int)(t->xmax * xsize);
  826. +     ymax = (unsigned int)(t->ymax * ysize);
  827.       (*t->graphics)();
  828.       /* border linetype */
  829.       (*t->linetype)(-2);
  830. ***************
  831. *** 1248,1256
  832.       /* border linetype */
  833.       (*t->linetype)(-2);
  834.       (*t->move)(0,0);
  835. !     (*t->vector)(t->xmax-1,0);
  836. !     (*t->vector)(t->xmax-1,t->ymax-1);
  837. !     (*t->vector)(0,t->ymax-1);
  838.       (*t->vector)(0,0);
  839.       (void) (*t->justify_text)(LEFT);
  840.       (*t->put_text)(t->h_char*5,t->ymax-t->v_char*3,"Terminal Test");
  841.  
  842. --- 1207,1215 -----
  843.       /* border linetype */
  844.       (*t->linetype)(-2);
  845.       (*t->move)(0,0);
  846. !     (*t->vector)(xmax-1,0);
  847. !     (*t->vector)(xmax-1,ymax-1);
  848. !     (*t->vector)(0,ymax-1);
  849.       (*t->vector)(0,0);
  850.       (void) (*t->justify_text)(LEFT);
  851.       (*t->put_text)(t->h_char*5,ymax-t->v_char*3,"Terminal Test");
  852. ***************
  853. *** 1253,1259
  854.       (*t->vector)(0,t->ymax-1);
  855.       (*t->vector)(0,0);
  856.       (void) (*t->justify_text)(LEFT);
  857. !     (*t->put_text)(t->h_char*5,t->ymax-t->v_char*3,"Terminal Test");
  858.       /* axis linetype */
  859.       (*t->linetype)(-1);
  860.       (*t->move)(t->xmax/2,0);
  861.  
  862. --- 1212,1218 -----
  863.       (*t->vector)(0,ymax-1);
  864.       (*t->vector)(0,0);
  865.       (void) (*t->justify_text)(LEFT);
  866. !     (*t->put_text)(t->h_char*5,ymax-t->v_char*3,"Terminal Test");
  867.       /* axis linetype */
  868.       (*t->linetype)(-1);
  869.       (*t->move)(xmax/2,0);
  870. ***************
  871. *** 1256,1265
  872.       (*t->put_text)(t->h_char*5,t->ymax-t->v_char*3,"Terminal Test");
  873.       /* axis linetype */
  874.       (*t->linetype)(-1);
  875. !     (*t->move)(t->xmax/2,0);
  876. !     (*t->vector)(t->xmax/2,t->ymax-1);
  877. !     (*t->move)(0,t->ymax/2);
  878. !     (*t->vector)(t->xmax-1,t->ymax/2);
  879.       /* test width and height of characters */
  880.       (*t->linetype)(-2);
  881.       (*t->move)(  t->xmax/2-t->h_char*10,t->ymax/2+t->v_char/2);
  882.  
  883. --- 1215,1224 -----
  884.       (*t->put_text)(t->h_char*5,ymax-t->v_char*3,"Terminal Test");
  885.       /* axis linetype */
  886.       (*t->linetype)(-1);
  887. !     (*t->move)(xmax/2,0);
  888. !     (*t->vector)(xmax/2,ymax-1);
  889. !     (*t->move)(0,ymax/2);
  890. !     (*t->vector)(xmax-1,ymax/2);
  891.       /* test width and height of characters */
  892.       (*t->linetype)(-2);
  893.       (*t->move)(  xmax/2-t->h_char*10,ymax/2+t->v_char/2);
  894. ***************
  895. *** 1262,1273
  896.       (*t->vector)(t->xmax-1,t->ymax/2);
  897.       /* test width and height of characters */
  898.       (*t->linetype)(-2);
  899. !     (*t->move)(  t->xmax/2-t->h_char*10,t->ymax/2+t->v_char/2);
  900. !     (*t->vector)(t->xmax/2+t->h_char*10,t->ymax/2+t->v_char/2);
  901. !     (*t->vector)(t->xmax/2+t->h_char*10,t->ymax/2-t->v_char/2);
  902. !     (*t->vector)(t->xmax/2-t->h_char*10,t->ymax/2-t->v_char/2);
  903. !     (*t->vector)(t->xmax/2-t->h_char*10,t->ymax/2+t->v_char/2);
  904. !     (*t->put_text)(t->xmax/2-t->h_char*10,t->ymax/2,
  905.           "12345678901234567890");
  906.       /* test justification */
  907.       (void) (*t->justify_text)(LEFT);
  908.  
  909. --- 1221,1232 -----
  910.       (*t->vector)(xmax-1,ymax/2);
  911.       /* test width and height of characters */
  912.       (*t->linetype)(-2);
  913. !     (*t->move)(  xmax/2-t->h_char*10,ymax/2+t->v_char/2);
  914. !     (*t->vector)(xmax/2+t->h_char*10,ymax/2+t->v_char/2);
  915. !     (*t->vector)(xmax/2+t->h_char*10,ymax/2-t->v_char/2);
  916. !     (*t->vector)(xmax/2-t->h_char*10,ymax/2-t->v_char/2);
  917. !     (*t->vector)(xmax/2-t->h_char*10,ymax/2+t->v_char/2);
  918. !     (*t->put_text)(xmax/2-t->h_char*10,ymax/2,
  919.           "12345678901234567890");
  920.       /* test justification */
  921.       (void) (*t->justify_text)(LEFT);
  922. ***************
  923. *** 1271,1277
  924.           "12345678901234567890");
  925.       /* test justification */
  926.       (void) (*t->justify_text)(LEFT);
  927. !     (*t->put_text)(t->xmax/2,t->ymax/2+t->v_char*6,"left justified");
  928.       str = "centre+d text";
  929.       if ((*t->justify_text)(CENTRE))
  930.           (*t->put_text)(t->xmax/2,
  931.  
  932. --- 1230,1236 -----
  933.           "12345678901234567890");
  934.       /* test justification */
  935.       (void) (*t->justify_text)(LEFT);
  936. !     (*t->put_text)(xmax/2,ymax/2+t->v_char*6,"left justified");
  937.       str = "centre+d text";
  938.       if ((*t->justify_text)(CENTRE))
  939.           (*t->put_text)(xmax/2,
  940. ***************
  941. *** 1274,1281
  942.       (*t->put_text)(t->xmax/2,t->ymax/2+t->v_char*6,"left justified");
  943.       str = "centre+d text";
  944.       if ((*t->justify_text)(CENTRE))
  945. !         (*t->put_text)(t->xmax/2,
  946. !                 t->ymax/2+t->v_char*5,str);
  947.       else
  948.           (*t->put_text)(t->xmax/2-strlen(str)*t->h_char/2,
  949.                   t->ymax/2+t->v_char*5,str);
  950.  
  951. --- 1233,1240 -----
  952.       (*t->put_text)(xmax/2,ymax/2+t->v_char*6,"left justified");
  953.       str = "centre+d text";
  954.       if ((*t->justify_text)(CENTRE))
  955. !         (*t->put_text)(xmax/2,
  956. !                 ymax/2+t->v_char*5,str);
  957.       else
  958.           (*t->put_text)(xmax/2-strlen(str)*t->h_char/2,
  959.                   ymax/2+t->v_char*5,str);
  960. ***************
  961. *** 1277,1284
  962.           (*t->put_text)(t->xmax/2,
  963.                   t->ymax/2+t->v_char*5,str);
  964.       else
  965. !         (*t->put_text)(t->xmax/2-strlen(str)*t->h_char/2,
  966. !                 t->ymax/2+t->v_char*5,str);
  967.       str = "right justified";
  968.       if ((*t->justify_text)(RIGHT))
  969.           (*t->put_text)(t->xmax/2,
  970.  
  971. --- 1236,1243 -----
  972.           (*t->put_text)(xmax/2,
  973.                   ymax/2+t->v_char*5,str);
  974.       else
  975. !         (*t->put_text)(xmax/2-strlen(str)*t->h_char/2,
  976. !                 ymax/2+t->v_char*5,str);
  977.       str = "right justified";
  978.       if ((*t->justify_text)(RIGHT))
  979.           (*t->put_text)(xmax/2,
  980. ***************
  981. *** 1281,1288
  982.                   t->ymax/2+t->v_char*5,str);
  983.       str = "right justified";
  984.       if ((*t->justify_text)(RIGHT))
  985. !         (*t->put_text)(t->xmax/2,
  986. !                 t->ymax/2+t->v_char*4,str);
  987.       else
  988.           (*t->put_text)(t->xmax/2-strlen(str)*t->h_char,
  989.                   t->ymax/2+t->v_char*4,str);
  990.  
  991. --- 1240,1247 -----
  992.                   ymax/2+t->v_char*5,str);
  993.       str = "right justified";
  994.       if ((*t->justify_text)(RIGHT))
  995. !         (*t->put_text)(xmax/2,
  996. !                 ymax/2+t->v_char*4,str);
  997.       else
  998.           (*t->put_text)(xmax/2-strlen(str)*t->h_char,
  999.                   ymax/2+t->v_char*4,str);
  1000. ***************
  1001. *** 1284,1291
  1002.           (*t->put_text)(t->xmax/2,
  1003.                   t->ymax/2+t->v_char*4,str);
  1004.       else
  1005. !         (*t->put_text)(t->xmax/2-strlen(str)*t->h_char,
  1006. !                 t->ymax/2+t->v_char*4,str);
  1007.       /* test text angle */
  1008.       str = "rotated ce+ntred text";
  1009.       if ((*t->text_angle)(1)) {
  1010.  
  1011. --- 1243,1250 -----
  1012.           (*t->put_text)(xmax/2,
  1013.                   ymax/2+t->v_char*4,str);
  1014.       else
  1015. !         (*t->put_text)(xmax/2-strlen(str)*t->h_char,
  1016. !                 ymax/2+t->v_char*4,str);
  1017.       /* test text angle */
  1018.       str = "rotated ce+ntred text";
  1019.       if ((*t->text_angle)(1)) {
  1020. ***************
  1021. *** 1291,1297
  1022.       if ((*t->text_angle)(1)) {
  1023.           if ((*t->justify_text)(CENTRE))
  1024.               (*t->put_text)(t->v_char,
  1025. !                 t->ymax/2,str);
  1026.           else
  1027.               (*t->put_text)(t->v_char,
  1028.                   t->ymax/2-strlen(str)*t->h_char/2,str);
  1029.  
  1030. --- 1250,1256 -----
  1031.       if ((*t->text_angle)(1)) {
  1032.           if ((*t->justify_text)(CENTRE))
  1033.               (*t->put_text)(t->v_char,
  1034. !                 ymax/2,str);
  1035.           else
  1036.               (*t->put_text)(t->v_char,
  1037.                   ymax/2-strlen(str)*t->h_char/2,str);
  1038. ***************
  1039. *** 1294,1300
  1040.                   t->ymax/2,str);
  1041.           else
  1042.               (*t->put_text)(t->v_char,
  1043. !                 t->ymax/2-strlen(str)*t->h_char/2,str);
  1044.       }
  1045.       else {
  1046.           (void) (*t->justify_text)(LEFT);
  1047.  
  1048. --- 1253,1259 -----
  1049.                   ymax/2,str);
  1050.           else
  1051.               (*t->put_text)(t->v_char,
  1052. !                 ymax/2-strlen(str)*t->h_char/2,str);
  1053.       }
  1054.       else {
  1055.           (void) (*t->justify_text)(LEFT);
  1056. ***************
  1057. *** 1298,1304
  1058.       }
  1059.       else {
  1060.           (void) (*t->justify_text)(LEFT);
  1061. !         (*t->put_text)(t->h_char*2,t->ymax/2-t->v_char*2,"Can't rotate text");
  1062.       }
  1063.       (void) (*t->justify_text)(LEFT);
  1064.       (void) (*t->text_angle)(0);
  1065.  
  1066. --- 1257,1263 -----
  1067.       }
  1068.       else {
  1069.           (void) (*t->justify_text)(LEFT);
  1070. !         (*t->put_text)(t->h_char*2,ymax/2-t->v_char*2,"Can't rotate text");
  1071.       }
  1072.       (void) (*t->justify_text)(LEFT);
  1073.       (void) (*t->text_angle)(0);
  1074. ***************
  1075. *** 1303,1313
  1076.       (void) (*t->justify_text)(LEFT);
  1077.       (void) (*t->text_angle)(0);
  1078.       /* test tic size */
  1079. !     (*t->move)(t->xmax/2+t->h_tic*2,0);
  1080. !     (*t->vector)(t->xmax/2+t->h_tic*2,t->v_tic);
  1081. !     (*t->move)(t->xmax/2,t->v_tic*2);
  1082. !     (*t->vector)(t->xmax/2+t->h_tic,t->v_tic*2);
  1083. !     (*t->put_text)(t->xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
  1084.       /* test line and point types */
  1085.       x = t->xmax - t->h_char*4 - t->h_tic*4;
  1086.       y = t->ymax - t->v_char;
  1087.  
  1088. --- 1262,1272 -----
  1089.       (void) (*t->justify_text)(LEFT);
  1090.       (void) (*t->text_angle)(0);
  1091.       /* test tic size */
  1092. !     (*t->move)(xmax/2+t->h_tic*2,0);
  1093. !     (*t->vector)(xmax/2+t->h_tic*2,t->v_tic);
  1094. !     (*t->move)(xmax/2,t->v_tic*2);
  1095. !     (*t->vector)(xmax/2+t->h_tic,t->v_tic*2);
  1096. !     (*t->put_text)(xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
  1097.       /* test line and point types */
  1098.       x = xmax - t->h_char*4 - t->h_tic*4;
  1099.       y = ymax - t->v_char;
  1100. ***************
  1101. *** 1309,1316
  1102.       (*t->vector)(t->xmax/2+t->h_tic,t->v_tic*2);
  1103.       (*t->put_text)(t->xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
  1104.       /* test line and point types */
  1105. !     x = t->xmax - t->h_char*4 - t->h_tic*4;
  1106. !     y = t->ymax - t->v_char;
  1107.       for ( i = -2; y > t->v_char; i++ ) {
  1108.           (*t->linetype)(i);
  1109.           (void) sprintf(label,"%d",i);
  1110.  
  1111. --- 1268,1275 -----
  1112.       (*t->vector)(xmax/2+t->h_tic,t->v_tic*2);
  1113.       (*t->put_text)(xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
  1114.       /* test line and point types */
  1115. !     x = xmax - t->h_char*4 - t->h_tic*4;
  1116. !     y = ymax - t->v_char;
  1117.       for ( i = -2; y > t->v_char; i++ ) {
  1118.           (*t->linetype)(i);
  1119.           (void) sprintf(label,"%d",i);
  1120. ***************
  1121. *** 1326,1333
  1122.       }
  1123.       /* test some arrows */
  1124.       (*t->linetype)(0);
  1125. !     x = t->xmax/4;
  1126. !     y = t->ymax/4;
  1127.       xl = t->h_tic*5;
  1128.       yl = t->v_tic*5;
  1129.       (*t->arrow)(x,y,x+xl,y);
  1130.  
  1131. --- 1285,1292 -----
  1132.       }
  1133.       /* test some arrows */
  1134.       (*t->linetype)(0);
  1135. !     x = xmax/4;
  1136. !     y = ymax/4;
  1137.       xl = t->h_tic*5;
  1138.       yl = t->v_tic*5;
  1139.       (*t->arrow)(x,y,x+xl,y);
  1140. ***************
  1141. *** 1341,1343
  1142.       /* and back into text mode */
  1143.       (*t->text)();
  1144.   }
  1145.  
  1146. --- 1300,1519 -----
  1147.       /* and back into text mode */
  1148.       (*t->text)();
  1149.   }
  1150. + #ifdef PC
  1151. + /* output for some terminal types must be binary to stop non Unix computers
  1152. +    changing \n to \r\n. 
  1153. +    If the output is not STDOUT, the following code reopens outfile 
  1154. +    with binary mode. */
  1155. + void
  1156. + reopen_binary()
  1157. + {
  1158. + char filename[MAX_ID_LEN+1];
  1159. +     if (strcmp(outstr,"STDOUT")) {
  1160. +         (void) fclose(outfile);
  1161. +         (void) strcpy(filename,outstr+1);    /* remove quotes */
  1162. +         filename[strlen(filename)-1] = '\0';
  1163. +         if ( (outfile = fopen(filename,"wb")) == (FILE *)NULL ) {
  1164. +             if ( (outfile = fopen(filename,"w")) == (FILE *)NULL ) {
  1165. +                 os_error("cannot reopen file with binary type; output unknown",
  1166. +                     NO_CARET);
  1167. +             } 
  1168. +             else {
  1169. +     os_error("cannot reopen file with binary type; output reset to ascii", 
  1170. +                     NO_CARET);
  1171. +             }
  1172. +         }
  1173. +     }
  1174. + }
  1175. + #endif
  1176. + #ifdef VMS
  1177. + /* these are needed to modify terminal characteristics */
  1178. + #include <descrip.h>
  1179. + #include <iodef.h>
  1180. + #include <ttdef.h>
  1181. + #include <tt2def.h>
  1182. + #include <dcdef.h>
  1183. + #include <ssdef.h>
  1184. + #include <stat.h>
  1185. + #include <fab.h>
  1186. + static unsigned short   chan;
  1187. + static int  old_char_buf[3], cur_char_buf[3];
  1188. + $DESCRIPTOR(sysoutput_desc,"SYS$OUTPUT");
  1189. + char *vms_init()
  1190. + /*
  1191. +  * Determine if we have a regis terminal
  1192. +  * and save terminal characteristics
  1193. + */
  1194. + {
  1195. +    /* Save terminal characteristics in old_char_buf and
  1196. +    initialise cur_char_buf to current settings. */
  1197. +    int i;
  1198. +    sys$assign(&sysoutput_desc,&chan,0,0);
  1199. +    sys$qiow(0,chan,IO$_SENSEMODE,0,0,0,old_char_buf,12,0,0,0,0);
  1200. +    for (i = 0 ; i < 3 ; ++i) cur_char_buf[i] = old_char_buf[i];
  1201. +    sys$dassgn(chan);
  1202. +    /* Test if terminal is regis */
  1203. +    if ((cur_char_buf[2] & TT2$M_REGIS) == TT2$M_REGIS) return("regis");
  1204. +    return(NULL);
  1205. + }
  1206. + void
  1207. + vms_reset()
  1208. + /* set terminal to original state */
  1209. + {
  1210. +    int i;
  1211. +    sys$assign(&sysoutput_desc,&chan,0,0);
  1212. +    sys$qiow(0,chan,IO$_SETMODE,0,0,0,old_char_buf,12,0,0,0,0);
  1213. +    for (i = 0 ; i < 3 ; ++i) cur_char_buf[i] = old_char_buf[i];
  1214. +    sys$dassgn(chan);
  1215. + }
  1216. + void
  1217. + term_mode_tek()
  1218. + /* set terminal mode to tektronix */
  1219. + {
  1220. +    long status;
  1221. +    if (outfile != stdout) return; /* don't modify if not stdout */
  1222. +    sys$assign(&sysoutput_desc,&chan,0,0);
  1223. +    cur_char_buf[0] = 0x004A0000 | DC$_TERM | (TT$_TEK401X<<8);
  1224. +    cur_char_buf[1] = (cur_char_buf[1] & 0x00FFFFFF) | 0x18000000;
  1225. +    cur_char_buf[1] &= ~TT$M_CRFILL;
  1226. +    cur_char_buf[1] &= ~TT$M_ESCAPE;
  1227. +    cur_char_buf[1] &= ~TT$M_HALFDUP;
  1228. +    cur_char_buf[1] &= ~TT$M_LFFILL;
  1229. +    cur_char_buf[1] &= ~TT$M_MECHFORM;
  1230. +    cur_char_buf[1] &= ~TT$M_NOBRDCST;
  1231. +    cur_char_buf[1] &= ~TT$M_NOECHO;
  1232. +    cur_char_buf[1] &= ~TT$M_READSYNC;
  1233. +    cur_char_buf[1] &= ~TT$M_REMOTE;
  1234. +    cur_char_buf[1] |= TT$M_LOWER;
  1235. +    cur_char_buf[1] |= TT$M_TTSYNC;
  1236. +    cur_char_buf[1] |= TT$M_WRAP;
  1237. +    cur_char_buf[1] &= ~TT$M_EIGHTBIT;
  1238. +    cur_char_buf[1] &= ~TT$M_MECHTAB;
  1239. +    cur_char_buf[1] &= ~TT$M_SCOPE;
  1240. +    cur_char_buf[1] |= TT$M_HOSTSYNC;
  1241. +    cur_char_buf[2] &= ~TT2$M_APP_KEYPAD;
  1242. +    cur_char_buf[2] &= ~TT2$M_BLOCK;
  1243. +    cur_char_buf[2] &= ~TT2$M_DECCRT3;
  1244. +    cur_char_buf[2] &= ~TT2$M_LOCALECHO;
  1245. +    cur_char_buf[2] &= ~TT2$M_PASTHRU;
  1246. +    cur_char_buf[2] &= ~TT2$M_REGIS;
  1247. +    cur_char_buf[2] &= ~TT2$M_SIXEL;
  1248. +    cur_char_buf[2] |= TT2$M_BRDCSTMBX;
  1249. +    cur_char_buf[2] |= TT2$M_EDITING;
  1250. +    cur_char_buf[2] |= TT2$M_INSERT;
  1251. +    cur_char_buf[2] |= TT2$M_PRINTER;
  1252. +    cur_char_buf[2] &= ~TT2$M_ANSICRT;
  1253. +    cur_char_buf[2] &= ~TT2$M_AVO;
  1254. +    cur_char_buf[2] &= ~TT2$M_DECCRT;
  1255. +    cur_char_buf[2] &= ~TT2$M_DECCRT2;
  1256. +    cur_char_buf[2] &= ~TT2$M_DRCS;
  1257. +    cur_char_buf[2] &= ~TT2$M_EDIT;
  1258. +    cur_char_buf[2] |= TT2$M_FALLBACK;
  1259. +    status = sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
  1260. +    if (status == SS$_BADPARAM) {
  1261. +       /* terminal fallback utility not installed on system */
  1262. +       cur_char_buf[2] &= ~TT2$M_FALLBACK;
  1263. +       sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
  1264. +    }
  1265. +    else {
  1266. +       if (status != SS$_NORMAL)
  1267. +          lib$signal(status,0,0);
  1268. +    }
  1269. +    sys$dassgn(chan);
  1270. + }
  1271. + void
  1272. + term_mode_native()
  1273. + /* set terminal mode back to native */
  1274. + {
  1275. +    int i;
  1276. +    if (outfile != stdout) return; /* don't modify if not stdout */
  1277. +    sys$assign(&sysoutput_desc,&chan,0,0);
  1278. +    sys$qiow(0,chan,IO$_SETMODE,0,0,0,old_char_buf,12,0,0,0,0);
  1279. +    for (i = 0 ; i < 3 ; ++i) cur_char_buf[i] = old_char_buf[i];
  1280. +    sys$dassgn(chan);
  1281. + }
  1282. + void
  1283. + term_pasthru()
  1284. + /* set terminal mode pasthru */
  1285. + {
  1286. +    if (outfile != stdout) return; /* don't modify if not stdout */
  1287. +    sys$assign(&sysoutput_desc,&chan,0,0);
  1288. +    cur_char_buf[2] |= TT2$M_PASTHRU;
  1289. +    sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
  1290. +    sys$dassgn(chan);
  1291. + }
  1292. + void
  1293. + term_nopasthru()
  1294. + /* set terminal mode nopasthru */
  1295. + {
  1296. +    if (outfile != stdout) return; /* don't modify if not stdout */
  1297. +    sys$assign(&sysoutput_desc,&chan,0,0);
  1298. +    cur_char_buf[2] &= ~TT2$M_PASTHRU;
  1299. +    sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
  1300. +    sys$dassgn(chan);
  1301. + }
  1302. + void
  1303. + reopen_binary()
  1304. + /* close the file outfile outfile and reopen it with binary type
  1305. +    if not already done or outfile == stdout */
  1306. + {
  1307. +    stat_t stat_buf;
  1308. +    char filename[MAX_ID_LEN+1];
  1309. +    if (outfile != stdout) { /* don't modify if not stdout */
  1310. +       if (!fstat(fileno(outfile),&stat_buf)) {
  1311. +          if (stat_buf.st_fab_rfm != FAB$C_FIX) {
  1312. +             /* modify only if not already done */
  1313. +             (void) fclose(outfile);
  1314. +             (void) strcpy(filename,outstr+1);   /* remove quotes */
  1315. +             filename[strlen(filename)-1] = '\0';
  1316. +             (void) delete(filename);
  1317. +             if ((outfile = fopen(filename,"wb","rfm=fix","bls=512","mrs=512"))
  1318. +                 == (FILE *)NULL ) {
  1319. +                if ( (outfile = fopen(filename,"w")) == (FILE *)NULL ) {
  1320. +                  os_error("cannot reopen file with binary type; output unknown",
  1321. +                            NO_CARET);
  1322. +                }
  1323. +                else {
  1324. +           os_error("cannot reopen file with binary type; output reset to ascii",
  1325. +                            NO_CARET);
  1326. +                }
  1327. +             }
  1328. +          }
  1329. +       }
  1330. +       else{
  1331. +          os_error("cannot reopen file with binary type; output remains ascii",
  1332. +                   NO_CARET);
  1333. +       }
  1334. +    }
  1335. + }
  1336. + void
  1337. + fflush_binary()
  1338. + {
  1339. +    typedef short int INT16;     /* signed 16-bit integers */
  1340. +    register INT16 k;            /* loop index */
  1341. +    if (outfile != stdout) {
  1342. +        /* Stupid VMS fflush() raises error and loses last data block
  1343. +           unless it is full for a fixed-length record binary file.
  1344. +           Pad it here with NULL characters. */
  1345. +        for (k = (INT16)((*outfile)->_cnt); k > 0; --k)
  1346. +           putc('\0',outfile);
  1347. +        fflush(outfile);
  1348. +    }
  1349. + }
  1350. + #endif
  1351. diff -cr ./term.h ../gnuplot2.02/term.h
  1352. *** ./term.h    Tue Sep 18 14:59:21 1990
  1353. --- ../gnuplot2.02/term.h    Tue Dec 11 16:41:23 1990
  1354. ***************
  1355. *** 39,45
  1356.   
  1357.   #define AED         /* AED 512 and AED 767 */
  1358.   #define BITGRAPH    /* BBN BitGraph */
  1359. ! #define HPLJET        /* HP Laserjet */
  1360.   /* #define IRIS4D      /* IRIS4D series computer */
  1361.   #define KERMIT      /* MS-Kermit Tektronix 4010 emulator */
  1362.   /* #define FIG           /* Fig graphics language (requires object.h from TransFig) */
  1363.  
  1364. --- 39,45 -----
  1365.   
  1366.   #define AED         /* AED 512 and AED 767 */
  1367.   #define BITGRAPH    /* BBN BitGraph */
  1368. ! /* #define CGI         /* SCO CGI */
  1369.   /* #define IRIS4D      /* IRIS4D series computer */
  1370.   #define KERMIT      /* MS-Kermit Tektronix 4010 emulator */
  1371.   /* #define FIG           /* Fig graphics language (requires object.h from TransFig) */
  1372. ***************
  1373. *** 50,55
  1374.   #define TEK         /* Tektronix 4010, and probably others */
  1375.   /* #define UNIXPC      /* unixpc (ATT 3b1 or ATT 7300) */
  1376.   /* #define UNIXPLOT    /* unixplot */
  1377.   /* #define X11         /* X11R4 window system */
  1378.   
  1379.   #endif 
  1380.  
  1381. --- 50,56 -----
  1382.   #define TEK         /* Tektronix 4010, and probably others */
  1383.   /* #define UNIXPC      /* unixpc (ATT 3b1 or ATT 7300) */
  1384.   /* #define UNIXPLOT    /* unixplot */
  1385. + #define VTTEK       /* VT-like tek40xx emulators */
  1386.   /* #define X11         /* X11R4 window system */
  1387.   
  1388.   #endif 
  1389. ***************
  1390. *** 64,69
  1391.   #define HP26        /* HP2623A and maybe others */
  1392.   #define HP75        /* HP7580, and probably other HPs */
  1393.   #define HPGL        /* HP7475, HP7220 plotters, and (hopefully) lots of others */
  1394.   #define IMAGEN      /* Imagen laser printers (300dpi) (requires -Iterm also) */
  1395.   #define LATEX       /* LATEX picture environment */
  1396.   #define NEC         /* NEC CP6 pinwriter printer */
  1397.  
  1398. --- 65,71 -----
  1399.   #define HP26        /* HP2623A and maybe others */
  1400.   #define HP75        /* HP7580, and probably other HPs */
  1401.   #define HPGL        /* HP7475, HP7220 plotters, and (hopefully) lots of others */
  1402. + #define HPLJII        /* HP LaserJet II */
  1403.   #define IMAGEN      /* Imagen laser printers (300dpi) (requires -Iterm also) */
  1404.   #define LATEX       /* LATEX picture environment */
  1405.   #define NEC         /* NEC CP6 pinwriter printer */
  1406. ***************
  1407. *** 68,74
  1408.   #define LATEX       /* LATEX picture environment */
  1409.   #define NEC         /* NEC CP6 pinwriter printer */
  1410.   #define POSTSCRIPT  /* Postscript */
  1411. ! #define PROPRINTER  /* IBM Proprinter */
  1412.   #define QMS         /* QMS/QUIC laserprinter (Talaris 1200 and others) */
  1413.   #define STARC       /* Star Color Printer */
  1414.   #define TANDY60        /* Tandy DMP-130 series 60-dot per inch graphics */
  1415.  
  1416. --- 70,76 -----
  1417.   #define LATEX       /* LATEX picture environment */
  1418.   #define NEC         /* NEC CP6 pinwriter printer */
  1419.   #define POSTSCRIPT  /* Postscript */
  1420. ! #define PRESCRIBE   /* Kyocera Laser printer */
  1421.   #define QMS         /* QMS/QUIC laserprinter (Talaris 1200 and others) */
  1422.   #define STARC       /* Star Color Printer */
  1423.   #define TANDY60        /* Tandy DMP-130 series 60-dot per inch graphics */
  1424. Common subdirectories: ./translate and ../gnuplot2.02/translate
  1425. diff -cr ./util.c ../gnuplot2.02/util.c
  1426. *** ./util.c    Tue Mar 27 09:02:13 1990
  1427. --- ../gnuplot2.02/util.c    Tue Dec  4 12:09:17 1990
  1428. ***************
  1429. *** 324,329
  1430.       }
  1431.       int_error("unknown type in real()",NO_CARET);
  1432.       /* NOTREACHED */
  1433.   }
  1434.   
  1435.   
  1436.  
  1437. --- 324,330 -----
  1438.       }
  1439.       int_error("unknown type in real()",NO_CARET);
  1440.       /* NOTREACHED */
  1441. +     return((double)0.0);
  1442.   }
  1443.   
  1444.   
  1445. ***************
  1446. *** 339,344
  1447.       }
  1448.       int_error("unknown type in real()",NO_CARET);
  1449.       /* NOTREACHED */
  1450.   }
  1451.   
  1452.   
  1453.  
  1454. --- 340,346 -----
  1455.       }
  1456.       int_error("unknown type in real()",NO_CARET);
  1457.       /* NOTREACHED */
  1458. +     return((double)0.0);
  1459.   }
  1460.   
  1461.   
  1462. ***************
  1463. *** 360,365
  1464.       }
  1465.       int_error("unknown type in magnitude()",NO_CARET);
  1466.       /* NOTREACHED */
  1467.   }
  1468.   
  1469.   
  1470.  
  1471. --- 362,368 -----
  1472.       }
  1473.       int_error("unknown type in magnitude()",NO_CARET);
  1474.       /* NOTREACHED */
  1475. +     return((double)0.0);
  1476.   }
  1477.   
  1478.   
  1479. ***************
  1480. *** 385,390
  1481.       }
  1482.       int_error("unknown type in angle()",NO_CARET);
  1483.       /* NOTREACHED */
  1484.   }
  1485.   
  1486.   
  1487.  
  1488. --- 388,394 -----
  1489.       }
  1490.       int_error("unknown type in angle()",NO_CARET);
  1491.       /* NOTREACHED */
  1492. +     return((double)0.0);
  1493.   }
  1494.   
  1495.   
  1496. diff -cr ./version.c ../gnuplot2.02/version.c
  1497. *** ./version.c    Tue Sep 18 14:47:22 1990
  1498. --- ../gnuplot2.02/version.c    Wed Dec 19 09:24:06 1990
  1499. ***************
  1500. *** 1,6
  1501. ! char version[] = "2.0";
  1502. ! char patchlevel[] = "1";
  1503. ! char date[] = "Tue Sep 18 14:46:32 EST 1990";
  1504.   
  1505.   /* override in Makefile */
  1506.   #ifndef CONTACT
  1507.  
  1508. --- 1,6 -----
  1509. ! char version[] = "2.0 ";
  1510. ! char patchlevel[] = "2";
  1511. ! char date[] = "Wed Dec 19 09:23:59 EST 1990";
  1512.   
  1513.   /* override in Makefile */
  1514.   #ifndef CONTACT
  1515. diff -cr ./demo/param.demo ../gnuplot2.02/demo/param.demo
  1516. *** ./demo/param.demo    Fri Nov 23 17:50:22 1990
  1517. --- ../gnuplot2.02/demo/param.demo    Fri Nov 23 16:52:51 1990
  1518. ***************
  1519. *** 0
  1520.  
  1521. --- 1,46 -----
  1522. + #
  1523. + # Show some of the new parametric capabilities.
  1524. + #
  1525. + set parametric
  1526. + set dummy t
  1527. + set autoscale
  1528. + set samples 160
  1529. + set title ""
  1530. + plot t,sin(t)/t title "t,sin(t)/t or sin(x)/x"
  1531. + pause -1 "Hit return"
  1532. + plot sin(t)/t,t
  1533. + pause -1 "Hit return"
  1534. + plot sin(t),cos(t)
  1535. + pause -1 "Hit return"
  1536. + set xrange [-3:3]
  1537. + set yrange [-3:3]
  1538. + set title "Parametric Conic Sections"
  1539. + plot -t,t,cos(t),cos(2*t),2*cos(t),sin(t),-cosh(t),sinh(t)
  1540. + set title ""
  1541. + pause -1 "Hit return"
  1542. + set xrange [-5:5]
  1543. + set yrange [-5:5]
  1544. + plot tan(t),t,t,tan(t)
  1545. + pause -1 "Hit return"
  1546. + set trange [-3:3]
  1547. + plot t,log(t),-t,log(t),sin(t),t**2
  1548. + pause -1 "Hit return"
  1549. + set autoscale x
  1550. + set yrange [-1.5:1.5]
  1551. + set trange [0:10*pi]
  1552. + plot sin(t)/t,cos(t)/t
  1553. + pause -1 "Hit return"
  1554. + # undo what we've done above
  1555. + set noparametric
  1556. + set samples 160
  1557. + set autoscale xy
  1558. + set title ""
  1559. + set offset 0,0,0,0
  1560. + set key
  1561. diff -cr ./demo/using.dat ../gnuplot2.02/demo/using.dat
  1562. *** ./demo/using.dat    Tue Nov 27 09:19:54 1990
  1563. --- ../gnuplot2.02/demo/using.dat    Mon Nov 26 02:15:31 1990
  1564. ***************
  1565. *** 0
  1566.  
  1567. --- 1,168 -----
  1568. + 891101 00   1.00  14   8.6  94.0
  1569. + 891101 01   1.04  10  17.5  94.4
  1570. + 891101 02   1.08   9   9.7  97.1
  1571. + 891101 03   1.13   9  10.1  94.3
  1572. + 891101 04   1.17   9   5.7  98.3
  1573. + 891101 05   1.21   8   8.1  99.7
  1574. + 891101 06   1.25   7   3.2  99.6
  1575. + 891101 07   1.29   6   2.5  99.8
  1576. + 891101 08   1.33  20   2.3  99.4
  1577. + 891101 09   1.38  30   3.5  96.1
  1578. + 891101 10   1.42  37   7.7  96.4
  1579. + 891101 11   1.46  36   9.8  97.4
  1580. + 891101 12   1.50  30   8.8  97.4
  1581. + 891101 13   1.54  32   9.1  96.5
  1582. + 891101 14   1.58  37   6.3  97.0
  1583. + 891101 15   1.63  35   6.1  97.3
  1584. + 891101 16   1.67  41   8.6  97.2
  1585. + 891101 17   1.71  28   7.6  97.3
  1586. + 891101 18   1.75  16   4.3  97.6
  1587. + 891101 19   1.79  21   4.2  97.5
  1588. + 891101 20   1.83  20   5.6  96.9
  1589. + 891101 21   1.88  24   6.6  96.2
  1590. + 891101 22   1.92  19   5.8  97.1
  1591. + 891101 23   1.96  16   7.4  97.1
  1592. + 891102 00   2.00  13   7.4  96.4
  1593. + 891102 01   2.04   8   6.6  95.6
  1594. + 891102 02   2.08   6   7.4  94.1
  1595. + 891102 03   2.13   6   6.4  95.9
  1596. + 891102 04   2.17   7   6.4  95.5
  1597. + 891102 05   2.21   6   6.7  95.5
  1598. + 891102 06   2.25   6   6.3  94.6
  1599. + 891102 07   2.29   7   6.5  93.1
  1600. + 891102 08   2.33  15   6.5  92.8
  1601. + 891102 09   2.38  22   7.2  93.2
  1602. + 891102 10   2.42  31   9.1  93.9
  1603. + 891102 11   2.46  37  11.0  95.6
  1604. + 891102 12   2.50  40   9.8  98.7
  1605. + 891102 13   2.54  45   9.5  97.3
  1606. + 891102 14   2.58  46  11.4  98.5
  1607. + 891102 15   2.63  46  11.9  99.1
  1608. + 891102 16   2.67  43  13.0  98.8
  1609. + 891102 17   2.71  28  14.5  99.1
  1610. + 891102 18   2.75  25  13.4  99.1
  1611. + 891102 19   2.79  24   9.9  99.7
  1612. + 891102 20   2.83  25   8.1  99.5
  1613. + 891102 21   2.88  24  10.3  99.4
  1614. + 891102 22   2.92  24  12.0  98.7
  1615. + 891102 23   2.96  23  18.2  98.7
  1616. + 891103 00   3.00  20  16.8  99.0
  1617. + 891103 01   3.04  16  14.8  99.2
  1618. + 891103 02   3.08  17  15.5  98.0
  1619. + 891103 03   3.13  17  14.4  99.4
  1620. + 891103 04   3.17  16  14.4  99.4
  1621. + 891103 05   3.21  14  11.3  99.4
  1622. + 891103 06   3.25  13   8.0  99.7
  1623. + 891103 07   3.29  13   6.1  99.9
  1624. + 891103 08   3.33  18   6.4  99.8
  1625. + 891103 09   3.38  31   6.5  98.9
  1626. + 891103 10   3.42  39   7.5  99.0
  1627. + 891103 11   3.46  37   9.1  98.8
  1628. + 891103 12   3.50  33   9.0  99.2
  1629. + 891103 13   3.54  40  10.4  98.7
  1630. + 891103 14   3.58  45  12.9  98.3
  1631. + 891103 15   3.63  45  13.8  98.5
  1632. + 891103 16   3.67  37  16.1  98.9
  1633. + 891103 17   3.71  29  16.0  99.3  57
  1634. + 891103 18   3.75  21  17.4  97.9  55
  1635. + 891103 19   3.79  14  14.6  97.7
  1636. + 891103 20   3.83  11  14.3  97.8  57
  1637. + 891103 21   3.88  15  14.7  96.2  59
  1638. + 891103 22   3.92  10  12.8  95.1  57
  1639. + 891103 23   3.96   8  10.2  97.6
  1640. + 891104 00   4.00   6   7.3  98.6
  1641. + 891104 01   4.04   4   4.7  99.8
  1642. + 891104 02   4.08   3   3.4  98.0
  1643. + 891104 03   4.13   4   2.9  99.6
  1644. + 891104 04   4.17   4   2.1  99.8
  1645. + 891104 05   4.21   4  11.7  99.9
  1646. + 891104 06   4.25   4   4.5  99.9
  1647. + 891104 07   4.29   4   1.6  88.4
  1648. + 891104 08   4.33   4   1.3  65.2
  1649. + 891104 09   4.38   7   1.4  71.4
  1650. + 891104 10   4.42   9   1.3  70.7
  1651. + 891104 11   4.46  14   8.1  99.5
  1652. + 891104 12   4.50  12   4.2  75.3
  1653. + 891104 13   4.54  18  10.9  95.3
  1654. + 891104 14   4.58  16   7.1  87.6
  1655. + 891104 15   4.63  18   3.3  98.9
  1656. + 891104 16   4.67  15   3.4  99.6
  1657. + 891104 17   4.71   8   2.4  99.9
  1658. + 891104 18   4.75   8   2.2  99.8
  1659. + 891104 19   4.79  11   2.2  99.7
  1660. + 891104 20   4.83  14   2.3  99.7
  1661. + 891104 21   4.88  13   2.5  99.7
  1662. + 891104 22   4.92  10   3.1  99.8
  1663. + 891104 23   4.96  12   4.5  99.7
  1664. + 891105 00   5.00   9   4.8  99.7
  1665. + 891105 01   5.04   8   4.9  99.8
  1666. + 891105 02   5.08   5   5.7  97.5
  1667. + 891105 03   5.13   5   5.2  97.6
  1668. + 891105 04   5.17   4   3.3  85.9
  1669. + 891105 05   5.21   5   1.2  71.4
  1670. + 891105 06   5.25   5   1.1  61.8
  1671. + 891105 07   5.29   5   1.0  71.8
  1672. + 891105 08   5.33   5   1.0  55.7
  1673. + 891105 09   5.38   6   1.0  62.2
  1674. + 891105 10   5.42   7   1.1  61.9
  1675. + 891105 11   5.46   9   1.4  65.6
  1676. + 891105 12   5.50  14   2.8  99.6
  1677. + 891105 13   5.54  16   2.1  94.0
  1678. + 891105 14   5.58  16   2.2  85.1
  1679. + 891105 15   5.63  17   2.5  99.7
  1680. + 891105 16   5.67  19   2.2  90.8
  1681. + 891105 17   5.71  16   1.5  61.3
  1682. + 891105 18   5.75  12   1.6  71.8
  1683. + 891105 19   5.79  16   2.8  98.3
  1684. + 891105 20   5.83  17   3.3  88.8
  1685. + 891105 21   5.88  18   1.3  56.5
  1686. + 891105 22   5.92  20   0.9  38.8
  1687. + 891105 23   5.96  12   1.1  50.8
  1688. + 891106 00   6.00  10   2.2  68.4
  1689. + 891106 01   6.04   8   1.2  54.4
  1690. + 891106 02   6.08   8   1.6  58.4
  1691. + 891106 03   6.13   7   1.1  52.2
  1692. + 891106 04   6.17   6   1.1  56.4
  1693. + 891106 05   6.21   6   1.2  55.7
  1694. + 891106 06   6.25   6   1.0  46.2
  1695. + 891106 07   6.29   7   0.5   7.2
  1696. + 891106 08   6.33  17   0.7  13.8
  1697. + 891106 09   6.38  31   1.1  41.5
  1698. + 891106 10   6.42  37   1.5  52.7
  1699. + 891106 11   6.46  36   3.1  83.7
  1700. + 891106 12   6.50  29   2.0  70.0
  1701. + 891106 13   6.54  28   1.6  71.4
  1702. + 891106 14   6.58  38   3.1  99.1
  1703. + 891106 15   6.63  39   5.6  98.2
  1704. + 891106 16   6.67  43   5.7  98.7  59
  1705. + 891106 17   6.71  27   5.7  99.4
  1706. + 891106 18   6.75  15   4.3  99.8
  1707. + 891106 19   6.79  17   4.1  99.7
  1708. + 891106 20   6.83  20   2.9  99.3
  1709. + 891106 21   6.88  16   3.1  96.3
  1710. + 891106 22   6.92  16   2.8  86.1
  1711. + 891106 23   6.96  16   3.3  96.5
  1712. + 891107 00   7.00  12   3.2  98.2
  1713. + 891107 01   7.04  12   1.6  77.7
  1714. + 891107 02   7.08  10   3.0  98.7
  1715. + 891107 03   7.13   8   1.7  71.1
  1716. + 891107 04   7.17   8   2.8  81.4
  1717. + 891107 05   7.21   8   5.4  92.4
  1718. + 891107 06   7.25   9   5.3  87.7
  1719. + 891107 07   7.29  11   5.6  94.0
  1720. + 891107 08   7.33  15   2.0  74.0
  1721. + 891107 09   7.38  25   2.7  84.3
  1722. + 891107 10   7.42  32   3.0  92.9
  1723. + 891107 11   7.46  41   5.5  97.4
  1724. + 891107 12   7.50  39   6.5  97.5
  1725. + 891107 13   7.54  31   4.4  95.9
  1726. + 891107 14   7.58  35   7.3  98.6
  1727. + 891107 15   7.63  37   8.3  96.3
  1728. + 891107 16   7.67  34   9.2  97.6
  1729. + 891107 17   7.71  20   7.5  99.3
  1730. + 891107 18   7.75  14   7.1  99.5
  1731. + 891107 19   7.79  15   7.1  99.7
  1732. + 891107 20   7.83  16   4.9  99.7
  1733. + 891107 21   7.88  18   4.3  99.7
  1734. + 891107 22   7.92  15   3.1  99.7
  1735. + 891107 23   7.96  11   3.3  99.6
  1736.