Blame docs/doc/README.Crosser

Packit Service 50ad14
# International console driver fixes for Linux kernel .99pl13
Packit Service 50ad14
# Eugene G. Crosser <crosser@pccross.msk.su>
Packit Service 50ad14
Packit Service 50ad14
This package provide fixes in the kernel (console.c, keydoard.c and vt.c),
Packit Service 50ad14
setfont and mapscrn utilities, and fixes to the loadkey utility.
Packit Service 50ad14
setfont loads custom EGA/VGA fonts, mapscrn specifies screen output mapping,
Packit Service 50ad14
and loadkeys with this fixes provides "AltGr-Lock" state of the keyboard,
Packit Service 50ad14
and makes possible to specify which characters are alphabetic and therefore
Packit Service 50ad14
should be affected by the CapsLock.
Packit Service 50ad14
Packit Service 50ad14
make all	-	compile utilities and binary tables
Packit Service 50ad14
make apply	-	apply cdiffs to the kernel code & .h files
Packit Service 50ad14
make install	-	install utilities in the /etc directory
Packit Service 50ad14
Packit Service 50ad14
Utilities make use of ioctl() entries added to the kernel as follows:
Packit Service 50ad14
Packit Service 50ad14
"setfont" accepts binary font from the file specified as a paramter.
Packit Service 50ad14
File size may be 2048, 3584 and 4096 bytes for 8x8, 8x14 and 8x16
Packit Service 50ad14
fonts respectively.
Packit Service 50ad14
Packit Service 50ad14
"mapscrn" accepts a 256 byte translation table from the file specified as a
Packit Service 50ad14
parameter and passes it to the "user definable" (fourth) mapping table
Packit Service 50ad14
in the kernel. First 32 bytes of the file (control characters) are always 
Packit Service 50ad14
ignored. All screen output will be translated if a "\033(K" (or "\033)K")
Packit Service 50ad14
sequence was outputted to select the "user definable" table.
Packit Service 50ad14
Packit Service 50ad14
All this witchkraft with the output mapping is nesseccary because of
Packit Service 50ad14
VGA architecture: it extends the character bitmap from 8 to 9 columns
Packit Service 50ad14
for some interval of codes on the hardware level. This is appropriate
Packit Service 50ad14
for certain graphic characters, but inappropriate if you have letters
Packit Service 50ad14
in that place ot the character table. In the latter case, you can place
Packit Service 50ad14
character bitmaps on not-extendable positions in the font table, and
Packit Service 50ad14
use appropriate mapping table. This is done for Cyrillic character set
Packit Service 50ad14
"koi8-r" (RFC1489).
Packit Service 50ad14
Packit Service 50ad14
The fixes in loadkey utility are necessary because of two reasons.
Packit Service 50ad14
First, non-Latin based character sets (such as Cyrillic) require a
Packit Service 50ad14
special lock state for the keyboard. Current "shift-locks" implementation
Packit Service 50ad14
in the keyboard driver is inconvenient, as it does not allow "switchback"
Packit Service 50ad14
when the "shift" key is pressed while "shift-lock" is active.  Second, 
Packit Service 50ad14
with non-ISO-8859 compliant character sets one cannot easily figure out 
Packit Service 50ad14
if a certain character is a "lowercase letter" and should therefore be 
Packit Service 50ad14
affected by CapsLock.  A plus sign ('+') in front of the character 
Packit Service 50ad14
definition in the keymapping table is used to identify this character 
Packit Service 50ad14
as "affectable by CapsLock". Loadkeys utility treats lowercase latin 
Packit Service 50ad14
characters ('a'-'z') as affectable in any case. Effect of CapsLock is 
Packit Service 50ad14
to invert the "shift" state (unlike the original driver, where it always
Packit Service 50ad14
"shifts up").
Packit Service 50ad14
Packit Service 50ad14
Note that if you need to make custom screen mapping default, you will
Packit Service 50ad14
have to output the magic escape sequence ("\033(K" or "\033)K") to every
Packit Service 50ad14
virtual screen in use. That can be done from /etc/profile.