[bug 718] Executing dos DPMI programs

Sylvain Petreolle spetreolle at yahoo.fr
Tue Nov 26 03:42:23 CST 2002

 --- Jukka Heinonen <jhei at iki.fi> a écrit : > > Does someone has
success when executing DPMI programs ?
> > Every program I try to execute at this time fails,
> > going to the debugger, saying :
> >
> > Unhandled exception: privileged instruction in 32-bit code
> > (0x00000000).
> > In 32-bit mode.
> > 0x00000000: int $0x31
> DPMI16 programs should work as should simple DPMI32 programs.
> However, most DPMI32 programs are not even supposed to work
> because there is no real implementation of 32-bit interrupt
> handling. It is on my TODO list but I'm currently working on
> moving interrupt handlers to winedos dll and I shall return
> to DPMI32 support after this.
Instead of that, couldn't we call DOSVM_EmulateInterruptPM ?
After all we are moving all msdos code to winedos.dll.

 *         DOSVM_EmulateInterruptPM
 * Emulate software interrupt in 16-bit or 32-bit protected mode.
 * Called from signal handler when intXX opcode is executed.
 * Pushes interrupt frame to stack and changes instruction
 * pointer to interrupt handler.

> The problem is that Wine has no support for calling Wine 
> functions from application context whose stack and code pointers 
> use 32-bit segmented model. Wine interrupt emulation
> currently uses a simple scheme which works with any code pointer 
> but which fails miserably if stack pointer is over 0xffff. 
> The simplest fix would probably be to swap to 16-bit stack on 
> entry to Wine interrupt handler. This would mean that only
> winedos dll needs to deal with 32-bit segmented stuff.
> I have a rather good idea on how this can be implemented.
> Anyway, your error message looks quite interesting because 
> current Wine version emulates *all* interrupt opcodes in real 
> mode, 16-bit protected mode and 32-bit protected mode and thus it
> should be impossible to get this error message. Are you sure
> you tried executing using the latest CVS version or at least 
> the latest release?
> -- 
> Jukka Heinonen <http://www.iki.fi/jhei/>

Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com

More information about the wine-devel mailing list