updated 10 October 1999 
go to main pageto programing index page

Interrupt 0x33 Listings

Int 33,0x00: Check whether driver exists
input output Comment
ax=0x0000 ax=0x0000 or 0xFFFF
bx=number of buttons
0x0000 installed
0xFFFF not installed

 

Int 33,0x01: Show Mouse cursor
input output Comment
ax=0x0001 none  

 

Int 33,0x02: Hide Mouse Cursor
input
output
Comment
ax=0x0002
none
 

 

Int 33,0x03: Get Mouse Position and Button Status
input
output
Comment
ax=0x0003
cx=horizontal position
bx=button status
dx=vertical position
horizontal: 0 to 640
vertical: 0 to 480
Special Notes
       ¦ F-8 ¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦  Button Status
          ¦     ¦    ¦    ¦     ¦    ¦    ¦    ¦   +---- left button (1 = pressed)
          ¦     ¦    ¦    ¦     ¦    ¦    ¦    +----- right button (1 = pressed)
          +------------------- unused

values returned in CX, DX are the same regardless of video mode

 

Int 33,0x04: Set Cursor Position
input
output
Comment
ax=0x0004
cx=horizontal position
dx=vertical position
none
 

 

Int 33,0x05: Get Button Press Information
input
output
Comment
ax=0x0005
ax=button status
bx=count
cx=horizontal
dx=vertical
count is a counter which count how many times the button pressed.
Special Notes
        ¦ F-8 ¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦  Button Status
           ¦      ¦    ¦     ¦    ¦    ¦   ¦     ¦   +---- left button (1 = pressed)
           ¦      ¦    ¦     ¦    ¦    ¦   ¦     +----- right button (1 = pressed)
          +------------------- unused

values returned in CX, DX are the same regardless of video mode

 

Int 33,0x06: Get Button Release Information
input
output
Comment
ax=0x0006
bx=0x0000 or 0x00001
ax=button status
bx=count
cx=horiz pos last release
dx=vert pos at last release
count is a counter
which count how
many times the
button pressed.

 

Int 33,0x07: Set mouse maximum and minimum horizontal position
input
output
Comment
ax=0x0007
cx=minimum horiz position
dx=maximum horiz postion
none

 

Int 33,0x08: Set mouse maximum and minimum vertical position
input
output
Comment
ax=0x0008
cx=minimum vert position
dx=maximum vert postion
none
0x0000 installed
0xFFFF not installed

Int 33,0x09: Set your own mouse graphic cursor
input
output
Comment
ax=0x0009
bx=horizontal hotspot(-16 to 16)
cx=vertival hotspot (-16 to 16)
es=segment(pointer to screen & cursor mask)
dx=offset(pointer to screen & cursor mask)
none
 
Special Notes
The cursor is a combination of screen mask & cursor mask. 
see cursor

 

Int 33,0x0A: Set mouse text cursor
input output Comment
ax=0x000A
bx=00 or 01
cx=start
dx=end
  start: start of screen mask or hardware cursor scan line
end: end of screen mask or hardware cursor scan line

 

Int 33,0x0B: Read mouse motion counter
input
output
Comment
ax=0x000B
cx=horizontal mickey count
dx=vertical mickey count
 

 

Int 33,0x0C: Set user defined Subroutine Routine and input mask
input
output
Comment
ax=0x000C
ES:DX=far pointer to user interrupt
CX=interrupt mask
the user interrupt routine is called  

 

Int 33,0x0D: set light pen emulation on
input
output
Comment
ax=0x000D
none
 

 

Int 33,0x0E: Set light pen emulation off
input
output
Comment
ax=0x000E
none
 

 

Int 33,0x0F: Set mouse mickey pixel ratio
input
output
Comment
ax=0x000F
cx=horizontal ratio
dx=vertical ratio
none
 

 

Int 33,0x10: Set an area where the mouse is hidden whenever it is in the area
input
output
Comment
ax=0x0010
cx=x1
dx=y1
si=x2
di=y2
none
 

 

Int 33,0x13: Set a value which mouse speed is doubled when is reaches threshold speed
input
output
Comment
ax=0x0013
dx=threshold speed (def 64)
none
 

 

Int 33,0x14: Swap user interrupts subroutine (see int 33,0x0C)
input
output
Comment
ax=0x0014 
CX=interrupt mask
ES:DX=far pointer to user interrupt
none
 

 

Int 33,0x15: Get mouse driver state and memory requirement
input
output
Comment
ax=0x0015
bx=buffer size to hold driver info
 

 

Int 33,0x16: Save driver info
input
output
Comment
ax=0x0016
ES:DX=far pointer to buffer to save the driver info
none
 

 

Int 33,0x17: Restore driver info
input
output
Comment
ax=0x0016
ES:DX=far pointer to buffer to saved driver info
none
 

 

Int 33,0x18: Set user alternate interrupt mask
input
output
Comment
     

 

Int 33,0x19: Get user alternate interrupt mask
input
output
Comment
ax=0x0019
cx=user interrupt call mask
BX:DX=user interrupt vector
CX=user interrupt call mask
 

 

Int 33,0x1A: Set mouse sensitivity
input
output
Comment
ax=0x001A
bx=horizontal coordinates per pixel  (<=100)
cx=vertical coordinates per pixel  (<=100)
dx=double speed threshold
none
 

 

Int 33,0x1B: Get mouse sensitivity
input
output
Comment
ax=0x001B
bx=horizontal coordinates per pixel  (<=100)
cx=vertical coordinates per pixel (<=100)
dx=double speed threshold
 

 

Int 33,0x1C: Get user alternate interrupt mask
input
output
Comment
ax=0x001C
cx=user interrupt call mask
bx:dx=user interrupt vector
cx=user interrupt call mask
 

 

Int 33,0x1D: Set mouse CRT page
input
output
Comment
ax=0x001D
bx=CRT page number
none
 

 

Int 33,0x1E: Get mouse CRT page
input
output
Comment
ax=0x001E
bx=CRT page number
 

 

Int 33,0x1F: Disable Mouse Driver
input
output
Comment
ax=0x001F
ax=0x001F or 0xFFFF
es:bx=previous int 33 vector
0x001F success
0xFFFF error 

 

Int 33,0x20: Enable mouse driver
input
output
Comment
ax=0x0020
none
 

 

Int 33,0x21: Reset Mouse software
input
output
Comment
ax=0x0021
ax=0x0021 or 0xFFFF
bx=0x02
0x0021 mouse not installed
0xFFFF mouse installed
0x02 mouse installed

Int 33,0x24: Get driver version
input
output
Comment
ax=0x0024
bh=major version
bl=minor version
ch=mouse type
cl=IRQ number