# Oberon/ETH Oberon/Tutorial

These tutorial pages were written by André Fischer (afi) with editorial assistance of Hannes Marais, were hosted at the ETHZ and remain under the ETH license. Related content is found in the system via Book.Tool. Extended content is also available on paper. Some tutorial pages are in the WayBack archive.
This very short document is the starting point for any excursion through the tutorial system and the documentation supplied with the Oberon System 3.
Estimated time: < 10 minutes.
This distribution of the Oberon System includes an electronic tutorial system with yet unseen capabilities in computer-based training. Start right now and learn more about the supplied "active books" with integrated working examples!
Our aim is to offer you an entertaining form of education with a steep learning curve on the Oberon System, and on the Gadgets System, together with several other system extensions. This is no substitute to the already published literature which we recommend. However, if you want to try out Oberon before buying a book, this tutorial system will get you going fast, for sure.
The document you are viewing right now, is a hypertext document which you may have opened under the control of the Oberon System itself or viewed directly in the wikibook using a Web browser. Whatever the case may be, it is the same HTML document but will display different characteristics in these different environments. First, like any hypertext document, this text has hypertext links to parts of itself or to other documents shown as blue text in Oberon or as blue, underlined text if you are using a commercial Web browser (an example appears in the previous paragraph). Second, if you have opened it as an Oberon document (including using the Oberon browser), all of the facilities built-in the Oberon System are at the tip of your fingers controlling the mouse. No simulation is used in a tutorial: while consuming and digesting a tutorial you remain in control of Oberon, nothing less and nothing more. Oberon commands and document names are emphazised in red: just like hypertext links they can be clicked to request their execution or correspondingly to open them, using the same mouse key.
Because of that, the best solution is to have an installed Oberon System 3 on your platform. If you wish, you may obtain it from Sourceforge. Otherwise, using a commercial Web browser, you will "only" be able to read the texts and navigate around the Web with one finger in the usual manner. In a Web page the Oberon System 3 graphical user interface components appear as simple GIF or PNG pictures, deprived of the functionality and behaviour displayed in their natural Oberon environment. This arrow is an example.
Using the mouse and the keyboard: Oberon is controlled with a three-button (or 3-key) mouse. If you are unfamiliar with the use of a mouse in Oberon, you may want to familiarize yourself and exercise with your mouse in this environment. Many Oberon newcomers, expert at using the wide-spread two-button mouse or the Macintosh single button mouse, may benefit from a short tuition.
To start the mouse lesson, move the mouse cursor on and click the middle mouse key. Don't know where the middle key of your 2-key or single button mouse is? You want to view that mouse tutorial, but here is a hint: If you are using Oberon for Windows or MacOberon, use the Ctrl key on your keyboard and otherwise, with Native Oberon use the Alt key. These keys appear on either side of your keyboard, but if you are a right-hander, you will probably elect to use the left side key.
You may select among the following tutorials (the order in which they appear is a suggested order of viewing):
Compiler and Builder User's Guide: an introduction to using the compiler and the builder.
Browser and Watson User's Guide: how to use the Browser and how to generate and to retrieve module definitions with the Watson tool.
Columbus User's Guide: how to obtain object and library information and also how to customize objects and manipulate the contents of public libraries with the inspection tool Columbus. Typical activities are: inpecting and modifying gadget attributes and adding new attributes.
Guide to Internet: how to access various Internet resources using the Oberon Netware extensions.
Data Conversion Tools: convert text line endings and edit non-Oberon texts.
Compression and Archiving Tools: how to manage or to create:
    compressed archive files (Compress),
    ASCII coded files distributed by FTP and e-mail or on diskette (AsciiCoder, Base64 and UUDecoder).
Introduction to Gadgets: the basics about the Gadgets system, the Oberon System 3 graphical user interface.
Using Gadgets: how to use Gadgets, concentrating on the interactive manipulation of gadgets by means of their attributes, on the Inspector and on the gadget collection delivered with the system.
Using Gadgets from within Oberon: how to manipulate gadgets from within Oberon programs.
Programming new Gadgets: how to program new gadgets.
Profiler User's Guide: how to measure the execution speed of your system extensions.
Rembrandt User's Guide: how to interactively create new pictures from bitmaps or modify existing ones.
Tutorials Developer's Guide: a meta-tutorial giving you all the clues for building your own tutorials, such as this one, and to convert them to HTML documents.
A number of application packages are delivered with this distribution in archive files only (with a file name extension .Arc), that is, they have to be installed before using them. The decision to install such packages is left to the appreciation of the user. Some of these packages also contain a supporting tutorial: a few examples are given below. Obviously, the text will be presented only if it was extracted from the archive. The following tutorials fall in this category:
Oberon System 3 applications: a description of applications, more precisely system extensions, distributed with this release.
Oberon System 3 Games: a description of games, distributed with this release.
Font Editor User's Guide: how to interactively create your own fonts or modify existing ones.
Almost all tutorials present and describe commands that belong to the various system extensions of concern.
To describe the syntax of these commands, an extended Backus-Naur formalism (EBNF) is used.
Example: Compiler.Compile [\s[e]] ( { moduleName } ~ | * )
Brackets [ and ] denote optionality of the enclosed terms. Braces { and } denote repetition, possibly 0 times. Parentheses ( and ) group terms in the usual manner. A choice is indicated by the vertical bar | .
Examples:
All Oberon commands have the structure Module.Procedure where, by convention, each component starts with a capital letter, as in the example. In these tutorials, English words starting with a lower-case character denote syntactic entities (non-terminal symbols). moduleName is a typical example. Symbols of the language vocabulary (terminal symbols) are enclosed in double quote marks. However, to improve legibility, the quote marks are omitted for the following symbols: * | ~ | ^ | => | \s | \%
Several books and publications document the Oberon Language and the Oberon System. Readers without access to the WWW find some information in References.Text.
The tutorial package consists of several files (object module, tutorial texts, indices and tables of contents) which are listed in the Tutorials.Tool.
Choose a tutorial among those included in this distribution.
Revised, afi 30 May 1997 Installed on 30 05 1997
* ↑ If the HTML source is retrieved to file T.html, it is rendered in Oberon with MM on Desktops.OpenDoc T.html ~.
* ↑ Formerly at http://www.ethoberon.ethz.ch/ethoberon/tutorial.
* ↑ Formerly at ftp://ftp.ethoberon.ethz.ch/System3/.