Oberon Public Domain Software

The following software is available in 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/R generates a scanner and a recursive descent parser from an attributed grammar.
  • Dialogs A graphical user interface for Oberon V4 (MK).
  • Trace and Post Mortem Debugger for Oberon for Windows (Included in the Oberon for Windows version on this server).
  • A Trace and Post Mortem Debugger for Oberon for PowerMac (Included in the Oberon for Windows version on this server).
  • Kepler An object oriented graphics editor
  • FileManager A graphically oriented file manager
  • FTP A graphically oriented ftp client (requires FileManager)
  • ODBC A package for accessing ODBC databases from Oberon programs (CS).
  • NetNews A comfortable NetNews reader (PH).
  • HeapInspector A tool to inspect the heap and other run-time data structures (MR)


  • Backup incremental backup of Macintosh directories (HM).
  • Batch introduces basic batch facilities (mah).
  • Beautifier formats your Oberon-2 code (Description) (MK)
  • Class extracts Oberon-2 class interfaces from a source module (HM).
  • Count counts lines, statements and characters in an Oberon-2 module (HM).
  • 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) (HM).
  • Folds allows compilation of folded texts; sets and searches for error markers in the compiled text (HM).
  • Lines extracts lines containing a specified pattern from a text (HM).
  • Make topologically sorts a set of Oberon source file names according to their import relationship (HM).
  • Packager packages several object files into one compound object file that is loaded as one (thereby saving time; PowerMac Oberon only) (CS).
  • Profiler instruments source programs by inserting counters and timers (MK)
  • Random Numbers calculates a random number (MK).
  • Screen switches between a one-track and a two-track screen (HM).
  • Statistics implements some statistical distributions (CS).
  • StringSearch implements some popular string search algorithms (CS).
  • ToDo helps to schedule activities and meet deadlines (HM).
  • Trace provides a list of trace switches that can be set/reset with commands (HM).
  • VCS is a version control system for text files (HM).
  • Xref generates a cross reference list for Oberon-2 programs (HM).

Utility Modules

  • MoreMathL implements some additional mathematical functions (hyperbolic, trigonometric and inverse functions) (CS).
  • Strings provides string operations which are not supported by the Oberon-2 language (HM).
  • Timer provides time measurements of programs (HM).
  • XIn offers some (now and then) used functions to read in parameters (CS).

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 system).
  • Auto menu elements search (when the text is loaded) for AutoMenuElems throughout the text and add these to its menu (needs Handler elements) (mah).
  • Balloon elements offer balloon help (i.e., popup explanations) in texts (HM).
  • Clock elements display the current time (original author: R. Griesemer, ETH Zurich).
  • Directory elements allow a user to conveniently switch between working directories (HM).
  • Fold elements can be used to partially and hierarchically fold texts (HM).
  • Font elements allow a user to conveniently set the font family, font size and font style of a piece of text (HM).
  • Handler elements install a custom handler in the viewer's contents frame (HM).
  • 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 (mah).
  • Info elements contain additional information about the text (author, date of creation,...) in which the element is inserted (CS).
  • Kepler links allow setting a link from a text to a Kepler graphic and vice versa (HM).
  • Link elements represent a hypertext link to a mark element (MarkElems) (HM).
  • Mac Picture elements insert PICT graphics from the clipboard into your text (PowerMac Oberon only) (HM).
  • Mark elements see link elements (HM).
  • Open elements perform a generic open command on the selected item. Depending on the suffix of the item different commands are called. The name (e.g. * or *.Mod) of an OpenElem is taken as a pattern to collect all matching files in the current directory (CS).
  • 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) (HM).
  • SectionLinkElems represents a hyptertext link to a section of a report (MK)
  • Tree elements extension of the Popup elemements which - located in a menu - analyzes the Oberon module in the corresponding window and shows - in its popup - a tree-like representation of the module's structure. By selecting a shown name, the source code is scrolled to the name's definition position. (mah).
  • Version elements allow a user to maintain multiple versions of a module in the same file. Similar to conditional compilation, but language independent (HM).

Miscellaneous Examples


  • Prog.Guide.Text is an Oberon hypertext document that shows examples of many frequent programming tasks under Oberon.
  • Elem.Guide.Text is an Oberon document that explains how to use text elements.
  • Balloon.Text is the global dictionary used by BalloonElems. It contains short descriptions of most types and procedures of the Oberon system. Might be worth studying also without BalloonElems.
  • Reference Card. This postscript document is a reference card with the most frequently used commands of the Oberon system.

Students - Projects