home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / asm / MOUSEDOC.ZIP / MOUSE.DOC
Encoding:
Text File  |  1993-03-02  |  22.0 KB  |  819 lines

  1.                             Mouse Function Calls
  2.  
  3. Complete set of interrupt functions and subfunctions.
  4.  
  5. Most of this information is retrieved from the shareware utility "HelpPC",
  6. by David Jurgens (CIS 71270,2422).
  7.  
  8. Collected and uploaded to CIS/MSLANG by:
  9.  
  10.                   Ernest Vogelsinger, CIS PPN 100015,551.
  11.  
  12.                                                                  03/04/93
  13.    ----------------------------------------------------------------------
  14.  
  15. INT 33 - Mouse Function Calls
  16.  
  17. For more information see the following topics:
  18.  
  19.         INT 33,0   Mouse Reset/Get Mouse Installed Flag
  20.         INT 33,1   Show Mouse Cursor
  21.         INT 33,2   Hide Mouse Cursor
  22.         INT 33,3   Get Mouse Position and Button Status
  23.         INT 33,4   Set Mouse Cursor Position
  24.         INT 33,5   Get Mouse Button Press Information
  25.         INT 33,6   Get Mouse Button Release Information
  26.         INT 33,7   Set Mouse Horizontal Min/Max Position
  27.         INT 33,8   Set Mouse Vertical Min/Max Position
  28.         INT 33,9   Set Mouse Graphics Cursor
  29.         INT 33,A   Set Mouse Text Cursor
  30.         INT 33,B   Read Mouse Motion Counters
  31.         INT 33,C   Set Mouse User Defined Subroutine and Input Mask
  32.         INT 33,D   Mouse Light Pen Emulation On
  33.         INT 33,E   Mouse Light Pen Emulation Off
  34.         INT 33,F   Set Mouse Mickey Pixel Ratio
  35.         INT 33,10  Mouse Conditional OFF
  36.         INT 33,13  Set Mouse Double Speed Threshold
  37.         INT 33,14  Swap interrupt subroutines
  38.         INT 33,15  Get mouse driver state and memory requirements
  39.         INT 33,16  Save mouse driver state
  40.         INT 33,17  Restore mouse driver state
  41.         INT 33,18  Set alternate subroutine call mask and address
  42.         INT 33,19  Get user alternate interrupt address
  43.         INT 33,1A  Set mouse sensitivity
  44.         INT 33,1B  Get mouse sensitivity
  45.         INT 33,1C  Set mouse interrupt rate (InPort only)
  46.         INT 33,1D  Set mouse CRT page
  47.         INT 33,1E  Get mouse CRT page
  48.         INT 33,1F  Disable mouse driver
  49.         INT 33,20  Enable mouse driver
  50.         INT 33,21  Reset mouse software
  51.         INT 33,22  Set language for messages
  52.         INT 33,23  Get language number
  53.         INT 33,24  Get driver version, mouse type & IRQ number
  54.  
  55.         - function is specified in AX
  56.         - a mickey is 1/200 inches
  57.         - for additional information see your vendor documentation
  58.         - function number occupies all of AX rather than AH
  59.  
  60.  
  61. Mouse functions can be broken down into the following classes:
  62.  
  63.         Mouse Driver Control / Feedback Functions
  64.         INT 33,0   Mouse Reset/Get Mouse Installed Flag
  65.         INT 33,15  Get Mouse Driver State and Memory Requirements
  66.         INT 33,16  Save Mouse Driver State
  67.         INT 33,17  Restore Mouse Driver State
  68.         INT 33,1C  Set Mouse Interrupt Rate (InPort only)
  69.         INT 33,1F  Disable Mouse Driver
  70.         INT 33,20  Enable Mouse Driver
  71.         INT 33,21  Reset Mouse Software
  72.         INT 33,24  Get Driver Version, Mouse Type & IRQ Number
  73.  
  74.         Mouse Cursor Control Functions
  75.         INT 33,1   Show Mouse Cursor
  76.         INT 33,2   Hide Mouse Cursor
  77.         INT 33,4   Set Mouse Cursor Position
  78.         INT 33,7   Set Mouse Horizontal Min/Max Position
  79.         INT 33,8   Set Mouse Vertical Min/Max Position
  80.         INT 33,9   Set Mouse Graphics Cursor
  81.         INT 33,A   Set Mouse Text Cursor
  82.         INT 33,F   Set Mouse Mickey Pixel Ratio
  83.         INT 33,10  Mouse Conditional OFF
  84.         INT 33,13  Set Mouse Double Speed Threshold
  85.         INT 33,1A  Set Mouse Sensitivity
  86.         INT 33,1B  Get Mouse Sensitivity
  87.  
  88.         Mouse Button and Position Feedback Functions
  89.         INT 33,3   Get Mouse Position and Button Status
  90.         INT 33,5   Get Mouse Button Press Information
  91.         INT 33,6   Get Mouse Button Release Information
  92.         INT 33,B   Read Mouse Motion Counters
  93.  
  94.         Video Control and Feedback Functions
  95.         INT 33,1D  Set Mouse CRT Page
  96.         INT 33,1E  Get Mouse CRT Page
  97.  
  98.         Mouse Interrupt Setup Functions
  99.         INT 33,C   Set Mouse User Defined Subroutine and Input Mask
  100.         INT 33,14  Swap Interrupt Subroutines
  101.  
  102.         Alternate Mouse Interrupt Setup Functions
  103.         INT 33,18  Set Alternate Subroutine Call Mask and Address
  104.         INT 33,19  Get User Alternate Interrupt Address
  105.  
  106.         Light Pen Emulation Functions
  107.         INT 33,D   Mouse Light Pen Emulation On
  108.         INT 33,E   Mouse Light Pen Emulation Off
  109.  
  110.         International Language Support Functions
  111.         INT 33,22  Set Language for Messages
  112.         INT 33,23  Get Language Number
  113.  
  114.  
  115.  
  116. INT 33,0 - Mouse Reset/Get Mouse Installed Flag
  117.  
  118.         AX = 00
  119.  
  120.  
  121.         on return:
  122.         AX = 0000  mouse driver not installed
  123.              FFFF  mouse driver installed
  124.         BX = number of buttons
  125.  
  126.  
  127.         - resets mouse to default driver values:
  128.  
  129.           .  mouse is positioned to screen center
  130.           .  mouse cursor is reset and hidden
  131.           .  no interrupts are enabled (mask = 0)
  132.           .  double speed threshold set to 64 mickeys per second
  133.           .  horizontal mickey to pixel ratio (8 to 8)
  134.           .  vertical mickey to pixel ratio (16 to 8)
  135.           .  max width and height are set to maximum for video mode
  136.  
  137.  
  138. INT 33,1 - Show Mouse Cursor
  139.  
  140.  
  141.         AX = 01
  142.  
  143.  
  144.         returns nothing
  145.  
  146.  
  147.         - increments the cursor flag;  the cursor is displayed if flag
  148.           is zero;  default flag value is -1
  149.  
  150.  
  151.  
  152. INT 33,2 - Hide Mouse Cursor
  153.  
  154.  
  155.         AX = 02
  156.  
  157.  
  158.         returns nothing
  159.  
  160.  
  161.         - decrements cursor flag; hides cursor if flag is not zero
  162.  
  163.  
  164.  
  165. INT 33,3 - Get Mouse Position and Button Status
  166.  
  167.  
  168.         AX = 03
  169.  
  170.  
  171.         on return:
  172.         CX = horizontal (X) position  (0..639)
  173.         DX = vertical (Y) position  (0..199)
  174.         BX = button status:
  175.  
  176.                 │F-8│7│6│5│4│3│2│1│0│  Button Status
  177.                   │  │ │ │ │ │ │ │ └──── left button (1 = pressed)
  178.                   │  │ │ │ │ │ │ └───── right button (1 = pressed)
  179.                   └──┴─┴─┴─┴─┴─┴────── unused
  180.  
  181.  
  182.         - values returned in CX, DX are the same regardless of video mode
  183.  
  184.  
  185.  
  186. INT 33,4 - Set Mouse Cursor Position
  187.  
  188.  
  189.         AX = 4
  190.         CX = horizontal position
  191.         DX = vertical position
  192.  
  193.  
  194.         returns nothing
  195.  
  196.  
  197.         - default cursor position is at the screen center
  198.         - the position must be within the range of the current video mode
  199.         - the position may be rounded to fit screen mode resolution
  200.  
  201.  
  202.  
  203. INT 33,5 - Get Mouse Button Press Information
  204.  
  205.  
  206.         AX = 5
  207.         BX = 0  left button
  208.              1  right button
  209.  
  210.  
  211.         on return:
  212.         BX = count of button presses (0-32767), set to zero after call
  213.         CX = horizontal position at last press
  214.         DX = vertical position at last press
  215.         AX = status:
  216.  
  217.                 │F-8│7│6│5│4│3│2│1│0│  Button Status
  218.                   │  │ │ │ │ │ │ │ └──── left button (1 = pressed)
  219.                   │  │ │ │ │ │ │ └───── right button (1 = pressed)
  220.                   └──┴─┴─┴─┴─┴─┴────── unused
  221.  
  222.  
  223.  
  224. INT 33,6 - Get Mouse Button Release Information
  225.  
  226.  
  227.         AX = 6
  228.         BX = 0  left button
  229.              1  right button
  230.  
  231.  
  232.         on return:
  233.         BX = count of button releases (0-32767), set to zero after call
  234.         CX = horizontal position at last release
  235.         DX = vertical position at last release
  236.         AX = status
  237.  
  238.                 │F-8│7│6│5│4│3│2│1│0│  Button status
  239.                   │  │ │ │ │ │ │ │ └──── left button (1 = pressed)
  240.                   │  │ │ │ │ │ │ └───── right button (1 = pressed)
  241.                   └──┴─┴─┴─┴─┴─┴────── unused
  242.  
  243.  
  244.  
  245. INT 33,7 - Set Mouse Horizontal Min/Max Position
  246.  
  247.  
  248.         AX = 7
  249.         CX = minimum horizontal position
  250.         DX = maximum horizontal position
  251.  
  252.  
  253.         returns nothing
  254.  
  255.  
  256.         - restricts mouse horizontal movement to window
  257.         - if min value is greater than max value they are swapped
  258.  
  259.  
  260.  
  261. INT 33,8 - Set Mouse Vertical Min/Max Position
  262.  
  263.  
  264.         AX = 8
  265.         CX = minimum vertical position
  266.         DX = maximum vertical position
  267.  
  268.  
  269.         returns nothing
  270.  
  271.  
  272.         - restricts mouse vertical movement to window
  273.         - if min value is greater than max value they are swapped
  274.  
  275.  
  276.  
  277. INT 33,9 - Set Mouse Graphics Cursor
  278.  
  279.  
  280.         AX = 9
  281.         BX = horizontal hot spot (-16 to 16)
  282.         CX = vertical hot spot (-16 to 16)
  283.         ES:DX = pointer to screen and cursor masks (16 byte bitmap)
  284.  
  285.  
  286.         returns nothing
  287.  
  288.  
  289.         - screen mask is AND'ed to screen Cursor Mask is XOR'ed
  290.         - bytes 0-7 form the screen mask bitmap
  291.         - bytes 8-F form the cursor mask bitmap
  292.  
  293.  
  294.  
  295. INT 33,A - Set Mouse Text Cursor
  296.  
  297.  
  298.         AX = 0A
  299.         BX = 00  software cursor
  300.              01  hardware cursor
  301.         CX = start of screen mask or hardware cursor scan line
  302.         DX = end of screen mask or hardware cursor scan line
  303.  
  304.  
  305.         returns nothing
  306.  
  307.  
  308.  
  309. INT 33,B - Read Mouse Motion Counters
  310.  
  311.  
  312.         AX = 0B
  313.  
  314.  
  315.         on return:
  316.         CX = horizontal mickey count (-32768 to 32767)
  317.         DX = vertical mickey count (-32768 to 32767)
  318.  
  319.  
  320.         - count values are 1/200 inch intervals (1/200 in. = 1 mickey)
  321.  
  322.  
  323.  
  324. INT 33,C - Set Mouse User Defined Subroutine and Input Mask
  325.  
  326.         AX = 0C
  327.         ES:DX = far pointer to user interrupt
  328.         CX = user interrupt mask:
  329.  
  330.            │F-5│4│3│2│1│0│ user interrupt mask in CX
  331.              │  │ │ │ │ └─── cursor position changed
  332.              │  │ │ │ └──── left button pressed
  333.              │  │ │ └───── left button released
  334.              │  │ └────── right button pressed
  335.              │  └─────── right button released
  336.              └───────── unused
  337.  
  338.         returns nothing
  339.  
  340.  
  341.         - routine at ES:DX is called if an event occurs and the
  342.           corresponding bit specified in user mask is set
  343.         - routine at ES:DX receives parameters in the following
  344.           registers:
  345.  
  346.           AX = condition mask causing call
  347.           CX = horizontal cursor position
  348.           DX = vertical cursor position
  349.           DI = horizontal counts
  350.           SI = vertical counts
  351.           DS = mouse driver data segment
  352.           BX = button state:
  353.  
  354.              │F-2│1│0│
  355.                │  │ └─── left button (1 = pressed)
  356.                │  └──── right button (1 = pressed)
  357.                └────── unused
  358.  
  359.         - initial call mask and user routine should be restore on exit
  360.           from user program
  361.         - user program may need to set DS to its own segment
  362.         - user routine should return via RETF instead of IRET
  363.         - see   INT 33,14
  364.  
  365.  
  366.  
  367. INT 33,D - Mouse Light Pen Emulation On
  368.  
  369.  
  370.         AX = 0D
  371.  
  372.  
  373.         returns nothing
  374.  
  375.  
  376.         - turns on light pen emulation;  the light pen is considered
  377.           down when both buttons are down;   when both buttons are
  378.           up the pen is considered off screen
  379.  
  380.         - see   INT 33,E
  381.  
  382.  
  383.  
  384. INT 33,E - Mouse Light Pen Emulation Off
  385.  
  386.  
  387.         AX = 0E
  388.  
  389.  
  390.         returns nothing
  391.  
  392.  
  393.         - disables light pen emulation
  394.  
  395.         - see   INT 33,D
  396.  
  397.  
  398.  
  399. INT 33,F - Set Mouse Mickey Pixel Ratio
  400.  
  401.  
  402.         AX = 0F
  403.         CX = horizontal ratio (1..32767, default 8)
  404.         DX = vertical ratio (1..32767, default 16)
  405.  
  406.  
  407.         returns nothing
  408.  
  409.  
  410.         - sets the ratio between physical cursor movement (mickeys) and
  411.           screen coordinate changes
  412.         - CX and DX must be unsigned (high bit must be 0)
  413.  
  414.  
  415.  
  416. INT 33,10 - Mouse Conditional OFF
  417.  
  418.  
  419.         AX = 10h
  420.         CX = upper X screen coordinate
  421.         DX = upper Y screen coordinate
  422.         SI = lower X screen coordinate
  423.         DI = lower Y screen coordinate
  424.  
  425.  
  426.         returns nothing
  427.  
  428.  
  429.         - defines screen region for updating in which the mouse is hidden
  430.           if found these coordinates (INT 33,1 must be used to turn cursor
  431.           on again)
  432.  
  433.         - see  INT 33,1
  434.  
  435.  
  436.  
  437. INT 33,13 - Set Mouse Double Speed Threshold
  438.  
  439.  
  440.         AX = 13h
  441.         DX = threshold speed (mickeys per second, default 64)
  442.  
  443.  
  444.         returns nothing
  445.  
  446.  
  447.         - cursor speed is doubled when the cursor moves across the screen
  448.           at the threshold speed
  449.  
  450.  
  451.  
  452. INT 33,14 - Swap Interrupt Subroutines
  453.  
  454.         AX = 14h
  455.         ES:DX = far pointer to user routine
  456.         CX = user interrupt mask:
  457.  
  458.                 │F-8│7│6│5│4│3│2│1│0│ user interrupt mask in CX
  459.                   │  │ │ │ │ │ │ │ └─── cursor position changed
  460.                   │  │ │ │ │ │ │ └──── left button pressed
  461.                   │  │ │ │ │ │ └───── left button released
  462.                   │  │ │ │ │ └────── right button pressed
  463.                   │  │ │ │ └─────── right button released
  464.                   └──┴─┴─┴──────── unused
  465.  
  466.         on return:
  467.         CX = previous user interrupt mask
  468.         ES:DX = far pointer to previous user interrupt
  469.  
  470.         - routine at ES:DX is called if an event occurs and the
  471.           corresponding bit specified in user mask is set
  472.         - routine at ES:DX receives parameters in the following
  473.           registers:
  474.  
  475.           AX = condition mask causing call
  476.           CX = horizontal cursor position
  477.           DX = vertical cursor position
  478.           DI = horizontal counts
  479.           SI = vertical counts
  480.           DS = mouse driver data segment
  481.           BX = button state:
  482.  
  483.              │F-2│1│0│
  484.                │  │ └─── left button (1 = pressed)
  485.                │  └──── right button (1 = pressed)
  486.                └────── unused
  487.  
  488.         - initial call mask and user routine should be restore on exit
  489.           from user program
  490.         - user program may need to set DS to its own segment
  491.         - see   INT 33,C
  492.  
  493.  
  494.  
  495. INT 33,15 - Get Mouse Driver State and Memory Requirements
  496.  
  497.  
  498.         AX = 15h
  499.  
  500.  
  501.         on return
  502.         BX = buffer size need to hold current mouse state
  503.  
  504.  
  505.         - used before mouse functions 16h and 17h to determine memory
  506.           needed to save mouse state before giving up control of mouse
  507.           to another program
  508.  
  509.  
  510.  
  511. INT 33,16 - Save Mouse Driver State
  512.  
  513.  
  514.         AX = 16h
  515.         ES:DX = far pointer to mouse state save buffer
  516.  
  517.  
  518.         returns nothing
  519.  
  520.  
  521.         - used to save mouse information before relinquishing control
  522.           to another programs mouse handler
  523.         - see INT 33,15   INT 33,17
  524.  
  525.  
  526.  
  527. INT 33,17 - Restore Mouse Driver State
  528.  
  529.  
  530.         AX = 17h
  531.         ES:DX = far pointer to mouse state save buffer
  532.  
  533.  
  534.         returns nothing
  535.  
  536.  
  537.         - used to restore mouse information after regaining control
  538.           from another programs mouse handler
  539.         - see INT 33,15   INT 33,16
  540.  
  541.  
  542.  
  543. INT 33,18 - Set alternate subroutine call mask and address
  544.  
  545.         AX = 18h
  546.         DX = offset to function
  547.         CX = user interrupt mask:
  548.  
  549.                 │F-8│7│6│5│4│3│2│1│0│ user interrupt mask in CX
  550.                   │  │ │ │ │ │ │ │ └─── alt key pressed during event
  551.                   │  │ │ │ │ │ │ └──── ctrl key pressed during event
  552.                   │  │ │ │ │ │ └───── shift key pressed during event
  553.                   │  │ │ │ │ └────── right button up event
  554.                   │  │ │ │ └─────── right button down event
  555.                   │  │ │ └──────── left button up event
  556.                   │  │ └───────── left button down event
  557.                   │  └────────── cursor moved
  558.                   └──────────── unused
  559.  
  560.         - entire mask is set to zero when INT 33,0 is called
  561.         - up to three handlers may be defined with this call
  562.         - mask should be cleared before program exit
  563.         - when handler is called it receives parameters in the following
  564.           registers:
  565.  
  566.           AX = condition mask causing call
  567.           CX = horizontal cursor position
  568.           DX = vertical cursor position
  569.           DI = horizontal counts
  570.           SI = vertical counts
  571.           DS = mouse driver data segment
  572.           BX = button state:
  573.  
  574.              │F-2│1│0│
  575.                │  │ └─── left button (1 = pressed)
  576.                │  └──── right button (1 = pressed)
  577.                └────── unused
  578.  
  579.  
  580.  
  581. INT 33,19 - Get User Alternate Interrupt Address
  582.  
  583.         AX = 19h
  584.         CX = user interrupt call mask (see below)
  585.  
  586.  
  587.         on return:
  588.         BX:DX = user interrupt vector
  589.         CX = user interrupt call mask or zero if not found
  590.  
  591.                 │F-8│7│6│5│4│3│2│1│0│ user interrupt mask in CX
  592.                   │  │ │ │ │ │ │ │ └─── alt key pressed during event
  593.                   │  │ │ │ │ │ │ └──── ctrl key pressed during event
  594.                   │  │ │ │ │ │ └───── shift key pressed during event
  595.                   │  │ │ │ │ └────── right button up event
  596.                   │  │ │ │ └─────── right button down event
  597.                   │  │ │ └──────── left button up event
  598.                   │  │ └───────── left button down event
  599.                   │  └────────── cursor moved
  600.                   └──────────── unused
  601.  
  602.         - returns vector to function defined by INT 33,18
  603.         - searches the event handlers defined by INT 33,18 for a routine
  604.           with a call mask matching CX
  605.  
  606.  
  607.  
  608. INT 33,1A - Set Mouse Sensitivity
  609.  
  610.  
  611.         AX = 1A
  612.         BX = horizontal coordinates per pixel  (≤ 100)
  613.         CX = vertical coordinates per pixel  (≤ 100)
  614.         DX = double speed threshold
  615.  
  616.  
  617.         returns nothing
  618.  
  619.  
  620.         - sets mouse sensitivity by setting the ratio of the mouse
  621.           coordinates per screen pixel
  622.         - provides same results as calls to both INT 33,F and INT 33,13
  623.         - these values are not reset by INT 33,0
  624.  
  625.  
  626. INT 33,1B - Get Mouse Sensitivity
  627.  
  628.  
  629.         AX = 1B
  630.  
  631.  
  632.         on return:
  633.         BX = horizontal coordinates per pixel  (≤ 100)
  634.         CX = vertical coordinates per pixel  (≤ 100)
  635.         DX = double speed threshold
  636.  
  637.  
  638.         - returns mouse sensitivity information as the number of mouse
  639.           coordinates per screen pixel
  640.  
  641.  
  642.  
  643. INT 33,1C - Set Mouse Interrupt Rate  (InPort only)
  644.  
  645.  
  646.         AX = 1C
  647.         BX = rate code
  648.            = 0  no interrupts
  649.            = 1  30 interrupts per second
  650.            = 2  50 interrupts per second
  651.            = 3  100 interrupts per second
  652.            = 4  200 interrupts per second
  653.  
  654.  
  655.  
  656.         - work with the InPort mouse only
  657.         - sets the rate the mouse status is polled by the mouse driver
  658.         - faster rates provide better resolution but take away CPU time
  659.         - values in BX > 4 can cause unpredicatable results
  660.  
  661.  
  662.  
  663. INT 33,1D - Set Mouse CRT Page
  664.  
  665.  
  666.         AX = 1D
  667.         BX = CRT page number
  668.  
  669.  
  670.         returns nothing
  671.  
  672.  
  673.         - sets the CRT page which the mouse cursor is displayed
  674.         - see VIDEO PAGES
  675.  
  676.  
  677.  
  678. INT 33,1E - Get Mouse CRT Page
  679.  
  680.  
  681.         AX = 1E
  682.  
  683.  
  684.         on return:
  685.         BX = CRT page number cursor is displayed on
  686.  
  687.  
  688.         - see VIDEO PAGES
  689.  
  690.  
  691.  
  692. INT 33,1F - Disable Mouse Driver
  693.  
  694.  
  695.         AX = 1F
  696.  
  697.  
  698.         on return:
  699.         AX = 001F if successful
  700.              FFFF if error
  701.         ES:BX = previous INT 33 vector
  702.  
  703.  
  704.         - restores vectors for INT 10 and INT 71 (8088/86) or INT 74 (286+)
  705.         - INT 33 interrupt vector (software) is not affected
  706.         - use of the vector returned in ES:BX to restore the previous INT 33
  707.           vector can cause problems since it contains the value of INT 33
  708.           before the driver was installed; any other hooks into INT 33 set
  709.           after driver installation will not receive service
  710.  
  711.  
  712.  
  713. INT 33,20 - Enable Mouse Driver
  714.  
  715.  
  716.         AX = 20h
  717.  
  718.  
  719.         returns nothing
  720.  
  721.  
  722.         - reinstalls the mouse drivers interrupt vectors for INT 10 and
  723.           INT 71 (8088/86) and INT 74 (286/386)
  724.         - see INT 33,1F
  725.  
  726.  
  727.  
  728. INT 33,21 - Reset Mouse Software
  729.  
  730.         AX = 21h
  731.  
  732.         on return:
  733.         AX = 0021  mouse driver not installed
  734.              FFFF  mouse driver installed
  735.         BX = 2  mouse driver installed
  736.  
  737.         - similar to INT 33,0 but does not reset the mouse hardware or
  738.           display variables
  739.         - both AX and BX must be correct for successful reset
  740.         - interrupt routines set through INT 33,18 are preserved
  741.         - resets the mouse to the following defaults:
  742.  
  743.           .  mouse is positioned to screen center
  744.           .  mouse cursor is reset and hidden
  745.           .  no interrupts are enabled (mask = 0)
  746.           .  double speed threshold set to 64 mickeys per second
  747.           .  horizontal mickey to pixel ratio (8 to 8)
  748.           .  vertical mickey to pixel ratio (16 to 8)
  749.           .  max width and height are set to maximum for video mode
  750.  
  751.  
  752.  
  753. INT 33,22 - Set Language for Messages
  754.  
  755.         AX = 22h
  756.         BX = language number (with /L switch value):
  757.            = 0  English     n/a
  758.            = 1  French      F
  759.            = 2  Dutch       NL
  760.            = 3  German      D
  761.            = 4  Swedish     S
  762.            = 5  Finnish     SF
  763.            = 6  Spanish     E
  764.            = 7  Portuguese  P
  765.            = 8  Italian     I
  766.  
  767.  
  768.         returns nothing
  769.  
  770.  
  771.         - only works with international version of the mouse driver
  772.         - see   INT 33,23
  773.  
  774.  
  775. INT 33,23 - Get Language Number
  776.  
  777.         AX = 23h
  778.  
  779.  
  780.         on return:
  781.         BX = language number (with /L switch value):
  782.            = 0  English     n/a
  783.            = 1  French      F
  784.            = 2  Dutch       NL
  785.            = 3  German      D
  786.            = 4  Swedish     S
  787.            = 5  Finnish     SF
  788.            = 6  Spanish     E
  789.            = 7  Portuguese  P
  790.            = 8  Italian     I
  791.  
  792.         - only works with international version of the mouse driver
  793.         - returns English (0) if not international version
  794.  
  795.         - see   INT 33,22
  796.  
  797.  
  798. INT 33,24 - Get Driver Version, Mouse Type & IRQ Number
  799.  
  800.         AX = 24h
  801.  
  802.  
  803.         on return:
  804.         BH = major version (see below)
  805.         BL = minor version (see below)
  806.         CH = mouse type:
  807.            = 1  bus mouse
  808.            = 2  serial mouse
  809.            = 3  InPort mouse
  810.            = 4  PS/2  mouse
  811.            = 5  Hewlett Packard mouse
  812.         CL = IRQ number:
  813.            = 0  PS/2
  814.            = 2  IRQ 2
  815.            = 5  IRQ 5
  816.            = 7  IRQ 7
  817.  
  818.         - version 6.1 would be represented as BH = 06h, BL = 10h
  819.