Its the linear framebuffer address again
Posted: Sat Feb 02, 2008 3:36 pm
Hi guys,
This is my first post in this forum, although I visited it for a while now.
Now, I'm really sorry to make my first question one over the LFB address and I know that there are many other posts here with this topic. After reading those, I still can't get it to work.
So here we go:
What I've done before:
I picked myself a nice SVGA video mode (1280x1024 64K), checked all it's stats and tried it with it's native address 0xA0000.
It perfectly draws the first 51 and somthing lines (64KB limit).
So now I 'or'ed bit 14 when setting the videomode like this:
and after checking the video mode stats it gave me LINEAR ADDRESS = 0x6000000 (yes, linear addressing is supported on this mode)
So here's where I am right now.
I already tried making a gdt sector with its origin at 0x6000000 and sent some bytes like this:
So the final question is: How do I get to write at 0x6000000?
I have already gone through the vesa docs, but I found nothing helpfull.
Do I do it with paging, virtual addressing or other tricks?
Is this type of high memory folded to a lower address like accessing > 1 MB without A20?
I would appreciate any help
Thanks in advice
This is my first post in this forum, although I visited it for a while now.
Now, I'm really sorry to make my first question one over the LFB address and I know that there are many other posts here with this topic. After reading those, I still can't get it to work.
So here we go:
What I've done before:
I picked myself a nice SVGA video mode (1280x1024 64K), checked all it's stats and tried it with it's native address 0xA0000.
It perfectly draws the first 51 and somthing lines (64KB limit).
So now I 'or'ed bit 14 when setting the videomode like this:
Code: Select all
mov ax, 4F02h ; Set vesa screen mode
mov bx, 11Ah ; 1280x1024x64K
or bx, 4000h
int 10h
So here's where I am right now.
I already tried making a gdt sector with its origin at 0x6000000 and sent some bytes like this:
Code: Select all
mov ax, 24
mov es, ax
mov byte [es:0h], 4h
mov byte [es:1h], 4h
mov byte [es:2h], 4h
mov byte [es:3h], 4h
I have already gone through the vesa docs, but I found nothing helpfull.
Do I do it with paging, virtual addressing or other tricks?
Is this type of high memory folded to a lower address like accessing > 1 MB without A20?
I would appreciate any help
Thanks in advice