Nextstep Oberon

1. Introduction

Oberon is a project at ETH Zörich to implement a language and an operating system for workstations. Since the start of that project, Oberon was ported to a large number of other systems where it runs on top of the native OS of each platform (see 3.13). The language Oberon-2 is both object-oriented and modular. Oberon-2 is the latest successor in the family of Pascal, Modula and Oberon. This implementation includes the following:

· System V4
· Oberon-2 Language Compiler
· Access to the Unix libraries and system calls

It does not include support for Objective-C or the Nextstep GUI.
As a starting point we suggest the reading of the following documents (start Oberon and click with the command key at <Edit.Open DocName.Text>):

Introduction: 	Welcome.Text
About the system: 	Oberon.Guide.Text
About the language: 	Oberon2.Report.Text
About Version 4: 	OberonV4.Text

2. Installation

Just unzip one of the three packages (intel, motorola or hp) and move it to your LocalApps or ~/Apps. Then start Oberon and set your preferences.
If you want a fat Oberon follow this procedure:
1. Make a fat App as described in the lipo manpage.
2. Move all the architecture-folders (i386, hppa, m68k) inside the app-wrapper to the fat app.

3. About this system release

3.1 Fonts

Nextstep-Oberon supports all Type 1 PostScript Fonts that are available for Nextstep. Please make sure to use a font that has additional bitmaps otherwise the result will be poor display of small texts. 
To get the original look and feel of Oberon there is a bitmap-only version of the Syntax fontfamily included. To get large fonts and proper printer output you have to purchase the Syntax PostScript Font (see License below).

3.2 Printing

Use the Oberon printing features as documented in EditGuide. Any valid printername (ask your UNIX system administrator) or "Preview" can be specified. Ex.: 'Edit.Print Preview *' opens the most recently marked document in Preview.app. If you use a fullscreen Oberon window you have to command click the titlebar to see Preview.app's window.
There's still a problem when printing more than one page directly to a printer. As a workaround use Preview.app and print there the whole doc.

3.3 Compiler

For historical reasons the Compiler is called iCompiler on i386 machines. This will be changed later.

3.4 Files & Searchpaths

The searchpath for Oberon files is set in the menu preferences. Nextstep Oberon automatically adds a path which points to the location of Oberon.app. This is needed by the system to find all objects, symbolfiles and tools. The search order is the following:

· 	First a file is searched for in the current directory. An initial current directory can be set in preferences and temporarily changed with the oberon command System.ChangeDirectory.

· 	Second Oberon checkes the Oberon.app wrapper and the architecture directory inside the wrapper for the file. Example: If you have installed Oberon in your Apps-Directory on a NeXT machine your system searchpath is ~/Apps/Oberon.app and ~/Apps/Oberon.app/m68k. The wrapper contains architecture independent files like Texts, Tools or Examples. The m68k/i386/hppa directories contain the object and symbol files of the respective architecture.

· 	Finally all the paths in the browser are searched for

Important: Writing is always performed in the current directory! If no initial directory is set, your homedirectory is the initial directory.

3.5 Memoryusage

Set the Oberon memorysize in the Info->Preferences menu. 4 MBytes should be enough for most applications.

3.6 Keyboard

Cursor-Keys are supported for moving the caret and for shifting selected blocks.
The Marker-Key (SETUP) is mapped onto F2 (i386) or * on the number block (m68k).
The Escape-Key removes all marks, the caret, the marker and all selections.
Cmd-. (dot) generates a trap (interrupts the system at current execution point).

3.7 Mice

On black hardware, the command-key is the replacement for the middle mouse button. On intel machines its the same since Next Computer, Inc. does not support 3-button mice :-(
Very important: Enable your right mousebutton in Preferences.app first!

3.8 Diskettes

This is only important for people using the Ceres Computer. However its an alternative to avoid filename conversion on DOS diskettes. 
The Module Backup Supports reading and writing diskettes. Backup.Init writes its own filesystem on diskettes. For this release only 720kB disks are supported. Backup.Format may fail if you have no permissions to /dev/rfd0a. The workaround is to format in workspace and only to initialize in Oberon.
Important: Insert disks only when a panel asks for it (that means after executing commands), otherwise the workspace will try to mount the diskette! (This should be only a problem on m68k-Hardware). On PCs you have to do a Check for Disk in workspace when the panel pops up.

3.9 Screensize

Use the Info->Preferences menu to set the size of the Oberon virtual screen (it's the Oberon screensize, not the size of the window). Fullscreen hides every other window: to hide or to quit Oberon move the mouse to the top of the screen and activate the menu (right mousekey).

3.10 Architectures

Oberon is divided into two parts: The Nextstep application with its bootloader for Oberon and the Oberon System itself which consists of many modules (represented as single objectfile for each module). Oberon objectfiles are kept in different directories ('m68k', 'i386', 'hppa').

3.11 Binary Compatibility

In General, all Oberon Systems are source code compatible. In addition the Nextstep Version has for each architecture a binary-compatible pendant:
    · m68k: 	Oberon for Sun-3 running SunOS 4.1.3
    · i386: 	Oberon for Linux (Windows and DOS binaries are not compatible)
    · hppa: 	Oberon for HP/UX 9.0

3.12 Implementation limitations/Known Bugs

General
· Currently the module Pictures is not supported
· Changes of colors do not take effect immediately
· The secondary bitmap is only supported for block moves
· Not all the special characters generated by key-combinations are supported yet.

Motorola Architecture (NeXT Black Hardware)
· The code generated by the 68020 Oberon compiler is not optimized, thus relative performance of the system may be low compared to the intel or hp architecture.

Intel Architecture (PCs)
· This is a quite new port and perhaps somewhat unstable.
· There seems to be a problem with exit(). So System.Quit traps and Quit in the main menu gives you a message like "objc: FREED(id): message view sent to freed object"

HP Precision Architecture (Geckos, Snakes)
· This is almost ready but not finished yet.

3.13 Other ports

Other ports of the Oberon system:

Ceres (Native, NS32k)
Macintosh
DOS
Windows
Solaris
Linux
Silicon Graphics
Decstation (Mips/Ultrix)
RS/6000 (AIX)
HP 9000/700 (HP/UX)
Amiga
They are available from neptune.ethz.ch via anonymous ftp.

4. Comments, Problems

Please report any problems to the authors directly. Although this release is based on the original system sources it is not supported by the Institut för Computer Systeme ETHZ. For problems concerning the graphicsystem, fonts and the intel and hp machine dependent stuff contact:

George Fankhauser <gfa@ifor.math.ethz.ch>

All problems about the keyboard, mice and the motorola machine dependent part should be reported to:

Adriano Gabgalio <adriano@nice.usergroup.ethz.ch>

4.1 Fixed Bugs since first beta release

· ParcElems (byte-sex problem)
· ReplPattern
· ReplPatternC
· NewPattern (i386)
· PS-Header (Fontname translation)
· Textcaching
· MenuH in Fonts.Mod
· intel traphandler

4.2 Fixed Bugs since second beta release

· Added Oberon fonts
· Types-Module for i386
· Secondary Screen (Screenarea with -ScreenHeight < y < 0)
· Popups
· Garbage Collection
· Printing for all fonttypes
· Tools updated
· Reals bi-endian version

4.3 Fixed Bugs since third beta release

· Cleaned up Math/MathL (intel/hp)
· Added the Kepler drawing system
· Color support for all display modes
· Display1 (Lines/Circles/Ellipses)

5. License

Nextstep-Oberonä
Copyright ã 1990-1994 by Institut för Computersysteme, ETH Zörich

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 the name of ETH not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. ETH makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.ETH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ETH 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.

Syntax Font
Copyright ã 1968 by Linotype AG
Syntax is a registered trademark of Linotype AG.

The Syntax font is owned and used by permission of Linotype AG.RASTER DATA DESCRIBING SEVERAL TYPEFACES OF THE SYNTAX FONT FAMILY IS SUPPLIED WITH THIS RELEASE OF OBERON AND MAY BE USED ONLY IN CONJUNCTION WITH THE OBERON SOFTWARE. ANY OTHER USE OF THE SYNTAX FONT REQUIRES A LICENSE FROM LINOTYPE AG.PostScript versions of the fonts in the Syntax family are available from Linotype, Inc. and its subsidiaries.