This package contains cyrillic fonts and map tables for
Linux console. These fonts are intended to use with consolechars utility
(Debian console-tools package).

ALL PROGRAMS AND DATA FILES IN THIS PACKAGE ARE PUBLIC DOMAIN.

All fonts are based on code page 866 (GOST alternate encoding), becouse
usage of any other cyrillic encoding causes horizontal line-drawing
characters look like dashed lines in VGA text mode. It is hardware
feature of VGA and its much simplier to use kernel mapping tables to
avoid it then any attempt to overcome this problem by playing with 
video mode. 

Just combine font of appropriate size with acm map of encoding you are
using like:

consolechars -f 866_8x16.psf -m koi8-r.acm

CONSOLE FONTS

This package contain following sets of fonts

UniCyr_8x*.psf - Fonts, developed by Vadim Zhitnikov. Contain all letters which 
                can be in cp866, cp1251, iso8859-5 and all printable symbols
		from koi8-r. 

866_8x??.psf - based on MS-DOS cp866 as registred by Microsoft with IANA (?)
               These fonts can be useful for Ukrainians and
	       Belorussians, although I've not provided acm files for
	       koi8-u and other non-Russian cyrillic encodings 
	       (give me place, where I can download their STANDARD
	       definition)             
alt_8x??.psf - based on alt-8x?? fonts in kbd package. 
               These fonts contain exactly same set of characters 
               as koi8-r encoding and are reccommended for Russians.	       

Cyr_a8x??.psf - based on Cyr-a8x?? fonts in kbd package, which was here
            since earliest days of Linux.  These fonts
           lacks cyrillic letter YO (U+0451,U+0401) but contain some math 
	   symbols (as U+2265) which are used in koi8-r encoding. 
           Obvoisly, my sfm map Cyr_a.sfm maps YO to IE, so texts 
	   containing YO would
           still readable.

UniCyrX*.pcf - yet another attempt to fit as much letters of different
          alphabets as possible into  256-character space.   
          Contributed by
          Dmitry Yu. Bolkhovityanov" <D.Yu.Bolkhovityanov@inp.nsk.su>

Additionaly, there are some fonts, available only for VGA console (8x16)
 
  alt-antiq-8x16, developed by Alexis Makarenko (submitted by
	          Eugene Osintsev <osgene@omskelecom.ru>) with
		  the same encoding as alt*, but different shape;
  alt-sans-8x16 and alt-lenta-8x16, developed by
                                    Vadim Zhitnikov and Eugene Osintsev;
  alt-b-8x16 and alt-c-8x16 - fonts of unknown origin.

Directory sfm in this package contains screen font maps used in these
fonts in text format.

Directory acm contains application character maps for all widespread
encoding of Russian language. They are all derived from data from
ftp.unicode.org, except koi8-r, which is derived from RFC-1489.
and koi8-u which was got from one of sites, devoted to cyrillic
charsets. 

CONSOLE KEYBOARD MAPS

Directory keymap contains  keyboard layout generation system, 
developed by Cyril Slobin <slobin@ice.ru>. 

What is contained in this directory is not ready
to use console map, but rather parts, from which keyboard map for any
encoding should be assembled by C preprocessor.

   cpp cyr-russian.cpp |loadkeys

Produces a keymap for koi8-r encoding
If you wish to use some other encoding, you should specify appropriate
.enc file to cpp before map itself
For example:

   cat cp866.enc cyr-russian.cpp|cpp |loadkeys
   

It is better than keymaps in kbd package, becouse it thoroughly defines
all special keys in all  modes of keyboard.

Each keyboard layout is assembled from three parts - standard macros
(from macros.inc) encoding (*.enc) and key defininiton (cyr-*.cpp).

By default these layouts use Right Control key as cyrillic/latin switch
and Right Alt for temporary switch (while key is pressed).

On Windows keyboards system menu key acts as alternate locking switch
and windows keys as alternate temporary switches.

You can define following symbols to alter this behavoir:

-DALTSWITCH - reverses functions of Right Control and Right Alt. 
  I use this variant, becouse it is compatible with my Xkb settings
-DWINONLY - makes Right Control and Alt equivalent to left ones, and
   leaves only Windows keys for mode switching.

By default, BackSpace key generates Delete (ASCII 127) symbol and
^H (ASCII 8) is generated by Ctrl-Backspace. Use 
-DBACKSPACE to revert this behavoir.

Following keyboards are included

keyboard         	layout      	default     author
			     		encoding
cyr-russian.cpp  	Russian      	koi8-r    Cyril Slobin
                 	(old IBM PC)
cyr-russian-ms.cpp	Russian		koi8-r	  Victor Wagner 
		 	(MS-Windows)
cyr-belorussian.cpp	Belorussian     cp1251    Alexander Mikhailian			
cyr-bulgarian-bds.cpp	Bulgarian	cp1251	  Anton Zinoviev
cyr-bulgarian-phon.cpp	Bulgarian	cp1251	  Anton Zinoviev
			(Phonetic)
cyr-serbian.cpp		Serbian		iso8859-5 Anton Zinoviev
cyr-ukrainian.cpp	Ukrainian	koi8-u	  Victor Wagner
cyr-ukrainian1.cpp	Ukrainian	koi8-u	  Igor Vlasenko
cyr-ukrainian-ms.cpp	Ukrainian	koi8-u	  Igor Vlasenko
cyr-ukrainian-ms-like1	Ukrainian	koi8-u	  Attribution lost
cyr-ukrainian-ms-like2	Ukrainian	koi8-u	  Attribution lost

Keymap cyr-ukrainian was developed by me without actual knowledge 
of Ukrainian language. Better to use keymaps from Igor Vlasenko.
At least he was able to test them.

Note that his keymaps support additional preprocessor defines. See
comments in these files.

Note that "Default encoding" means only "encoding to be used if no one
specified explicitely on cpp command line"

Unfortunately, there are no such keymaps for Ukrainian.
 Contributions are welcome.

DOSEMU RUSSIFICATION

Directory bdf contain font vga.bdf which uses cp866 encoding and 
can be used to read Russian letters in xdos.
(derived from 866_8x16.psf).
For keyboard russification of DOSEMU I'll reccommend patch by 
Youriy Kaminsky <Yuriy_Kaminsky@p21.f517.n5020.z2.fidonet.org>,
available from http://www.ice.ru/~vitus/misc/dosemu-0.98.5.my.ptch.gz

SCRIPTS

Directory scripts contain scripts I've used to create these fonts
and maps. For some reason, psfaddtable utility from  consoletools
refuses to read psf type 0 (256 chars without unicode table) font files
and I have to make my own tool. Script raw2psf gets raw font file as
its first argument and (optionally) unicode map 
(ether sfm in text format or file
from ftp.unicode.org (catdoc charset map)) and produces psf font of
type 0 or 2.

Script makeacm takes same map as above and produces acm map.
Perl module Unicode::String is required. get it from CPAN if you don't
have it already installed 

Script dumppsf converts psf (or raw font) file to some textual representation,
which can be used to view it. If, eventually I would write backward converter,
you would be able to use vi or emacs to edit console fonts visually

Script displayfont (written by Cyril Slobin) allows to view current font
on the screen. 

Script mkvgafont is shell script converts raw console font to
X-Window font, suitable for DOSEMU 

All perl scripts have pod documentation embedded into it. 
Do perldoc <script> for more information or pod2man <script> to produce
proper manpage.


Made by Victor Wagner <vitus@ice.ru> <vitus@wagner.rinet.ru>,
FIDO 2:5020/219.27 2:5020/358.5
Home page http://www.ice.ru/~vitus
