Oberon/ETH Oberon/keyboard



Keyboard support

This page addresses hardware, configuration and functionality. A usage tutorial is also available. Summary 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. How to install a keyboard driver 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

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.

Escape compatibility / Neutralize 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 Num Lock is controlled at startup, by the config string NumLock

NumLock = 1 (default) activates the Num Lock mode

NumLock = 0 deactivates it How to install a USB keyboard driver

UsbKeyboard.Init
 * Installs a USB keyboard driver. The USB system must be active already.

How to support another keyboard 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. ASCII and Latin-1 (ISO 8859-1) character sets 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

Hex | Dec. Key    Ctrl          TTY |            stroke       symbol + 00 |   0         Ctrl-Shift-`   NUL 01 |  1         Ctrl-a         SOH 02 |  2         Ctrl-b         STX 03 |  3         Ctrl-c         ETX 04 |  4         Ctrl-d         EOT 05 |  5         Ctrl-e         ENQ 06 |  6         Ctrl-f         ACK 07 |  7         Ctrl-g         BEL 08 |  8         Ctrl-h         BS  09 |   9  Tab    Ctrl-i         HT  0A |  10         Ctrl-j         LF  0B |  11         Ctrl-k         VT  0C |  12         Ctrl-l         FF  0D |  13  Enter  Ctrl-m         CR  0E |  14         Ctrl-n         SO  0F |  15         Ctrl-o         SI  10 |  16         Ctrl-p         DLE 11 | 17         Ctrl-q         DC1 12 | 18         Ctrl-r         DC2 13 | 19         Ctrl-s         DC3 14 | 20         Ctrl-t         DC4 15 | 21         Ctrl-u         NAK 16 | 22         Ctrl-v         SYN 17 | 23         Ctrl-w         ETB 18 | 24         Ctrl-x         CAN 19 | 25         Ctrl-y         EM  1A |  26         Ctrl-z         SUB 1B | 27  Esc    Ctrl-[         ESC 1C | 28         Ctrl-\         FS  1D |  29         Ctrl-]         GS  1E |  30         Ctrl-Shift-6   RS  1F |  31         Ctrl-Shift--   US

Code points 20H to 7FH

All characters are printable except DEL.

Hex | .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F + 2. | SP ! " #  $  %  &  '    *  + ,  -  .  /  3. |  0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?  4. |  @  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  5. |  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _  6. |  `  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  7. |  p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~ 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).

Hex | Dec. Key    Alt      Deadkey     Entity |            stroke    stroke     reference +-- 80 | 128   Ä     Alt-A    Alt-" + A   &Auml;  81 | 129   Ö     Alt-O    Alt-" + O   &Ouml; 82 | 130  Ü     Alt-U    Alt-" + U   &Ouml;  83 | 131   ä     Alt-a    Alt-" + a   &auml; 84 | 132  ö     Alt-o    Alt-" + o   &ouml;  85 | 133   ü     Alt-u    Alt-" + u   &uuml; 86 | 134  †              Alt-^ + a   &acirc; 87 | 135  ‡              Alt-^ + e   &ecirc; 88 | 136  ˆ              Alt-^ + i   &icirc; 89 | 137  ‰              Alt-^ + o   &ocirc; 8A | 138  Š              Alt-^ + u   &ucirc; 8B | 139  à              Alt-` + a   &agrave; 8C | 140  è              Alt-` + e   &egrave; 8D | 141                 Alt-` + i   &igrave; 8E | 142  ò              Alt-` + o   &ograve; 8F | 143  ù              Alt-` + u   &ugrave; 90 | 144  é              Alt-' + e   &eacute; 91 | 145  ë     Alt-e    Alt-" + e   &euml;  92 | 146   ï     Alt-i    Alt-" + i   &iuml; 93 | 147  “     Alt-c                &ccedil; 94 | 148  á              Alt-' + a   &aacute; 95 | 149  •     Alt-n                &ntilde; 96 | 150  –     Alt-s                &szlig; --- OType.Mod handles up to 9B --- 97 | 151                             &pound; 98 | 152                             &para; 99 | 153                             &Ccedil; 9A | 154 9B | 155  › 9C to 9F --- not assigned A0 | 160 Insert A1 | 161 Delete A2 | 162 PageUp A3 | 163 PageDown A4 | 164 F1            Setup (in Oberon.Mod) A5 | 165 F2            Neutralise (in Oberon.Mod) A6 | 166 --- not assigned Scroll (in Draw ??) A7 | 167 F4            Scroll Lock (in Draw ??) A8 | 168 Home A9 | 169 End AA to C0 --- not assigned C1 | 193 Up arrow C2 | 194 Down arrow C3 | 195 Right arrow C4 | 196 Left arrow C5 to F4 --- not assigned F5 | 245 F5            Display off/on (in Oberon.Mod) F6 | 246 F6  F7 | 247  F7            Reset palette (in Oberon.Mod) F8 | 248 F8  F9 | 249  F9            Update display (in Oberon.Mod) FA | 250 F10 FB | 251 F11 FC | 252 F12 FD | 253 --- not assigned FE | 254 Esc FF | 255 Quit          Reboot  (in Oberon.Mod)

ASCIITab tool 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  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  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. Writing Oberon in lower case only 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.

[Top]

''11 Jul 2002 - Copyright © 2002 ETH Zürich. All rights reserved.''

E-Mail: oberon at lists.inf.ethz.ch

Homepage: www.ethoberon.ethz.ch