Mail Archives: djgpp/1997/02/25/01:06:34
I am trying to preset the VBESignature field of the VBEInfoBlock
structure with 'VBE2' to get extended vendor info etc. about the VBE
driver, here's the basic method I was using to preset this field ...
__dpmi_regs r;
//Preset registers 'r' to call 'get extended VBE info'
//Global structure 'VBEInfo' defined already
//Use '__tb' as buffer from DOS mem
VBEInfo.VBESignature[0]='V';//presetting this field tells the VBE
VBEInfo.VBESignature[1]='B';//implementation to return the extended
VBEInfo.VBESignature[2]='E';//VBE 2.0 info
VBEInfo.VBESignature[3]='2';//(VBESignature is a 'char[4]' array)
//this command here, I can't tell if its working
dosmemput(&VBEInfo,sizeof(VBEInfoBlock),__tb);
//call interrupt
__dpmi_int(0x10, &r);
//retrieve info back info 'VBEInfo'
dosmemget(__tb, sizeof(VBEInfoBlock), &VBEInfo);
//now the VBESignature field has 'VESA' in it, not 'VBE2', which is good
At this point if I check the contents of VBEInfo all the version numbers
and totalMemory fields are fine but OEMData doesn't contain any VBE
data, just scraps from RHIDE using this transfer buffer (I hope thats
what it was, "bin/DJGPP.ENV |" etc. ;).
I checked, VBEInfoBlock is the right size (512 bytes).
Please let me know if you can see my mistake ... Thanks,
--
... Andrew Delong
______________________________________________________________
Check out my hompage ... Great for graphics & DOS programming
http://www.osha.igs.net/~dandelong/nash.htm
- Raw text -