Hi,
Could you give examples of what has been enabled here ? I will be happy to do tests if some free programs uses this.
===== Sylvain Petreolle (spetreolle at users dot sourceforge dot net) ICQ #170597259
"What if tomorrow the War could be over ?" Morpheus, in "Reloaded".
For the Law of Oil and Fire, Im an European that lives in France. For all my Brothers and friends, Im a human living on Earth.
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
On Sun, Jun 22, Sylvain Petreolle wrote:
Could you give examples of what has been enabled here ? I will be happy to do tests if some free programs uses this.
Well, actually I'm just doing some refactoring kind of work needed in order to get DPMI IRQ support working. So this patch doesn't add any real functionality. However, after two or three additional patches, DPMI IRQs should work fine.
Working IRQ handling is needed by any DPMI program that uses timer IRQs for precision timing, polls keyboard (because this needs asynchronous events that are handled by the same code as IRQs), installs mouse callback handler or wants to use soundblaster emulation. So, it is possible that quite a few DPMI programs (games especially) would start to work better when IRQs are properly supported.
Unfortunately, I don't really know how many DOS programs really need IRQs but at least Doom Legacy seems to require them and that is the main test program I'm using.
Trying to debug a problem into INT21_CreateDirectory, I want to run doom3.exe into winedbg. (DL tries to create the directory in %HOME%, set to /home/something... LOL)
Unfortunately, winedbg complains on the first int21 call : First chance exception: interrupt 21 in vm86 mode in vm86 code (00d4:045e).
How can this be avoided ?
Unfortunately, I don't really know how many DOS programs really need IRQs but at least Doom Legacy seems to require them and that is the main test program I'm using.
-- Jukka Heinonen http://www.iki.fi/jhei/
===== Sylvain Petreolle (spetreolle_at_users_dot_sourceforge_dot_net) ICQ #170597259
alias upsf='false ; while [ $? -ne 0 ] ; do cvs update -APd ; done 2>&1 |tee cvslog'
"What if tomorrow the War could be over ?" Morpheus, in "Reloaded".
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
Sylvain Petreolle wrote:
Trying to debug a problem into INT21_CreateDirectory, I want to run doom3.exe into winedbg. (DL tries to create the directory in %HOME%, set to /home/something... LOL)
Unfortunately, winedbg complains on the first int21 call : First chance exception: interrupt 21 in vm86 mode in vm86 code (00d4:045e).
How can this be avoided ?
do you get the winedbg prompt or not ? if so, 'pass' should do.
A+
Unfortunately, winedbg complains on the first int21 call : First chance exception: interrupt 21 in vm86 mode in vm86 code (00d4:045e).
How can this be avoided ?
do you get the winedbg prompt or not ? if so, 'pass' should do.
This works, thanks. But the same error appears on the next interrupt call.
I tried 'mode 16' and 'mode 32' but they seem to do nothing. I stay in vm86 mode.
First chance exception: interrupt 21 in vm86 mode in vm86 code (00d4:0063). In vm86 mode. Register dump: CS:00d4 SS:00d4 DS:00d4 ES:00c4 FS:0000 GS:0000 IP:0063 SP:0760 BP:0000 FLAGS:0202( - 00 I - - 1 ) AX:3000 BX:0000 CX:0000 DX:0000 SI:0000 DI:0000 Stack dump: 0x00d4:0x0760: 00c4 0000 0000 0000 0000 0000 0000 0000 0x00d4:0x0770: 0000 0000 0000 0000 0000 0000 0000 0000 0x00d4:0x0780: 0000 0000 0000 0000 0000 0000 0000 0000 0x00d4:0x0790:
Backtrace: =>0 0x00d4:0x0063 (bp=0000) Bad stack frame 0x01f7ffd0 0x00d4:0x0063: cmpb $3,%al Wine-dbg>pass First chance exception: interrupt 21 in vm86 mode in vm86 code (00d4:0093). Register dump:
Wine-dbg>mode 16 Wine-dbg>cont First chance exception: interrupt 21 in vm86 mode in vm86 code (00d4:00d7). In vm86 mode.
===== Sylvain Petreolle (spetreolle_at_users_dot_sourceforge_dot_net) ICQ #170597259
alias upsf='false ; while [ $? -ne 0 ] ; do cvs update -APd ; done 2>&1 |tee cvslog'
"What if tomorrow the War could be over ?" Morpheus, in "Reloaded".
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
Sylvain Petreolle wrote:
Unfortunately, winedbg complains on the first int21 call : First chance exception: interrupt 21 in vm86 mode in vm86 code (00d4:045e).
How can this be avoided ?
do you get the winedbg prompt or not ? if so, 'pass' should do.
This works, thanks. But the same error appears on the next interrupt call.
I tried 'mode 16' and 'mode 32' but they seem to do nothing. I stay in vm86 mode.
you shouldn't need to change the mode, why do you want to switch to mode 32 ?
since the pc has changed between the two exceptions, I assume several int 21 take place in a row. so, if you use cont at the second exception, you're stuck as for the first one. So, you should use pass if you want the execution to be correct (even the second time) A+
you shouldn't need to change the mode, why do you want to switch to mode 32 ?
since it complains in vm86 mode, I tried something different (all the others :))
since the pc has changed between the two exceptions, I assume several int 21 take place in a row.
yes, this is a dos prog... wich makes use of the long filename functions of win95.
so, if you use cont at the second exception, you're stuck as for the first one. So, you should use pass if you want the execution to be correct (even the second time)
this is why I tried to switch to mode 16/32, to have no more problem (do you know how many int calls are made in a dos prog ? ;)
===== Sylvain Petreolle (spetreolle_at_users_dot_sourceforge_dot_net) ICQ #170597259
alias upsf='false ; while [ $? -ne 0 ] ; do cvs update -APd ; done 2>&1 |tee cvslog'
"What if tomorrow the War could be over ?" Morpheus, in "Reloaded".
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
Sylvain Petreolle wrote:
you shouldn't need to change the mode, why do you want to switch to mode 32 ?
since it complains in vm86 mode, I tried something different (all the others :))
since the pc has changed between the two exceptions, I assume several int 21 take place in a row.
yes, this is a dos prog... wich makes use of the long filename functions of win95.
so, if you use cont at the second exception, you're stuck as for the first one. So, you should use pass if you want the execution to be correct (even the second time)
this is why I tried to switch to mode 16/32, to have no more problem (do you know how many int calls are made in a dos prog ? ;)
in that case, you can use a different technique. Add a DebugBreak(); call in the offending function, and run the program without the wine debugger. The first time the offending func will be used, the debugger will be opened (if this lets you go further without passing all the time) As of today, there's no automated way of passing N times, nor ignoring a given exception (we could add what gdb does: a mapping of behavior between a given exception (signal in gdb) and the behavior: enter debugger, pass exception, continue, exit...)
A+