[Looking for a book logo 9.5KB]
Click here to see interesting book recommendations!

Download the free 64 Bit Alpha Oberon System Evaluation Kit for HP OpenVMS Alpha

[modulAware.com/zel logo]
© (1999-2008) by modulAware.com

Description of the components

Requirements

The AlphaOberon System runs on any HP Alpha workstation under the hp OpenVMS Alpha V6.x to V8.x operating system with XWindows (requires the DECWindows/Motif layered product).

AlphaOberon uses 64 bit memory (VLM) under OpenVMS Alpha 7.x and later to exploit the 64 bit address space1; pointers and integers have 64 bit size.

For more details, see What is a 64 bit compiler?
To get the binary distribution kit CD of OpenVMS v8.3 with many layered products and free product authorization keys (OpenVMS, DecWindows/Motif, ...) for private use, follow the links to OpenVMS Hobbyists at the bottom of this page.

Legal

AlphaOberon was ported by modulAware from the ETH-Zürich's Oberon System V4. AlphaOberon also contains the port of many extensions of the Oberon System V4, developed for V4 at University Linz, Austria.

Copyright (C) 1994 by ETH Zurich, Institute for Computer Systems.
Incorporates changes and extensions made by the Institut fuer Praktische Informatik, Gruppe fuer Systemsoftware, Universitaet Linz.
Copyright (1996-1999) Implementation for OpenVMS Alpha by modulAware.

Permission to use, copy, modify and distribute this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that neither the name of ETH, nor the name University Linz, nor the name modulAware is used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Neither ETH, nor University Linz, nor modulAware make any representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

ETH, AND University Linz, AND modulAware DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ETH or University Linz OR modulAware BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Download

The following files are provided with permission of modulAware.com.
  1. AlphaOberon base system with Tetris (Obtris) game and TrapDemo (size about 1.2MB)

  2. AlphaOberon online documentation plus more applications and games (optional, size about 1.1MB)

  3. AlphaOberon screen and printer fonts (optional, size 300KB)

Installation

To unzip the zip-files, the OpenVMS unzip utility is required. UNZIP.EXE for Alpha is on the OpenVMS Hobbyist CD kit. (Note: Unzip with other non-OpenVMS specific tools will not restore the correct file attributes.)

Install the Unzip as a foreign command using the command

$ unzip :== $device:[dir]UNZIP.EXE
and then unzip the downloaded zip-archive(s) with the command(s)
$ unzip aose.zip
$ unzip aose1.zip ! optional
$ unzip aose2.zip ! optional
This will extract all files into a sub-directory [.aose] of your default directory. Then change your default to [.aose], set the required logical names and commands:
$ set default [.aose]
$ @setup.com
and start AlphaOberon with the command:
$ Oberon
$! or in order to use VLM under OpenVMS Alpha 7.0 use
$ Oberon/pointersize=64/heap=10

To start Obtris, an Oberon-2 implementation of the famous Tetris game

  1. move the mouse pointer to the pop-up menu called "Tools" (marked in light blue color),
  2. press and hold the middle mouse key,
  3. move the pointer to the menu entry "System.Open Obtris.Tool" and
  4. release the middle mouse key. This will open a viewer called "Obtris.Tool".
  5. Move the pointer to the text "Obtris.Open" in this viewer and middle-click. This will open a new viewer on the left-hand side.
  6. Move the pointer to the pop-up menu "Start" in the header-line of the Obtris viewer and middle-click.
  7. Now play using the cursor keys and "space" to drop the objects.
  8. To interrupt the game, press "p" on the keyboard.
  9. You can later resume the game using "Start" menu.
  10. To read the Obtris instructions, middle-click on the text "Edit.Open" in the Obtris tools window.
  11. To leave the Oberon System, middle-click on the text System.Quit.

To compile the Oberon-2 example TrapDemo

  1. Select the beginning of the file name string "TrapDemo.Mod" in the System.Tool viewer, by moving the cursor over the "T" of this string and click the right mouse button.
  2. Move the mouse over the string "XE.Open" and click with the middle mouse button. This opens a new viewer on the left hand site, called TrapDemo.Mod.
  3. Move the mouse over the string Compiler.Compile in the last source line of the TrapDemo source file and click on this command. This starts the AlphaOberon-2 compiler.
  4. After the System.log viewer displays "ok", click on the string "TrapDemo.Trap". This displays a string and some numbers in System.log and then opens a new viewer System.Trap because TrapDemo causes an integer overflow. The trap-viewer contains the invocation contexts of the recursively called procedures "TrapDemo.Q". The most recent invocation is on the top.
  5. You can scroll in the trap-viewer by clicking with the left mouse button in the scroll bar.

To try the SortPlus demo

click on the string "SortBasics.Open", then click on the pop-up menu "Algorithm" and select one or more SortPlus-algorithms. Then "Randomize" and "Start". SortBasics uses coroutines which provide for quasi-parallel, cooperative execution on a single processsor system.

Third Parties' Copy-right and -left

The Oberon-2 sources of the Tetris game and many other applications and tools are included. The authors and the copyright of each component and their particular copy-right or -left are mentioned in the corresponding source code, text- or tool-files.

Getting started with Oberon

Oberon is an extensible system. There is no difference between functions offered by the operating system and functions added by a user which enhance the basic system. As a matter of fact, Oberon abandons the notion of a Program altogether. Atomic actions in Oberon are called Commands.

Commands are parameterless procedures which may be executed directly from the operating system interface. Procedures from anywhere in a module hierarchy may be called in this way and there is no need for a "top" module which distributes commands to other modules. Instead, command distribution is built into the operating system. When a command terminates, control is passed back to the operating system's main loop. However, the module that contained the last command remains loaded in the system and all of its global variables remain unaltered. Subsequent commands may reference these variables freely.

The granularity of commands may be quite fine. Typical commands display the directory of a storage device, increase the font size of the text last selected or compile the contents of the active window. A user may execute commands in any sequence and may thus be working on completely different problems in different windows at the same time. We call this "one-process multitasking".

Using Commands

Commands are activated by the use of an Action Button, which is mapped to the middle mouse button. Pressing the Action Button while pointing at any text anywhere on the screen will try to execute a command of that name. This may be text in a word processor document, captions in a drawing, or even the title string of a window.

The system will then attempt to interpret the text that is pointed at as "Modulename.Commandname" and search for the corresponding module, possibly loading it from disk if it cannot be found in memory. If the module is present or can be loaded, it will then search for the requested command and execute it. If the module or the command cannot be found, the system will simply resume its previous state.

For example, when you click with the middle mouse button on the string "System.Time" displayed in a text viewer, this command will display the current time in the viewer called System.Log, i.e., the window in the upper right corner.

Extensibility

The main feature of Oberon is extensibility. A user can add an arbitrary number of commands to the system at any time simply by writing a module and compiling it. There is no need to install the command, i.e., it may be activated as soon as compilation is completed and modules containing commands are not added to the system until an actual call is made. The of commands that users keep (called Tools in Oberon) are regular text documents and freely editable.

Even the basic resources of the system are extensible. For example, the each text viewer is editable supports "live" extensions of characters which are sent messages when editing operations occur. The moving objects such as the Sisiphus icon and the analog clock, that you see when you start AlphaOberon are such "extensions" of characters. They float in the text just as characters, and may be cut, copied and pasted.

To Probe Further

Additional documentation is supplied in this distribution. To view an introduction into the Oberon System, simply type the text "XE.Open Oberon_Guide.Text" in any text viewer and execute the command "XE.Open Oberon_Guide.Text", by moving the mouse over the string XE.Open and then click the middle mouse button

Implementation specific issues are described in "AlphaOberon_Guide.Text". The mentioned Text files are contained in the 2nd zip-archive.

Portability

The Oberon System is also available for Ceres, Amiga, Sun SPARC, Apple MacIntosh, PowerMac, DECStation/MIPS, IBM RS/6000, Silicon Graphics, HP Apollo Serie 700, PC/Linux, MS-Windows 3.x, Windows-NT (Intel), and Windows95/98.

The Oberon libraries on those machines as well as the document architectures in all implementations are identical. For example, you can open any Oberon text-document on any of the machines mentioned above and see the same moving icon and clocks, despite even the fact that not all of the machines use the same byte ordering.

If you want want to open other text files created with an Oberon System V4 under a foreign operating system, set the appropriate file attributes first. In most cases the required file format is stream_undefined with carriage control or stream_cr or stream_lf. To change the file attributes, use the free program File.exe.

For example, on the OpenVMS FreeWare cd-rom V5.0 (or later) which is distributed with HP OpenVMS 7.x, File.exe is in the directory [000tools.alpha], the associated command language definition file File.cld and the help file File.hlp are in the directory [000tools.vax] of disc 1 of 2.

Support

We propose to discuss Oberon and Oberon System related topics in news:comp.lang.oberon, and OpenVMS related questions in news:comp.os.vms on the usenet.
Notes:
¹) 64 bit address space is used for everything but the process stack; this is an OpenVMS Alpha restriction.

The Alignment Trap :: Navigator

[ The Alignment Trap Home
| About The Alignment Trap
| Oberon System and Compiler Implementations (OSCI)
| Comparison of Oberon-2 with Modula-2
| From C/C++ to Oberon-2
| Oberon-2 Language Report
| AlphaOberon-2 Compiler User's Guide
| Download AlphaOberon for OpenVMS Alpha ]

ModulaWare web-site

Copyright (1999-2011) by modulAware.com
Last revised 01-Mar-2011

Disclaimer: The banner advertisement at the top of this page is dynamically inserted by the web-site hosting service; The banner image content and the URL it refers to is outside the responsibility of modulAware.com