win87em: always return that a 8087 coprocessor is present.

Rein Klazes wijn at online.nl
Wed Apr 8 04:56:50 CDT 2009


On Wed, 08 Apr 2009 11:39:08 +0200, you wrote:

>Rein Klazes <wijn at online.nl> writes:
>
>> @@ -203,9 +203,9 @@ void WINAPI _fpMath( CONTEXT *context )
>>          context->Eax &= ~0xffff;  /* set AX to 0 */
>>          break;
>>  
>> -    case 11: /* just returns the installed flag in DX:AX */
>> +    case 11: /* returns in ax whether a 8087 coprocessor is present, say yes */
>>          context->Edx &= ~0xffff;  /* set DX to 0 */
>> -        context->Eax = (context->Eax & ~0xffff) | Installed;
>> +        context->Eax = (context->Eax & ~0xffff) | 1;
>
>Should you set Installed to 1 instead?

Thought about it, it works for the app just as well.

I choose this solution because:
1)I don't know what installed means. Means a 8087 is installed or that
an emulator is installed.
2)at least in case 11: the documentation is clear what should be
returned.
3)setting installed to 1 enables some assembly code, that could well be
the reason that it is now set to zero.

This was the original Changelog entry that introduced "installed" :

|        * dlls/win87em/emulate.c:
|        Andreas Mohr <mohr at elektron.ikp.physik.tu-darmstadt.de>
|        Several improvements.
|
(25 Nov 1999)

Shall I make another patch?

Rein.



More information about the wine-devel mailing list