⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vgabios.txt

📁 比较详尽的VGA端口寄存器的文档
💻 TXT
📖 第 1 页 / 共 3 页
字号:
----------101012-----------------------------
INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
        AX = 1012h
        BX = starting color register
        CX = number of registers to set
        ES:DX -> table of 3*CX bytes where each 3 byte group represents one
                 byte each of red, green and blue (0-63)
----------101013-----------------------------
INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
        AX = 1013h
        BL = subfunction
             00h select paging mode
                 BH = 00h select 4 blocks of 64
                 BH = 01h select 16 blocks of 16
             01h select page
                 BH = page number (00h to 03h) or (00h to 0Fh)
Note: not valid in mode 13h
----------101015-----------------------------
INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
        AX = 1015h
        BL = palette register number
Return: DH = red value
        CH = green value
        CL = blue value
----------101017-----------------------------
INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
        AX = 1017h
        BX = starting palette register
        CX = number of palette registers to read
        ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
Return: buffer filled with CX red, green and blue triples
----------101018-----------------------------
INT 10 - VIDEO - undocumented - SET PEL MASK (VGA/MCGA)
        AX = 1018h
        BL = new PEL value
----------101019-----------------------------
INT 10 - VIDEO - undocumented - READ PEL MASK (VGA/MCGA)
        AX = 1019h
Return: BL = value read
----------10101A-----------------------------
INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
        AX = 101Ah
Return: BL = paging mode
             00h four pages of 64
             01h sixteen pages of 16
        BH = current page
----------10101B-----------------------------
INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
        AX = 101Bh
        BX = starting palette register
        CX = number of registers to convert
----------1011-------------------------------
INT 10 - VIDEO - TEXT-MODE 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 -> 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
               (EGA/MCGA) bits 0,1 = block selected by chars with attribute
                                     bit 3=0
                          bits 2,3 = block selected by chars with attribute
                                     bit 3=1
                    (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
                          bits 2,3,5 = block selected by attribute bit 3 = 1
        AL = 04h, 14h: load ROM 8x16 character set (VGA)
             BL  = block to load
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 ***)
----------1011-------------------------------
INT 10 - VIDEO - GRAPHICS-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
        AH = 11h
        AL = 20h: set user 8 by 8 graphics characters (INT 1F)
                  ES:BP -> user table
        AL = 21h: set user graphics characters
                  ES:BP -> user table
                  CX  = bytes per character
                  BL  = row specifier
                        00h user set
                            DL = number of rows
                        01h 14 rows
                        02h 25 rows
                        03h 43 rows
        AL = 22h: ROM 8 by 14 set
                  BL = row specifier (see above)
        AL = 23h: ROM 8 by 8 double dot
                  BL = row specifier (see above)
        AL = 24h: load 8x16 graphics characters (VGA/MCGA)
                  BL = row specifier (see above)
        AL = 29h: load 8x16 graphics characters (Compaq Systempro)
                  BL = row specifier (see above)
Notes: these functions are meant to be called only after a mode set
----------101130-----------------------------
INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
        AX = 1130h
        BH = pointer specifier
             00h INT 1Fh pointer
             01h INT 43h pointer
             02h ROM 8x14 character font pointer
             03h ROM 8x8 double dot font pointer
             04h ROM 8x8 double dot font (high 128 characters)
             05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
             06h ROM 8x16 font (MCGA, VGA)
             07h ROM alternate 9x16 font (VGA only)
Return: ES:BP = specified pointer
        CX    = bytes/character
        DL    = character rows on screen - 1
----------1012--BL10-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
        AH = 12h
        BL = 10h
Return: BH = 00h color mode in effect (I/O port 3Dxh)
             01h mono mode in effect (I/O port 3Bxh)
        BL = 00h  64k bytes memory installed
             01h 128k bytes memory installed
             02h 192k bytes memory installed
             03h 256k bytes memory installed
        CH = feature bits
        CL = switch settings
----------1012--BL20-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
        AH = 12h
        BL = 20h  select alternate print screen routine
Notes: installs a PrtSc routine from the video card's BIOS to replace the
       default PrtSc handler from the ROM BIOS, which usually does not
       understand screen heights other than 25 lines
       some adapters disable print-screen instead of enhancing it
----------1012--BL30-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
        AH = 12h
        BL = 30h
        AL = vertical resolution
             00h 200 scan lines
             01h 350 scan lines
             02h 400 scan lines
Return: AL = 12h if function supported
----------1012--BL31-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
        AH = 12h
        BL = 31h
        AL = 00h enable default palette loading
             01h disable default palette loading
Return: AL = 12h if function supported
----------1012--BL32-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
        AH = 12h
        BL = 32h
        AL = 00h enable video addressing
             01h disable video addressing
Return: AL = 12h if function supported
Desc:   Specifies whether the CPU should have access to video memory and the
        display adapter's I/O registers
----------1012--BL33-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
        AH = 12h
        BL = 33h
        AL = 00h enable grey scale summing
             01h disable grey scale summing
Return: AL = 12h if function supported
----------1012--BL34-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
        AH = 12h
        BL = 34h
        AL = 00h enable alphanumeric cursor emulation
             01h disable alphanumeric cursor emulation
Return: AL = 12h if function supported
----------1012--BL35-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
        AH = 12h
        BL = 35h
        AL = 00h initial adapter video off
             01h initial planar video on
             02h switch active video off
             03h switch inactive video on
             80h *UNDOCUMENTED* set system board video active flag
        ES:DX -> buffer (128 byte save area if AL = 0, 2 or 3)
Return: AL = 12h if function supported
----------1012--BL36-------------------------
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
        AH = 12h
        BL = 36h
        AL = 00h enable refresh
             01h disable refresh
Return: AL = 12h if function supported
----------1013-------------------------------
INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
        AH = 13h
        AL = write mode
             bit 0: update cursor after writing
                 1: string contains alternating characters and attributes
        BH = page number
        BL = attribute if string contains only characters
        CX = number of characters in string
        DH,DL = row,column at which to start writing
        ES:BP -> string to write
Notes: recognises CR, LF, BS, and bell
       also available PC or XT with EGA or higher
       HP 95LX only supports write mode 00h
BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on
     the active page rather than the requested page
----------101A-------------------------------
INT 10 - VIDEO - DISPLAY COMBINATION (PS,VGA/MCGA)
        AH = 1Ah
        AL = 00h read display combination code
Return:          BL = active display code (see below)
                 BH = alternate display code
             01h set display combination code
                 BL = active display code (see below)
                 BH = alternate display code
Return: AL = 1Ah if function was supported

Values for display combination code:
  00h no display
  01h monochrome adapter w/ monochrome display
  02h CGA w/ color display
  03h reserved
  04h EGA w/ color display
  05h EGA w/ monochrome display
  06h PGA w/ color display
  07h VGA w/ monochrome analog display
  08h VGA w/ color analog display
  09h reserved
  0Ah MCGA w/ digital color display
  0Bh MCGA w/ monochrome analog display
  0Ch MCGA w/ color analog display
  FFh unknown display type
----------101B-------------------------------
INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
        AH = 1Bh
        BX = implementation type
             0000h return functionality/state information
        ES:DI -> 64 byte buffer for state information (see below)
Return: AL = 1Bh if function supported
        ES:DI buffer filled with state information

Format of state information:
Offset Size   Description
 00h   DWORD  address of static functionality table (see below)
 04h   BYTE   video mode in effect
 05h   WORD   number of columns
 07h   WORD   length of regen buffer in bytes
 09h   WORD   starting address of regen buffer
 0Bh   WORD   cursor position for page 0
 0Dh   WORD   cursor position for page 1
 0Fh   WORD   cursor position for page 2
 11h   WORD   cursor position for page 3
 13h   WORD   cursor position for page 4
 15h   WORD   cursor position for page 5
 17h   WORD   cursor position for page 6
 19h   WORD   cursor position for page 7
 1Bh   WORD   cursor type
 1Dh   BYTE   active display page
 1Eh   WORD   CRTC port address
 20h   BYTE   current setting of register (3?8)
 21h   BYTE   current setting of register (3?9)
 22h   BYTE   number of rows
 23h   WORD   bytes/character
 25h   BYTE   display combination code of active display

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -