Interrupt 33h Used by Microsoft Mouse DriverFunction Calls
Function Requests
00h Reset Driver and Read Status
entry AH 00h
return AH status
0 hardware/driver not installed
-1 hardware/driver installed
BX number of buttons
-1 two buttons
0 other than two
3 Mouse Systems mouse
01h Show Mouse Cursor
entry AH 01h
return unknown
02h Hide Mouse Cursor
entry AH 02h
return unknown
note multiple calls to hide the cursor will require multiple calls
to function 01h to unhide it.
03h Return Position and Button Status
entry AH 03h
return BX button status
bit 0 left button pressed if 1
bit 1 right button pressed if 1
bit 2 middle button pressed if 1 (Mouse Systems mouse)
CX column
DX row
04h Position Mouse Cursor
entry AH 04h
CX column
DX row
return unknown
05h Return Button Press Data
entry AH 05h
BX button
0 left
1 right
2 middle (Mouse Systems mouse)
return AH button states
bit 0 left button pressed if 1
bit 1 right button pressed if 1
bit 2 middle button pressed if 1 (Mouse Systems mouse)
BX no. of times specified button pressed since last call
CX column at time specified button was last pressed
DX row at time specified button was last pressed
06h Return Button Release Data
entry AH 06h
BX button
0 left
1 right
2 middle (Mouse Systems mouse)
return AH button states
bit 0 left button pressed if 1
bit 1 right button pressed if 1
bit 2 middle button pressed if 1 (Mouse Systems mouse)
BX no. of times specified button released since last call
CX column at time specified button was last released
DX row at time specified button was last released
07h Define Horizontal Cursor Range
entry AH 0007h
CX minimum column
DX maximum column
return unknown
08h Define Vertical Cursor Range
entry AH 08h
CX minimum row
DX maximum row
return unknown
09h Define Graphics Cursor
entry AH 09h
BX column of cursor hot spot in bitmap (-16 to 16)
CX row of cursor hot spot (-16 to 16)
ES:DX pointer to bitmap
16 words screen mask
16 words cursor mask
return unknown
note Each word defines the sixteen pixels of a row, low bit
rightmost
0Ah Define Text Cursor
entry AH 0Ah
BX hardware/software text cursor
00h software
CX screen mask
DX cursor mask
01h hardware
CX start scan line
DX end scan line
return unknown
note 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
0Bh Read Motion Counters
entry AH 0Bh
return CX number of mickeys mouse moved horiz. since last call
DX number of mickeys mouse moved vertically
note 1) A mickey is the smallest increment the mouse can sense.
Positive values indicate up/right
0Ch Define Interrupt Subroutine Parameters
entry AH 0Ch
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
bit 5 call if middle button pressed (Mouse Systems)
bit 6 call if middle button released (Mouse Systems)
ES:DX address of FAR routine
return unknown
note when the subroutine is called, it is passed these values:
AH 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
0Dh Light Pen Emulation On
entry AH 0Dh
return unknown
0Eh Light Pen Emulation Off
entry AH 0Eh
return unknown
0Fh Define Mickey/Pixel Ratio
entry AH 0Fh
CX number of mickeys per 8 pixels horizontally
DX number of mickeys per 8 pixels vertically
return unknown
10h Define Screen Region for Updating
entry AH 10h
CX,DX X,Y coordinates of upper left corner
SI,DI X,Y coordinates of lower right corner
return unknown
note Mouse cursor is hidden during updating, and needs to be
explicitly turned on again
11h not documented by Microsoft
12h Set Large Graphics Cursor Block
AH 12h
BH cursor width in words
CH rows in cursor
BL horizontal hot spot (-16 to 16)
CL vertical hot spot (-16 to 16)
ES:DX pointer to bit map of screen and cursor maps
return AH -1 if successful
note PC Mouse. Not documented by Microsoft
13h Define Double-Speed Threshold
entry AH 13h
DX threshold speed in mickeys/second,
0 = default of 64/second
return unknown
note If speed exceeds threshold, the cursor's on-screen motion
is doubled
14h Exchange Interrupt Subroutines
entry AH 14h
return unknown
15h Return Drive Storage Requirements
entry AH 15h
return BX size of buffer needed to store driver state
16h Save Driver State
entry AH 16h
ES:DX pointer to buffer
return unknown
17h Restore Driver State
entry AH 17h
ES:DX pointer to buffer containing saved state
return unknown
18h-1Ch not documented by Microsoft; unknown
1Dh Define Display Page Number
entry AH 1Dh
1Eh Return Display Page Number
entry AH 1Eh
return unknown
42h PCMouse - Get MSmouse Storage Requirements
AH 42h
return AX 0FFFFh successful
BX buffer size in bytes for functions 50h and 52h
00h MSmouse not installed
42h functions 42h, 50h, and 52h not supported
52h PCMouse - Save MSmouse State
entry AH 50h
BX buffer size
ES:DX pointer to buffer
return AX 0FFFFh if successful
52h PCMouse - restore MSmouse state
entry AH 52h
BX buffer size
ES:DX pointer to buffer
return AX 0FFFFh if successful
Int 33: In addition, the following functions are appended to BIOS Int\10 and
implemented as the EGA Register Interface Library:
0F0h read one register
0F1h write one register
0F2h read consecutive register range
0F3h write consecutive register range
0F4h read non-consecutive register set
0F5h write non-consecutive register set
0F6h revert to default register values
0F7h define default register values
0FAh get driver status