The ModulaTor logo 7KB

The ModulaTor

Oberon-2 and Modula-2 Technical Publication

Ubaye's First Independent Modula-2 & Oberon-2 Journal! Nr. 9, Oct-1995

PD Software for the Oberon System V4

from University Linz/Austria

[Ed. note: this months you get metainformation only. Even the amount of metainformation available grew substantially, so there is danger to get lost even at this level. The ModulaTor helps you to find the right sources, be it software, reports or leisure books. If you have problems to get any part of software or publications mentioned here, please don't hesitate to contact me.]

Public Domain Software

The following software is freely available as source code from our department. All modules are written in Oberon-2 and usually run on all implementations of the ETH Oberon System. If a module is specific to the PowerMac Oberon implementation this is explicitly mentioned. The source modules are encoded with the AsciiCoder tool available under Oberon. Follow the link from a module name to the encoded source and copy the whole file to your Oberon System. Middle-click at the heading line (AsciiCoder.DecodeFiles) to decode the source. Then compile it.


   * Coco generates a scanner and a recursive descent parser from an attributed
   * Dialogs A graphical user interface for Oberon V4.
   * Post Mortem Debugger for Oberon for Windows (Included in the Oberon for

     Windows version on this server).
   * Debug A Run Time Debugger for Oberon for PowerMac
   * Kepler An object oriented graphics editor


   * Backup incremental backup of Macintosh directories.
   * Class extracts Oberon-2 class interfaces from a source module.
   * Count counts lines, statements and characters in an Oberon-2 module.
   * Find compares files; lists all lines containing a certain pattern; lists
     clients and imports of a module; searches files for attributes in
     InfoElems (PowerMac Oberon only).
   * Folds allows compilation of folded texts; sets and searches for error
     markers in the compiled text.
   * Lines extracts lines containing a specified pattern from a text.
   * Make topologically sorts a set of Oberon source file names according to
     their import relationship.
   * Random Numbers calculates a random number
   * Screen switches between a one-track and a two-track screen.
   * Statistics implements some statistical distributions.
   * StringSearch implements some popular string search algorithms.
   * Trace provides a list of trace switches that can be set/reset with
   * Xref generates a cross reference list for Oberon-2 programs.


   * Dsp allows screen output in low level modules that can neither import Out
     nor Texts (PowerMac Oberon only).
   * MoreMathL implements some additional mathematical functions (hyperbolic,
     trigonometric and inverse functions).
   * Strings provides string operations which are not supported by the Oberon-2
   * Timer provides time measurements of programs.
   * XIn offers some (now and then) used functions to read in parameters.

Text Elements

For a documentation of the text elements click here. Note that some elements need our 
extended version of Popup elements from below (not the one from the original Oberon 

   * Auto menu elements search (when the text is loaded) for AutoMenuElems
     throughout the text and add these to its menu (needs Handler elements).
   * Balloon elements offer balloon help (i.e., popup explanations) in texts.
   * Clock elements display the current time (original author: R. Griesemer,
     ETH Zurich).
   * Directory elements allow a user to conveniently switch between working
     directories (PowerMac Oberon only).
   * Error elements can be inserted into a text given the error list generated
     by the compiler (original author: C. Szyperski, ETH Zurich).
   * Fold elements can be used to partially and hierarchically fold texts.
   * Font elements allow a user to conveniently set the font family, font size
     and font style of a piece of text.
   * Handler elements install a custom handler in the viewer's contents frame.
   * Index elements mark a text position which may be used as the target of
     hypertext links (LinkElems) or as bookmarks. Additionally index elements
     can automatically create an index of the corresponding text.
   * Info elements contain additional information about the text (author, date
     of creation,...) in which the element is inserted.
   * Kepler links allow setting a link from a text to a Kepler graphic and vice
   * Link elements represent a hypertext link to a mark element (MarkElems).
   * Mark elements see link elements.
   * Picture elements insert PICT graphics from the clipboard into your text
     (PowerMac Oberon only).
   * Popup elements respond to a middle mouse click by showing a text of lines
     (a popup menu). Extended version (original author: M. Franz, ETH Zurich).
   * Version elements allow a user to maintain multiple versions of a module in
     the same file. Similar to conditional compilation, but language

Miscellaneous Examples

   * CrazyFiller draws a Mandelbrot set into the filler viewer.
   * DayDif calculates the difference between two days
   * LearnBox assists you at the (otherwise) annoying task of learning new
   * Square Equation calculates the result of such equations
   * TravelingSalesman a solution for this problem
   * Calendar a calendar showing a year with its weeks

Technical reports are available from as compressed PostScript files (.ps.z):

Report1 M.Knasmueller: Oberon Dialogs, User's Guide and Programming Interfaces. November 1994 *

Report2 K.Koskimies, H.M~ossenb~ock: Designing a Framework for Language Implementation. January 1995

Report3 H.M~ossenb~ock, K.Koskimies: Active Text for Structuring and Understanding Source Code. August 1995 *

Report4 K.Koskimies, H.M~ossenb~ock: Scenario-Based Browsing of Object-Oriented Systems. August 1995 *

Report5 M.Hof: A Run Time Debugger for Oberon. August 1995 *

Coco.Report H.M~ossenb~ock: Coco/R - A Generator for Fast Compiler Front-Ends. ETH Zuerich. February 1990 *

OfrontUser J.Templ: Ofront(tm) - Oberon-2 to C Translator, Version 1.0, User Guide, Software Templ, 1995 [ed. note: this describes commercial software]

* available with full Oberon source code via ftp from Linz


The source for Scene, which is a browser for visualizing the message flow in object-oriented programs is described in Report 4 (see above) is contained in

- Scene.Cod: The sources of Scene (the instrumenter and the browser)

- SceneExample.Cod: The sources of an example system that can be inspected with Scene (the one described in the report).]

The files are to be decoded with the Oberon utility AsciiCoder (just open them with Edit.Open and click on the command AsciiCoder.DecodeFiles in the first line of the text).

OOP examples

This directory contains examples for the use of Oberon-2 in object-oriented programming. The examples are taken from exercises of the OOP lecture that Hanspeter Moessenboeck gave from 1989 to 1993 at ETH Zurich. The implementation of examples was mostly done by Josef Templ, Robert Griesemer, Clemens Szyperski and Wolfgang Weck. You might want to use the examples (or a modified version of them) in your own lecture.

The examples were programmed for the Ceres computer and the Oberon V4 (sometimes V2) system. There might be some modifications necessary to get them running on your Oberon system.

There are 5 files containing 5 different examples, mostly subdivides in 3-4 exercises that the students had to work on for 2 weeks each. The files are encoded with Oberon's AsciiCoder.CodeFiles. The 5 files are:

Dialogs0.Cod A framework for user interface elements (similar to the full Dialogs package of Oberon V4)

Draft.Cod An extensible graphics editor

Formula.Cod A framework for formulas to be included in texts (text elements)

Game.Cod A framework for a board game

Simulation.Cod A framework for event-driven Simulation (still needs a Coroutines.Mod implementation for your computer)

Most of the examples also have the assignments written as text. Some of the assignments are missing, however.

The ModulaTor Forum

Recommended Reading:

1. Rose Wilder Lane: "Discovery of Freedom", 1943, reprinted by Fox & Wilkes, San Francisco, USA, 1993. ISBN 0-930073-00-2 or 0405004257

A quote from Gramma Rose's book, selected by the editor of The ModulaTor, because of it's still reality in Europe, even 50 years after publication: "imagine that the currency changes at every State line, ... and that at any moment a Government decree may change the value of either kind... Go on imagining; you can not equal the European reality... Too much energy is subtracted from productive energy.", page 66).

I doubt that EMU will solve more problems that it'll create. See David DeRosa: *FaceOff* DeRosa Thrashes the Looming EMU

The ModulaTor isn't a publication about political philosophy or liberty, but the books mentioned here and in the last issue are important to understand such simple facts, why 50 years ago, as Rose wrote, it took a foreigner 6 weeks to get a permission by the French Authority to drive his own car and why today, in 1995, the same process takes 6 months. The first example was drawn from Gramma's book, while the second is actual experience by the editor.

IMPRESSUM: The ModulaTor is an unrefereed journal. Technical papers are to be taken as working papers and personal rather than organizational statements. Items are printed at the discretion of the Editor based upon his judgement on the interest and relevancy to the readership. Letters, announcements, and other items of professional interest are selected on the same basis. Office of publication: The Editor of The ModulaTor is Guenter Dotzel; he can be reached by tel/fax: [removed due to abuse] or by mailto:[email deleted due to spam]

Home Site_index Contact Legal Buy_products OpenVMS_compiler Alpha_Oberon_System DOS_compiler ModulaTor Bibliography Oberon[-2]_links Modula-2_links [3KB] [Any browser]

Webdesign by, 13-Nov-1998