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