INT 10H 1100H: Load User-Defined Font
Compatibility: EGA VGA
Expects: AX 1100H
BH height of each character (bytes per character definition)
BL font block to load (EGA: 0-3; VGA: 0-7)
CX number of characters to redefine
DX ASCII code of the first character defined at ES:BP
ES:BP address of font-definition information
Info: Redefines one or more characters on EGA/VGA cards. It copies
user-supplied character-definition information to a table in
This fn does not program the CRTC or set BIOS variables to make
allowances for changes in character height, etc. Use
INT 10H 1110H to have the BIOS do that automatically.
You may use this to change the display of a single character or
an entire 256-character set. You can also set up a secondary
font-definition to be selected by bit 3 of the video attribute
(see INT 10H 1103H).
BH specifies how high each character is, in scan-lines; thus, it
describes how many byte are needed to define each character (the
BIOS always uses a width of 8, so one byte describes the bit
pattern for one line of the character matrix).
BL specifies which of the up-to eight tables in EGA/VGA character-
definition RAM should be affected. See INT 10H 1103H (activate
font block). Normally, you will use BL=0, since block 0 is
normally the active font block.
CX specifies how many characters are to be redefined.
DX identifies the first character you wish to define. Valid values
ES:BP points to a table containing the character-definition codes. It
should be BH*CX bytes long. The table is laid out as a series of
CX groups of BH bytes in each group.
See Video Font Definition for byte layout.
Note: This fn requires that you modify BP. When calling from high-
level languages such as C, be very careful to save and restore
BP, since it is used to keep track of the "stack frame".
See Also: INT 10H 11H: EGA/VGA Character Generator Functions
INT 10H: Video Services
EGA/VGA Data Areas