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 Compaq's local language terminals (such
as the VT382 series) and printers support ODL for languages like Japanese,
Chinese, and Korean, which include user-defined characters.
ODL can be implemented either through hardware or software. In the
hardware implementation of ODL, the terminal or printer sends a font load-
ing request to the host computer whenever the device encounters a UDC whose
font information is not present in the device. The host computer then com-
pletes 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
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 infor-
mation 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
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 follow-
+ Some local language devices have to have the hardware On-Demand Load-
ing flag disabled before the devices can be used with the SoftODL
+ 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 power-up, 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:
% stty odlreset
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:
% stty odlreset
This command flushes the internal tty cache when you return to the
terminal session where SoftODL is being used.
% stty odlsize 0
This command instructs the tty driver to use SoftODL for all the
user-defined characters. However, this option also prevents cach-
ing 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
Commands: cedit(1), cgen(1), stty(1), odld(8), utxd(8)
Files: atty(7), utx(7)