Dodajem knjige
This commit is contained in:
@@ -0,0 +1,325 @@
|
||||
The VESA BIOS interface is a software interface for detection capabilities,
|
||||
setting modes and setting the bank register.
|
||||
|
||||
VESA 1.0 VESA Standard #VS891001
|
||||
VESA 1.1 VESA Standard #VS900602
|
||||
VESA 1.2 VESA Standard #VS911022
|
||||
VESA 2.0 VESA Standard
|
||||
|
||||
----------104F00-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
|
||||
AX = 4F00h
|
||||
ES:DI -> 256-byte buffer for SuperVGA information (see below)
|
||||
Return: AL = 4Fh function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
02h (VBE 2) function not supported by current hardware config
|
||||
03h (VBE 2) function invalid in current mode
|
||||
|
||||
Format of SuperVGA information:
|
||||
Offset Size Description
|
||||
00h 4 BYTEs Signature ('VESA'). For VBE 2.0 this field must be set to
|
||||
"VBE2" before the call to fill in the version 2.0 fields
|
||||
04h WORD VESA version number
|
||||
06h DWORD pointer to OEM name
|
||||
0Ah 4 BYTEs capabilities.
|
||||
Bit 0 Set if the DAC can switch width, clear if it is
|
||||
fixed 6bits per primary color
|
||||
1 (VBE2) non-VGA controller
|
||||
2 (VBE2) Programmed DAC with blank bit
|
||||
0Eh DWORD pointer to list of supported VESA and OEM video modes
|
||||
Terminated with 0FFFFh.
|
||||
12h WORD Video memory in 64k blocks
|
||||
--- VBE v2.0 ---
|
||||
14h WORD OEM software version
|
||||
16h DWORD Pointer to vendor name
|
||||
1Ah DWORD Pointer to product name
|
||||
1Eh DWORD Pointer to product revision string
|
||||
100h 256 BYTEs OEM scratchpad
|
||||
The buffer is defined as 256bytes for version 1.0 & 1.2, 262 bytes for version
|
||||
1.1 and 512 bytes for version 2.0. Note: Some VESA drivers have been known to
|
||||
write beoynd the end of the official buffer.
|
||||
----------104F01-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
|
||||
AX = 4F01h
|
||||
CX = SuperVGA video mode
|
||||
ES:DI -> 256-byte buffer mode information (see below)
|
||||
Return: AL = 4Fh function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
|
||||
Format of mode information:
|
||||
Offset Size Description
|
||||
00h WORD mode attributes
|
||||
bit 0: mode supported if set
|
||||
1: optional information available if set
|
||||
2: BIOS output supported if set
|
||||
3: set if color, clear if monochrome
|
||||
4: set if graphics mode, clear if text mode
|
||||
5: (VBE2) non-VGA mode
|
||||
6: (VBE2) No bank swiotching supported
|
||||
7: (VBE2) Linear framebuffer mode supported
|
||||
02h BYTE window A attributes
|
||||
bit 0: exists if set
|
||||
1: readable if set
|
||||
2: writable if set
|
||||
bits 3-7 reserved
|
||||
03h BYTE window B attributes (as for window A)
|
||||
04h WORD window granularity in K
|
||||
06h WORD window size in K
|
||||
08h WORD start segment of window A
|
||||
0Ah WORD start segment of window B
|
||||
0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h)
|
||||
10h WORD bytes per scan line
|
||||
---remainder is optional for VESA modes, needed for OEM modes---
|
||||
12h WORD width in pixels
|
||||
14h WORD height in pixels
|
||||
16h BYTE width of character cell in pixels
|
||||
17h BYTE height of character cell in pixels
|
||||
18h BYTE number of memory planes
|
||||
19h BYTE number of bits per pixel
|
||||
1Ah BYTE number of banks
|
||||
1Bh BYTE memory model type
|
||||
0 Text
|
||||
1 CGA graphics
|
||||
2 Hercules Graphics
|
||||
3 EGA 16 color
|
||||
4 Packed pixels
|
||||
5 Non chain 4 256 color modes
|
||||
6 Direct 15/16/24 bit
|
||||
7 YUV (luminance-chrominance, alos called YIQ)
|
||||
8-0Fh Reserved for VESA
|
||||
10h-0FFh Reserved for OEM
|
||||
1Ch BYTE size of bank in K
|
||||
1Dh BYTE number of image pages
|
||||
1Eh BYTE reserved(1)
|
||||
------VBE v1.2+ --------------------------
|
||||
1Fh BYTE Red mask size
|
||||
20h BYTE Red mask position
|
||||
21h BYTE Green mask size
|
||||
22h BYTE Green mask position
|
||||
23h BYTE Blue mask size
|
||||
24h BYTE Blue mask position
|
||||
25h BYTE Reserved mask size
|
||||
26h BYTE Reserved mask position
|
||||
27h BYTE Direct Screen mode info
|
||||
Bit 0 If set the color ramp is programmable, if clear fixed
|
||||
1 If set the reserved field (as defined by Bytes 25-26h)
|
||||
can be used by the application, if clear the field is
|
||||
truly reserved.
|
||||
--- VBE v2.0 ---
|
||||
28h DWORD Physical address of linear video buffer
|
||||
2Ch DWORD Pointer to start of offscreen memory
|
||||
30h WORD Offscreen memory in Kbytes
|
||||
The buffer is defined as 256bytes
|
||||
----------104F02-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
|
||||
AX = 4F02h
|
||||
BX = mode
|
||||
bit 15 set means don't clear video memory
|
||||
bit 14 (VBE2) set to enable linear framebuffer mode
|
||||
Return: AL = 4Fh function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
|
||||
Values for VESA video mode:
|
||||
00h-FFh OEM video modes (see AH=00h)
|
||||
100h 640x400x256
|
||||
101h 640x480x256
|
||||
102h 800x600x16
|
||||
103h 800x600x256
|
||||
104h 1024x768x16
|
||||
105h 1024x768x256
|
||||
106h 1280x1024x16
|
||||
107h 1280x1024x256
|
||||
108h 80x60 text
|
||||
109h 132x25 text
|
||||
10Ah 132x43 text
|
||||
10Bh 132x50 text
|
||||
10Ch 132x60 text
|
||||
------------ VBE v1.2+ ------------------
|
||||
10Dh 320x200 32k
|
||||
10Eh 320x200 64k
|
||||
10Fh 320x200 16M
|
||||
110h 640x480 32k
|
||||
111h 640x480 64k
|
||||
112h 640x480 16M
|
||||
113h 800x600 32k
|
||||
114h 800x600 64k
|
||||
115h 800x600 16M
|
||||
116h 1024x768 32k
|
||||
117h 1024x768 64k
|
||||
118h 1024x768 16M
|
||||
119h 1280x1024 32k
|
||||
11Ah 1280x1024 64k
|
||||
11Bh 1280x1024 16M
|
||||
------------ VBE 2.0 --------------------
|
||||
81FFh Special full-memory access mode
|
||||
Mode 81FFh preserves the contents of video memory and gives access to
|
||||
the entire video memory. It is recommanded that mode 81FFh should be a
|
||||
packed pixel mode.
|
||||
|
||||
----------104F03-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
|
||||
AX = 4F03h
|
||||
Return: AL = 4Fh function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
BX = video mode (see AX=4F02h)
|
||||
----------104F04-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
|
||||
AX = 4F04h
|
||||
DL = subfunction
|
||||
00h get state buffer size
|
||||
Return: BX = number of 64-byte blocks needed
|
||||
01h save video states
|
||||
ES:BX -> buffer
|
||||
02h restore video states
|
||||
ES:BX -> buffer
|
||||
CX = flags for states to save/restore
|
||||
bit 0: video hardware state
|
||||
bit 1: video BIOS data state
|
||||
bit 2: video DAC state
|
||||
bit 3: SuperVGA state
|
||||
Return: AL = 4Fh function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
----------104F05-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
|
||||
AX = 4F05h
|
||||
BH = subfunction
|
||||
00h select video memory window
|
||||
DX = window address in video memory (in granularity units)
|
||||
01h get video memory window
|
||||
Return: DX = window address in video memory (in gran. units)
|
||||
BL = window number
|
||||
00h window A
|
||||
01h window B
|
||||
Return: AL = 4Fh function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
----------104F06-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS 1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
|
||||
AX = 4F06h
|
||||
BL = function
|
||||
00h set scan line length
|
||||
CX = desired width in pixels
|
||||
01h get scan line length
|
||||
02h (VBE 2) set scan line length
|
||||
CX = desired width in bytes
|
||||
03h (VBE 2) get maximum scan line length
|
||||
Return: AL = 4Fh if function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
BX = bytes per scan line
|
||||
Maximum bytes per scan line for function 03h
|
||||
CX = number of pixels per scan line
|
||||
Maximum pixels per scan line for function 03h
|
||||
DX = maximum number of scan lines
|
||||
Unchaqnged for function 03h
|
||||
Notes: if the desired width is not achievable, the next larger width will be
|
||||
set. The scan line may be wider than the visible area of the screen
|
||||
this function is valid in text modes, provided that values are
|
||||
multiplied by the character cell width/height
|
||||
----------104F07BH00-------------------------
|
||||
INT 10 - VESA SuperVGA BIOS 1.1+ - GET/SET DISPLAY START
|
||||
AX = 4F07h
|
||||
BH = 00h (reserved)
|
||||
BL = 00h (or 80h) set display start
|
||||
CX = leftmost displayed pixel in scan line
|
||||
DX = first displayed scan line
|
||||
= 01h get display start
|
||||
Return: BH = 00h
|
||||
CX = leftmost displayed pixel in scan line
|
||||
DX = first displayed scan line
|
||||
Return: AL = 4Fh if function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
Note: this function is valid in text modes, provided that values are
|
||||
multiplied by the character cell width/height
|
||||
----------104F08-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
|
||||
AX = 4F08h
|
||||
BL = function
|
||||
00h Set DAC palette width
|
||||
BH = desired number of bits per primary color.
|
||||
01h Get DAC palette width
|
||||
Return: AL = 4Fh if function supported
|
||||
AH = status
|
||||
BH = Current number of bits per primary color (6 = Standard VGA)
|
||||
----------104F09-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
|
||||
AX = 4F09h
|
||||
BL = function
|
||||
00h set palette
|
||||
01h get palette
|
||||
02h set secondary palette data
|
||||
03h get secondary palette data
|
||||
80h set palette during vertical retrace
|
||||
CX = number of entries to change
|
||||
DX = starting palette index
|
||||
ES:DI -> palette buffer (array of 4 bytes per entry)
|
||||
Offset Size Description
|
||||
00h BYTE Red byte
|
||||
01h BYTE Green byte
|
||||
02h BYTE Blue byte
|
||||
03h BYTE Alpha or alignment byte
|
||||
Return: AL = 4Fh if function supported
|
||||
AH = status
|
||||
00h successful
|
||||
01h failed
|
||||
----------104F0A-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE CODE
|
||||
AX = 4F0Ah
|
||||
BX = function to be copied
|
||||
0001h set bank
|
||||
0002h set display start
|
||||
0003h set palette
|
||||
Return: AL = 4Fh if function supported
|
||||
AH = status
|
||||
00h successful
|
||||
CX = number of bytes to copy
|
||||
ES:DI -> code for requested function
|
||||
01h failed
|
||||
----------104F10-----------------------------
|
||||
INT 10 - VESA DPMS - Display Power Management Extensions
|
||||
AX = 4F10h
|
||||
BL = 00h Report VBE/PM Capabilities
|
||||
ES:DI = 0000h:0000h
|
||||
Return: BH = Power saving state signals supported:
|
||||
Bit 0 STAND BY supported if set
|
||||
1 SUSPEND supported if set
|
||||
2 OFF supported if set
|
||||
3 REDUCED On supported if set
|
||||
(Not supported in DPMS 1.0)
|
||||
BL = VBE/PM Version number:
|
||||
Bit 0-3 Minor version
|
||||
4-7 Major version
|
||||
01h Set Display Power State
|
||||
BH = Requested Power State:
|
||||
00h ON
|
||||
01h STAND BY
|
||||
02h SUSPEND
|
||||
04h OFF
|
||||
08h REDUCED ON (for flat screens)
|
||||
02h Get Display Power State
|
||||
Return: BH = Display Power State
|
||||
00h ON
|
||||
01h STAND BY
|
||||
02h SUSPEND
|
||||
04h OFF
|
||||
08h REDUCED ON (for flat screens)
|
||||
Return: AL = 4Fh if function supported
|
||||
AH = status
|
||||
----------104FFF-----------------------------
|
||||
INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
|
||||
AX = 4FFFh
|
||||
DL = new state (00h off, 01h on)
|
||||
Reference in New Issue
Block a user