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?
About not esits address
Re: About not esits address
Hi,
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
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.tresss wrote:The value of eax is 0xE0000000.
Why?
The address must not exists.Why can I write this address and then show shomething?
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
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.