Blame docs/doc/kbd.FAQ-6.html

Packit Service 50ad14
Packit Service 50ad14
<HTML>
Packit Service 50ad14
<HEAD>
Packit Service 50ad14
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
Packit Service 50ad14
 <TITLE>The Linux keyboard and console HOWTO: The console character sets</TITLE>
Packit Service 50ad14
 <LINK HREF="kbd.FAQ-7.html" REL=next>
Packit Service 50ad14
 <LINK HREF="kbd.FAQ-5.html" REL=previous>
Packit Service 50ad14
 <LINK HREF="kbd.FAQ.html#toc6" REL=contents>
Packit Service 50ad14
</HEAD>
Packit Service 50ad14
<BODY>
Packit Service 50ad14
Next
Packit Service 50ad14
Previous
Packit Service 50ad14
Contents
Packit Service 50ad14

Packit Service 50ad14

6. The console character sets

Packit Service 50ad14
Packit Service 50ad14

Packit Service 50ad14
Packit Service 50ad14
console character sets
Packit Service 50ad14
-->
Packit Service 50ad14
Packit Service 50ad14
Packit Service 50ad14
character sets, console
Packit Service 50ad14
-->
Packit Service 50ad14

The kernel first tries to figure out what symbol is meant by any given

Packit Service 50ad14
user byte, and next where this symbol is located in the current font.
Packit Service 50ad14

The kernel knows about 5 translations of bytes into console-screen symbols.

Packit Service 50ad14
In Unicode (UTF-8) mode, the UTF-8 code is just converted directly into
Packit Service 50ad14
Unicode. The assumption is that almost all symbols one needs are present
Packit Service 50ad14
in Unicode, and for the cases where this does not hold the codes
Packit Service 50ad14
0xf000-0xf1ff are reserved for direct font access.
Packit Service 50ad14
When not in Unicode mode, one of four translation tables is used.
Packit Service 50ad14
The four tables are: a) Latin1 -> Unicode,  b) VT100 graphics -> Unicode,
Packit Service 50ad14
c) PC -> Unicode, d) user-defined.
Packit Service 50ad14

There are two character sets, called G0 and G1, and one of them

Packit Service 50ad14
is the current character set. (Initially G0.)
Packit Service 50ad14
Typing Ctrl-N causes G1 to become current, Ctrl-O causes G0 to become current.
Packit Service 50ad14

These variables G0 and G1 point at a translation table, and can be changed

Packit Service 50ad14
by the user. Initially they point at tables a) and b), respectively.
Packit Service 50ad14
The sequences ESC ( B and ESC ( 0 and ESC ( U and ESC ( K cause G0 to point
Packit Service 50ad14
at translation table a), b), c) and d), respectively.
Packit Service 50ad14
The sequences ESC ) B and ESC ) 0 and ESC ) U and ESC ) K cause G1 to point
Packit Service 50ad14
at translation table a), b), c) and d), respectively.
Packit Service 50ad14

The sequence ESC c causes a terminal reset, which is what you want if the

Packit Service 50ad14
screen is all garbled. The oft-advised echo ^V^O will only
Packit Service 50ad14
make G0 current, but there is no guarantee that G0 points at table a).
Packit Service 50ad14
In some distributions there is a program reset(1) that just does
Packit Service 50ad14
echo ^[c.
Packit Service 50ad14
If your termcap entry for the console is correct (and has an entry
Packit Service 50ad14
:rs=\Ec:), then also setterm -reset will work.
Packit Service 50ad14

The user-defined mapping table can be set using mapscrn(8).

Packit Service 50ad14
The result of the mapping is that if a symbol c is printed, the symbol
Packit Service 50ad14
s = map[c] is sent to the video memory. The bitmap that corresponds to
Packit Service 50ad14
s is found in the character ROM, and can be changed using setfont(8).
Packit Service 50ad14

Packit Service 50ad14

Packit Service 50ad14
Next
Packit Service 50ad14
Previous
Packit Service 50ad14
Contents
Packit Service 50ad14
</BODY>
Packit Service 50ad14
</HTML>