From 7c44fa3b89c5f0cb4aff6c503a5b533758c8a2fb Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Sat, 19 Sep 2015 22:29:45 +0000 Subject: [PATCH] [NTVDM] Save and restore BP, DS and ES when calling the mouse callback. svn path=/trunk/; revision=69298 --- reactos/subsystems/mvdm/ntvdm/dos/mouse32.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/reactos/subsystems/mvdm/ntvdm/dos/mouse32.c b/reactos/subsystems/mvdm/ntvdm/dos/mouse32.c index 28bde45d6b5..257dac4b78f 100644 --- a/reactos/subsystems/mvdm/ntvdm/dos/mouse32.c +++ b/reactos/subsystems/mvdm/ntvdm/dos/mouse32.c @@ -243,7 +243,7 @@ static VOID FromMouseCoordinates(PCOORD Position) static VOID CallMouseUserHandlers(USHORT CallMask) { USHORT i; - USHORT AX, BX, CX, DX, SI, DI; + USHORT AX, BX, CX, DX, BP, SI, DI, DS, ES; COORD Position = DriverState.Position; ToMouseCoordinates(&Position); @@ -262,8 +262,11 @@ static VOID CallMouseUserHandlers(USHORT CallMask) BX = getBX(); CX = getCX(); DX = getDX(); + BP = getBP(); SI = getSI(); DI = getDI(); + DS = getDS(); + ES = getES(); setAX(CallMask); setBX(DriverState.ButtonState); @@ -284,8 +287,11 @@ static VOID CallMouseUserHandlers(USHORT CallMask) setBX(BX); setCX(CX); setDX(DX); + setBP(BP); setSI(SI); setDI(DI); + setDS(DS); + setES(ES); } for (i = 0; i < ARRAYSIZE(DriverState.Handlers); ++i)