home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 4 Drivers / 04-Drivers.zip / ctmous18.zip / CTMOUSE.TXT < prev    next >
Text File  |  2000-12-31  |  12KB  |  287 lines

  1. CuteMouse driver v1.8. Copyright (c) 1997-2001 Nagy Daniel
  2. Release date: 2001-01-01
  3.  
  4.  
  5. License:
  6. --------
  7.  
  8. CuteMouse is released under the GPL license. For further information
  9. please read the COPYING file.
  10.  
  11.  
  12. Description:
  13. ------------
  14.  
  15. CuteMouse is a mouse driver which supports many mouse protocols, serial
  16. and PS/2. It can search for serial mice at all COM ports or only at a
  17. specified port.
  18.  
  19. An important CuteMouse feature is its small memory footprint: the TSR part
  20. occupies less than 3.5K. CuteMouse can also install itself in upper memory
  21. when available without requiring external utilities such as DOS 'lh'
  22. command.
  23.  
  24. CuteMouse supports cursor drawing in all standard graphics and text modes
  25. with any screen size. These are automatically detected whenever reset
  26. functions are called or the video mode is changed.
  27.  
  28. You can subscribe to the CuteMouse discussion group at the official
  29. homepage http://www.vein.hu/~nagyd or by sending an empty letter to
  30. <cutemouse-subscribe@egroups.com>.
  31.  
  32. CuteMouse is part of the FreeDOS project at http://www.freedos.org
  33.  
  34.  
  35. Details:
  36. --------
  37.  
  38. CTMOUSE supports standard PS/2 and Mouse Systems, Microsoft (including
  39. Intellimouse/Wheel Mouse) and Logitech serial protocols. When searching
  40. for a connected mouse the PS/2 port is checked first then all COM ports
  41. are scanned. Option /S, whose syntax is described in the help screen,
  42. disables PS/2 support and can specify the COM port and the IRQ line to be
  43. checked for a mouse connection; option /P disables serial protocols. When
  44. a COM port must be forced but PS/2 support is also required, both options
  45. must be present in the command line.
  46.  
  47. By default, a PS/2 mouse is searched for before a serial mouse, but option
  48. /V reverses this. Option /V can be useful, for example, on notebooks with
  49. a built-in PS/2 pointing device to enable use of a serial mouse, when
  50. attached, by causing CTMOUSE to look for a serial mouse before checking
  51. the PS/2 device. Using option /Y (see below) also may be required along
  52. with /V. Note: option /V enables both serial and PS/2 protocols, so using
  53. options /P and /S without arguments along with /V in the command line is
  54. meaningless.
  55.  
  56. For serial mice, CTMOUSE searches all COM ports (or at the port specified
  57. by option /S) for an attached Microsoft or Logitech mouse. If no such
  58. mouse is found then CTMOUSE installs at the first existing (or specified)
  59. COM port for a Mouse Systems mouse, whether a mouse is there or not. (This
  60. is because Mouse Systems protocol defines no detection sequence). Option
  61. /Y in the command line disables Mouse Systems protocol support and
  62. prevents driver installation if no Microsoft or Logitech mouse is found.
  63. Note: option /Y forces serial mouse search but, unlike option /S, doesn't
  64. disable PS/2 support.
  65.  
  66. Both PS/2 and plain Microsoft protocols assume two button mice but option
  67. /3 in the command line can be used to enable the middle button if one is
  68. present.
  69.  
  70. WARNING: when the middle button of a plain Microsoft mouse is enabled,
  71. pressing left or right button along with the middle button can cause
  72. "middle button state triggering" - i.e. when the middle button is pressed
  73. the driver thinks it is released and vice-versa. This is a peculiarity of
  74. the Microsoft protocol and can't be changed. If button triggering occurs
  75. simply press the left or right button along with the middle button once
  76. again to clear the problem.
  77.  
  78. CTMOUSE supports 9 fixed resolution levels plus auto resolution, which
  79. define the relationship between cursor and mouse movement - the higher the
  80. resolution level, the further the cursor moves for a given mouse movement.
  81. Resolution level 1 or small mouse movements at any resolution provides a
  82. direct relationship between cursor and mouse movement, which enables
  83. precise screen positioning even at the highest resolution levels. Larger
  84. mouse movements and higher resolution levels are multiplied together to
  85. determine the cursor movement, enabling rapid cursor movements across the
  86. screen for relatively small mouse movements.
  87.  
  88. Auto resolution means dynamic resolution change, where the faster the
  89. mouse moves, the greater the resolution by which the mouse movements are
  90. multiplied, giving the cursor a nonlinear acceleration. Option /R, whose
  91. syntax is described in the help screen, allows the preferred resolution
  92. level to be specified for each direction.
  93.  
  94. If installing from low memory, CTMOUSE attempts to move itself into upper
  95. memory (UMB) if there is a suitable free UMB block and option /W is not
  96. used. With option /W any external utility can be used to install CTMOUSE
  97. at a specific location. Subsequent CTMOUSE runs simply reset the resident
  98. part to the new command line options, unless the mouse is not found or
  99. option /B is used.
  100.  
  101. When installing, CTMOUSE also ignores and hides any present mouse services
  102. unless option /B is used. Option /U in command line can be used to unload
  103. the resident part of CTMOUSE unless driver interrupts have been
  104. intercepted by another program. After successful unloading, CTMOUSE
  105. restores mouse services that were present at installation time.
  106.  
  107. Option /B in the command line cancels CTMOUSE execution if any (including
  108. CTMOUSE itself) mouse services are already present. With option /B CTMOUSE
  109. will not install itself above loaded mouse drivers and will not reset the
  110. resident part to new command line options.
  111.  
  112. For each event CTMOUSE returns an appropriate exit code which can be used
  113. in "if errorlevel" statements in batch files:
  114.  
  115.     0 - PS/2, Microsoft or Logitech mouse found and CTMOUSE installed;
  116.     unload successful;
  117.     /? option used
  118.     1 - CTMOUSE installed for Mouse Systems protocol;
  119.     unload failed - CTMOUSE not installed
  120.     2 - resident part switched to PS/2, Microsoft or Logitech protocol;
  121.     unload failed - driver interrupts intercepted
  122.     3 - resident part switched to Mouse Systems protocol
  123.     4 - mouse services already present (returned for option /B only)
  124.     5 - mouse not found;
  125.     invalid option used
  126.  
  127. Along with option /B, this enables creation of complex batch files. For
  128. example, the following batch can be used to run a program that requires
  129. mouse services to be present:
  130.  
  131.     if "%1"=="@" goto skipmouse
  132.     ctmouse/b/y>nul
  133.     if errorlevel 5 echo Mouse not found!
  134.     if errorlevel 5 goto end
  135.     if errorlevel 2 goto run
  136.     call %0 @ %1 %2 %3 %4 %5 %6 %7 %8 %9
  137.     ctmouse/u>nul
  138.     goto end
  139.  
  140.     :skipmouse
  141.     shift
  142.     :run
  143.     <program> %1 %2 %3 %4 %5 %6 %7 %8 %9
  144.     :end
  145.  
  146. Option /B can also be used to manually specify a mouse search sequence. In
  147. the following example, CTMOUSE is installed by the first command that
  148. finds a mouse and the following commands will have no affect on the
  149. resident part:
  150.  
  151.     ctmouse/b/s4/y>nul
  152.     ctmouse/b/p/y>nul
  153.     ctmouse/b/s2/y>nul
  154.  
  155. A help screen with all option descriptions can be obtained with the /?
  156. command line option.
  157.  
  158. The CuteMouse package also includes a protocol analyzer. This program
  159. shows how mice work and what they send to the computer for each action.
  160. PROTOCOL can even decipher information sent by PNP mice. All output goes
  161. through DOS functions and can be redirected to a file for subsequent
  162. analysis or sending to someone else.
  163.  
  164.  
  165. Compiling:
  166. ----------
  167.  
  168. To assemble the English version of the driver use TASM (or any compatible
  169. assembler) and any linker that can produce a COM file from OBJ files:
  170.  
  171.     copy ctm-en.msg ctmouse.msg
  172.     tasm /m ctmouse.asm
  173.     tlink /t /x ctmouse.obj,ctmouse.exe
  174.     com2exe -s512 ctmouse.exe ctmouse.exe
  175.  
  176. To assemble the serial protocol analyzer:
  177.  
  178.     tasm /m protocol.asm
  179.     tlink /t /x protocol.obj
  180.  
  181. To compile or delete temporary files, the MAKE utility also can be used
  182. (see makefile).
  183.  
  184.  
  185. Contents:
  186. ---------
  187.  
  188. copying      - GNU license file
  189. ctmouse.asm  - CuteMouse source code
  190. ctm-en.msg   - CuteMouse source file with messages in English
  191. ctm-*.msg    - messages in other languages
  192. com2exe.exe  - .COM file to .EXE file converter executable
  193. makefile     - MAKE's script file for rebuilding CTMOUSE.EXE
  194. national.bat - batch file to compile any language version of CuteMouse
  195. alllang.bat  - batch file to compile all language versions of CuteMouse
  196. ctmouse.exe  - CuteMouse driver executable with English messages
  197. ctm-*.exe    - CuteMouse driver executables with other language messages
  198. ctmouse.txt  - this file
  199. history.txt  - detailed version history
  200. protocol.txt - description of some low level mouse protocols
  201. technote.txt - technical notes for advanced users
  202. UTILITY\
  203. makefile     - MAKE's script file for rebuilding utilities
  204. comtest.asm  - COMs port tester source
  205. comtest.com  - COMs port tester executable
  206. mousetst.cpp - mouse test example source (written under BC++ 3.1)
  207. mousetst.com - mouse test example executable
  208. protocol.asm - protocol analyzer source
  209. protocol.com - protocol analyzer executable
  210.  
  211.  
  212. Known problems:
  213. ---------------
  214.  
  215. Symptom: if mouse is moved when Works 2.0 for DOS or Word 5.5 for DOS
  216. redraws screen in graphics mode then some parts of screen are garbaged.
  217. Cause: these programs don't hide mouse cursor while drawing on screen
  218. and/or don't use EGA RIL API when changing video adapter registers.
  219. Solution: correct these program's code; don't move mouse while screen is
  220. being redrawn; future version of CuteMouse will probably read VGA adapter
  221. registers directly.
  222.  
  223. Symptom: under Windows 3.1 after mouse reset (INT 33/0000) graphics mouse
  224. cursor shifted by one pixel right/down. Cause: Windows traps INT 33 call
  225. and for reset function additionally calls text and graphics cursor define
  226. functions with [-1,-1] hot spot. Solution: call INT 33 not through 'INT'
  227. instruction but through 'PUSHF/CALL FAR' sequence; probably there exists
  228. some API which CuteMouse can use in future to interact with Windows
  229. directly.
  230.  
  231. Symptom: sometime under Windows 3.1 graphics cursor has black box shape.
  232. This also sometime happens after switching between tasks windows. Cause:
  233. probably caused by Windows bug when Windows incorrectly redefine cursors
  234. at the time of task switching. Solution: restart graphics application or
  235. try to switch back and forth between tasks again; probably there exists
  236. some API which CuteMouse can use in future to interact with Windows
  237. directly.
  238.  
  239. Symptom: when CuteMouse is installed then, unlike Microsoft Mouse driver
  240. 8.2, mouse doesn't work in windowed DOS box of Windows 3.1. Cause: most
  241. probably Microsoft Mouse driver uses unpublished API to interact with
  242. Windows. Solution: unknown at this moment.
  243.  
  244.  
  245. Plans:
  246. ------
  247.  
  248. - support Microsoft's Wheel mouse/Intellimouse and compatible mice wheel
  249.   rotation information;
  250. - support of all possible text modes, including non-standard VESA modes.
  251.   (Currently only standard modes 0-3 and 7 are supported, although with
  252.   any screen size);
  253. - auto detect IRQ assigned for COM port (currently this is determined by
  254.   COM port number);
  255. - option /Aa which specifies COM port IO address and /Ii which specifies
  256.   IRQ line for specified IO address;
  257. - [probably] direct video adapter register reading in EGA RIL API for VGA
  258.   and newer adapters;
  259. - [probably] mouse reset and/or switching between serial mouse modes on
  260.   the fly if received mouse data flow has errors (proposed by Alain
  261.   M. <alainm@pobox.com>);
  262. - [probably] support DPMS and HMA to further reduce conventional memory
  263.   footprint (proposed and helped by Matthias Paul
  264.   <paul-ma@reze-1.rz.rwth-aachen.de>);
  265. - [probably] COUNTRY settings will determine displayed messages coding.
  266.  
  267.  
  268. Credits:
  269. --------
  270.  
  271. - Arkady V.Belousov <ark@mos.ru>: many bugfixes, optimizations and features
  272. - Alain M. <alainm@pobox.com>: many ideas and message files
  273. - Frank Pruefer <fp666@t-online.de>: documentation proofreading
  274. - Mike Millen <mikemillen@ukgateway.net>: documentation proofreading
  275. - Robert Riebisch <riebisch@bercom-berlin.de>: mode 13h positioning bugfix
  276. - Fernando Papa Budzyn: self-loadhigh capability
  277. - Martin <nocash@work.de>: optimizations
  278. - Paul Schubert: much faster PS/2 codes
  279. - All who helped me with ideas and codes
  280.  
  281.  
  282. Contacts:
  283. ---------
  284.  
  285. mailto:nagyd@almos.vein.hu
  286. http://www.vein.hu/~nagyd
  287.