NOTES ON THE GREEK TRANSLATION OF THE KEYBOARD ---------------------------------------------- DISCLAIMER This file containts information on the encoding schemes in excistence for working with greek characters in computer aided systems. The file is intended as a guideline for designing the console driver of the new free 386BSD 0.2 operating system. You may freely distribute this file as long as it remains intact. (C) 1993 K J Dryllerakis HISTORY After the birth of the personal computer and its introduction to the greek market, the need for a standard in encoding greek letters was apparent. Character Encoding Schemes The defacto standard proposed by IBM was a modyfication of the upper 128 ASCII characters to include greek characters following the restrictions: (1) no graphic character should be harmed [most programs used them to draw their screens] (2) the greek letters should be in ascending order so programs can used sorting algorithms efficiently. This standard is now known as code page 437 or IBM437 for short. It still exists in many VIDEO-ROMS of display cards and is therefore a support necessity to any O/S running on PC-compatible machines. Several standards appear on the market, including specialised greek encoding (e.g. by Memotek) and the (funny) macintosh one. An ISO standard managed to be born known as ELOT 928 and having ISO code 8859-7. This is based on the latin-1 ISO 8859-1 character set with greek characters on top of some positions. Keyboard layout and mapping For the keyboard layout there seems to be a generally accepted standard based on the already existing standard for the greek typewriters. Greek PC keyboards follow basically the US keyboard layout with greek letters written together with the latin ones. Two special states were needed to account for the accent and the umlaut (and their combination). The standard is to have the accent key next to the L key (the :/; key) and the umlaut the same key shifted. Some keyboard drivers prefered the ("/' key as more visible). The activation of the greek keyboard translation is very much Greek Keyboard tranlsation hot key Several combination of keys have been used in the past years to swap between the greek and the latin state of the keyboard translation. At first the combinations Ctrl-Alt-F1 or F2 was used to active each mode. Then Alt+Enter was used to toggle between modes. It now seems standard (due to extensive use of MS Windows) the combination is Ctrl-Alt-space or just Alt-space. [Some drivers used as single key the Alt Gr key located on the right of the space bar on some keyboards but did not prove very helpfull. Other approaches existed as well e.g. Alt+Left_Shift]. PROPOSAL FOR 386BSD 0.2 APPROACH Character Sets I propose that both IBM437 and ELOT928 standards be present as options in the new release. Hot key for activation of the greek keyboard The hot key activation of the keyboard translation could be user defined and use as default the Alt+Space combination. It would be helpfull if at the same time a "european" hot-key remains active so that one can write (some) european characters at the same time. Greek Keyboard Mapping The tables that follow give the keyboard translation as output ascii character per keypress. The tables given are for standard greek mode, accented greek mode, umlauted greek mode and accented-umlauted greek mode. The values not included in the tables should retain their normal value. Accent mode should be actived by pressing the ";" key [The key on the right of L]. Umlauted by Shift-;. Their combination by the sequence of the two (in any or both combinations). It is important that the usage of the Alt (or Compose) key will perform a one-key swap between the modes i.e. Alt-e would give the latin e in greek mode and greek epsilon in latin mode. In that way it will not be necessary to exit from the greek (or in general any other translation) mode in order to send commands to a program (e.g. vi) ********************************************************************** ***** Standard Greek Translation Mode ****** +------------+----------------+------------------+-------------------+ |KEYPRESS | GREEK LETTER | ELOT 928 Encoding| IBM437 Encoding | +------------+----------------+------------------+-------------------+ | |unshiftd|shifted| DEC HEX DEC HEX | DEC HEX DEC HEX | +------------+----------------+------------------+-------------------+ | Q |: |; | - - - - | | W |final s| Sigma | 243 212 | | E |epsilon|Epsilon | --- c5 --- -- | --- -- --- -- | | R |rho |Rho | --- d1 --- -- | --- -- --- -- | | T |tau |Tau | --- d4 --- -- | --- -- --- -- | | Y |upsilon|Upsilon | --- -- --- -- | --- -- --- -- | | U |theta |Theta | --- -- --- -- | --- -- --- -- | | I |iota |Iota | --- -- --- -- | --- -- --- -- | | O |omicron|Omicron | --- -- --- -- | --- -- --- -- | | P |pi |Pi | --- -- --- -- | --- -- --- -- | | A |alpha |Alpha | --- -- --- -- | --- -- --- -- | | S |sigma |Sigma | --- -- --- -- | --- -- --- -- | | D |delta |Delta | --- -- --- -- | --- -- --- -- | | F |phi |Phi | --- -- --- -- | --- -- --- -- | | G |gamma |Gamma | --- -- --- -- | --- -- --- -- | | H |eta |Eta | --- -- --- -- | --- -- --- -- | | J |ksi |Ksi | --- -- --- -- | --- -- --- -- | | K |kappa |Kappa | --- -- --- -- | --- -- --- -- | | L |lambda |Lambda | --- -- --- -- | --- -- --- -- | | Z |zeta |Zeta | --- -- --- -- | --- -- --- -- | | X |chi |Chi | --- -- --- -- | --- -- --- -- | | C |psi |Psi | --- -- --- -- | --- -- --- -- | | V |omega |Omega | --- -- --- -- | --- -- --- -- | | B |beta |Beta | --- -- --- -- | --- -- --- -- | | N |nu |Nu | --- -- --- -- | --- -- --- -- | | M |mu |Mu | --- -- --- -- | --- -- --- -- | | (;/:) |accent |umlaut | ENTER NEW TRANSL |ENTER NEW TRANSL | | All Other | AS IN US KEYBOARD TRANSLATION OR NATIONAL TRANSLATION| +------------+-------+--------+------------------+-------------------+ ********************************************************************** ***** Accented Greek Translation Mode ****** +------------+----------------+------------------+-------------------+ |KEYPRESS | GREEK LETTER | ELOT 928 Encoding| IBM437 Encoding | +------------+----------------+------------------+-------------------+ | |unshiftd|shifted| DEC HEX DEC HEX | DEC HEX DEC HEX | +------------+----------------+------------------+-------------------+ | A |alpha |Alpha | ___ dc 182 b6 | ___ __ ___ __ | | E |epsilon|Epsilon | ___ dd 184 b8 | ___ __ ___ __ | | H |eta |Eta | ___ de 185 b9 | ___ __ ___ __ | | I |iota |Iota | ___ df 186 ba | ___ __ ___ __ | | O |omicron|Omicron | ___ fc 188 bc | ___ __ ___ __ | | Y |upsilon|Upsilon | ___ fd 190 be | ___ __ ___ __ | | V |omega |Omega | ___ fe 191 bf | ___ __ ___ __ | ------------+-------+--------+---------------------------------------+ ********************************************************************** ***** Umlauted Greek Translation Mode ****** +------------+----------------+------------------+-------------------+ |KEYPRESS | GREEK LETTER | ELOT 928 Encoding| IBM437 Encoding | +------------+----------------+------------------+-------------------+ | |unshiftd|shifted| DEC HEX DEC HEX | DEC HEX DEC HEX | +------------+----------------+------------------+-------------------+ | I |iota |Iota | --- fa --- da | --- -- --- -- + | Y |upsilon|Upsilon | --- fb --- db | --- -- --- -- + +------------+-------+--------+--------------------------------------+ ********************************************************************** ***** Accented-Umlauted Greek Translation Mode ****** +------------+----------------+------------------+-------------------+ |KEYPRESS | GREEK LETTER | ELOT 928 Encoding| IBM437 Encoding | +------------+----------------+------------------+-------------------+ | |unshiftd|shifted| DEC HEX DEC HEX | DEC HEX DEC HEX | +------------+----------------+------------------+-------------------+ | I |iota | - | c0 - - | - - | | Y |upsilon| - | e0 - - | - - | +------------+-------+--------+--------------------------------------+ WISHES A final wish on configuring International versions The steps that I would concider "nice" to be taken when buildin/using an international version of an O/S are: * Choose a type of Keyboard [Where are the keys located] * Choose default display font * Choose keyboard translation(s) and hot key(s) to use END_OF_DOCUMENT