home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / mouse / mouseh10 / mouse.txt < prev    next >
Encoding:
Text File  |  1992-07-26  |  33.8 KB  |  962 lines

  1. ----------330000-----------------------------
  2. INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS
  3.     AX = 0000h
  4. Return: AX = status
  5.         0000h hardware/driver not installed
  6.         FFFFh hardware/driver installed
  7.     BX = number of buttons
  8.         0000h other than two
  9.         0002h two buttons (many drivers)
  10.         0003h Mouse Systems/Logitech three-button mouse
  11.         FFFFh two buttons
  12. Notes:  to use mouse on a Hercules-compatible monographics card in graphics
  13.       mode, you must first set 0040h:0049h to 6 for page 0 or 5 for page 1,
  14.       and then call this function.  Logitech drivers v5.01 and v6.00
  15.       reportedly do not correctly use Hercules graphics in dual-monitor
  16.       systems, while version 4.10 does.
  17.     the Logitech mouse driver contains the signature string "LOGITECH" 
  18.       three bytes past the interrupt handler; many of the Logitech mouse
  19.       utilities check for this signature.
  20. SeeAlso: AX=0021h,INT 62/AX=007Ah,INT 74
  21. ----------330001-----------------------------
  22. INT 33 - MS MOUSE - SHOW MOUSE CURSOR
  23.     AX = 0001h
  24. SeeAlso: AX=0002h,INT 16/AX=FFFEh,INT 62/AX=007Bh
  25. ----------330002-----------------------------
  26. INT 33 - MS MOUSE - HIDE MOUSE CURSOR
  27.     AX = 0002h
  28. Note:   multiple calls to hide the cursor will require multiple calls to
  29.       function 01h to unhide it.
  30. SeeAlso: AX=0001h,AX=0010h,INT 16/AX=FFFFh,INT 62/AX=007Bh
  31. ----------330003-----------------------------
  32. INT 33 - MS MOUSE - RETURN POSITION AND BUTTON STATUS
  33.     AX = 0003h
  34. Return: BX = button status
  35.        bit 0  left button pressed if 1
  36.        bit 1  right button pressed if 1
  37.        bit 2  middle button pressed if 1 (Mouse Systems/Logitech mouse)
  38.     CX = column
  39.     DX = row
  40. SeeAlso: AX=0004h,AX=000Bh,INT 2F/AX=D000h"ZWmous"
  41. ----------330004-----------------------------
  42. INT 33 - MS MOUSE - POSITION MOUSE CURSOR
  43.     AX = 0004h
  44.     CX = column
  45.     DX = row
  46. Note:   the row and column are truncated to the next lower multiple of the cell
  47.       size; however, some versions of the Microsoft documentation
  48.       incorrectly state that the coordinates are rounded
  49. SeeAlso: AX=0003h,INT 62/AX=0081h
  50. ----------330005-----------------------------
  51. INT 33 - MS MOUSE - RETURN BUTTON PRESS DATA
  52.     AX = 0005h
  53.     BX = button
  54.         0000h left
  55.         0001h right
  56.         0002h middle (Mouse Systems/Logitech mouse)
  57. Return: AX = button states
  58.         bit 0 left button pressed if 1
  59.         bit 1 right button pressed if 1
  60.         bit 2 middle button pressed if 1 (Mouse Systems/Logitech mouse)
  61.     BX = number of times specified button has been pressed since last call
  62.     CX = column at time specified button was last pressed
  63.     DX = row at time specified button was last pressed
  64. SeeAlso: AX=0006h,INT 62/AX=007Ch
  65. ----------330006-----------------------------
  66. INT 33 - MS MOUSE - RETURN BUTTON RELEASE DATA
  67.     AX = 0006h
  68.     BX = button
  69.         0000h left
  70.         0001h right
  71.         0002h middle (Mouse Systems/Logitech mouse)
  72. Return: AX = button states
  73.         bit 0 left button pressed if 1
  74.         bit 1 right button pressed if 1
  75.         bit 2 middle button pressed if 1 (Mouse Systems/Logitech mouse)
  76.     BX = number of times specified button has been released since last call
  77.     CX = column at time specified button was last released
  78.     DX = row at time specified button was last released
  79. SeeAlso: AX=0005h,INT 62/AX=007Ch
  80. ----------330007-----------------------------
  81. INT 33 - MS MOUSE - DEFINE HORIZONTAL CURSOR RANGE
  82.     AX = 0007h
  83.     CX = minimum column
  84.     DX = maximum column
  85. SeeAlso: AX=0008h,AX=0010h,INT 62/AX=0080h
  86. ----------330008-----------------------------
  87. INT 33 - MS MOUSE - DEFINE VERTICAL CURSOR RANGE
  88.     AX = 0008h
  89.     CX = minimum row
  90.     DX = maximum row
  91. SeeAlso: AX=0007h,AX=0010h,INT 62/AX=0080h
  92. ----------330009-----------------------------
  93. INT 33 - MS MOUSE - DEFINE GRAPHICS CURSOR
  94.     AX = 0009h
  95.     BX = column of cursor hot spot in bitmap (-16 to 16)
  96.     CX = row of cursor hot spot (-16 to 16)
  97.     ES:DX -> bitmap
  98.         16 words screen mask
  99.         16 words cursor mask
  100.             each word defines the sixteen pixels of a row, low bit
  101.             rightmost
  102. SeeAlso: AX=000Ah,AX=0012h,INT 62/AX=007Fh
  103. ----------33000A-----------------------------
  104. INT 33 - MS MOUSE - DEFINE TEXT CURSOR
  105.     AX = 000Ah
  106.     BX = hardware/software text cursor
  107.         0000h software
  108.         CX = screen mask
  109.         DX = cursor mask
  110.         0001h hardware
  111.         CX = start scan line
  112.         DX = end scan line
  113. Note:   when the software cursor is selected, the char/attribute data at the
  114.       current screen position is ANDed with the screen mask and then XORed
  115.       with the cursor mask
  116. SeeAlso: AX=0009h,INT 62/AX=007Eh
  117. ----------33000B-----------------------------
  118. INT 33 - MS MOUSE - READ MOTION COUNTERS
  119.     AX = 000Bh
  120. Return: CX = number of mickeys mouse moved horizontally since last call
  121.     DX = number of mickeys mouse moved vertically
  122. Notes:  a mickey is the smallest increment the mouse can sense
  123.     positive values indicate down/right
  124. SeeAlso: AX=0003h,AX=001Bh
  125. ----------33000C-----------------------------
  126. INT 33 - MS MOUSE - DEFINE INTERRUPT SUBROUTINE PARAMETERS
  127.     AX = 000Ch
  128.     CX = call mask
  129.          bit 0 call if mouse moves
  130.          bit 1 call if left button pressed
  131.          bit 2 call if left button released
  132.          bit 3 call if right button pressed
  133.          bit 4 call if right button released
  134.          bit 5 call if middle button pressed (Mouse Systems/Logitech mouse)
  135.          bit 6 call if middle button released (Mouse Sys/Logitech mouse)
  136.     ES:DX -> FAR routine
  137. Notes:  when the subroutine is called, it is passed the following values:
  138.       AX = condition mask (same bit assignments as call mask)
  139.       BX = button state
  140.       CX = cursor column
  141.       DX = cursor row
  142.       SI = horizontal mickey count
  143.       DI = vertical mickey count
  144.     some versions of the Microsoft documentation incorrectly state that CX
  145.       bit 0 means call if mouse cursor moves, and swap the meanings of SI
  146.       and DI
  147. SeeAlso: AX=0018h
  148. ----------33000D-----------------------------
  149. INT 33 - MS MOUSE - LIGHT PEN EMULATION ON
  150.     AX = 000Dh
  151. SeeAlso: AX=000Eh
  152. ----------33000E-----------------------------
  153. INT 33 - MS MOUSE - LIGHT PEN EMULATION OFF
  154.     AX = 000Eh
  155. SeeAlso: AX=000Dh
  156. ----------33000F-----------------------------
  157. INT 33 - MS MOUSE - DEFINE MICKEY/PIXEL RATIO
  158.     AX = 000Fh
  159.     CX = number of mickeys per 8 pixels horizontally (default 8)
  160.     DX = number of mickeys per 8 pixels vertically (default 16)
  161. SeeAlso: AX=0013h,AX=001Ah,INT 62/AX=0082h
  162. ----------330010-----------------------------
  163. INT 33 - MS MOUSE - DEFINE SCREEN REGION FOR UPDATING
  164.     AX = 0010h
  165.     CX,DX = X,Y coordinates of upper left corner
  166.     SI,DI = X,Y coordinates of lower right corner
  167. Note:   mouse cursor is hidden in the specified region, and needs to be
  168.       explicitly turned on again
  169. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"Genius MOUSE"
  170. ----------330010-----------------------------
  171. INT 33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING
  172.     AX = 0010h
  173.     ES:DX -> update region list (see below)
  174.  Notes:   mouse cursor is hidden in the specified region, and needs to be
  175.       explicitly turned on again
  176.     this version of the call is described in an August 1988 version of the
  177.       Genius Mouse programmer's reference; it has presumably been changed
  178.       to conform to the Microsoft version shown above
  179. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"MS MOUSE"
  180.  
  181. Format of update region list:
  182. Offset  Size    Description
  183.  00h    WORD    left-most column
  184.  02h    WORD    top-most row
  185.  04h    WORD    right-most column
  186.  06h    WORD    bottom-most row
  187. ----------330012-----------------------------
  188. INT 33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK
  189.     AX = 0012h
  190.     BH = cursor width in words
  191.     CH = rows in cursor
  192.     BL = horizontal hot spot (-16 to 16)
  193.     CL = vertical hot spot (-16 to 16)
  194.     ES:DX -> bit map of screen and cursor maps
  195. Return: AX = FFFFh if successful
  196. SeeAlso: AX=0009h
  197. ----------330013-----------------------------
  198. INT 33 - MS MOUSE - DEFINE DOUBLE-SPEED THRESHOLD
  199.     AX = 0013h
  200.     DX = threshold speed in mickeys/second, 0000h = default of 64/second
  201. Note:   if speed exceeds threshold, the cursor's on-screen motion is doubled
  202. SeeAlso: AX=000Fh,AX=001Bh,AX=002Ch
  203. ----------330014-----------------------------
  204. INT 33 - MS MOUSE - EXCHANGE INTERRUPT SUBROUTINES
  205.     AX = 0014h
  206.     CX = call mask (see AX=000Ch)
  207.     ES:DX -> FAR routine 
  208. Return: CX = call mask of previous interrupt routine
  209.     ES:DX = FAR address of previous interrupt routine
  210. SeeAlso: AX=0018h
  211. ----------330015-----------------------------
  212. INT 33 - MS MOUSE - RETURN DRIVER STORAGE REQUIREMENTS
  213.     AX = 0015h
  214. Return: BX = size of buffer needed to store driver state
  215. SeeAlso: AX=0016h,AX=0017h,AX=0042h
  216. ----------330016-----------------------------
  217. INT 33 - MS MOUSE - SAVE DRIVER STATE
  218.     AX = 0016h
  219.     BX = size of buffer (see AX=0015h)
  220.     ES:DX -> buffer for driver state
  221. Note:   although not documented, many drivers appear to require BX on input
  222. SeeAlso: AX=0015h,AX=0017h
  223. ----------330017-----------------------------
  224. INT 33 - MS MOUSE - RESTORE DRIVER STATE
  225.     AX = 0017h
  226.     BX = size of buffer (see AX=0015h)
  227.     ES:DX -> buffer containing saved state
  228. Notes:  although not documented, many drivers appear to require BX on input
  229.     some mouse drivers range-check the values in the saved state based on
  230.       the current video mode; thus, the video mode should be restored
  231.       before the mouse driver's state is restored
  232. SeeAlso: AX=0015h,AX=0016h
  233. ----------330018-----------------------------
  234. INT 33 - MS MOUSE - SET ALTERNATE MOUSE USER HANDLER
  235.     AX = 0018h
  236.     CX = call mask
  237.          bit 0 call if alt key pressed during event
  238.          bit 1 call if ctrl key pressed during event
  239.          bit 2 call if shift button pressed during event
  240.          bit 3 call if right button released
  241.          bit 4 call if right button pressed
  242.          bit 5 call if left button released
  243.          bit 6 call if left button pressed
  244.          bit 7 call if mouse moves
  245.     ES:DX = address of FAR routine
  246. Return: AX = 0018h if successful
  247.        = FFFFh on error
  248. Notes:  when the subroutine is called, it is passed the following values:
  249.       AX = condition mask (same bit assignments as call mask)
  250.       BX = button state
  251.       CX = cursor column
  252.       DX = cursor row
  253.       DI = horizontal mickey count
  254.       SI = vertical mickey count
  255.     up to three handlers can be defined by separate calls to this function
  256. SeeAlso: AX=0014h,AX=0019h
  257. ----------330019-----------------------------
  258. INT 33 - MS MOUSE - RETURN USER ALTERNATE INTERRUPT VECTOR
  259.     AX = 0019h
  260.     CX = call mask
  261. Return: BX:DX = user interrupt vector
  262.     CX = call mask (0 if not found)
  263. Note:   attempts to find a user event handler (defined by function 18h)
  264.       whose call mask matches CX
  265. SeeAlso: AX=0018h
  266. ----------33001A-----------------------------
  267. INT 33 - MS MOUSE - SET MOUSE SENSITIVITY
  268.     AX = 001Ah
  269.     BX = horizontal speed \
  270.     CX = vertical speed   / (see AX=000Fh)
  271.     DX = double speed threshold (see AX=0013h)
  272. SeeAlso: AX=0013h,AX=001Bh,INT 62/AX=0082h
  273. ----------33001B-----------------------------
  274. INT 33 - MS MOUSE - RETURN MOUSE SENSITIVITY
  275.     AX = 001Bh
  276. Return: BX = horizontal speed
  277.     CX = vertical speed
  278.     DX = double speed threshold
  279. SeeAlso: AX=000Bh,AX=001Ah
  280. ----------33001C-----------------------------
  281. INT 33 - MS MOUSE - SET INTERRUPT RATE
  282.     AX = 001Ch
  283.     BX = rate
  284.         00h no interrupts allowed
  285.         01h 30 per second
  286.         02h 50 per second
  287.         03h 100 per second
  288.         04h 200 per second
  289. Notes:  only available on InPort mouse
  290.     values greater than 4 may cause unpredictable driver behavior
  291. ----------33001D-----------------------------
  292. INT 33 - MS MOUSE - DEFINE DISPLAY PAGE NUMBER
  293.     AX = 001Dh
  294.     BX = display page number
  295. Note:   the cursor will be displayed on the specified page
  296. SeeAlso: AX=001Eh
  297. ----------33001E-----------------------------
  298. INT 33 - MS MOUSE - RETURN DISPLAY PAGE NUMBER
  299.     AX = 001Eh
  300. Return: BX = display page number
  301. SeeAlso: AX=001Dh
  302. ----------33001F-----------------------------
  303. INT 33 - MS MOUSE - DISABLE MOUSE DRIVER
  304.     AX = 001Fh
  305. Return: AX = 001Fh unsuccessful
  306.          FFFFh successful
  307.     ES:BX = vector for INT 33h before mouse driver was first installed
  308. Note:   restores vectors for Int 10h and Int 71h (8086) or Int 74h (286/386)
  309.     if you restore Int 33h to ES:BX, driver will be completely disabled
  310. SeeAlso: AX=0020h
  311. ----------330020-----------------------------
  312. INT 33 - MS MOUSE - ENABLE MOUSE DRIVER
  313.     AX = 0020h
  314. Return: AX = 0020h unsuccessful (or driver not installed)
  315.          FFFFh successful
  316. Note:   restores vectors for Int 10h and Int 71h (8086) or Int 74h (286/386)
  317.       which were removed by function 1Fh
  318. SeeAlso: AX=001Fh
  319. ----------330021-----------------------------
  320. INT 33 - MS MOUSE - SOFTWARE RESET
  321.     AX = 0021h
  322. Return: AX = FFFFh if mouse driver installed
  323.          0021h if mouse driver not installed
  324.     BX = 2 if mouse driver is installed
  325. Note:   identical to funtion 00h, but does not reset the mouse
  326. SeeAlso: AX=0000h
  327. ----------330022-----------------------------
  328. INT 33 - MS MOUSE - SET LANGUAGE FOR MESSAGES
  329.     AX = 0022h
  330.     BX = language
  331.         00h English
  332.         01h French
  333.         02h Dutch
  334.         03h German
  335.         04h Swedish
  336.         05h Finnish
  337.         06h Spanish
  338.         07h Portugese
  339.         08h Italian
  340. Note:   only available on international versions of the driver, US versions
  341.       ignore this call
  342. SeeAlso: AX=0023h
  343. ----------330023-----------------------------
  344. INT 33 - MS MOUSE - GET LANGUAGE FOR MESSAGES
  345.     AX = 0023h
  346. Return: BX = language (see AX=0022h)
  347. Note:   the US version of the driver always returns zero 
  348. SeeAlso: AX=0022h
  349. ----------330024-----------------------------
  350. INT 33 - MS MOUSE v7.00+ - GET SOFTWARE VERSION AND MOUSE TYPE
  351.     AX = 0024h
  352. Return: AX = FFFFh on error
  353.     otherwise,
  354.         BH = major version
  355.         BL = minor version
  356.         CH = type (1=bus, 2=serial, 3=InPort, 4=PS/2, 5=HP)
  357.         CL = interrupt (0=PS/2, 2=IRQ2, 3=IRQ3,...,7=IRQ7)
  358. SeeAlso: AX=004Dh
  359. ----------330025-----------------------------
  360. INT 33 - MS MOUSE v8.10+ - GET ???
  361.     AX = 0025h
  362. Return: AL = ???
  363.     BX = ???
  364.     CX = ???
  365.     DX = ???
  366. ----------330026-----------------------------
  367. INT 33 - MS MOUSE v8.10+ - GET ???
  368.     AX = 0026h
  369. Return: BX = ???
  370.     CX = ???
  371.     DX = ???
  372. Note:    called by the newest Microsoft applications
  373. ----------330027-----------------------------
  374. INT 33 - MS MOUSE v8.10+ - GET ???
  375.     AX = 0027h
  376. Return: AX = ???
  377.     BX = ???
  378.     CX = horizontal mickeys moved since last call
  379.     DX = vertical mickeys moved since last call
  380. ----------330028-----------------------------
  381. INT 33 - MS MOUSE v8.10+ - ???
  382.     AX = 0028h
  383.     CX = ???
  384.         0000h reset to default???
  385.         other
  386.         DX = ???
  387.         Return: CL = 00h
  388. ----------330029-----------------------------
  389. INT 33 - MS MOUSE v8.10+ - GET SUPPORTED VIDEO MODES???
  390.     AX = 0029h
  391.     CX = last video mode???
  392.         0000h get first
  393.         other get next supported mode after mode CX
  394. Return: CX = first/next video mode
  395.     ES:DX = 0000h:0000h
  396. ----------33002A-----------------------------
  397. INT 33 - MS MOUSE v8.10+ - GET ???
  398.     AX = 002Ah
  399. Return: AX = ???
  400.     BX = ???
  401.     CX = ???
  402.     DX = ???
  403. ----------33002B-----------------------------
  404. INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILES
  405.     AX = 002Bh
  406.     BX = active acceleration profile (0001h-0004h or FFFFh for current)
  407.     ES:SI -> buffer containing acceleration profile data (see below)
  408. Return: ???
  409. SeeAlso: AX=002Ch"v8.10",AX=002Dh,AX=0033h
  410.  
  411. Format of acceleration profile data:
  412. Offset  Size    Description
  413.  00h    BYTE    length of acceleration profile 1
  414.  01h    BYTE    length of acceleration profile 2
  415.  02h    BYTE    length of acceleration profile 3
  416.  03h    BYTE    length of acceleration profile 4
  417.  04h 32 BYTEs   threshold speeds for acceleration profile 1
  418.  24h 32 BYTEs   threshold speeds for acceleration profile 2
  419.  44h 32 BYTEs   threshold speeds for acceleration profile 3
  420.  64h 32 BYTEs   threshold speeds for acceleration profile 4
  421.  84h 32 BYTEs   speedup factor for acceleration profile 1
  422.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  423.  A4h 32 BYTEs   speedup factor for acceleration profile 2
  424.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  425.  C4h 32 BYTEs   speedup factor for acceleration profile 3
  426.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  427.  E4h 32 BYTEs   speedup factor for acceleration profile 4
  428.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  429. 104h 16 BYTEs   name of acceleration profile 1 (blank-padded)
  430. 114h 16 BYTEs   name of acceleration profile 2 (blank-padded)
  431. 124h 16 BYTEs   name of acceleration profile 3 (blank-padded)
  432. 134h 16 BYTEs   name of acceleration profile 4 (blank-padded)
  433. Note:   unused bytes in the threshold speed fields are filled with 7Fh and
  434.       unused bytes in the speedup factor fields are filled with 10h
  435. ----------33002C-----------------------------
  436. INT 33 - MS MOUSE v??? - SET ACCELERATION PROFILES
  437.     AX = 002Ch
  438.     ES:DX -> name of file containing profiles
  439. Note:   see MOUSEPRO.FIL for an example set of acceleration profiles
  440. SeeAlso: AX=0013h,AX=002Dh,AX=002Eh
  441. ----------33002C-----------------------------
  442. INT 33 - MS MOUSE v8.10+ - GET ACCELERATION PROFILES
  443.     AX = 002Ch
  444. Return: AX = 0000h
  445.     BX = currently-active acceleration profile
  446.     ES:SI -> acceleration profile data (see AX=002Bh)
  447. SeeAlso: AX=002Bh,AX=0033h
  448. ----------33002D-----------------------------
  449. INT 33 - MS MOUSE v8.10+ - SELECT ACCELERATION PROFILE
  450.     AX = 002Dh
  451.     BX = acceleration level (0001h to 0004h or FFFFh for current)
  452. Return: AX = status
  453.         0000h successful
  454.         ES:SI -> 16-byte blank-padded name of acceleration profile
  455.         FFFEh invalid acceleration level
  456.         ES:SI destroyed
  457.     BX = active acceleration level
  458. SeeAlso: AX=0013h,AX=002Bh,AX=002Ch,AX=002Eh
  459. ----------33002E-----------------------------
  460. INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES
  461.     AX = 002Eh
  462.     BL = flag (if nonzero, fill ES:SI buffer with default names on return)
  463.     ES:SI -> 64-byte buffer for profile names (16 bytes per name)
  464. Return: AX = 0000h
  465.     ES:SI buffer filled with default names if BL nonzero on entry
  466. Note:   not supported by Logitech driver v6.10
  467. SeeAlso: AX=002Ch,AX=002Dh,AX=012Eh,AX=022Eh
  468. ----------33002F-----------------------------
  469. INT 33 - MS MOUSE v8.10+ - ???
  470.     AX = 002Fh
  471.     ???
  472. Return: ???
  473. Note:   invoked by mouse driver v8.20 on being called with INT 2F/AX=530Bh
  474. SeeAlso: INT 2F/AH=53h
  475. ----------330030-----------------------------
  476. INT 33 - MS MOUSE v8.10+ - ???
  477.     AX = 0030h
  478.     CX = ???
  479.         0000h ???
  480.         other ???
  481. Return: ???
  482. ----------330031-----------------------------
  483. INT 33 - MS MOUSE v8.10+ - GET ???
  484.     AX = 0031h
  485. Return: AX = ???
  486.     BX = ???
  487.     CX = ???
  488.     DX = ???
  489. ----------330032-----------------------------
  490. INT 33 - MS MOUSE v8.10+ - GET ???
  491.     AX = 0032h
  492. Return: AX = ??? (FFFFh)
  493.     BX = ??? (0000h)
  494.     CX = ??? (E000h)
  495.     DX = ??? (0000h)
  496. ----------330033-----------------------------
  497. INT 33 - MS MOUSE v8.10+ - GET ACCELERATION PROFILE DATA
  498.     AX = 0033h
  499.     CX = size of buffer
  500.         0000h get required buffer size
  501.         Return: AX = 0000h
  502.             CX = required size (0154h for Logitech v6.10, 0159h
  503.                 for MS v8.10-8.20)
  504.         other
  505.         ES:DX -> buffer of CX bytes
  506.         Return: AX = 0000h
  507.             ES:DX buffer filled (see below)
  508. SeeAlso: AX=002Bh
  509.  
  510. Format of data buffer:
  511. Offset  Size    Description
  512.  00h 16 BYTEs   ???
  513.  10h 324 BYTEs  acceleration profile data (see AX=002Bh)
  514. 154h  5 BYTEs   ??? (Microsoft driver, but not Logitech)
  515. ----------330034-----------------------------
  516. INT 33 - MS MOUSE v8.10+ - GET INITIALIZATION FILE
  517.     AX = 0034h
  518. Return: ES:DX -> ASCIZ initialization (.INI) file name
  519. ----------330035-----------------------------
  520. INT 33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT
  521.     AX = 0035h
  522.     BX = function
  523.         FFFFh get current settings
  524.         Return: AX = 0000h
  525.             BH = style (see below)
  526.             BL = size (see below)
  527.             CH = threshold
  528.             CL = active flag (00h disabled, 01h enabled)
  529.             DX = delay
  530.         other
  531.         BH = style (00h normal, 01h reverse, 02h transparent)
  532.         BL = size (00h small "1", 01h medium "1.5", 02h large "2")
  533.         CH = threshold (00h-64h)
  534.         CL = active flag (00h disable size change, 01h enable)
  535.         DX = delay (0000h-0064h)
  536.         Return: AX = 0000h
  537. Note:   not supported by Logitech driver v6.10
  538. ----------330042-----------------------------
  539. INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS
  540.     AX = 0042h
  541. Return: AX = FFFFh successful
  542.         BX = buffer size in bytes for functions 50h and 52h
  543.        = 0000h MSMOUSE not installed
  544.        = 0042h functions 42h, 50h, and 52h not supported
  545. SeeAlso: AX=0015h,AX=0050h,AX=0052h
  546. ----------330043-----------------------------
  547. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - CONFIGURE MOUSE???
  548.     AX = 0043h
  549.     CX:BX -> ??? buffer (see below)
  550.     DL = ???
  551. Return: ???
  552. Note:   also calls routines for INT 33/AX=0053h and INT 33/AX=004Fh
  553.  
  554. Format of buffer:
  555. Offset  Size    Description
  556.  00h    WORD    I/O port address
  557.  02h    BYTE    ???
  558.  03h    BYTE    interrupt number
  559.  04h    BYTE    interrupt mask for interrupt controller
  560.  05h  5 BYTEs   ???
  561. ----------330044CXCDEF-----------------------
  562. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - TOGGLE ???
  563.     AX = 0044h
  564.     CX = CDEFh
  565. Return: AX = new state of ???
  566. SeeAlso: AX=0045h
  567. ----------330045CXCDEF-----------------------
  568. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - TOGGLE ???
  569.     AX = 0045h
  570.     CX = CDEFh
  571. Return: AX = new state of ???
  572. SeeAlso: AX=0044h
  573. ----------330047-----------------------------
  574. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - SET BUTTON ASSIGNMENTS???
  575.     AX = 0047h
  576.     ES:BX -> button assignments (3 bytes, combinations of "L", "M", "R")
  577. Return: ???
  578. SeeAlso: AX=0067h
  579. ----------330048BXCDEF-----------------------
  580. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - GET ???
  581.     AX = 0048h
  582.     BX = CDEFh
  583. Return: CX = ???
  584.     BH = ???
  585.     BL = ??? (if 50h, driver is using PS/2 pointing device BIOS interface)
  586. ---------------------------------------------
  587. INT 33 - Z-NIX MOUSE DRIVER v7.04d - INSTALLATION CHECK
  588.     AX = 004Bh
  589. Return: ES:DI -> signature/description string if installed
  590. Note:   the signature string in v7.04d is
  591.       "Z-NIX;BUS,AUX,Serial 3-byte and 5-byte Mouse Driver;ZMOUSE;v7.04d"
  592. ----------33004CBXCDEF-----------------------
  593. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - SET ??? FLAG
  594.     AX = 004Ch
  595.     BX = CDEFh
  596. SeeAlso: AX=006Ch
  597. ----------33004D-----------------------------
  598. INT 33 - MS MOUSE, LOGITECH - RETURN POINTER TO COPYRIGHT STRING
  599.     AX = 004Dh
  600. Return: ES:DI -> copyright message "Copyright 1983 Microsoft ***"
  601. Note:   also supported by Kraft mouse driver
  602. SeeAlso: AX=0024h,AX=006Dh
  603. ----------33004F-----------------------------
  604. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ENABLE MOUSE
  605.     AX = 004Fh
  606. Return: nothing
  607. SeeAlso: AX=0043h,AX=0053h
  608. ----------330050-----------------------------
  609. INT 33 - PCMOUSE - SAVE MSMOUSE STATE
  610.     AX = 0050h
  611.     BX = buffer size (ignored by some driver versions)
  612.     ES:DX -> buffer
  613. Return: AX = FFFFh if successful
  614.  Note:    the buffer must be large enough to hold the entire state, or following
  615.       data will be overwritten by state data in versions which ignore BX;
  616.       use INT 33/AX=0042h to get the required size
  617. SeeAlso: AX=0042h,AX=0052h
  618. ----------330052-----------------------------
  619. INT 33 - PCMOUSE - RESTORE MSMOUSE STATE
  620.     AX = 0052h
  621.     BX = buffer size (ignored by some driver versions)
  622.     ES:DX -> buffer
  623. Return: AX = FFFFh if successful
  624. SeeAlso: AX=0050h
  625. ----------330053-----------------------------
  626. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - DISABLE MOUSE
  627.     AX = 0053h
  628. Return: nothing
  629. SeeAlso: AX=0043h,AX=004Fh
  630. ----------330054CXCDEF-----------------------
  631. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???
  632.     AX = 0054h
  633.     CX = CDEFh
  634.     BX = ??? (NOP if <= 0000h)
  635. Return: ???
  636. ----------330055-----------------------------
  637. INT 33 - Kraft Mouse - GET ???
  638.     AX = 0055h
  639. Return: CX = ???
  640.     DX = ???
  641.     ES = ???
  642. ----------330058-----------------------------
  643. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???
  644.     AX = 0058h
  645. Return: AX = CS of driver
  646.     CX:BX -> ???
  647.     DX = ???
  648. ----------33005A-----------------------------
  649. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???
  650.     AX = 005Ah
  651.     CX = number of WORDs to copy (max 0014h, but not range-checked)
  652.     DX:SI -> buffer containing ??? (CX words)
  653.     DX:BX -> buffer containing ??? (9*14h words, only first CX of each 14h
  654.                     used)
  655.     ???
  656. Return: CF clear
  657.     ???
  658. ----------330061BXCDEF-----------------------
  659. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???
  660.     AX = 0061h
  661.     BX = CDEFh
  662. Return: CX = ???
  663. ----------330067-----------------------------
  664. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - GET MOUSE BUTTONS???
  665.     AX = 0067h           
  666. Return: BL = number of buttons???
  667. SeeAlso: AX=0047h
  668. ----------33006CBXCDEF-----------------------
  669. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???
  670.     AX = 006Ch
  671.     BX = CDEFh
  672. SeeAlso: AX=004Ch   
  673. ----------33006D-----------------------------
  674. INT 33 - MS MOUSE, Logitech - GET VERSION STRING
  675.     AX = 006Dh
  676. Return: ES:DI -> Microsoft version number of resident driver
  677. Note:   also supported by Mouse Systems and Kraft mouse drivers
  678. SeeAlso: AX=004Dh,AX=266Ch
  679. ----------330070BXABCD-----------------------
  680. INT 33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK
  681.     AX = 0070h
  682.     BX = ABCDh
  683. Return: AX = ABCDh if installed
  684.         BX:CX -> data structure (see below)
  685. Notes:  the v7.01 POPUP.COM and menu drivers also check for the signature
  686.       CDh ABh BAh DCh at offset -2Ch from the interrupt handler
  687.     if POPUP is not loaded, the returned data structure contains the proper
  688.       signature at offset 00h, but not at offset 08h
  689.  
  690. Format of data structure:
  691. Offset  Size    Description
  692.  00h    WORD    signature ABCDh
  693.  02h    DWORD   pointer to info structure???
  694.  06h  2 BYTEs   ???
  695.  08h    WORD    signature ABCDh
  696.  
  697. Format of info structure:
  698. Offset  Size    Description
  699.  00h    WORD    driver version
  700.  02h  8 BYTEs   ???
  701.  0Ah    WORD    segment of ???
  702.         ???
  703. ----------330072BXABCD-----------------------
  704. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - ???
  705.     AX = 0072h
  706.     BX = ABCDh
  707. Return: ???
  708. ----------330073BXCDEF-----------------------
  709. INT 33 - Mouse Systems MOUSE DRIVER v7.01 - GET BUTTON ASSIGNMENTS???
  710.     AX = 0073h
  711.     BX = CDEFh
  712.     ES:DX -> buffer for button assignments??? (3 bytes of data)
  713. Return: CX = number of buttons???
  714. Note:   the default return buffer is "LMR"
  715. SeeAlso: AX=0067h
  716. ----------33012E-----------------------------
  717. INT 33 - MS MOUSE v8.10+ - ???
  718.     AX = 012Eh
  719.     BL = ???
  720. Return: AX = 0000h
  721. Note:   not supported by Logitech driver v6.10
  722. SeeAlso: AX=002Eh,AX=022Eh
  723. ----------33022E-----------------------------
  724. INT 33 - MS MOUSE v8.10+ - ???
  725.     AX = 022Eh
  726.     BL = ???
  727. Return: AX = 0000h
  728. Note:   not supported by Logitech driver v6.10
  729. SeeAlso: AX=002Eh,AX=012Eh
  730. ----------33136C-----------------------------
  731. INT 33 - LOGITECH MOUSE v6.10+ - ???
  732.     AX = 136Ch
  733.     BX = ???
  734. Return: AX = ???
  735.     BX = ???
  736. ----------33146C-----------------------------
  737. INT 33 - LOGITECH MOUSE v6.10+ - GET/SET ???
  738.     AX = 146Ch
  739.     BL = function
  740.         00h set ???
  741.         BH = new value (zero/nonzero to clear/set)
  742.         else get ???
  743.         Return: ???
  744. ----------33156C-----------------------------
  745. INT 33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS
  746.     AX = 156Ch
  747. Return: ES:DI -> signature "LOGITECH MOUSE DRIVER"
  748.     ES:SI -> version string, terminated with CRLF
  749. ----------33166C-----------------------------
  750. INT 33 - LOGITECH MOUSE v6.10+ - ???
  751.     AX = 166Ch
  752.     BL = ???
  753.         00h ???
  754.         01h ???
  755.         other ???
  756.         BH = new value of ???
  757.         Return: AX = FFFFh
  758. ----------33176C-----------------------------
  759. INT 33 - LOGITECH MOUSE v6.10+ - ???
  760.     AX = 176Ch
  761.     ???
  762. Return: ???
  763. ----------33186C-----------------------------
  764. INT 33 - LOGITECH MOUSE v6.10+ - ???
  765.     AX = 186Ch
  766.     ???
  767. Return: ???
  768. ----------33196C-----------------------------
  769. INT 33 - LOGITECH MOUSE v6.10+ - ???
  770.     AX = 196Ch
  771.     ???
  772. Return: ???
  773. ----------331A6C-----------------------------
  774. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  775.     AX = 1A6Ch
  776. Return: AX = FFFFh
  777.     BX = ???
  778.     CX = ???
  779. SeeAlso: AX=1B6Ch
  780. ----------331B6C-----------------------------
  781. INT 33 - LOGITECH MOUSE v6.10+ - SET ???
  782.     AX = 1B6Ch
  783.     BX = new value for ??? (0000h-0003h)
  784. Return: AX = FFFFh
  785. SeeAlso: AX=1A6Ch
  786. ----------331C6C-----------------------------
  787. INT 33 - LOGITECH MOUSE v6.10+ - ???
  788.     AX = 1C6Ch
  789.     BX = ???
  790.         <42h ???
  791.         =42h ???
  792.         >42h ???
  793.             ES:DI -> ???
  794.             Return: AX = ???
  795. ----------331D6C-----------------------------
  796. INT 33 - LOGITECH MOUSE - GET COMPASS PARAMETER
  797.     AX = 1D6Ch
  798. Return: BX = direction (0=north, 1=south, 2=east, 3=west)
  799. SeeAlso: AX=1E6Ch
  800. ----------331E6C-----------------------------
  801. INT 33 - LOGITECH MOUSE - SET COMPASS PARAMETER
  802.     AX = 1E6Ch
  803.     BX = direction (0=north, 1=south, 2=east, 3=west)
  804. SeeAlso: AX=1D6Ch
  805. ----------331F6C-----------------------------
  806. INT 33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION
  807.     AX = 1F6Ch
  808. Return: BX = 0=off, 1=on
  809.     CX = 1=low, 2=high
  810. SeeAlso: AX=002Ch,AX=236Ch
  811. ----------33206C-----------------------------
  812. INT 33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER
  813.     AX = 206Ch
  814.     BX = parameter (00h = right, FFh = left)
  815. SeeAlso: AX=216Ch
  816. ----------33216C-----------------------------
  817. INT 33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER
  818.     AX = 216Ch
  819. Return: BX = parameter (00h = right, FFh = left)
  820. SeeAlso: AX=206Ch
  821. ----------33226C-----------------------------
  822. INT 33 - LOGITECH MOUSE - RE   v:v wwwxwvxxw$vwww only frees memory; does not restore hooked interrupts
  823. ----------33236C-----------------------------
  824. INT 33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION
  825.     AX = 236Ch
  826.     BX = 0=off, 1=on
  827.     CX = 1=low, 2=high
  828. SeeAlso: AX=002Ch,AX=1F6Ch
  829. ----------33246C-----------------------------
  830. INT 33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE
  831.     AX = 246Ch
  832.     ES:DX -> parameter table buffer (see below)
  833. Return: AX = FFFFh if driver installed for serial mouse
  834. SeeAlso: AX=0000h,AX=256Ch
  835.  
  836. Format of parameter table:
  837. Offset  Size    Description
  838.  00h    WORD    baud rate divided by 100  (serial mouse only)
  839.  02h    WORD    emulation                 (serial mouse only)
  840.  04h    WORD    report rate               (serial mouse only)
  841.  06h    WORD    firmware revision         (serial mouse only)
  842.  08h    WORD    0                         (serial mouse only)
  843.  0Ah    WORD    port                      (serial mouse only)
  844.  0Ch    WORD    physical buttons
  845.  0Eh    WORD    logical buttons
  846. ----------33256CBX00h -----------------------
  847. INT 33 - LOGITECH MOUSE - SET PARAMETERS
  848.     AX = 256Ch
  849.     BX = 00h set baud rate (serial mouse only)
  850.         CX = rate (0=1200, 1=2400, 2=4800, 3=9600)
  851.        = 01h set emulation (serii mouse only)
  852.         CX = emulation
  853.             0 = 5 byte packed binary
  854.             1 = 3 byte packed binary
  855.             2 = hexadecimal
  856.             3 = relative bit pad
  857.             4 = not supported
  858.             5 = MM Series
  859.             6 = not supported
  860.             7 = Microsoft
  861.        = 02h set report rate (serial mouse only)
  862.         CX = rate (0=10, 1=20, 2=35, 3=50, 4=70, 5=100, 6=150)
  863.        = 03h set port (serial mouse only)
  864.         CX = port (1, 2)
  865.        = 04h set mouse logical buttons
  866.         CX = buttons (2, 3)
  867. Return: AX = FFFFh if driver installed for serial mouse
  868. SeeAlso: AX=246Ch,AX=276Ch
  869. ----------33266C-----------------------------
  870. INT 33 - LOGITECH MOUSE - GET VERSION???
  871.     AX = 266Ch
  872. Return: BX = 'SS'
  873.     CH = '4'  major version number
  874.     CL = '1'  minor version number
  875. SeeAlso: AX=006Dh
  876. ----------33276C-----------------------------
  877. INT 33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400
  878.     AX = 276Ch
  879. SeeAlso: AX=256Ch
  880. ----------333000-----------------------------
  881. INT 33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK
  882.     AX = 3000h
  883. Return: AX = FFFFh if installed
  884.         BX = version number (BH = major, BL = minor)
  885. Program: SMD is a programmer's library by Andy Hakim which provides a
  886.       graphics-style mouse cursor in text mode.  PrecisePoint is an
  887.       SMD-based TSR which replaces the block mouse cursor in text
  888.       applications.
  889. SeeAlso: AX=0000h,AX=3001h,AX=3003h
  890. ----------333001-----------------------------
  891. INT 33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE
  892.     AX = 3001h
  893. Return: AX = status (0000h = disabled, 0001h = enabled)
  894. Note:   SMD remains disabled if running under Desqview or in graphics mode
  895. SeeAlso: AX=0001h,AX=0002h,AX=3002h
  896. ----------333001-----------------------------
  897. INT 33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE
  898.     AX = 3002h
  899. Return: AX = status (0000h = disabled, 0001h = enabled)
  900. SeeAlso: AX=0001h,AX=0002h,AX=3000h,AX=3001h
  901. ----------333003-----------------------------
  902. INT 33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION
  903.     AX = 3003h
  904.     BL = data structure selector
  905.         00h Primary Bitmap (used for 25 line mode)
  906.         01h Secondary Bitmap (used for 43/50 line modes)
  907.         02h Sacrifice Character Map
  908.         03h Program Information
  909. Return: ES:DI -> selected data structure
  910. SeeAlso: AX=3000h
  911.  
  912. Format of Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]
  913. Offset  Size    Description
  914.  00h    BYTE    vertical size of bitmap (00h - 10h)
  915.  01h    BYTE    horizontal size of bitmap (00h - 10h)
  916.  02h    BYTE    vertical hotspot position (00h - 10h)
  917.  03h    BYTE    horizontal hotspot position (00h - 10h)
  918.  04h 16 WORDs   cursor bitmap data
  919.  14h 16 WORDs   screen bitmap data
  920.  
  921. Format of Sacrifice Character Map [SMD_SMAP_STRUCT]
  922. Offset  Size    Description
  923.  00h    BYTE    bytes are character values (00h-FFh) used in place of the
  924.  01h    BYTE    actual character for the corresponding position on the screen
  925.  02h    BYTE         +--------------+     occupied by part or all of the mouse
  926.  03h    BYTE         | 0h | 1h | 2h |     cursor
  927.  04h    BYTE         |----+----+----|
  928.  05h    BYTE         | 3h | 4h | 5h |
  929.  06h    BYTE         |----+----+----|
  930.  07h    BYTE         | 6h | 7h | 8h |
  931.  08h    BYTE         +--------------+
  932.  
  933. Format of Program Information [SMD_INFO_STRUCT]
  934. Offset  Size    Description
  935.  00h    WORD    segment of old interrupt 33h handler
  936.  02h    WORD    offset of old interrupt 33h handler
  937.  04h    WORD    PSP of SMD
  938.  06h    BYTE    ENABLE/DISABLE manual setting status
  939.  07h    BYTE    ENABLE/DISABLE internal usage status
  940. ----------333004-----------------------------
  941. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  942.     AX = 3004
  943. SeeAlso: AX=3000h
  944. ----------333005-----------------------------
  945. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  946.     AX = 3005
  947. SeeAlso: AX=3000h
  948. ----------334F00-----------------------------
  949. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  950.     AX = 4F00h
  951. Return: AX = 004Fh if supported
  952.     BX = ???
  953.     ES:DI -> ???
  954. SeeAlso: AX=4F01h
  955. ----------334F01-----------------------------
  956. INT 33 - LOGITECH MOUSE v6.10+ - ???
  957.     AX = 4F01h
  958.     ES = ???
  959. Return: AX = 004Fh if supported
  960.     ES:DI -> ???
  961. SeeAlso: AX=4F00h
  962.