Page 1 of 1
About not esits address
Posted: Thu Nov 02, 2006 12:55 am
by tresss
I Set Graphic module:
mov ax,0x4f02
mov bx,0x4114
int 0x10
And I Get Info:
xor bx,bx
mov es,bx
xor
mov di,bx
mov ax,0x4f01
mov cx,0x114
int 0x10
mov eax,[0x28]
The value of eax is 0xE0000000.
Why?
The address must not exists.Why can I write this address and then show shomething?
Re: About not esits address
Posted: Thu Nov 02, 2006 1:17 am
by Brendan
Hi,
tresss wrote:The value of eax is 0xE0000000.
Why?
The address must not exists.Why can I write this address and then show shomething?
This is the address of the video card's display memory, which is mapped into the physical address space (in an area that doesn't conflict with RAM or anything else) during BIOS initialisation (i.e. when it configures the resources for AGP/PCI devices). I'd assume the address is perfectly valid.
If you don't want direct access to the video card's memory (it's linear frame buffer), then use the details VBE returns for "window A" and "window B". These windows are in the area from 0xA0000 to 0xBFFFF, and are usually 64 KB in size. This makes them far too small to access all of the video data (for SVGA video modes), so usually there's bank switching involved to change which areas of display memory are mapped into these windows.
Cheers,
Brendan
Posted: Thu Nov 02, 2006 1:36 am
by xsix
returned address is video lfb(linear frame buffer) which exists in high memory area. because 32bits cpu can address up to 4gb of memory, video LFB can be anywhere
Posted: Thu Nov 02, 2006 7:08 pm
by tresss
OK..Thanks..
I'm understand...