                        Regina for Windows 2000/XP/Vista/7

This distribution contains 32 bit executables of the Regina Rexx interpreter
for Windows 2000/XP/Vista/7, and some sample programs, most of which are designed to test
new features of this interpreter.

Note that this version does not work on older versions of Windows such as Win9x/NT/Me.
This limitation is based on wanting to include support for handling files larger than 2gb
in size.  To support this a recent version of the MS compiler was required and binaries
produced by that compiler do not support older versions of Windows.

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

This port of Regina to Windows 2000/XP/Vista/7 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 Windows 2000/XP/Vista/7.
    It also means that C programs written using Quercus Rexx and Object
    Rexx under Windows 2000/XP/Vista/7 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
rexx.exe           - Regina executable - does not require regina.dll
regutil.dll        - 32bit Regutil dynamic library
*.mtb              - Native Language message files
msvcr100.dll       - MS Visual C++ Runtime v10

** The following are included if you requested demo programs option on install **
demo\rxtest1.dll   - Sample external function packages; used by dynfunc.rexx
demo\rxtest2.dll     demo Rexx program
demo\*.rexx        - Sample Rexx programs

** The following are included if you requested documentation option on install **
doc\regina.pdf     - Regina documentation
doc\regutil.pdf    - Regutil documentation

** The following are included if you requested development option on install **
include\rexxsaa.h  - Header file for access to regina.dll
lib\regina.lib     - Import library for Visual C++
lib\rexx.lib       - Static library for Visual C++

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)

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 process
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...).

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/
------------------------------------------------------------------------
