- What is this?
This is an implementation of the Regina Rexx interpreter for the RISC OS operating system
For further information on Regina & Rexx visit the following sites
http://regina-rexx.sourceforge.net For the Regina Rexx home page
http://www.lightlink.com/hessling/ For Mark Hessling who now supports it and has links to the site of the original libraries and ports to other platforms
http://www.rexxla.org/ The Rexx Language Association
- This version
There are a number of different version levels associated with this implementation
- Rexx - 4.80
This is the level of Rexx implemented in this version of Regina
- Regina - 2.0
The is the level of this version of Regina
- RiscOS port - a,b,c etc
This is the latest version of this RISC OS port made available on this website
- Filetypes
At the moment, the filetypes used are unofficial and may conflict with others you use. When, and if, official filetypes are obtained then updates will be applied to use those instead
- 0FE REXXT - Will cause the file to be run in a task window.
- 0FF REXX - Will cause the file to be run without a task window.
- Commands
- REXXM - This is the command that invokes the module version of the interpreter
- REXX - This will invoke either the application or REXXM depending on which application was last seen.
- Implementation differences
There are two implementations available.
- Regina2c - this executes Regina as a standard application program.
- ReginaM2c - this implements Regina as two modules and is invoked with the REXXM command.
The second is the preferred one and has the following advantages.
- If two or more Rexx scripts are being run simultaneously then only one copy of the Rexx interpreter is loaded into memory, thus reducing the memory requirements.
- It makes no direct use of application memory so, if none Rexx commands are issued within the Rexx script, there is less overhead. With the application version, the Rexx interpreter must be moved in memory, in case the command uses application space, and then moved back afterwards.
- It is a prerequisite for implementing the API to support the writing of Rexx environments.
Why distribute both?
- When using C to write a module application, it would normally use application space for working memory. I am not certain how reliable is the method I used to get around this. For that reason, if any strange behaviour is observed with the module version, then the same should be tried on the standard version first to test whether the problem might be attributable to this.
- Executing Rexx scripts
There are two ways
- Create a file with one of the filetypes mentioned above and double click on it in the standard RISC OS manner.
- Create a file and use the REXX command to execute it i.e. REXX filename
- Limitations
Executable only. No libraries yet, i.e. API not yet finished.
- RISC OS levels supported
It has been tested on RISC OS 4.02 and 4.29 (the current SELECT version). I would be grateful for feedback on whether or not it works on other releases.
- Memory requirements
Module version
- 208k from the module area for the base code. This is for the module and is independent of any Rexx script being run.
- 109k from the module area for each Rexx script being run. This is the workspace.
- 160k minimum memory for the dynamic areas for each Rexx script being run. This may increase for large scripts.
- Copyright
The Regina Rexx Interpreter
Copyright (C) 1993-1994 Anders Christensen
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Licence