From Wikibooks, open books for an open world
Jump to navigation Jump to search

This document was originally hosted at the ETHZ. It remains under the ETH license and is in the WayBack archive.

Oberon.Text guide


A personal computer needs to be configured and tailored to a given machine environment and to a personal profile. For this purpose, special tools are available in Oberon. They are described in the following sections separately for each implementation. Further platform-dependent details must be obtained from the specific installation guides.

What is the configuration tool Oberon.Text?

Oberon.Text is a configuration tool in the form of a simple text that can be edited freely. The configuration data is structured according to a simple, self-explanatory and recursive syntax whose formal definition in EBNF (Extended Backus Naur Form) is as follows:

Configuration = Group . 
Group = { Entry } { Token } . 
Entry = [ Name "=" ] Value . 
Value = Token | "{" Group "}" . 
Token = any token from Texts.Scanner, where "{" and "}" must occur pairwise .


System = { 
   InitCommands = { 
      { System.OpenLog } 
      { System.Open System.Tool } 
Printer = { 
   Resolution = 300 
   Layout = { 
      Width = {210 mm} 
      Height = {297 mm} 

Each first-level group, such as System and Printer in the example, carries the information for configuring a particular application area of Oberon. Oberon.Text included in the distribution contains defaults settings which are generally applicable. Some of these values are simple, obvious and intuitive, while other are technically oriented. Tweaking values is made easier with the help information appearing in the interspersed comments. The following description of the various groups give more background information or links to technical details. A group is denoted by a qualified name such as Printer.Resolution .

Note that this concept of system configuration is open in many senses. Not only can new entries be added freely but the local syntax of entries (within group braces "{" "}") is completely open as well.

There are a few low-level configuration data that are used on levels below the text system and therefore cannot make use of it in the mentioned way. For these cases (that users never have to care about) a low-level extension of the above explained mechanism is provided. It is based on a set of pairs (name, value) that are stored in some initial part of the boot file. Cfr. Partitions.GetConfig .

For Windows users, it suffices to say that Oberon.Text is to Oberon what the Registry is to Windows, but much simpler and more intuitive to use.


The group System.InitCommands is, together with NetSystem, the one most susceptible to need adjustement. It contains a collection of Oberon commands which must be executed when the system is started. To economize on editing and memorization efforts, a "!" placed in front of a command disables it without requiring to cut it out. Oberon.Text included in the distribution, contains such disabled commands to indicate which actions might be appropriate to condition Oberon for an optimal use.

The group System.TimeDiff specifies the time difference of PC clock to GMT. The original value applies to the Central European Time - summer time.


The group Printer configures the printer driver and the groups PSPrinter, HPLaserPrinter and HPPCL configure the page layout and the printer resolution. Cfr. Printer support.


The group NetSystem is a collection of values describing the network environment. For a direct LAN connection, an NIC is used. In some cases, the DIAL group must be edited too.


The group DIAL is used when the computer is connected to the network is obtained via the PSTN (Public Switched Telephone Network) and a modem or terminal adapter (a router not).


All the components of this group are described in the File system concept.


The group Sound.Audio configures the SoundBlaster controller or equivalent. The remaining groups are for configuring the sound CD-ROM but the drivers are currently not functioning, as they are awaiting to be upgraded to the rest of the alpha version.


The group OP2.Errors lists all the compiler errors with a comment to help debugging.


The group Gadgets.Aliases lists the aliases which may be used as shorthand in Oberon commands in place of qualified generators of gadgets.

The group Gadgets.Documents lists pair-wise filename extensions and their corresponding Document type to create when opened.

The group Gadgets.DocumentServices lists pair-wise service names and their corresponding Document service to activate when invoked.

The group Gadgets.FinderTemplates lists the entries for creating a Finder Gadget.

Programmed access to Oberon.Text

For programmed access to Oberon.Text a single procedure Oberon.OpenScanner in combination with the standard text scanning facility suffices.

PROCEDURE OpenScanner (VAR S: Texts.Scanner; entry: ARRAY OF CHAR);

This procedure is used within programs to position the text scanner at any desired entry in Oberon.Text. It takes two parameters, a scanner and an entry name, where the name actually denotes a path and may be arbitrarily nested by qualification.

For example, the name Printer.Layout.Width positions the scanner to the width specification "210 mm" and SLIP.Dial positions it to the dial-in code sequence.


22 Jul 2002 - Copyright © 2002 ETH Zürich. All rights reserved.
E-Mail: oberon-web at