From: Edmund GRIMLEY EVANS <[EMAIL PROTECTED]>
[EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> > Unfortunately I am not quite sure what an ACM is.
>
> An ACM is "Application Charset Map" the same thing as the screen maps,
> but an ACM converts bytes to Unicode values.
>
> There must be a misunderstanding here about what a screen map is.
> and koi8r.uni is a unicode map, and contains
You've confused me.
As I understand it there are Application Charset Maps that map from an
8-bit character set to 16-bit UCS values. These are only used when the
console is not in UTF-8 mode. And there are Screen Font Maps that map
from 16-bit UCS values to font position (8 or 9 bits).
I think "unimap" and "screen map" both mean the same as "SFM", but
"SFM" is the preferred term nowadays.
You have an ACM for each 8-bit charset/encoding you might want to use,
and you have an SFM for each font. The font is then independent of the
charset/encoding.
Edmund
Let us talk in kernel terms, then no confusion can arise
over terminology.
When the user does printf(s), the kernel has to show something
on the screen. We get into console.c:do_con_write().
There in utf8 mode a 32-bit unicode value is assembled,
and otherwise the byte is translated by a translate[] table
from 8-bit to 16-bit unicode. Ignoring the fiddling with
control characters and escape sequences, there follows a conv_uni_to_pc()
which yields the value in 0-255 or 0-511 that is written to the video
hardware.
So, we want to control the translate[] table, and this is
done by the ioctls PIO_SCRNMAP and PIO_UNISCRNMAP.
And we want to control the conv_uni_to_pc() routine,
and this is done by the ioctl PIO_UNIMAP.
When I use "screen map" I mean what is fed to PIO_SCRNMAP or
PIO_UNISCRNMAP. When I use "unimap" I mean what is fed to
PIO_UNIMAP.
To me ACM and SFM have always been meaningless abbreviations.
If I try to map what you say onto the kernel terminology, I suppose
SFM is unimap, and ACM is screen map, and I misunderstood demjan
thinking that console-tools had an alternative input format for
unimaps, where in fact it has an alternative input format for
screen maps.
Andries
-
Linux-UTF8: i18n of Linux on all levels
Archive: http://mail.nl.linux.org/lists/