Mail Archives: djgpp/1999/12/12/19:13:19
At 14:03 12/12/99 +0200, Eli Zaretskii wrote:
>
>On Sat, 11 Dec 1999, Peter Johnson wrote:
>
>> > Having several different register structs has no point as
>> > the values of the registers are only garantued inside the call !
>> > (See Ralph Brown Interrupt List !)
>>
>> Unfortunately we cannot use this workaround without changing how the
>> interface works (unless we just ignore the passed registers structure,
>> which would be bad form, perhaps.. comments, Eli?).
>
>To tell the truth, I don't really understand Pierre's comment, so I
>cannot comment myself.
>
>Pierre, could you please clarify what did you refer to as ``having
>several different register structs''?
I mean that I only reserved room for one such structure inside
the loader file (equivalent of crt0.S)
so all calls to 0x303 DPMI function must use the same
register struct !
(But Ralph Brown interrupt list anyhow states
that the content of this struct should only be
examined inside the protected mode code itself !)
So if you specify another struct defined elsewhere
it will probably have an address > 0x10000 and thus WinNT
will write data at a wrong address ( true addr & 0xffff !!)
=> crash !
This was simply to say that my solution was easier
because it had less overhead, but its less general also !
I hope I was a little more clear, even if I am not really sure about it!
- Raw text -