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