                        Regina for Win9x/NT/2k/XP

This distribution contains 32 bit executables of the Regina Rexx interpreter
for Win9x/NT/2k/XP, and some sample programs, most of which are designed to test
new features of this interpreter.

Regina is distributed under the GNU Library General Public Licence.
See COPYING-LIB for details.

This port of Regina to Win9x/NT/2k/XP differs from the port of Regina on the
Windows NT Resource Kit in two ways:

1)  This port is sanctioned by the author of Regina, Anders Christensen.
2)  This port does not provide any OLE or Win32 support nor does it
    provide builtin access to the Registry.  It does however, provide the
    standard Rexx API.  This enables C programs written under OS/2 and
    Unix that use the standard API, to be easily ported to Win9x/NT/2k/XP.
    It also means that C programs written using Quercus Rexx and Object
    Rexx under Win9x/NT/2k to be recompiled using Regina, and C programs
    written for Regina to be recompiled using Quercus Rexx or Object
    Rexx.
    The Win32 functions that were built into Regina on the Resource Kit are
    available as an external function package from http://www.interlog.com/~ptjm

The files in this archive are:

README             - this file
README.3x          - readme files for 3.x releases of Regina
README_SAFE        - details on using Regina is "safe" mode
COPYING-LIB        - GNU Library General Public Licence
file_id.diz        - Description file for BBS use
regina.exe         - 32bit Regina Rexx interpreter executable
regina.dll         - 32bit Regina Rexx interpreter dynamic library
regina.lib         - Import library for Visual C++
rexx.lib           - Static library for Visual C++
rexx.exe           - Regina executable - does not require regina.dll
rexxsaa.h          - Header file for access to regina.dll
regutil.dll        - 32bit Regutil dynamic library
test1.dll          - Sample external function packages; used by dynfunc.rexx
test2.dll            demo Rexx program
demo\*.rexx        - Sample Rexx programs
nls\*.mtb          - Native Language message files

The remainder of this section is relevant only if you are not installing
Regina via the self-extracing installation.

Installation is simply a matter of copying the regina.exe and regina.dll
files into a directory specified in your PATH environment variable.

If you want to have Regina error messages displayed in you native
language, set the environment variable; REGINA_LANG to the two-character
language abbreviation (the first two chracters of a file in the NLS
directory), and set REGINA_LANG_DIR to the directory containing the
*.mtb files.

If you wish to be able to run Rexx programs automatically, ie without
specifying the regina.exe or the file extension, then run the following
Windows commands from a command prompt: (you only need to do this once)
Note: The following commands will only work under NT/2k/XP; they are not
supported under Windows 95/98.

C:\> ftype Regina=c:\regina\regina.exe "%1" %*
C:\> assoc .rexx=Regina
C:\> set PATHEXT=%PATHEXT%;.rexx

The above commands assume that regina.exe is in c:\regina and that you
only want to execute Rexx programs that have an extension of .rexx.
Add another ASSOC command to associate files with other extensions.

You will probably want to set the PATHEXT variable in the Environment
section of the System Control Panel applet.

Using this build of Regina with other Win32 Compilers
=====================================================
Nearly every C compiler on the Win32 platforms generates object code that
is incompatible with one another.  So using this build of Regina with a
C compiler other than MS Visual C/C++ requires that you link with the
import library appropriate to your compiler.  The following provides
instructions on how to build import libraries for a couple of Win32
compilers.
Run these commands from a directory other than where the original regina.lib file exists.
In the commands below that is assumed to be c:\regina.

Cygwin and MingW32
------------------
Command:
 dlltool -A -k --input-def c:\regina\regina_w32_dll.def --dllname c:\regina\regina.dll --output-lib libregina.a
Import Library:
 libregina.a

Borland 5.5
-----------
Command:
 impdef tmp.def c:\regina\regina.dll
 -- you need to edit tmp.def with a text editor and remove lines containing a question mark: '?'
 implib -w regina.lib tmp.def
Import Library:
 regina.lib

ADRRESS WITH
============
Redirection of program's input and/or output in general is relatively
predictable on most operating systems, however mention must be made of
behaviour specific to the Windows platform.

Windows and to a lesser degree OS/2, have techniques to hide windows,
to start programs in separate windows and other cool features.  Florian
did some significant testing of this on all different Windows platforms
and there is bad news. There is no consistent mechanism to start external
programs without error and full control. Sounds strange, is strange.
We have the options to:

1) use the interpreter (ADDRESS SYSTEM) or not (ADDRESS PATH or CMD)
2) start GUI or text mode programs
3) choose the interpreter (CMD.EXE or COMMAND.COM)

The main goal was to start GUIs separately and text mode programs under the
control of the caller (GUI or text). Regina can be part of a GUI progress
and must be treated as GUI in this case. Most people get upset with console
windows popping up showing nothing.

Some combinations of the interpreter, the target programs, and the options
we can pass along to the system lead to nonstarting, nonstopping, crashing
programs. Or we may loose control by means of broken communications to the
subprocess (ADDRESS WITH...).

So we had to choose either to let program run safely OR to let program run
pretty. Blame the guys who designed Windows, not the Regina crew!

So, if you have a DOS graphical extension known as Windows 95, Windows 98 or
Windows Millenium you will get console windows popping up if run from a GUI
program. We are sorry for this, we can't change it.

Those Systems with a 32 bit startup kernel known as Windows NT, Windows 2000,
Windows XP will hide the console windows when starting a text mode program
from a GUI program.

ATTENTION: Your programs might crash or you may loose control either of the
called program or of Regina if you change the interpreter inside your Rexx
program. Never use
CALL VALUE 'COMSPEC', something, 'SYSTEM'
in your program if you don't know the consequences!  Unpredictable behaviour
is likely to occur; use at your own peril!

Regina Resources
================
For more information on Regina, visit the Regina Home page at
http://regina-rexx.sf.net


If building Regina from source, always unzip the source to convert the
Unix end of line characters to Win32 carriage return/end of line characters.
With InfoZip, this is "unzip -a".

Cheers, Mark.
------------------------------------------------------------------------
* Mark Hessling,  mark@rexx.org  http://www.rexx.org/
* Author of THE, a Free XEDIT/KEDIT editor and, Rexx/SQL, Rexx/CURL, etc.
* Maintainer of Regina Rexx interpreter and Rexx/Tk
* Use Rexx? join the Rexx Language Association: http://www.rexxla.org/
------------------------------------------------------------------------
