Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Interrupts & Ports - character generator functions (ps, ega, vga) http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
        Character generator functions (PS, EGA, VGA)

        AH = 11h
        The following functions will cause a mode set, completely resetting
        the video environment, but without clearing the video buffer
        AL = 00h, 10h: load user-specified patterns
            ES:BP = pointer to user table
            CX    = count of patterns to store
            DX    = character offset into map 2 block
            BL    = block to load in map 2
            BH    = number of bytes per character pattern
        AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
            BL    = block to load
        AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
            BL    = block to load
        AL = 03h: set block specifier
            BL    = block specifier
        AL = 04h, 14h: load ROM 8x16 character set (VGA)
        The routines called with AL=1xh are designed to be called only
        immediately after a mode set and are similar to the routines called
        with AL=0xh, except that:
              Page 0 must be active.
              Bytes/character is recalculated.
              Max character rows is recalculated.
              CRT buffer length is recalculated.
              CRTC registers are reprogrammed as follows:
                     R09 = bytes/char-1 ; max scan line (mode 7 only)
                     R0A = bytes/char-2 ; cursor start
                     R0B = 0            ; cursor end
                     R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
                     R14 = bytes/char   ; underline loc
                           (*** BUG: should be 1 less ***)
        The following functions are meant to be called only after a mode set:
        AL = 20h: user 8 by 8 graphics characters (INT 1Fh)
            ES:BP = pointer to user table
        AL = 21h: user graphics characters
            ES:BP = pointer to user table
            CX    = bytes per character
            BL    = row specifier
                   0: user set - DL = number of rows
                   1: 14 rows
                   2: 25 rows
                   3: 43 rows
        AL = 22h: ROM 8 by 14 set
            BL    = row specifier
        AL = 23h: ROM 8 by 8 double dot
            BL    = row specifier
        AL = 24h: load 8x16 graphics characters (VGA)
        AL = 30h: return information
            BH    = pointer specifier
                   0: INT 1Fh pointer
                   1: INT 44h pointer
                   2: ROM 8 by 14 character font pointer
                   3: ROM 8 by 8 double dot font pointer
                   4: ROM 8 by 8 DD font (top half)
                   5: ROM alpha alternate (9 by 14) pointer
            Returns: ES:BP = specified pointer value
                     CX    = bytes/character
                     DL    = character rows on screen

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