vesa information in bochs
- Ozguxxx
vesa information in bochs
Post by Ozguxxx »
- SANiK
Re:vesa information in bochs
Post by SANiK »
Input: AX = 4F00h Return VBE Controller Information
ES:DI = Pointer to buffer in which to place
VbeInfoBlock structure
(VbeSignature should be set to 'VBE2' when
function is called to indicate VBE 3.0 information
is desired and the information block is 512 bytes in
size.)
Output: AX = VBE Return Status
Note: All other registers are preserved.
This required function returns the capabilities of the display controller, the revision level of the
VBE implementation, and vendor specific information to assist in supporting all display
controllers in the field.
/////////
So, all you would expect to get out of there is a return. I hope you aren't expecting to see everything turn into pretty pixels with one command.
//Boch's documents
Notes about VESA usage
Since Bochs version 1.4 it's possible to use VESA graphics. There are some limitations in the current implementation, but in general it should work ok (we have run several test programs, the XFree86 VESA display driver, etc)
NOTE: you will need to use the LGPL'ed VGABIOS in order for application to correctly detect VESA support.
Current limitations:
*
4bpp modes support is incomplete (8, 15, 16, 24 and 32bpp should work)
*
banked mode is very slow (if you can, just use Linear Frame Buffering instead!)
*
only 320x200, 640x400, 640x480, 800x600, 1024x768 are currently supported
Interesting Facts:
*
You need a display driver capable of using the VESA bios for this to work (a recent XFree86 will do, Windows 9x/NT/2K/XP probably will not work 'out of the box'.
*
Currently the VBE2 extension should be supported ok
//////
Hmmm, you seem to be doing all right but VESA ain't returning any info when calling a function. I have no idea why this would be. Try it on a real PC instead, or dump your VESA BIOS and then use that one for testing instead of the BOCH'S one.
- Curufir
Re:vesa information in bochs
Post by Curufir »
- Brendan
- Member
Member - Posts: 8561
- Joined: Sat Jan 15, 2005 12:00 am
- Location: At his keyboard!
- Contact:
Re:vesa information in bochs
For VBE to work in Bochs you need the "VGABIOS-lgpl" BIOS and have a version of Bochs that was compiled with the "--enable-vbe" option....Curufir wrote: VESA detects fine with the lgpl vios, your code is buggy.
Cheers,
Brendan
- SANiK
Re:vesa information in bochs
Post by SANiK »
Since Bochs version 1.4 it's possible to use VESA graphics. There are some limitations in the current implementation, but in general it should work ok (we have run several test programs, the XFree86 VESA display driver, etc)
Im using VGABIOS-lgpl-latest with bochs 2.0.
- Ozguxxx
Re:vesa information in bochs
Post by Ozguxxx »
- SANiK
Re:vesa information in bochs
Post by SANiK »
It's obvious, YOUR code is wrong, not the boch's. And, try it on your PC if you have second doubts.
- Ozguxxx
Re:vesa information in bochs
Post by Ozguxxx »
- Curufir
Re:vesa information in bochs
Post by Curufir »
So that leaves either the code (Which is probably ok if it works on real hardware), the config file (You're 100% sure you're using the LGPL bios? I know for a fact the elpin one doesn't support VESA), or possibly (If you're on Linux) the binary your distro is packaging (Compiled without the flag).
Not a huge amount of help I'm afraid ;D.
- SANiK
Re:vesa information in bochs
Post by SANiK »
- Ozguxxx
Re:vesa information in bochs
Post by Ozguxxx »
Code: Select all
mov ax, 0x04f00
int 0x10
cmp al, 0x4f
jne VESA_function_not_supported
VESA_function_supported:
mov si, vesa_function_supported_msg
call PRINTMSG
jmp $
- Curufir
Re:vesa information in bochs
Post by Curufir »
It could be that on your real hardware es:di are pointing somewhere nice and valid, whereas on Bochs they are pointing somewhere strange that it doesn't like. Or (And this would be amusing) maybe your PRINTMSG function works on real hardware and not Bochs (That is highly unlikely, but would be hilarious).
Don't see anything wrong with the int call though, I do it exactly the same way (Although I verify VESA by checking for the sig, not the return from the interrupt). Just quickly tested your way on my Bochs and it works just fine.
- Federico Tomassetti
Re:vesa information in bochs
Post by Federico Tomassetti »
- Curufir
Re:vesa information in bochs
Post by Curufir »
There isn't one. The protected mode stuff came in with late VBE2.0 and VBE3.0 compliant cards. Bochs/Qemu don't go that high.Federico Tomassetti wrote: I can't find the Protected mode Vesa interface under bochs, someone used VBE under protected mode in bochs?
- Dreamsmith
Re:vesa information in bochs
Post by Dreamsmith »