Mouse_Event


mov     ax, [Status]
mov     bx, [deltaX]
mov     cx, [deltaY]
mov     dx, [ButtonCount]
xor     di,di
xor     si,si
call    [Mouse_Event]

Records mouse motion and button clicks. VMOUSE calls this function when it has a new mouse event to report.

Status

Combination of values indicating whether the user moved the mouse, pressed a mouse button, or released a mouse button:

Value

Meaning

SF_MOVEMENT (0001h)

Movement occurred.

SF_B1_DOWN (0002h)

Button 1 changed to down.

SF_B1_UP (0004h)

Button 1 changed to up.

SF_B2_DOWN (0008h)

Button 2 changed to down.

SF_B2_UP (0010h)

Button 2 changed to up.

SF_ABSOLUTE (8000h)

BX and CX contain normalized absolute coordinates.


The values specifying the button status are set to indicate a change in status of an ongoing condition. For example, if button 1 is pressed and held down, SF_B1_DOWN is set only when button 1 is first pressed but not for subsequent motions. Similarly, SF_B1_UP is set only when the button is first released.

deltaX and deltaY

Amount of motion along the x and y axes. The amount is either the number of mickeys moved (for relative devices), or the actual x and y coordinates (for absolute devices).

ButtonCount

Number of buttons on the mouse.

If there has been mouse motion (bit 0 of AX is set), BX and CX hold the integer values of motion since the last mouse interrupt was generated for x and y, respectively.

If the SF_ABSOLUTE value is not specified in Status, BX and CX specify relative motions from the last reported position. If this value is specified in Status, BX and CX contain normalized absolute coordinates in the range 0 through 65,535. These coordinates will be mapped by the event procedure onto the display surface.

DI and SI must be zero to ensure compatibility with Microsoft Windows for Pen Computing.