Content-type: text/html Man page of odl


Section: File Formats (5)
Index Return to Main Contents


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 Digital'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 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 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: 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)




This document was created by man2html, using the manual pages.
Time: 02:43:09 GMT, October 02, 2010