Ye olde INT 33h

lawson_whitney at juno.com lawson_whitney at juno.com
Sat Feb 3 14:02:56 CST 2001



On Sat, 3 Feb 2001, Eduardo Costa wrote:

> Ove Kaaven wrote:
> > int 33h is the MS Mouse Driver interrupt, which is supported reasonably
> > well. Do you mean something else?
>
> err:int:INT_Int33Handler int33: unknown/not implemented parameters:
> int33: AX 000b, BX 0000, CX 0000, DX 0000, SI 0000, DI 00fb, DS 2ffd, ES
> 40d2
>
> I got a collection of these lines, with different AX & BX values.
> (I'm trying to run DOTT)
>
> Thanks,
> Eduardo Costa
> --
Try this, if you are brave.  I have done my usual rigorous regression
testing (it was sent with wine using the patch, so it doesn't break my
email app), but probably even if it is right, your app wants something
else I don't know how to give it.

What is DOTT?

Lawson

| We apologize if this message has reached you in error.
| Save the Planet, Save the Trees! Advertise via E mail.
-------------- next part --------------
diff -urN was/msdos/int33.c is/msdos/int33.c
--- was/msdos/int33.c	Sat Jan 13 01:23:58 2001
+++ is/msdos/int33.c	Sat Feb  3 14:13:39 2001
@@ -23,6 +23,10 @@
   WORD callmask;
 } mouse_info;
 
+static struct
+{
+  DWORD x, y;
+} last_call;
 /**********************************************************************
  *	    INT_Int33Handler
  *
@@ -36,6 +40,7 @@
     AX_reg(context) = 0xFFFF; /* installed */
     BX_reg(context) = 3;      /* # of buttons */
     memset( &mouse_info, 0, sizeof(mouse_info) );
+    memset( &last_call, 0, sizeof(last_call) );
     break;
   case 0x01:
     FIXME("Show mouse cursor\n");
@@ -63,6 +68,12 @@
     break;
   case 0x0A:
     FIXME("Define text mouse cursor\n");
+    break;
+  case 0x0B:
+    CX_reg(context) = mouse_info.x - last_call.x;
+    DX_reg(context) = mouse_info.y - last_call.y;
+    last_call.x = mouse_info.x;
+    last_call.y = mouse_info.y;
     break;
   case 0x0C:
     TRACE("Define mouse interrupt subroutine\n");


More information about the wine-users mailing list