Gnuplot 3.2 for OS/2 v 2.0
This archive contains a version of Gnuplot 3.2 compiled for use on OS/2 2.0.
The command line interface of Gnuplot is retained, while graphics output is
plotted in a Presentation Manager Window. The Gnuplot command line
appears in another text-mode window on the screen.
The PM window has facilities for printing the plot on the default printer,
for changing the fonts used on the plot, and for switching between different
ways of plotting the lines (with colour, as dot/dashed lines, or both).
The command line window offers the usual Gnuplot interface. Both Unix-style
and DOS-style editing keys are supported.
The Gnuplot program was compiled with the emx/gcc compiler. It supports
the shell command (type 'exit' to return to Gnuplot), can pipe datafiles
through external commands using '<', and supports command-line substitution.
It runs the full set of demonstration programs supplied in the Gnuplot
source code distribution without problems.
2) Files in this archive
Copyrigh -- Gnuplot copyright
gnushell.exe -- PM shell for gnuplot
gs32beta.exe -- Beta version of 32-bit gnushell (see below)
gnushell.hlp -- help file for above
gnuplot.exe -- Gnuplot 3.2
gnuplot.gih -- Gnuplot help file
gnuplot.ini -- example gnuplot initialisation file
emx.dll -- dll used by Gnuplot
README -- this file
INSTALL -- installation instructions
docs/gnuplot.tex -- Gnuplot manual in LaTeX format
docs/titlepag.tex -- part of above
docs/toc_entr.sty -- part of above
source.zoo -- source code for Gnushell
3) Running Gnuplot
Gnuplot is run by running the PM program Gnushell.
It is suggested that Gnushell is set up as a program object (see INSTALL).
Gnushell supplies the PM display part of Gnuplot.
It starts up a display window, and then starts up Gnuplot in a separate
windowed command-line session.
Gnuplot appears as a separate text-mode window on the screen. The command
line in this window can be treated like the Gnuplot command line on any
other system. Plots are displayed in the Gnushell window.
The Gnushell window has facilities for printing the plot, for changing
the fonts used in the plot, and so on. These of course are handled
through the usual PM interface.
The usual Gnuplot commands can also be used to produce output on
Gnuplot itself communicates with Gnushell through a named pipe.
Plotting commands are sent to Gnushell which produces the plot when all
commands have been received.
4) The port of Gnuplot to OS/2
Changes to the code have been kept minimal. Besides the obvious addition
of the PM driver code, the following are the major changes:
1) Addition of code in readline.c to map keypad keys to editing functions,
to duplicate the MS-DOS mode of editing the command line. (See Gnuplot manual,
2) A workaround in graphics.c and graph3d.c for a compiler bug affecting
the C ?:; ifthenelse operator. This bug causes an internal compiler error
in both versions of the GNU gcc21 compiler.
The rest of the changes are associated with defining the use of the OS2
conditional value, and setting system-dependent stuff like names, signal
handling, and end-of-line handling (LF vs CR+LF).
See the file patches.os2 in the sources.zoo archive
5) Gnushell and Gs32beta
Gnushell is a multithreaded PM program, and the version gnushell.exe
was created using the 16-bit Microsoft 5.1 C compiler, with multithreaded
Gs32beta.exe is a beta version of the 32-bit gnushell. It was created using the
gcc21 compiler with single-threaded libraries. I have protected various
regions of the code against clashes, but there may still be some. Please
try it out, and report problems to me.
6.1 The Gnuplot window is opened with the root directory as the current
directory. It is suggested that a 'change directory' command be placed
in the gnuplot.ini file to start Gnuplot in a particular directory.
(There seems to be no way in OS/2 1.x to start a session with a
non-root working directory (at least that I can find). There may
well be a way under OS/2 2.0, but Gnushell is still 16-bit, as I don't
have a compiler yet that supports multiple threads.)
6.2 If you pipe a datafile through a shell command (manual, page 8, using <)
the screen switches momentarily to the session in which the spawned
command processor is running. (This is tied to the behaviour of system())
7) Things to do
1) It would be nice to get the drawing going as the commands are coming in so
there isn't a delay before things come up on the window. This is just
a question of appropriate synchronisation and enough semaphores, etc.
2) ... suggestions (?)
The Gnuplot copyright is included; please see the file Copyrigh.
emx.dll is Copyright (c) 1990-1992 by Eberhard Mattes.
Copyright (c) 1992 by R. W. Fearick
All rights reserved
THIS SOFTWARE IS PROVIDED AS IS AND WITHOUT WARRANTIES OF ANY KIND.
Permission is hereby granted for personal, non-commercial use of this
software.You are granted the right to use, modify, and redistribute
it for for non-commercial purposes, provided that all copyright
notices remain intact and all changes are clearly documented.
THE AUTHOR MAKES NO WARRANTY OF ANY KIND WITH RESPECT TO THIS PRODUCT
AND EXPLICITLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY
OR FITNESS FOR ANY PARTICULAR PURPOSE.
Roger Fearick[email protected]
29 July, 1992