home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 July / CMCD0704.ISO / Software / Complet / FreeDOS / fdbootcd.iso / FREEDOS / PACKAGES / BASE / DISK03 / CUTEM19X.ZIP / HELP / CTMOUSE.EN
Text File  |  2002-09-01  |  12KB  |  261 lines

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