[bug 718] Executing dos DPMI programs

Jukka Heinonen jhei at iki.fi
Sun Nov 24 13:55:51 CST 2002

On Sun, Nov 24, 2002, Sylvain Petreolle wrote:
> as i'm sending patches and working on cygwin/wine, i'm always doing cvs
> update and looking into the wine-cvs/wine-patches lists to see if some
> patches are committed.
> if you look at the log of some dpmi program, it makes call to int31
> handler and thus switches to 32-bit mode. after that program makes some
> things, then wants to make a dpmi call : wine says that int xx is
> forbidden in 32 bit mode.

Oh, that error message. Well, the line that generates the message
was deleted about seven weeks ago from official Wine CVS. Anyway, 
as I already has stated, most DPMI32 programs won't work and I will 
start working on that problem when I get interrupt handler migration 
finished. This would likely happen during late december or early january.

Sigh, I just sometimes wonder why I bother to explain these things...
All DPMI16 programs should work and for some strange reason
some DPMI32 programs work, too (pkzip for example). StartPM is called 
from int31 handler when "int 0x31" opcode is executed in DPMI protected 
mode switch wrapper. StartPM always makes a switch to 16-bit 
protected mode. DPMI32 applications usually allocate a 32-bit selector 
and make a jump which loads that selector into CS register. This makes
the application enter 32-bit protected mode. 

Jukka Heinonen <http://www.iki.fi/jhei/>

More information about the wine-devel mailing list