Customizing device character mapping

Seven-bit terminals

The seven-bit ASCII code set as defined by ISO 646 is used by many terminals. Using this code set, support for European languages is limited and involves modifying the ISO 646 code set. Some of the "non-essential" characters are changed to represent specific unsupported characters. The characters that are replaced are shown in the following table. The applications used with these terminals have to use the new character value assignments. The generic term for such variations of the seven-bit ISO 646 code set is "seven-bit ISO 646 national variant" code sets and one exists for each Western European language.

Seven-bit ISO 646 national variants

  23 24 40 5b 5c 5d 5e 60 7b 7c 7d 7e
  # $ @ [ \ ] ^ ` { | } ~
DE # $ ^ `
DK # $ @ ^ ` ~
ES $ ^ ` ~
FR $ ^ `
GB $ @ [ \ ] ^ ` { | } ~
IT $ ^
NO # $ @ ^ ` ~
SE # $

A problem involving terminal control sequences may be introduced if code set mapping is used to support an ISO 646 national variant code set on a seven-bit terminal. It is introduced because the internal (system) code set can be different from the external code set for the terminal.

The problem arises when the terminal control sequence includes a character that has a different interpretation to that in the ISO 646 code set. An ISO 646 national variant code set gives certain character values new interpretations. For example, the French ISO 646 national variant associates the value normally reserved for the left brace, { with e-acute, .

The problem manifests itself in the following two ways:

This problem only affects seven-bit terminals using the ISO 646 national variant code sets. The Language Supplement provides terminfo terminal database specifications for the ISO 646 national variants shown in ``terminfo entries supported''. For example, in the French ISO 646 national variant terminal the up arrow control sequence is defined as (0x1b, 0x5b, 0x41). Hence, the terminal database entry for up arrow"should be "\EA" (0x1b 0xb0 0x41). The KBD module will then map 0xb0 to 0x5b and the terminal will function correctly.

terminfo entries supported

terminfo Entry Country
vt100DK Denmark
vt100FR France
vt100DE Germany
vt100IT Italy
vt100NO Norway
vt100ES Spain
vt100SE Sweden
vt100GB Great Britain

Next topic: Changing a serial line VT100(TM) terminfo setting
Previous topic: Serial line terminals

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 22 April 2004