From: cmk128 on
Hi All
Here is the description of int 10h , function 4F00


Offset Size Description (Table 00077)
00h 4 BYTEs (ret) signature ("VESA")
(call) VESA 2.0 request signature ("VBE2"), required to receive
version 2.0 info
04h WORD VESA version number (one-digit minor version -- 0102h =
v1.2)
06h DWORD pointer to OEM name
"761295520" for ATI
0Ah DWORD capabilities flags (see #00078)
0Eh DWORD pointer to list of supported VESA and OEM video modes
(list of words terminated with FFFFh)
12h WORD total amount of video memory in 64K blocks
---VBE v1.x ---
14h 236 BYTEs reserved
---VBE v2.0 ---
14h WORD OEM software version (BCD, high byte = major, low byte =
minor)
16h DWORD pointer to vendor name
1Ah DWORD pointer to product name
1Eh DWORD pointer to product revision string
22h WORD (if capabilities bit 3 set) VBE/AF version (BCD)
0100h for v1.0P
24h DWORD (if capabilities bit 3 set) pointer to list of supported
accelerated video modes (list of words terminated with FFFFh)
28h 216 BYTEs reserved for VBE implementation
100h 256 BYTEs OEM scratchpad (for OEM strings, etc.)


For the field "06h DWORD pointer to OEM name", it contains a very
high memory address, such as 0xc0000048 for my notebook, when i access
this memory location, my computer restart. Why and how to get the right
information of this field?

thanks a lot
from Peter (cmk128(a)hotmail.com)

From: cmk128 on
And i think this web is wrong
http://www.inversereality.org/tutorials/graphics%20programming/videomodesVESA.html


It said : "Notice that we are filling in vesainfo.VESASignature with
"VESA" before calling the interrupt. This tells the BIOS that we are
requesting VESA information, VESA 2.0 items WILL NOT BE FILLED IN! The
new standard is to fill in the signature with "VBE2" so that all VESA
2+ information will be filled in!" , I don't know i have vesa 1.0 or
2.0, how can i fill in before calling the interrupt, and i have
tested, even i don't fill in the signature field before calling the
interrupt, i still get the correct information, except the OEM name
field problem as above.
thanks

From: wolfgang kern on

Hi Peter,

| Here is the description of int 10h , function 4F00
[..]
| For the field "06h DWORD pointer to OEM name", it contains a very
| high memory address, such as 0xc0000048 for my notebook, when i access
| this memory location, my computer restart. Why and how to get the right
| information of this field?

this dword is a real-mode 'far pointer': c000:0048,
so the linear equivalent is 000c0048.

__
wolfgang



From: Frank Kotler on
cmk128(a)hotmail.com wrote:

> For the field "06h DWORD pointer to OEM name", it contains a very
> high memory address, such as 0xc0000048 for my notebook, when i access
> this memory location, my computer restart. Why and how to get the right
> information of this field?

Hi Peter,

I'm just guessing, but that looks like a segment:offset address to me.
C000:0048 would be a reasonable place to find an oem string for the
video bios.

Best,
Frank
From: cmk128 on
thank you guys
It is correct.
thanks again

 |  Next  |  Last
Pages: 1 2 3
Prev: Atmel AVR assembler
Next: Beginner Learning Assembler