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).
- 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).
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).
- 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