INT 10h, 11h (17) Character Generator EGA
Changes fonts on the Enhanced Graphics Adapter (EGA) to predefined
fonts or user-defined fonts in both text and graphics modes.
On entry: AH 11h
AL Subservice
00h - Load user-defined font (text modes)
ES:BP Pointer to font table
CX Character count
DX Table Character offset
BL Font block to load (0-3)
BH Bytes per Character
01h - Load 8 x 14 character font (monochrome set)
BL Font block to load (0-3)
02h - Load 8 x 8 double-dot character font (text modes)
BL Font block to load (0-3)
03h - Set the block specifier (text modes)
BL Bits 3, 2: Select block (0-3) to use
when bit 3 of attribute byte is 1
Bits 1, 0: Select block (0-3) to use
when bit 3 of attribute byte is 0
10h - Load user-defined text font (text modes)
ES:BP Pointer to font table
CX Character count
DX Table character offset
BL Font block to load (0-3)
BH Bytes per character
11h - Load 8 x 14 character font (monochrome set)
(text modes)
BL Font block to load (0-3)
12h - Load 8 x 8 double-dot character font (text modes)
BL Font block to load (0-3)
20h - Load user-defined 8 x 8 character font (graphics
mode)
ES:BP Pointer to user graphics table for
graphics characters 128-255. INT 1Fh
is set to this pointer
21h - Load user-defined character font (graphics mode)
ES:BP Pointer to user graphics table for
graphics characters 0-255
CX Bytes per Character
BL Number of Rows
00h - DL contains number of rows
01h - 14 (0Eh) rows
02h - 25 (19h) rows
03h - 43 (2Bh) rows
22h - Load ROM 8 x 14 character font (graphics mode)
BL Number of Rows (Same format as
Subservice 21h)
23h - Load ROM 8 x 8 double-dot character font
(graphics mode)
BL Number of Rows (Same format as
Subservice 21h)
30h - Return Font Information
BH Type of Pointer to return
00h - Current INT 1Fh
pointer
01h - Current INT 44h
pointer
02h - ROM 8 x 14 font pointer
03h - ROM 8 x 8 double-dot font
pointer
04h - ROM 8 x 8 double-dot font
pointer (top)
05h - ROM text alternate 9 x 14
pointer
Returns: (Only Subservice 30h - Return Font Information)
ES:BP Pointer to Table specified in BH
CX Scan lines per character
DL Rows
--------------------------------------------------------------------------
Notes: Subservices 00h, 01h, and 02h perform a mode set,
completely altering the video state but not clearing
the display buffer (the screen is not cleared).
Subservices 10h, 11h, and 12h are the same as 00h,
01h, and 02h, respectively, except for the following
differences:
* Subservices 10h, 11h, and 12h rely on page 0 as being
the active page
* The number of bytes per character is recalculated
* The number of rows is recalculated
* The length of the regenerative buffer is recalculated
* Five cursor control (CRTC) registers are reprogrammed
Subservices 10h-23h should only be called
immediately after a mode set.
Subservice 03h (Set the block specifier) lets you
display two character sets at the same time, each
from one block of 256 characters, thus allowing for
a 512-character set. When a 512-character set is
used, it is recommended that you set the color
planes with 8 consistent colors by executing Service
10h, Subservice 00h (AX=1000h) and setting BX =
0712h.
Each increment of 64K EGA memory allows another font
block to be used. The default of 64K allows one font
block, whereas an EGA memory of 256K allows up to
four font block. Each block holds definitions for
256 characters.
When defining the character set in graphics modes, a
full set of 256 characters MUST be supplied (compare
this with character-set definitions in the text
modes, where any number of characters--up to 256 per
block--may be loaded).
Subservice 21h will load 256 character definitions.
Video modes 4, 5, and 6 use only the first 128
characters. All other modes use all 256 characters.
Seealso:
This page last updated on Fri Nov 30 10:49:50 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster