DOS: implement int33 0x15, 0x16 and 0x17

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

i hope i used the right incantation to get from DOS segment:offset to
linear memory. Int33 0x15 is used by dos32a.

License: LGPL, X11
Changelog:
	Michael Stefaniuc <mstefani@redhat.com>
	- implement the MS Mouse 6.0+ functions regarding the
	  save/restore of the mouse state.

bye
	michael
-- 
Michael Stefaniuc               Tel.: +49-711-96437-199
System Administration           Fax.: +49-711-96437-111
Red Hat GmbH                    Email: mstefani@redhat.com
Hauptstaetterstr. 58            http://www.redhat.de/
D-70178 Stuttgart
Index: dlls/winedos/int33.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/int33.c,v
retrieving revision 1.14
diff -u -r1.14 int33.c
--- dlls/winedos/int33.c	5 Sep 2003 23:08:28 -0000	1.14
+++ dlls/winedos/int33.c	25 Sep 2003 19:03:59 -0000
@@ -126,6 +126,26 @@
   case 0x10:
     FIXME("Define screen region for update\n");
     break;
+  case 0x15:
+    TRACE("Return driver storage requirements\n");
+    SET_BX(context, sizeof(mouse_info));
+    break;
+  case 0x16:
+    TRACE("Save driver state\n");
+    /* BX = size of buffer, not used by MS driver but by others */
+    if (BX_reg(context) || (BX_reg(context) >= sizeof(mouse_info))) {
+	memcpy(MapSL(MAKESEGPTR(context->SegEs, DX_reg(context))), &mouse_info,
+	       sizeof(mouse_info));
+    }
+    break;
+  case 0x17:
+    TRACE("Restore driver state\n");
+    /* BX = size of buffer, not used by MS driver but by others */
+    if (BX_reg(context) || (BX_reg(context) >= sizeof(mouse_info))) {
+	memcpy(&mouse_info, MapSL(MAKESEGPTR(context->SegEs, DX_reg(context))),
+	       sizeof(mouse_info));
+    }
+    break;
   default:
     INT_BARF(context,0x33);
   }

Attachment: pgp00185.pgp
Description: PGP signature


[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux