home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 8 / CDACTUAL8.iso / share / os2 / graficos / gle / readme.os2 < prev    next >
Encoding:
Text File  |  1994-07-05  |  15.6 KB  |  379 lines

  1. ********************************************************************************
  2. *                         GLE for OS/2                                         *
  3. *                                                                              *
  4. *                      ported by Axel Rohde                                    *
  5. ********************************************************************************
  6.  
  7.  A little bit history:
  8.  ---------------------
  9.  
  10.                 32 bit DOS version of GLE by Axel Rohde
  11.                 ---------------------------------------
  12.  
  13. Introduction: (By Chris)
  14.         For a long time I have been explaining to people that a 32bit 
  15.         dos version of GLE was not possible with currently available 
  16.         compilers and libraries.
  17.         Clearly Axel has no appreciation for the impossible and has gone
  18.         ahead and compiled a version anyway (with absolutely no assistance
  19.         from me).  On any 386 or better machine this version of GLE should 
  20.         run without problems, it's main features are these:
  21.                 1) No 640K memory restrictions.
  22.                 2) Much faster.
  23.                         .
  24.                         .
  25.                         .
  26.                         .
  27.                         .
  28.                         
  29.  
  30.  
  31.  This happened a few month ago, after compiling GLE under Linux in october
  32.  1993. GLE 32 for DOS was released in January 1994. Now, it's:
  33.  
  34.                          GLE for OS/2
  35.                          ------------
  36.  
  37. --------------------------------------------------------------------------------
  38.  
  39.  
  40.                         Installation
  41.                         ------------
  42.   Since GLE for OS/2 uses Presentation Manager calls to display output,
  43.   you only have to set the environment variable GLE_TOP in OS/2's CONFIG.SYS,
  44.   include the directory, where the executables are in the PATH environment
  45.   and the directory, where the DLL's of EMX are in the LIBPATH environment.
  46.   
  47.         set GLE_TOP=c:\glepm
  48.         set PATH=......;c:\glepm
  49.         set LIBPATH=......;c:\glepm\dll
  50.         
  51.   I used Eberhard Mattes nice port of GNU C to compile GLE. Therefore,
  52.   a small number of Dynamic Link Libraries (DLL's) is needed to run GLE.
  53.   If you have already installed them or a newer version, you may erase
  54.   all the DLL's in the GLE\DLL directory to save disk space. If your DLL's
  55.   are older (than EMX 0.8h fix 08), it should be safe to replace them.
  56.  
  57.  
  58.    Notes for those, who use both,  GLE 32 for DOS  and  GLE for OS/2
  59.    -----------------------------------------------------------------
  60.  
  61.   It is possible, to use all programs of this package under DOS, too,
  62.   except GLE_PM and SURF_PM. EMX/GCC comes with a DOS extender called
  63.   EMX.EXE. EMX.EXE requires the DOS-extender-standard VCPI. VCPI is
  64.   established, if you have the following entries in DOS's CONFIG.SYS:
  65.  
  66.         device=c:\dos\himem.sys
  67.         device=c:\dos\emm386.exe RAM 2048
  68.  
  69.   the switch <RAM 2048> for EMM386 creates 2MB EMS memory, which can be
  70.   accessed by EMX.EXE.
  71.   
  72.   A math co-processor (i387xx), a 486DX or a Pentium is required, to use
  73.   EMX.EXE under DOS. If you don't have such a CPU or if you want to run
  74.   GLE in an OS/2 or Windows DOS-Box, you might use another DOS-extender
  75.   called RSX or RSX32. It does not require a co-processor but an
  76.   DPMI-server (Dos Protected Mode Interface). Both DOS-emulations of OS/2
  77.   and Windows serve DPMI, but not plain MS DOS 5 and 6.x. Other products
  78.   like Quarterdeck's QEMM/QDPMI or Qualitas 386ToTheMax serve DPMI, too.
  79.   Note, that  GLE 32 for DOS  has a co-processor emulator and runs under
  80.   DPMI (except GLE_VGA and SURF_VGA), too.
  81.  
  82.   To make GLE for OS/2 use RSX or RSX32 under DOS or in a DOS-Box, set
  83.   the following environment in your autoexec.bat:
  84.  
  85.         set EMX=c:\gle\RSX32.exe
  86.  
  87.   
  88.   I recommend running  GLE for OS/2 + RSX  under OS/2 and it's DOS-Box and
  89.   GLE 32 for DOS under  *PLAIN*  DOS. The display drivers run only on
  90.   OS/2's PM or under plain DOS.
  91.  
  92.   There is no Windows version of a display driver and I will NOT spend any
  93.   time to implement one, unless Windows is (nearly) full 32 bit, runs on an
  94.   8 MB equipped PC and has a text-mode (as Windows NT has). A compiler (GCC!)
  95.   and a toolkit for Windows are required, too.
  96.  
  97.  
  98.  
  99.    Differences between GLE for OS/2, for DOS and for UNIX/X-Window-System
  100.    ----------------------------------------------------------------------
  101.                       and some hints for using
  102.                       ------------------------
  103.  
  104.    If GLE_VGA (DOS) draws a graph onto the screen, it switches from text- to
  105.    the graphics-mode. The editor of GLE_X (X-Windows) runs in text-mode, too.
  106.    If it draws a graph, it forces the X-Windows server to create a new window
  107.    on a specified display and draws into it. Under OS/2, it is possible
  108.    to run a OS/2 text-mode program in a PM Window, but it's impossible (or
  109.    not documented), to force the PM to create a new window and to draw into it.
  110.    Since OS/2 programs are marked as FullScreen (text-mode, only in fullscreen
  111.    mode), WindowCompatible (text-mode, windowable) or WindowAPI (PM program),
  112.    and I did not want to rewrite the text-mode part of GLE to use a
  113.    'Vio Presentation Space' (since EMX has no Borland-compatible text-mode
  114.    library, I rewrote some text-mode calls using EMX calls, though), the
  115.    editor of GLE runs in text-mode as usual. GLE_PM and SURF_PM are marked
  116.    WindowCompatible. If GLE draws onto the PM, it writes the text being edited
  117.    into a temporary file (gleos2.tmp) and starts ITSELF again. It is possible
  118.    to start a WindowCompat marked program as a PM program using the following
  119.    command (is it a bug? I hope, it will never be fixed!):
  120.    
  121.         start /PM program
  122.  
  123.    GLE_PM and SURF_PM use the API call DosStartSession() to do this. GLE and
  124.    SURFACE determine what to do from their commandline-arguments. The switch
  125.    into displaying mode, when they get the DRAW option:
  126.  
  127.         start /pm gle_pm  /draw gleos2.tmp
  128.         start /pm surf_pm surfos2.tmp /d /o something.sur
  129.         
  130.    YOU should not do this.
  131.    If the drawing is finished, GLE normally prints error messages to the
  132.    screen, if there are any. Since I don't now, how to make the editor-
  133.    and the drawing-instance communicate with each other (shared memory,
  134.    pipes, semaphores... all these IBMisms. I don't have a cookbook for
  135.    OS/2 programming, only the referenes. Chris Pugmire, the author of GLE,
  136.    might not be able to regcognize his source.), the drawing instance of
  137.    GLE_PM displays a message on it's title bar, if there were errors, warnings
  138.    or messages during compilation. You can go back to the editor instance of
  139.    GLE_PM using the keystroke ALT+TAB and then pressing F5 to display these
  140.    messages. GLE_PM writes them into the file GLEOS2.ERR. SURF_PM behaves a
  141.    little bit different. You won't see any graphics window, if there are
  142.    errors, since it does not display anything if errors happen. If no
  143.    graphics window appears after pressing F10, you should press F5 and
  144.    take a look at the error messages.
  145.  
  146.    The graphics instances are *replaced* (killed using DosStopSession()), if
  147.    there is one open and you press F10 again.
  148.    
  149.    The graphics portion of GLE_PM draws into a 'normal Presentation Space'.
  150.    This enables the redrawing of the window contents, if it was hidden behind
  151.    another window. The redrawing is slow compared to a BitBlit operation
  152.    from a 'memory Presentation Space' to a Presentation Space on the screen.
  153.    Since it is useful to see, *where* an error occurs, I didn't implemented
  154.    drawing into an invisible bitmap and blitting it to screen after completion.
  155.  
  156.    After realising, that drawing thick lines in a PM window is slow (see below)
  157.    and those thick lines aren't really thick, I removed the code that switches
  158.    between line-widths. I implemented Shades and Grid patterns (see shade.gle
  159.    or wallx.gle). They look different compared to the output of GLE_PS +
  160.    Ghostscript (a postscript emulator) + Ink Printer, but look very much
  161.    better than the output of GLE_VGA and GLE_X. They draw solid black instead.
  162.    There are only 8 different line-styles available using GpiSetLineStyle(). It
  163.    is not possible, to define new line-styles.
  164.  
  165.  
  166.                         Speed
  167.                         -----
  168.    GLE_PM is significantly **SLOWER** than GLE 32 for DOS and GLE_X under
  169.    Linux / XFree86 2.1.1 on the *same* Hardware.
  170.    There are different reasons:
  171.  
  172.         1) Those people at IBM are unable to implement a good HardDisk cache.
  173.         2) PM Speed is not really high with some functions.
  174.         3) OS/2 is RAM wasting.
  175.  
  176.    My 'benchmarks' are wallx.gle and adphas.gle (directory kill-gle.16).
  177.    wallx is an example for a large number of fonts, markers, line-styles,
  178.    colors grids and shades. Fonts are loaded from disk and this requires
  179.    caching for high speed.
  180.    adphas calculates and displays a set of curves with small steps and
  181.    loads and displays 5000 lines data (small steps, too). Due to short
  182.    line segments, accelerated graphics boards don't gain much. A high
  183.    bus speed makes more effect.
  184.    
  185.    My equipment: 486DX 50MHz, 8 MB RAM, not really slow disks, S3 805
  186.                  VESA Local Bus graphics board (with 0 Wait at 50MHz !).
  187.    
  188.    Configuration:
  189.         DOS:
  190.                 3 MB HD cache, NON-accelerated graphics driver.
  191.  
  192.         OS/2:
  193.                 1.5 MB HD cache, HPFS, Workplace Shell is OFF!!!
  194.                 PM driver accelerated, 1024x768, 256 colours.
  195.  
  196.         Linux:
  197.                 not fixed cache size, extended file system II,
  198.                 kernel 1.1, accelerated X-server XFree86S3 Ver. 2.1.1,
  199.                 1096x850, 256 colours.
  200.  
  201.  
  202.    1.5 MB is absolutely enough to load 270 kB program and 200 kB Data.
  203.    The RAM-wasting Workplace Shell is disabled to free RAM and replaced
  204.    by a clone of a popular commander.....
  205.  
  206.  
  207.    Compiler: ALL programs were compiled with GNU C!!! Porgrams, that only
  208.              compute, run at the same speed under DOS, OS/2 and Linux!
  209.  
  210.    Procedure: execute
  211.                        GLE_VGA /draw <file>             under DOS
  212.                        GLE_X   /draw <file>             under Linux
  213.                        start /PM GLE_PM /draw <file>    under OS/2
  214.  
  215.               twice, to load the programs and the data into HD-cache. Time
  216.               was stopped for the *second* run. There were no other progs
  217.               running.
  218.  
  219.  
  220.         Times in seconds:
  221.  
  222.           OS                        adphas          wallx
  223.         ---------------------------------------------------------
  224.  
  225.           Linux                         2.5             2
  226.  
  227.           DOS                           3.5             3
  228.  
  229.           DOS w/o cache                 6               8
  230.  
  231.           OS/2                          6               9.5
  232.  
  233.  
  234.  
  235.   Hey IBM! 32 Bit alone is NOT enough....... Do your homework!!!
  236.  
  237.  
  238.  
  239.                          RESTRICTIONS and BUGS
  240.                          ---------------------
  241.  
  242.    1) The vector-fonts of the GLE for OS/2 are compatible to those from
  243.       GLE 32 for DOS and Linux. They are not compatible to 16 bit fonts
  244.       that come with the 16 bit release of GLE for DOS (by Chris Pugmire).
  245.       They may be compatible to fonts that were created
  246.       under other (small endian!) 32-bit operating-systems.
  247.       If you use GLE under Linux, too, it may be a good idea to mount the
  248.       DOS-partition, that contains GLE 32 or GLE for OS/2 (including fonts)
  249.       and create a link:
  250.  
  251.       ln -s /dospartition-mount-directory/gle32/font /usr/local/gle/font
  252.  
  253.       If there is GLE 32 for DOS somewhere on a DOS partition (for exmaple f:),
  254.       simply erase the fonts in the GLE for OS/2 directory and set
  255.       GLE_TOP=f:/gle32/.
  256.  
  257.       This will save approximately 900 kB harddisk space.
  258.  
  259.    2) Makefmt and fbuild are missing because EMX's library lacks ecvt().
  260.       Both programs are used to calculate vector-fonts in the Unix-version
  261.       of the source-distribution. Both programs are NOT included in the
  262.       16-bit DOS-version of GLE, too. This package includes ALL (allready
  263.       calculated) fonts from the Unix-source distribution. They were calculated
  264.       under Linux.
  265.  
  266.    3) SURF_PM doesn't erase all temporary files.
  267.  
  268.  
  269.  
  270.                          Suggestions
  271.                          -----------
  272.  
  273.    You should get Ghostscript from a ftp site! Especially, if you own
  274.    a supported color-printer (HP Deskjet 500c, 550c). Ghostscript prints
  275.    Postscript output on non-postscript-capable devices. It can convert
  276.    Postscript to various bitmap-formats. The current version is 2.6.1.
  277.    There's a PM interface called GVPM.
  278.    Ghostscript is free usable (GNU Public License), fast and reliable.
  279.  
  280.  
  281.  
  282.              Access to the DJGPP patches for the Source
  283.              ------------------------------------------
  284.  
  285.    The complete sources are at least available from Chris Pugmire's
  286.    FTP-server (tui.marc.cri.nz). GLE for OS/2 should be available
  287.    from ftp.informatik.tu-muenchen.de (131.159.0.198),
  288.    ftp.uni-stuttgart.de and ftp.cdrom.com. 
  289.  
  290.  
  291.                         Postscript documentation
  292.                         ------------------------                        
  293.  
  294.    The complete Postscript documentaion of GLE 3.2 is in the directory
  295.    glepm\postscri.doc. I made diff-files to patch them into a
  296.    Ghostscript-printable state. For further information, take
  297.    a look into the file gle32\postscri.doc\readme.pat. The GNU 'patch'
  298.    utility is included in this package.
  299.  
  300.  
  301.   
  302.                               LEGAL STUFF
  303.  
  304.  Copyright-holders are:
  305.  
  306.  GLE:             Please ask Chris Pugmire.
  307.  
  308.  MS-DOS, Windows: Microsoft Corporation.
  309.  
  310.  QEMM386, QDPMI:  Quarterdeck.
  311.  
  312.  386ToTheMAX:     Qualitas.
  313.  
  314.  i386SX, i386DX, i486SX, i486DX, Pentium:        INTEL.
  315.  
  316.  OS/2:            IBM Corporation.
  317.  
  318.  HP Deskjet:      Hewlett Packard.
  319.  
  320.  Ghostscript:     Aladdin Enterprises.
  321.  
  322.  
  323.  
  324.                  Legal stuff (selfprotection)
  325.                  ----------------------------
  326.  
  327.  LIKE ANYTHING ELSE THAT'S FREE, GLE FOR OS/2  AND ITS ASSOCIATED UTILITIES ARE
  328.  PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR
  329.  IMPLIED. IN NO EVENT WILL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES
  330.  RESULTING FROM THE USE OF THIS SOFTWARE.
  331.   
  332.  These programs are distributed in the hope that it will be useful,
  333.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  334.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  335.  
  336.  
  337.  
  338.                         Reporting bugs
  339.                         --------------
  340.  
  341.  Bug-reports are wellcome (to me and Chris Pugmire). It can not be guaranteed
  342.  that they can be fixed. You should report bugs, that seem to be unique to
  343.  GLE 32 and GLE for OS/2, to me.
  344.  
  345.  
  346.         Axel Rohde
  347.         email: exp109@physik.uni-kiel.d400.de
  348.  
  349.         Chris Pugmire's email adress: in%"srghcxp@grv.dsir.govt.nz" 
  350.                                         srghcxp@grv.dsir.govt.nz
  351.  
  352.  
  353.  
  354.   Thanks to:
  355.   ----------
  356.  
  357.   Chris Pugmire         for creating GLE.
  358.  
  359.  
  360.   Eberhard Mattes       for porting GCC to OS/2 (and DOS), and for emTeX,
  361.                         of course. 
  362.  
  363.   All the GCC and Gnu people and all other people, who write free software.
  364.  
  365.   Lars Petersen         for OS/2 documentation.
  366.   
  367.   Hartmut Schirmer      for BCC2GRX and help with GLE 32.
  368.          
  369.   Queensrÿche, Megadeth, Fates Warning, Dire Straits and many other bands.
  370.                         They protected me against the noise of 'OS/2 swapping
  371.                         on the HardDisk'. Linux isn't such a RAM-hog.
  372.  
  373.  
  374.  
  375.  
  376.   Happy GLEing,
  377.                         Axel Rohde
  378.   July 1994
  379.