# Oberon/ETH Oberon/keyboard

This document was originally hosted at the ETHZ. It remains in the WayBack archive under the ETH license.
Keyboard support
This page addresses hardware, configuration and functionality. A usage tutorial is also available.
Oberon uses a PS/2-style keyboard attached to a 6-pin DIN connector or a keyboard attached to a 4-pin USB connector. The numeric pad can take over the functions of the mouse, if need be.
A freshly installed Oberon system is set up to operate with a PS/2-style, 101-key keyboard with US layout.
Currently, eleven other keyboard layouts are supported: Belgian, Canadian, Swiss German, German, Dvorak, French, Norwegian, Polish, Finnish, Turkish, UK English.
Each keyboard, except the US one, is defined by a keyboard map file and all of these can be listed by executing System.Directory Key*.Bin\d ~
A keyboard driver for a different keyboard layout is installed in these ways:
* at startup, set the config string Keyboard = mapfilename
* or execute the following command, which can be edited in the System section of Oberon.Text.
ConfigInput.Keyboard [ mapfilename | ^ ]
    Sets up the keyboard driver to operate with a keyboard with the specified layout. A list of existing map filenames is obtained with System.Directory Key*.Bin\d ~. There exists no US file; omit the parameter to install a US keyboard.
The Neutralize key is used to remove all marks on the display, including the caret, the marker and text selections. The F2 key is defined as Neutralize key for all the Oberon system implementations. In earlier implementations instead, the Esc key was assigned this function. Doing this has the negative consequence that the Esc character cannot be generated in certain applications needing it, e.g. terminal-emulation applications.
The Escape compatibility option is controlled at startup, by the config string EscCompat and lets the user define the meaning of the Esc key: EscCompat = 0 (default) the Esc key retains its conventional meaning. EscCompat = 1 the Esc key is also a Neutralize key. An Esc character must then be generated by F3.
In both cases, an Esc character can also be generated with Shift-Esc or Alt-27.
Num Lock is controlled at startup, by the config string NumLock NumLock = 1 (default) activates the Num Lock mode NumLock = 0 deactivates it
UsbKeyboard.Init
    Installs a USB keyboard driver. The USB system must be active already.
If no keyboard map exists for your specific keyboard, the Keyboard.Mod is provided to help construct a keyboard table file. Instruction for using it are included in the source. Please submit your work to the developer team, for inclusion in a follow-up release.
Oberon is based on the standard ASCII character set code points 00H to 7FH. The characters are produced with the respective labelled keys, including the use of Shift-key, on a US 101-key keyboard. For cross-platform portability, Oberon does not normally support all keys available on the keyboard.
The printable character or the function corresponding to a decimal code point can be generated by holding the Alt-key and keying the decimal value on the numeric keypad.
To find out a key's respective printable character and at the same time the decimal and the hexadecimal code point, execute EditKeys.GetKeyCode and follow the instructions in the System log. The command is documented in EditKeys.Tool .
Code points 00H to 1FH
Code points 20H to 7FH
All characters are printable except DEL.
Code points 80H to FFH
The assignment of special language characters to code points 80H to 95H is a property of the fonts delivered with Oberon. In HTML, any ISO Latin-1 character can be written as &#xxx; , where xxx is the decimal code point of the character, in place of the entity reference. Of the remaining code points, some are used by Oberon and others are unassigned. Latin-1 characters - ISO 8859-1, Latin script - can be produced on a US keyboard, as shown in the table below, using the Alt-key or a dead key stroke (the Shift key is implicitly required where A, O, U, " or ^ appear).
The ASCIITab.Tool offers an alternative to typing accented characters, and more generally any code point, as ALT-key combinations, provided the Gadgets-based GUI is installed. Executing Desktops.OpenDoc ASCIITab.Tool opens a text document viewer containing a table from where to pick characters for insertion in the text being edited in some other text viewer. The table of 8 rows by 32 columns contains the printable characters in Oberon10 font (the Oberon default font). Set the caret in the text, and in the table MM click the character to insert at the caret.
To change the font of the table, edit the font name in Gadgets.ChangeAttr Font Oberon10.Scn.Fnt ~ as required, select the table (MR click) and execute the command. After this, deselect the table and proceed with editing. For a larger font, it is necessary to resize the table. Since the table is a gadget having ASCIITab.NewFrame as generator, it can also be inserted anywhere at the caret with Gadgets.Insert ASCIITab.NewFrame ~ .
Persons affected by Repetitive Strain Injury (RSI) may wish to write Oberon in lower case characters only. Three ways to make this possible are described in the FAQ.
11 Jul 2002 - Copyright © 2002 ETH Zürich. All rights reserved. E-Mail: oberon at lists.inf.ethz.ch Homepage: www.ethoberon.ethz.ch