Mail Archives: djgpp/1996/10/22/09:47:17
At 02:14 22/10/96 GMT, Mohan Khurana wrote:
>I have a structure, which is the VbeInfoBlock structure that contains
>the VESA spec version, memory, etc.
>
>I make a structure like this:
>
>struct VbeInfoBlock vesastruct;
>
>Then I go through the normal procedure for getting a pointer to the
>structure, using dpmi functions.
>
>If I print the version number, defined in the struct as:
>
>short VbeVersion PACKED;
>
> I will get a successful and expected result of 200, here is the line
>I used:
>
>print("%x", vesastruct->VbeVersion);
>
>Inside this structure there is a pointer called "OemStringPtr" defined
>in the struct statement as:
>
>char *OemStringPtr PACKED;
>
>If I try to print this pointer to a null terminated string, using the
>following line:
>
>printf("%s", vesastruct->OemStringPtr);
>
>I get the following error:
>
>Exiting due to signal SIGSEGV
>General Protection Fault at eip=00004a5a
>eax=00000000 ebx=00000000 ecx=ffffffff edx=00000025 esi=c00074ac
>edi=c00074ac
>ebp=00047624 esp=0004626c cs=00a7 ds=00af es=00af fs=0087 gs=00c7
>ss=00af
>Call frame traceback EIPs:
> 0x00004a5a
> 0x00001fc1
> 0x000015c1
> 0x000015f5
> 0x00001b33
>
>The specs say that OemStringPtr is a real mode far pointer in
>protected mode. How do I access it?
>
>Please help. I have been trying to figure this out for a while now.
>
>
In the grx20 package there is a programa called vesainfo there. You can look
a its sources.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cesar Scarpini Rabak E-mail: csrabak AT ipt DOT br
DME/ASC Phone: 55-11-268-35221Ext.350
IPT - Instituto de Pesquisas Tecnologicas Fax: 55-11-268-5996
Av. Prof. Almeida Prado, 532. Sao Paulo - SP 05508-901 BRAZIL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Raw text -