Petr Tesarik : winedos: Clear TF bit before passing control to a VM86 interrupt handler.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Mar 27 05:29:11 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 404eadc7751a4a232dc16d2eedbd17163e4dd654
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=404eadc7751a4a232dc16d2eedbd17163e4dd654

Author: Petr Tesarik <hat at 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);
      }
 }
 




More information about the wine-cvs mailing list