Prev: Atmel AVR assembler
Next: Beginner Learning Assembler
From: cmk128 on 17 Aug 2005 04:39 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 17 Aug 2005 05:00 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 17 Aug 2005 05:15 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 17 Aug 2005 05:24 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 17 Aug 2005 05:48
thank you guys It is correct. thanks again |