odl, ODL - On-demand font loading
On-demand font loading (ODL) is a mechanism through which
a terminal or a printer can download the relevant bitmap
font information for a user-defined character (UDC) at the
time this character has to be displayed or printed by the
device. A number of our local language terminals (such as
the VT382 series) and printers support ODL for languages
like Japanese, Chinese, and Korean, which include userdefined
characters.
ODL can be implemented either through hardware or software.
In the hardware implementation of ODL, the terminal
or printer sends a font loading request to the host computer
whenever the device encounters a UDC whose font
information is not present in the device. The host computer
then completes the transaction by sending to the
device a font loading sequence that encodes the bitmap
shape of the character. This font information stays in the
device until the font information buffer is full or the
power is switched off.
In the software implementation of ODL (SoftODL), the sending
of the font loading request from the device is disabled
and it is the host computer that keeps track of
which font information has been sent to the device. When
the host computer encounters a new UDC or an old one whose
font information must be flushed because the font information
buffer is full, the host computer sends a font loading
sequence to the device before sending the UDC character
code in the data to be displayed or printed.
The SoftODL mechanism is supported only by the Asian tty
driver, atty, and the odld daemon through the utx driver
(see atty(7), odld(8), and utx(7)).Users run the cedit
utility (see cedit(1)) to create and edit user-defined
characters in a UDC database. The cgen command is used to
create from the UDC database an ODL database that is used
by the SoftODL mechanism.
The SoftODL mechanism can be tuned by setting the following
parameters: The ODL buffer replacement strategy
When the font information buffer is full, there are
two ways to decide which piece of old font information
is to be replaced by information for a UDC
whose information is not in the buffer. They are
FIFO (First-In-First-Out) and LRU (Least Recently
Used). The size of the ODL font cache
The size of the font cache determines how much UDC
font information can be kept in the device. This
value is device-specific. The value 256 is a safe
maximum for most devices, although some terminals
are capable of storing font information for 700
UDCs.
Refer to the stty(1) reference page for information on
setting both these parameters and using other flags
related to ODL.
In general, ODL implemented in the hardware is more accurate
in terms of fetching a UDC font only when needed.
However, the overhead of sending font loading requests
from device to host makes hardware ODL slower than software
ODL. SoftODL is faster and more flexible, but it has
the following limitations: Some local language devices
have to have the hardware On-Demand Loading flag disabled
before the devices can be used with the SoftODL mechanism.
When a UDC is keyed in for some of the VT382 series of
local language terminals, the character is also displayed
on the 26th compose line of the terminal screen. This
capability depends on having the character's font loaded
in the device. When SoftODL is being used and a UDC is
entered for the first time into the terminal after powerup,
the correct font of that character does not be display
on the compose line. Instead, a reversed wide question
mark is displayed. However, the UDC will be displayed correctly
on other parts of the screen. If SoftODL is
enabled for a terminal session and the terminal is accidentally
powered off, users must issue the following command
immediately after turning on the power: This command
flushes the internal tty cache to avoid a mismatch between
the font cache of the tty and that of the terminal. When
a terminal is connected by a terminal server to several
sessions, only one of those sessions should have ODL
(software or hardware) enabled. If more than one session
has ODL enabled, you may have to issue one of the following
commands to avoid problems: This command flushes the
internal tty cache when you return to the terminal session
where SoftODL is being used. This command instructs the
tty driver to use SoftODL for all the user-defined characters.
However, this option also prevents caching and
slows the display of UDCs tremendously. When users change
session while SoftODL is enabled, their terminals may hang
due to an incomplete escape sequence. This condition can
be corrected by using the setup menu of the terminal and
activating the "Reset Terminal" soft key. Changing the
terminal line discipline while SoftODL is active would
cause all the SoftODL parameters stored in the tty driver
to be reset to their default values. So, SoftODL is automatically
deactivated if the line discipline is changed
and must be restarted after the change. Users must be
careful when setting the odlsize parameter of the stty
command. The optimal value for this parameter is the size
of the character font cache in the current terminal.
Users can set a value less than or equal to the hardware
parameter, but must never set a value larger than that.
If the stty parameter is larger than the hardware parameter,
the SoftODL mechanism cannot operate properly. Care
must also be taken in setting the odltype parameter of the
stty command. This parameter must be set to the same type
as that of the terminal. A mismatch between the tty
driver and terminal settings can produce unexpected
results. If the ODL database is changed, the change may
not be reflected in any SoftODL terminal sessions that
were activated prior to the change. For the already
active sessions to recognize any new UDC characters in the
ODL database, users have to stop and then restart the
SoftODL mechanism by through the stty command. This problem
also exists for hardware ODL.
Commands: cedit(1), cgen(1), stty(1), odld(8), utxd(8)
Files: atty(7), utx(7)
odl(5)
[ Back ] |