Interrupt 33h	Used by Microsoft Mouse Driver

Function 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