Hi Arkady, thanks for the feedback :-) > EA> Current CuteMouse 2.1 development is done by me :-) . > > And how progress so far? (I was missing half of year, so I miss > latest news).
Unfortunately, you did not miss much. But at least CuteMouse is still maintained, and people still get support when they have questions about problems with it... Yet I wonder why ctmouse 2.1b3 /O /P works worse than 1.9 for that problematic PC (2.1 with wheel does not see mouse, 2.0 hangs, 2.1 /O is supposed to work like 1.9 but does not see mouse either). If you have an idea how to test this...? > Let me object this assertion. :) CuteMouse source code is full of > different tricks, but in other there was done a lot of work to make > it more readable (including introducing high level constructions like > if_/else_/end_). Which leads to a "new language" which is harder to read ;-). It might also have side-effects in some ways, but I usually do trust that if else end macro, it can be nice yes :-). > EA> www.coli.uni-saarland.de/~eric/ctmouse21b3.zip > EA> What I was planning to do next was to make the COM handling > EA> automatic: Maybe remove Mouse Systems (Genius) protocol or > EA> at least make it no supported by default. > > I suggest, today this change (not enabled by default) shouldn't harm - > I doubt there remained any of MSM mouse alive. :) But who knows? On the > other side, I not see ANY urgent need in making MSM protocol disabled by > default - if user need to omit this protocol, (s)he always may add /y > option. Rule 1: Users never read the manual. So they just type ctmouse, see that it somehow fails to see their ps2 mouse, then grabs their empty com port (because you never know if it is empty or Genius) and then file a bug report instead of reading the manual ;-). This is why I suggest to make the default "do not guess that a com port which is nothing else might be a Genius mouse". > EA> The current version > EA> has an option /Y ignore Mouse Systems, and most people > EA> should use it, > > NOT "should". You should use this option ONLY IF you not want to > remain CuteMouse in memory, when there is no mice attached. The /Y option is only intended to avoid pretending that an empty com port is a Genius mouse, so I think /Y is good. And if you have no mouse /Y is a good idea, because the driver will not load if it finds no mouse :-). > EA> So my plan is to make that "ignore Mouse Systems" the default. > > This is cosmetic change, which may be useful, but it may also have side > effects (for those users, who have MSM mice). Especially if driver > runned by 3rd party software (like Partition Magic) and you not have > possibility to add options manually. In that case, you probably want "disable wheel" to be the default, too, as disabling the wheel improves compatibility quite a bit. > if 4th byte = zero then ; both protocols > middle button released > else if bit 5 (mask 00100000b) is set then ; LT protocol > middle button pressed > else ; MS+wheel protocol > parse low 5 bits (bit 4 - middle button, bits 0-3 - wheel rotation) Lemme see... Mouse Sys: 10000LMR, X1, Y1, X2, Y2 (sum 1 and 2 to get X and Y) only Mouse Systems / Genius uses 8 data bits, the following use 7: Microsoft: 01LRyyxx, 00xxxxxx, 00yyyyyy (high bits are in 1st byte) Logitech: 01LRyyxx, 00xxxxxx, 00yyyyyy, 00M00000 (4th only if M change) MS Wheel: 01LRyyxx, 00xxxxxx, 00yyyyyy, 000Mwwww (w is wheel) So the above 3 types "talk Microsoft" unless you press or release the middle button or move the wheel at that moment, although I am unsure whether MS Wheel mice use the 4th byte only on demand or for every packet? PS2 mouse: ??yx1MRL, X, Y (bits in 1st byte are "X/Y overflow") PS2 Wheel: ??yx1MRL, X, Y, wheel (usually wheel is -8 .. +7) PS2 3+wh.: ??yx1MRL, X, Y, 00BFwwww (B F are extra buttons) In PS2, you tell the BIOS to select a protocol size and reset communication to know "where you are". This is why you can get out of sync when trying to hotplug a PS2 mouse (which can also stress the hardware). USB mice can often talk PS2 with a dumb (non-electronic, only mechanical) adapter. If you connect USB mice via USB, the BIOS often is able to create virtual PS2 and feed it with the data from USB. In COM (serial port) mice, you have the 01nnnnnn mark for the first byte and 00nnnnnn for all other bytes, so you can always get back in sync if you hotplug a serial mouse. Of course other parameters can mess up then. > "auto decision" may cause "mystic" middle button state changes > and wheel rotations. I remember, there WAS some troubles with > middle button in my initial experiments (or this was troubles > with MSM protocol? don't remember precisely...). I hope it was Genius only. If you change a mouse while busy, you can end up throwing any of the 2th to 4th bytes into the slots for 2th to "7th" byte before you get a new "sync" marked first byte again. I think this is acceptable, though. As long as the 4th byte marks the middle button STATE, not the toggle, you can always get the middle button "fixed" by pressing and releasing it once to get the driver back in sync. But maybe there are other protocols where for example "LR encodes a M toggle" is used to get along with only 3 bytes...? > Also, I should mention: Alain was doing some changes for himself > to make "autodecision". I think I remember his plans, but does he still have the sources? Are they readable, stable, understandable? ;-) > There is another problem with PS/2 - to enable wheel support in mouse, > you should "send" some additional initialization, but this support > disabled in mouse again (without knowledge about this in driver!) Exactly. So for hotplugging, you better use /O to disable the wheel. It is easy enough without wheel to get out of sync in PS2 anyway, see above... Of course you could build heuristics based on the idea that ??001000 is a more typical value for a 1st byte than for one of the other bytes in the protocol. But IMHO it would add a lot of complexity for little gain. Just do not hotplug if you cannot take the risk of having to re-init ctmouse manually at the prompt ;-). > if some 3rd party > code also resets mouse. I not see reliable methods to control > wheel support (make it always enabled) with PS/2 mice... Eric ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel