Module: wine Branch: refs/heads/master Commit: 404eadc7751a4a232dc16d2eedbd17163e4dd654 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=404eadc7751a4a232dc16d2e...
Author: Petr Tesarik hat@tesarici.cz Date: Mon Mar 27 10:15:29 2006 +0200
winedos: Clear TF bit before passing control to a VM86 interrupt handler.
---
dlls/winedos/dosexe.h | 1 + dlls/winedos/interrupts.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/winedos/dosexe.h b/dlls/winedos/dosexe.h index 1aba889..ffb62d8 100644 --- a/dlls/winedos/dosexe.h +++ b/dlls/winedos/dosexe.h @@ -98,6 +98,7 @@ extern struct DPMI_segments *DOSVM_dpmi_ * IF_MASK is only pushed into real mode stack. */ #define V86_FLAG 0x00020000 +#define TF_MASK 0x00000100 #define IF_MASK 0x00000200 #define VIF_MASK 0x00080000 #define VIP_MASK 0x00100000 diff --git a/dlls/winedos/interrupts.c b/dlls/winedos/interrupts.c index 49c2dfc..83c215f 100644 --- a/dlls/winedos/interrupts.c +++ b/dlls/winedos/interrupts.c @@ -514,8 +514,8 @@ void DOSVM_HardwareInterruptRM( CONTEXT8 context->SegCs = SELECTOROF( handler ); context->Eip = OFFSETOF( handler );
- /* Clear virtual interrupt flag. */ - context->EFlags &= ~VIF_MASK; + /* Clear virtual interrupt flag and trap flag. */ + context->EFlags &= ~(VIF_MASK | TF_MASK); } }