home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d09xx / d0979.lha / QMouse / QMouse.doc < prev    next >
Text File  |  1994-04-04  |  13KB  |  422 lines

  1.                             QMouse V2.90
  2.  
  3.                        Written by Dan Babcock
  4.  
  5. Note: This program requires Kickstart 2.0 or higher. Tested with
  6. up to V40.62.
  7.  
  8. I missed one program more than any other when I switched to
  9. Kickstart 2.0: QMouse, the venerable mouse-utility. I tried every
  10. other program of its type that I could find, but every utility I
  11. tried had quirks, lacked important features, and worst of all was
  12. HUGE. Discouraged (and annoyed), I decided to write my own.
  13. QMouse V2 (this program) is a completely new program, not an
  14. update to QMouse, but I couldn't think of a more fitting name;
  15. after all, my intent was to make a utility "like QMouse" - why
  16. not call it QMouse!? I hope this doesn't lead to too much
  17. confusion. On to the all-important feature list...
  18.  
  19. FEATURES:
  20.  
  21. * Automatic window activation after Amiga-M and Amiga-N (or the
  22. screen depth gadget): the previously active window will be made
  23. active. VERY useful!!! Does not poke screen structure like the
  24. original QMouse did (bad :-)).
  25.  
  26. * Optional top-line blanking for 2320/3000 owners who wish to
  27. mask the "half line flicker" effect. Does not blank the border,
  28. just the top line.
  29.  
  30. * System-friendly mouse blanking. Uses only the documented
  31. function SetPointer. Does not interfere with other sprites (e.g.
  32. JRComm's cursor).
  33.  
  34. * Mouse acceleration/threshold
  35.  
  36. * "PopCLI" feature. The CLI (actually any program may be
  37. executed) will have a sensible current directory, stack, and
  38. path.
  39.  
  40. * Click-to-front and click-to-back. Click-to-Back will
  41. intelligently decide whether to perform a Window-To-Back or
  42. Screen-To-Back operation.
  43.  
  44. * SunMouse (activates window under mouse pointer). There is a
  45. optional activation delay to avoid "jerky mouse" syndrome.
  46.  
  47. * SunRMB (activate window under pointer when right mouse button
  48. is pressed)
  49.  
  50. * SunKey (activate window under mouse pointer when you hit a key)
  51.  
  52. * Screen blanking. No special effects; use another program for
  53. that stuff.
  54.  
  55. * NoClick - turn off drive clicking for any combination of
  56. drives.
  57.  
  58. * Can turn on the shell's *=#? feature (like "WildStar" etc.)
  59.  
  60. * Option to automatically make the top screen the default public
  61. screen. This is the same function as PubChange by Steve Koren.
  62.  
  63. * Option to completely disable DisplayBeep (some programs overuse
  64. it and it gets VERY annoying!)
  65.  
  66. * Option to remap a few Northgate keys. (Note: Omnikey Ultra
  67. model)
  68.  
  69. * Starts own background process (no need to RUN).
  70.  
  71. * Written in assembly (efficient). Not a commodity.
  72.  
  73. * Fully public domain. Source code included.
  74.  
  75. * ONLY 4K!
  76.  
  77.  
  78. -------
  79. Changes
  80. -------
  81.  
  82. V2.10
  83.  
  84. Adds a couple simple options (e.g. noclick and wildstar), and
  85. some internal changes permit left-amiga-cursor mouse movements to
  86. work with mouse blanking enabled.
  87.  
  88. Released on Fish 697.
  89.  
  90. V2.20
  91.  
  92. Older versions (pre-2.11) of QMouse had a serious memory-trashing
  93. bug. This is fixed thanks to Chris Schneider.
  94.  
  95. The problem with the NoFlicker option and vertical overscan,
  96. reported by several people, has been fixed.
  97.  
  98. The "PopCLI" feature now brings the Workbench screen to the
  99. front.
  100.  
  101. Released on Fish 731.
  102.  
  103. V2.21
  104.  
  105. The NoFlicker option now works with Kickstart 3.0 (tested with
  106. 39.106 and 39.110).
  107.  
  108. An informative requester is displayed when QMouse is unable to
  109. deinstall. (Previously it failed silently).
  110.  
  111. A couple extra key remappings added to NorthGate option (numeric
  112. keyboard matches Amiga standard, important for VT100 emulation).
  113.  
  114. V2.30
  115.  
  116. Now works properly in superhires, 800x600, etc. The code actually
  117. shrunk when I fixed this because the offending code wasn't even
  118. needed.
  119.  
  120. The problem of the permanently disappearing pointer, which was
  121. seen most often with reqtools-using programs (for example
  122. GadToolsBox), has been fixed. Nasty software that peeks at
  123. wd_Pointer can still get temporarily confused, but no serious
  124. harm will come of it.
  125.  
  126. Click-to-front is disabled when left-Amiga is pressed. This
  127. avoids a conflict with Snap when double-clicking on some text in
  128. a background window.
  129.  
  130. Task priority set to 20 (same as input.device). Previously it
  131. inherited the priority of the caller.
  132.  
  133. Released on Fish 802.
  134.  
  135. V2.40
  136.  
  137. Added "NoWBenchToFront" and "PubChange" options.
  138.  
  139. Automatic window activation (and PubChange) will now work with
  140. the screen depth gadget as well as Amiga-M/N.
  141.  
  142. An error message ("Bad arguments") is printed if invalid options
  143. are given. (Previously it failed silently).
  144.  
  145. V2.50
  146.  
  147. Due to popular demand I added a delay option (SunMouseDelay) to
  148. the SunMouse option which provides for a delayed response
  149. (similar to Commodore's AutoPoint program, except the delay is
  150. adjustable). This makes it more usable on 68000 machines.
  151.  
  152. Automatic window activation after using the screen depth gadget
  153. didn't quite work in 2.40. Fixed.
  154.  
  155. Major addition/fix: The mouse blanking code is now fully updated
  156. for Kickstart 3.0, patching SetWindowPointerA and
  157. OpenWindowTagList. Much to my surprise these functions are
  158. already used by some commercial software (e.g. FinalCopy II) as
  159. well as Workbench and various 3.0 system software.
  160.  
  161. Made some minor changes to some options (NoClick, Star, Verify)
  162. to be a bit more logical.
  163.  
  164. V2.60
  165.  
  166. Added "ImmBlank" option to allow immediate screen blanking using
  167. Left-Amiga+Right-Amiga.
  168.  
  169. Tuned up the semaphore logic to be more robust.
  170.  
  171. Fixed a minor but annoying bug in the automatic window activation
  172. code.
  173.  
  174. V2.61
  175.  
  176. Fixed a bug in the screen blanking that crept into 2.60.
  177.  
  178. Added the "SunKey" option thanks to the code contribution of
  179. Jaba@desert.wlink.nl (sorry, I don't know your name!)
  180.  
  181. V2.70
  182.  
  183. Versions 2.50-2.61 had a rather disastrous bug in the quit code
  184. which often caused it to fail if running under a pre-3.0
  185. kickstart. Fixed.
  186.  
  187. The "robust" semaphore logic of 2.60-2.61 turned out to be a
  188. disaster, causing more problems than it solved. :-) I've done a
  189. major rewrite in this version, moving ALL the intuition calls out
  190. of the input handler and also being careful to handle
  191. CloseWorkBench properly. Hopefully this will be the final and
  192. correct solution.
  193.  
  194. Made still more improvements to the automatic window activation
  195. code. Now it remembers a screen's active window even if you shift
  196. to another (partially obscured) screen by clicking in a window on
  197. the other screen. (Previously the "remember" code was only
  198. triggered when there was a change in the top screen).
  199.  
  200. Added "SunRMB" option. This one actually appears to be quite
  201. useful...I use it myself. :-)
  202.  
  203. V2.80
  204.  
  205. Added NoActivate and ScreenToBack options.
  206. Screen blanking is now completely system-friendly.
  207. Removed SunRMB option for now (sorry).
  208. Bug fixes!
  209.  
  210. V2.90
  211.  
  212. SunRMB option is back.
  213.  
  214. Bug fixes.
  215.  
  216. Technical improvements: Process priority is 21 again (19 caused
  217. major glitches); revamped semaphore logic (again); now calls
  218. LockIBase for every IntBase access; patches many fewer OS
  219. routines; "someone has patched the same OS routine" error display
  220. now includes the library name and routine offset.
  221.  
  222. ------------
  223. Using QMouse
  224. ------------
  225.  
  226. To see the parameter template type "Qmouse ?". Most likely it
  227. looks like gibberish to you, though, so I'll explain the options:
  228.  
  229. (Please note: If you don't specify an option, the option is OFF.
  230. The default set of options is therefore all OFF, except for
  231. automatic window activation, which is ON by default).
  232.  
  233. MBLANK (abbreviated M):
  234.  
  235. This specifies the number of seconds of mouse inactivity     
  236. before the mouse pointer is blanked. The mouse pointer is also
  237. blanked whenever you hit a key.
  238.  
  239. Side note: Many people claim that it is impossible to blank the
  240. mouse in a "system-friendly" way. They're wrong. :-)
  241.  
  242. Examples: m=3, mblank=9, M 10
  243.  
  244. SBLANK (abbreviated S):
  245.  
  246. Screen blanking - works same as mouse blanking basically.
  247.  
  248. ImmBlank:
  249.  
  250. Enable immediate (user-controlled) screen blanking. With this
  251. option enabled, you can hit Left-Amiga and Right-Amiga
  252. simultaneously to blank the screen.
  253.  
  254. NOFLICKER (abbreviated N):
  255.  
  256. This option will blank the top line of the display. (Only useful
  257. to 2320/3000 owners). This function inspects the system copper
  258. list, so it probably won't work in future Kickstarts.
  259.  
  260. Note: If a screen with extreme vertical overscan is being
  261. displayed, QMouse will automatically turn this feature off. To
  262. get rid of the flicker simply drag the screen down a few lines.
  263.  
  264. CMD:
  265.  
  266. Specifies the command to execute when the user hits left-Amiga-
  267. ESCape. Default is "newcli". Use like this: CMD="newcli
  268. con:0/0/640/400". Important!!! The current directory, stack, and
  269. path of the newly created CLI will be that of the CLI where
  270. QMouse was originally executed. Therefore, place QMouse in your
  271. startup-sequence *after* STACK and PATH commands!!
  272.  
  273. The Workbench screen will normally be brought to the front when
  274. executing the command. If you don't want this, use the
  275. "NoWBenchToFront" option.
  276.  
  277. ACCELERATION (abbreviated A):
  278.  
  279. Specifies mouse speed-up factor. QMouse uses the same
  280. acceleration/threshold algorithm as DMouse, by the way (I got
  281. used to the feel).
  282.  
  283. Examples: acceleration 3, a=4, a 9
  284.  
  285. THRESHOLD (abbreviated T):
  286.  
  287. Specifies a threshold (minimum movement) required to apply
  288. acceleration factor. The default is zero. Example: T=1.
  289.  
  290. CLICKTOBACK (abbreviated CTB):
  291.  
  292. Specifying "ctb" or "clicktoback" will enable a feature whereby
  293. both mouse buttons being pressed simultaneously will send the
  294. window under the mouse pointer to the back, OR, if the mouse is
  295. not over a window, or if the window is a backdrop window, or if
  296. the window is the only non-backdrop window on its screen, then a
  297. screen-to-back operation will be performed instead.
  298.  
  299. SCREENTOBACK (abbreviated STB):
  300.  
  301. Similar to ClickToBack except it will only switch screens, not
  302. windows.
  303.  
  304. CLICKTOFRONT (abbreviated CTF):
  305.  
  306. This option specifies the number of mouse clicks required to
  307. bring the window under the mouse pointer to the front. Example:
  308. ctf=2.
  309.  
  310. SUNMOUSE:
  311.  
  312. Specifying "sunmouse" turns on the "Sun Mouse" feature.
  313.  
  314. SunMouseDelay:
  315.  
  316. This is a sub-option for SunMouse and specifies a delayed
  317. response to mouse movements. This allows for rapidly moving the
  318. mouse across windows with any jerkiness caused by activating
  319. windows that happen to be "in the way" of the pointer. This
  320. effect is most pronounced on slow (e.g. 68000-based) systems. 
  321.  
  322. This option takes a number argument that specifies the amount of
  323. delay. Typical values are 0 (no delay) and 1 (small delay).
  324. Example: SunMouseDelay=1
  325.  
  326. SunRMB:
  327.  
  328. This option causes the window under the mouse pointer to be
  329. automatically activated whenever you hit the right mouse button.
  330. This allows you to get at menus without a separate left-mouse-
  331. click step.
  332.  
  333. SUNKEY:
  334.  
  335. Specifying "SunKey" will cause the window under the mouse pointer
  336. to be activated (if it isn't already) when you press a key.
  337.  
  338. NOBEEP:
  339.  
  340. Completely disables DisplayBeep (the routine that flashes the
  341. screen).
  342.  
  343. NORTHGATE:
  344.  
  345. For Northgate Omnikey Ultra keyboard users only: remaps a couple
  346. keys. (Page Up -> Shift-Cursor-Up, etc). Sorry, if you want to
  347. change it you'll have to edit the source and reassemble.
  348.  
  349. NOCLICK:
  350.  
  351. Turns off drive clicking option in trackdisk, just like many 2.0-
  352. only 'noclick' programs. The argument to this option is a decimal
  353. number whose (4-bit) binary equivalent corresponds to what drives
  354. should receive the noclick treatment. For example, the number 3
  355. is "0011" in binary, and means drives 0 and 1 (but not 2 and 3)
  356. should be NoClick'ed. To turn off clicking on all drives, specify
  357. NOCLICK=15.
  358.  
  359. Important: If you drive makes funny clicks after using NoClick,
  360. reboot immediately - you can damage a drive that doesn't support
  361. NoClick (which is why the OS defaults to the "clicking" mode).
  362.  
  363. VERIFY:
  364.  
  365. Turns on the floppy disk verify feature of Hackdisk (my
  366. trackdisk.device replacement). If you aren't using Hackdisk this
  367. option is useless.
  368.  
  369. NOVERIFY:
  370.  
  371. Turns off the floppy disk verify feature of Hackdisk (my
  372. trackdisk.device replacement). If you aren't using Hackdisk this
  373. option is useless.
  374.  
  375. STAR:
  376.  
  377. Turns on the *=#? shell feature, similar to programs called
  378. "WildStar" etc.
  379.  
  380. PUBCHANGE:
  381.  
  382. The PubChange option causes the top screen to be automatically
  383. made the default public screen (if the top screen is a public
  384. screen).
  385.  
  386. NoWBenchToFront:
  387.  
  388. This option causes the CMD option to NOT bring the Workbench
  389. screen to the front.
  390.  
  391. NoActivate:
  392.  
  393. Turns off the automatic window activation after a screen switch
  394. feature.
  395.  
  396. QUIT:
  397.  
  398. Completely de-installs QMouse. Note that executing QMouse when
  399. already installed will cause a QUIT to happen first. Due to
  400. extensive SetFunction-ing of the OS, this is considered unsafe.
  401. So please, use only for initial testing (i.e. deciding what
  402. features of QMouse you like and which you don't, etc). Once
  403. you're happy, put QMouse in your user-startup and don't mess with
  404. it.
  405.  
  406. Important: If you run another program that SetFunctions some of
  407. the same routines (for example ARQ) you will not be able to QUIT
  408. or modify parameters. To avoid this run QMouse last.
  409.  
  410. ----------
  411. The Author
  412. ----------
  413.  
  414. I can be reached at d6b@ecl.psu.edu. My thanks to the many users
  415. who wrote me with suggestions and bug reports.
  416.  
  417. Other fine freeware software products by me:
  418.  
  419. FileMount: Utility to create a true partition within a file
  420. Hackdisk: A trackdisk.device replacement offering a verify option
  421.  
  422.