!short: Reset Driver and Read Status ^bINT 33 - MS MOUSE - RESET DRIVER AND READ STATUS^b AX = 0000h ^uReturn:^u AX = status 0 hardware/driver not installed -1 hardware/driver installed BX = number of buttons -1 two buttons 0 other than two ----------------------------------------------------------- !short: Show Mouse Cursor ^bINT 33 - MS MOUSE - SHOW MOUSE CURSOR^b AX = 0001h ----------------------------------------------------------- !short: Hide Mouse Cursor ^bINT 33 - MS MOUSE - HIDE MOUSE CURSOR^b AX = 0002h ^bNote:^b multiple calls to hide the cursor will require multiple calls to function 01h to unhide it. ----------------------------------------------------------- !short: Return Position and Button Status ^bINT 33 - MS MOUSE - RETURN POSITION AND BUTTON STATUS^b AX = 0003h ^uReturn:^u BX = button status bit 0 left button pressed if 1 bit 1 right button pressed if 1 CX = column DX = row ----------------------------------------------------------- !short: Position Mouse Cursor ^bINT 33 - MS MOUSE - POSITION MOUSE CURSOR^b AX = 0004h CX = column DX = row ----------------------------------------------------------- !short: Return Button Press Data ^bINT 33 - MS MOUSE - RETURN BUTTON PRESS DATA^b AX = 0005h BX = button 0 left 1 right ^uReturn:^u AX = button states bit 0 left button pressed if 1 bit 1 right button pressed if 1 BX = number of times specified button has been pressed since last call CX = column at time specified button was last pressed DX = row at time specified button was last pressed ----------------------------------------------------------- !short: Return Button Release Data ^bINT 33 - MS MOUSE - RETURN BUTTON RELEASE DATA^b AX = 0006h BX = button 0 left 1 right ^uReturn:^u AX = button states bit 0 left button pressed if 1 bit 1 right button pressed if 1 BX = number of times specified button has been released since last call CX = column at time specified button was last released DX = row at time specified button was last released ----------------------------------------------------------- !short: Define Horizontal Curos Range ^bINT 33 - MS MOUSE - DEFINE HORIZONTAL CURSOR RANGE^b AX = 0007h CX = minimum column DX = maximum column ----------------------------------------------------------- !short: Define Vertical Cursor Range ^bINT 33 - MS MOUSE - DEFINE VERTICAL CURSOR RANGE^b AX = 0008h CX = minimum row DX = maximum row ----------------------------------------------------------- !short: Define Graphics Cursor ^bINT 33 - MS MOUSE - DEFINE GRAPHICS CURSOR^b AX = 0009h BX = column of cursor hot spot in bitmap CX = row of cursor hot spot ES:DX = pointer to bitmap 16 words, each defining the sixteen pixels of a row low bit of each word is rightmost in row ----------------------------------------------------------- !short: Define Text Cursor ^bINT 33 - MS MOUSE - DEFINE TEXT CURSOR^b AX = 000Ah BX = hardware/software text cursor 0 software CX = screen mask DX = cursor mask 1 hardware CX = start scan line DX = end scan line ^bNote:^b when the software cursor is selected, the char/attribute data at the current screen position is ANDed with the screen mask and the with the cursor mask ----------------------------------------------------------- !short: Read Motion Counters ^bINT 33 - MS MOUSE - READ MOTION COUNTERS^b AX = 000Bh ^uReturn:^u CX = number of mickeys mouse moved horizontally since last call DX = number of mickeys mouse moved vertically Notes: a mickey is the smallest increment the mouse can sense positive values indicate up/right ----------------------------------------------------------- !short: Define Interrupt Subroutine Parameters ^bINT 33 - MS MOUSE - DEFINE INTERRUPT SUBROUTINE PARAMETERS^b AX = 000Ch CX = call mask bit bit 0 call if mouse moves bit 1 call if left button pressed bit 2 call if left button released bit 3 call if right button pressed bit 4 call if right button released ES:DX = address of FAR routine ^bNote:^b when the subroutine is called, it is passed the following values: AX = condition mask (same bit assignments as call mask) BX = button state CX = cursor column DX = cursor row DI = horizontal mickey count SI = vertical mickey count ----------------------------------------------------------- !short: Light Pen Emulation On ^bINT 33 - MS MOUSE - LIGHT PEN EMULATION ON^b AX = 000Dh ----------------------------------------------------------- !short: Light Pen Emulation Off ^bINT 33 - MS MOUSE - LIGHT PEN EMULATION OFF^b AX = 000Eh ----------------------------------------------------------- !short: Define Mickey/Pixel Ratio ^bINT 33 - MS MOUSE - DEFINE MICKEY/PIXEL RATIO^b AX = 000Fh CX = number of mickeys per 8 pixels horizontally DX = number of mickeys per 8 pixels vertically ----------------------------------------------------------- !short: Define Screen Region for Updating ^bINT 33 - MS MOUSE - DEFINE SCREEN REGION FOR UPDATING^b AX = 0010h ??? ----------------------------------------------------------- !short: Define Double-Speed Threshold ^bINT 33 - MS MOUSE - DEFINE DOUBLE-SPEED THRESHOLD^b AX = 0013h ??? ----------------------------------------------------------- !short: Exchange Interrupt Subroutines ^bINT 33 - MS MOUSE - EXCHANGE INTERRUPT SUBROUTINES^b AX = 0014h ??? ----------------------------------------------------------- !short: Return Drive Storage Requirements ^bINT 33 - MS MOUSE - RETURN DRIVER STORAGE REQUIREMENTS^b AX = 0015h ^uReturn:^u BX = size of buffer needed to store driver state ----------------------------------------------------------- !short: Save Driver State ^bINT 33 - MS MOUSE - SAVE DRIVER STATE^b AX = 0016h ES:DX = pointer to buffer ----------------------------------------------------------- !short: Restore Driver State ^bINT 33 - MS MOUSE - RESTORE DRIVER STATE^b AX = 0017h ES:DX = pointer to buffer containing saved state ----------------------------------------------------------- !short: Define Display Page Number ^bINT 33 - MS MOUSE - DEFINE DISPLAY PAGE NUMBER^b AX = 001Dh ??? ----------------------------------------------------------- !short: Return Display Page Number ^bINT 33 - MS MOUSE - RETURN DISPLAY PAGE NUMBER^b AX = 001Eh ^uReturn:^u ??? Extracted from RALF BROWN'S excellent INTERRUPT LISTING (4/88 version) -----------------------------------------------------------