Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Programmers Reference 0.02b - <b>int 10h, 11h (17) character generator ega</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
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

                      04h - Load 8 x 16 character font (VGA)
                                 BL       Font block to load

                      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. INT 43h
                                          is pointer.
                                 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)

                      24h - Load 8 x 16 character font
                                 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
                                          06h -     8 x 16 (VGA)
                                          07h -     9 x 16 (VGA)

       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 re-
                        calculated
                      . Five cursor control (CRTC) registers are re-
                        programmed

                      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.

See Also: INT 10h, 12h

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson