INT 33,14 - Swap Interrupt Subroutines
AX = 14h
ES:DX = far pointer to user routine
CX = user interrupt mask:
|F-8|7|6|5|4|3|2|1|0| user interrupt mask in CX
| | | | | | | | `--- cursor position changed
| | | | | | | `---- left button pressed
| | | | | | `----- left button released
| | | | | `------ right button pressed
| | | | `------- right button released
`--------------- unused
on return:
CX = previous user interrupt mask
ES:DX = far pointer to previous user interrupt
- routine at ES:DX is called if an event occurs and the
corresponding bit specified in user mask is set
- routine at ES:DX receives parameters in the following
registers:
AX = condition mask causing call
CX = horizontal cursor position
DX = vertical cursor position
DI = horizontal counts
SI = vertical counts
DS = mouse driver data segment
BX = button state:
|F-2|1|0|
| | `--- left button (1 = pressed)
| `---- right button (1 = pressed)
`------ unused
- initial call mask and user routine should be restore on exit
from user program
- user program may need to set DS to it's own segment
- see INT 33,C