INT 33H 000cH: Set Mouse Event Handler
Expects: AX 000cH
CX event mask (events which you want sent to your handler)
bit 0 = mouse movement (CX | 01H)
bit 1 = left button pressed (CX | 02H)
bit 2 = left button released (CX | 04H)
bit 3 = right button pressed (CX | 08H)
bit 4 = right button released (CX | 10H)
bit 5 = center button pressed (CX | 20H)
bit 6 = center button released (CX | 40H)
All events: CX = 007fH
Disable handler: CX = 0000H
ES:DX address of your event handler code
Info: This installs a custom mouse event handler. Specify which events
you want to monitor via bit-codes in CX, and pass the address of
your handler in ES:DX. When any of the specified events occur,
the code at ES:DX will get control via a far CALL.
On entry to your handler:
AX contains a bit mask identifying which event has occurred (it is
encoded in the same format as described for CX, above).
BX contains the mouse button status:
bit 0 = left button (BX & 1) == 1
bit 1 = right button (BX & 2) == 2
bit 2 = center button (BX & 4) == 4
CX horizontal position (in text mode, divide by 8 for character clm)
DX vertical position (in text mode, divide by 8 for character line)
SI distance of last horizontal motion (mickeys: <0=left; >0=right)
DI distance of last vertical motion (mickeys: <0=upward, >0=down)
DS mouse driver data segment
You will need to set up DS to access your own variables. You
need not save/restore CPU registers, since the driver does this
Exit your custom handler via a FAR RETurn (not an IRET).
To enable or disable selected events for your handler, use this
function again, passing a modified mask in CX. To disable all
events for the handler, call this function again passing a value
of 0000H in CX.
Warning: You must disable your custom event handler (call with CX=0)
before exiting to DOS. For TSRs, you must enable each time you
pop up and disable each time you pop down.
Notes: You may prefer to use the more-flexible INT 33H 0014H (exchange
handlers) or INT 33H 0018H (install mouse+key handler).
See Also: INT 33H: Mouse Support
Interrupts and BIOS Services