Testing Results:     (Thanks to all who have responded, keep up the great work!)

    Mice that are reported working (XF86-Mouse gpm-type):
        Intellimouse PS/2 (IMPS/2 imps2)
        Logitech PS/2 (MouseManPlusPS/2 mm+ps2) Serial (MouseManPlus mman)
        - Marble FX (one direction - Button4=Up, use -4 to reverse!)
        - Pilot Mouse+
        - Cordless Wheel Mouse (Method #1 @least)
        - Mouseman Wheel (Method #1 @least)

    Mice I support due to having them:
        Intellimouse PS/2
        IBM ScrollPoint PS/2

    Works Great With:
        Netscape (3.04, 4.0x, 4.5) (click to change wheel focus)
        - All Netscape clients: Mail, Composer, etc...
        - click to focus on frames. (Forms work now like they should!)
        XLess
        GVim (Lesstif)
        XiTerm
        ETerm
        NXTerm
        rxvt
        Acroread 3.1
        xterm (including scrolling the xterm itself!)
        - scrolling XTerm (instead of typing in it) is possible when the config
          file is set up.  The included imwheelrc has a setting that uses alt
          for scrolling the actual scrollbar on the xterm!
        - shift up and down work in bash!
        - if using vim or less, the plain/shifted/controled wheel works as
          expected!
        MGV
        ghostview
        some lesstif/motif windows, like file selectors... (click to focus!)
        KDE stuff (what? well...anything that has key responses!)
        XMan (requires an .imwheelrc configuration as included in archive)
        Staroffice 4.0 ("Brett Jones" <joediver@acadia.net>)
        XV (window grab...may need help, read on)
        - Needs configuration, see @Exclude command notes in README, unless...
        - if used with wheel fifos in gpm and imwheel, it's fine!
        emacs (see EMACS file for some help if you want it!)

        Any client that accepts keyboard control should be configurable,
          if not, work without configuration but with the built-in defaults!

    Not Working At All:
        Clients that don't expect any keys at all.
        - There is no way to do this, except maybe X server ICC...but I don't
          know any of that stuff, I only know about it, and it's C code calls.
        Console
        - I'm looking into this, now that I tangled with gpm for wheel info!

    May work, But it depends on which Method and which client:
        Wheel buttons in KDE clients when using wheel-fifo.
        - I mean KDE client that use actual wheel mouse stuff, won't...
          since the wheel is not going through the XServer at all!
          unless they expect pageup/pagedown too...
          in method #1 you can exclude these windows and they should work!

    XServers that may work if used with the included gpm and imwheel wheel fifo:
        XInside's Accelerated-X (There is no wheel support in AccelX!)
        - you must use the included gpm and imwheel with the wheel fifo options!

    XServers that are thought so far to be useless with a wheel mouse:
        Any win32 XServer software that has no XTest extension.
        - XVision has support I think, I'll test it at work, if I ever boot into
          NT again.  I haven't run NT in 5 weeks now, and I don't intend to!

--------------------------------------------------------------------------------
0.9.6
    Initial support & drivers (gpm & imwheel) for IBM ScrollPoint Mouse
      It is the mm+ps2 mouse type in gpm
      the IBM ScrollPoint PS/2 mouse uses the MouseManPlus Protocol in XFree86
      Support for up and down only for now...I must do a bit before other
       directions are considered! (for stick type mice thingers.)
      Pressing continuously will only result in one action.  Release and press
       again to scroll another notch.  (the regular scroll events come in too
       fast to be useful yet...)
      THANKS!!!!! TO Felix Klock for the ScrollPoint Mouse he MAILED ME!!!
       This driver is due to the initiative and sacrifice of a few bucks to get
       support for a mouse this guy loves...and from what I've read on newgroups
       many others also love!  Well you owe the possibility of this driver to
       Bryan for mailing me a mouse to be able to actually hack on the real
       thing.  Now continued support is guaranteed as well!
       mail your appreciation to Felix S Klock at pnkfelix@mit.edu
       He paid $23 or so for the mouse plus shipping to me (with normal 32cent
       stamps no less...due to the effects of the 1cent price increase in stamps
       I'm sure he was kinda glad to be rid of some of his 32cent stash to make
       room for the 33cent ones!)  Please consider sending him a dollar for his
       effort since you are reaping the rewards... (and hey send me a dollar! :)
    Added mdump, a program to dump the mouse port, and anything else you want
      with a bitwise breakdown and a 3 byte per line dump.  Other interpretation
      is added for assumptions of what may be happening with mouse motions.
      I used this program to create the mm+ps2 driver for gpm.  It is not
      installed by 'make install' so copy it yourself if you're interested.
      the first arg on the command-line is taken to be the path of the mouse
      device, which defaults to /dev/mouse.  The second arg is how many bytes
      to dump per grab. This defaults to 3 but 4 is another common value to try.
      The third arg is not parsed but if present the first byte will be bit
      dumped like the rest of the bytes in a packet.
      You can also use this program to see the MHz speed for your mouse!
      e.g.:  mdump /dev/psaux 4 1   (for imps2 mouse device type)
             mdump /dev/psaux 3 1   (for ps2/mouseman+ mouse device types)
    Added to mouse-mode setup programs for the intellimouse and mouseman plus.
      running these programs sends the right control codes to the mouse to
      activate the intellimouse or mouseman plus protocol.  The intellimouse and
      mouseman plus both default to ps2 mode.  the intellimouse and mouse man
      plus both support the imps2 protocol.  some mouse man plus type mice may
      not be intellimouse capable, but the IBM scrollpoint was capable of this
      mode, restricting it to up and down wheel emulation on it's stick.  To
      reset mouse run setps2.  setimps2 is for the intellimouse protocol.
      setmmplus is for the mouseman plus protocol.  us getmdt to see the mouse's
      reponse to the mouse device type probe.  The codes I've seen are as
      follows (<nn> is in hex format):
        <00>  mouseman plus (3 byte packets)
        <03>  intellimouse  (4 byte packets)
        <00>  plain ps2     (3 byte packets)
                when mouse is this, <AA> is received also after an <FA>
      Any <FA> type codes are ignored mouse responses, usually confirmation of
      the mouse receiving the controls the program sends it.
    All these debugging  programs default to the /dev/mouse device node unless a
      path is passed in as the first argument.
    None of the debugging programs have been tested with serial mice.
    Fixed a missed regrab of the mouse after the configurator is closed.
    Pid file is only used if user is using the /dev/gpmwheel FIFO. (Method #2)
    Killing pids according to pidfile now checks to make sure the process is
      truely an imwheel process, and only kills it if it is an imwheel process.
      It also will only kill if using the /dev/gpmwheel FIFO.
    Imwheel funtions correctly on multiple displays by using the -display
      option or setting the DISPLAY environment variable (use export/setenv!)
    Thanks to Arnd Bergmann <arnd@uni.de> we now have gpm support for the
      Knopex Wineasy 4D mouse.  And due to his patches and them prompting me to
      update lotsa code we have support for intellimouse serial, as well as
      support for sideways actions.  This is only available through the FIFO.
      You must use Method#2 (a variant of which that is) that uses the wheel
      FIFO as set up by gpm.  XWindows cannot handle the 7 buttons correctly,
      it can only handle 5, which means only up and down will work with
      Method #1!
    Added FreeBSD support, see the FREEBSD file for more.  It requires no
      changes to compile and install.
    Added threshhold option for stick users of method #2 (it requires gpm)
      Use the -t or --threshhold option to set a threshhold from 0-7.
      The default is 2, it works well.
    Added no-middle-button option (-n) to gpm.  Use this if you have trouble
      with unintentional middle button clicks while wheeling/sticking, and you
      would rather use Emulate3Buttons chording in X (XFree86 at least...)
    Added conditional compile for gpm-imwheel directory.
--------------------------------------------------------------------------------
0.9.5
    Finished off configure dialog to spec, it's just a helper, not an editor!
    Updated gpm to version 1.16.0, now sticking with stable versions.
    - hopefully I'll get a patch and send it to the gpm team for some
      integration, thus releasing me from this task...
        - the gpm library is still untested in the console...should work though!
          see note in version 0.8 below.
    Added suid option to "make install" for users other than root to be able
      to run with a pid file.  The default action is yes if nothing is entered
      at the prompt.  I felt that 'yes' had to be the default action to avoid a
      bunch of newbie email.  This doesn't allow users to install imwheel as
      root, and it's not a security risk.  this is for sys-admins, or at least
      root users to be able to get all their users using the pid file for the 
      daemon and also for them to be able to kill off old daemons started by
      other users before.
    Added -p option for no pidfile stuff, be careful though, this allows any
      user to start imwheel regardless of a previous imwheel process!
    Added -D for debug output anytime (no recompiling for those bug reports!)
      - use the -d option to avoid backgrounding the process!
    Fixed silly free(NULL) crap...(heh, betchyall loved that one!)
    added rxvt stuff to imwheelrc file.
    added EMACS file (an email from an avid wheeler! oh, and it's about emacs!)
--------------------------------------------------------------------------------
0.9:
    Configuration helper almost done. (still need to sample wheel actions!)
    - use up,down,up in the root window to activate!
    - all functions in window are fully functional.
    - restart does restart imwheel and thus reread the rc files
    - grab windows by clicking the snapshot and then on the desired window
    - more to come!
    More options and abilities:
        - daemon mode
            -d to NOT detach and daemonize!
        - kill any existing imwheel
            -k to kill any existing imwheel as a restart
        - quit after rc files
            -q, used best with -k to kill any imwheel process and quit
    More configuration options:
        - added 2 separately configurable delays
          fixes netscape dropping keys! (it must queue only one key...)
          first delay is the delay between repetitions (keyup->keydown)
          second delay is the delay between pressing and releasing
                                                       (keydown->keyup)
          see the new imwheelrc for the netscape values that work for me!
--------------------------------------------------------------------------------
0.8:
    Modified gpm 1.15 beta2 for wheel support.  I dunno about the gpm user
       library and wheel stuff, but it may work with GPM_B_UP and GPM_B_DOWN.
       use the -W (and -w for non-IM mice) for use with "imwheel --wheel-fifo"
    IMWheel interfaces with /dev/gpmwheel, use the "--wheel-fifo" option, or
       "-W /dev/gpmwheel", the -- option has /dev/gpmwheel as the default.
       Don't forget to reconfigure your mouse pointer in XConfig...
--------------------------------------------------------------------------------
0.7:
    No segfaults!  Thank God!  New functionality!
    New Command structure started, and Exclude command added.
    - Exclude ungrabs mouse for selected windows.
    More commands may now be added as needed!
    XV's window grabber was dying because it needed to grab all buttons...
    - use the line "@Exclude" in an "xv grab" window section. See imwheelrc
--------------------------------------------------------------------------------
0.6:
    Argh...another bugfix for segfaults...now you don't need an rc file.
--------------------------------------------------------------------------------
0.5:
    Argh...a bugfix for segfaults...this time it doesn't care about windows that
       don't have either title, resource, or class names set (leaving them NULL)
    Thanks for all the positive response and encouragement.
    Multi-rep scrolling actions can cause less then you expected to happen.
    - Be patient, it works most of the time.  There is no way I can find to fix
      this, so help may be needed!  You will find XSync in use, but I believe
      that has a minimal effectiveness...makes it work better than before though
    Moving out of windows and losing focus may cause weird things to happen!
    - Press and release all modifier keys (alt,ctrl,shift,etc.) to reset input.
--------------------------------------------------------------------------------
0.4:
    finally! Config file support is added, completing the keyboard config setup.
    /etc/imwheelrc and/or $HOME/.imwheelrc files are used for configuration.
    built-ins are still available for unconfigured windows.
    anybody want to make a client to make configuration a breeze?  Contact me!
    all clients that have keyboard input can be used with configuration!
    no new options.
    more code moving, now two files, whopee you say!  but it made development
       easier!
    got reports that KDE compatabilty has been achieved by v0.3
--------------------------------------------------------------------------------
0.3:
    added options engine.
    added -f or --flip-buttons option to flip behavior, useful for 4 button mice
    changed engine, now using XTest extension instead of XSendEvent crap.
    - still grabbing buttons which may be part of the incompatibility with KDE.
    added other mice that should work as well, according to XFree86 docs.
    added a grab reset sequence, but it seems to be a nop...
    - run imwheel again if it dies and leaves your server going funky...
    cleaned out junk from old engine, new code is cleaner...I think so anyways!
    XTest extension now required (not checked in code...I may do that)
    More clients work than ever!
    Reps for sideways motion (alt-wheel actions) now work in netscape...
    - only when there are sideways scrollbars
    - May work everywhere, i dunno!
    - It works in all tested clients that use cursor left/right keys for actions
--------------------------------------------------------------------------------
0.2:
    cleaned up exit on bad display opening.
    changed library directory to X11R6 instead of X11
    received confirmation of compatability with Logitech MouseMan+ from:
        "Markus Martensson" <mortis@acc.umu.se>
    modifier combinations of Shift,Control, and Alt(Meta) changes behavior.
    repetition of keystrokes
    still no setup files...
    still no change in clients...
--------------------------------------------------------------------------------
0.1:
    first release
    streamlined version, unused code is compiled out.
    no setup, hardcoded page up and page down!
    no exclusion for specific windows either.
