Table 1 Microsoft Mouse Driver Interface Functions Used In Queue Example

Detect presence of mouse driver:
   INT 33H Function 00H
      On Entry: AX = 0000H
      Returns:
        if  (AX == FFFFH)
            BX == number of mouse buttons
        if  (AX == 0000H)
            No MicroSoft compatible mouse driver
            in system

Note: This function is also used to reset the mouse driver to
its default state after hiding the mouse cursor (use before
your application exits).

Display mouse cursor:
   Int 33H, function 01H
      On Entry: AX = 0001H
      Returns:  nothing

Hide mouse cursor:
   Int 33h, function 02H
      On Entry: AX = 0002H
      Returns:  Nothing

Register mouse EVENT handler:
   Int 33H, function 0CH
   On Entry: AX = 000CH
   CX  = EVENT mask (see Mouse Event
          Mask below)
   DX  = offset portion of EVENT handler address
   ES  = segment portion of EVENT handler address
   Returns:  Nothing

Mouse Event Mask:
   a 1 in bit position implies:
      0   =   mouse cursor movement
      1   =   left button press
      2   =   right button press
      3   =   left button release
      4   =   right button release
      5 - 15: unused

Note: If bit zero is set, the handler will be called frequently
during mouse movement, so the queue should be
considerably larger than if handling button activity only.