Author Topic: IBM Mouse Acceleration Algorithm  (Read 11389 times)

RickCHodgin

  • Guest
IBM Mouse Acceleration Algorithm
« on: December 10, 2017, 12:05:27 am »
Does anybody know the IBM algorithm they used for their mouse acceleration?  I am unable to duplicate the feel (with limited attempting).

RickCHodgin

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #1 on: December 10, 2017, 12:20:48 am »
I see charts like this.  They make sense to me.  But I'd like to replicate the OS/2 mouse feel.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: IBM Mouse Acceleration Algorithm
« Reply #2 on: December 10, 2017, 02:30:58 am »
Perhaps this will help. It's under the BSD license so you can look. http://hobbes.nmsu.edu/download/pub/os2/system/drivers/mouse/amouse-gui-src-20071101.zip

RickCHodgin

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #3 on: December 10, 2017, 01:58:50 pm »
Perhaps this will help. It's under the BSD license so you can look. http://hobbes.nmsu.edu/download/pub/os2/system/drivers/mouse/amouse-gui-src-20071101.zip

I took a brief glance.  I'll try to look deeper when I get a chance.  Thank you, Dave.

RickCHodgin

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #4 on: December 11, 2017, 02:23:24 pm »
Perhaps this will help. It's under the BSD license so you can look. http://hobbes.nmsu.edu/download/pub/os2/system/drivers/mouse/amouse-gui-src-20071101.zip

I was unable to locate any mouse-specific acceleration routines in that code.  I found some for the wheel, but not for general mouse movement.  I may be looking in the wrong place.  I did a grep for "accel" and searched through all the source code references.

If anybody can point out where the algorithms are in that code I would appreciate it.  If not, I may program an FPGA to simulate PS/2 mouse input, and then register on-screen pointer movement with fixed-movement inputs from the FPGA.  That would give me data points to plot the curves and figure out the acceleration.

Sounds like a lot of work for something as simple as mimicking mouse movement though. :-)

David Graser

  • Hero Member
  • *****
  • Posts: 870
  • Karma: +84/-0
    • View Profile
Re: IBM Mouse Acceleration Algorithm
« Reply #5 on: December 11, 2017, 09:20:44 pm »
Hi

I have been away for awhile and when ArcaOS was released, I jumped back in.  So forgive me if you already know about these sources listed below.  Its good to be back.

Have you checked Hobbes?

http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2/system/drivers/mouse

http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2/dev


RickCHodgin

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #6 on: December 12, 2017, 11:09:11 am »
Hi

I have been away for awhile and when ArcaOS was released, I jumped back in.  So forgive me if you already know about these sources listed below.  Its good to be back.

Have you checked Hobbes?

http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2/system/drivers/mouse

http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2/dev

Hi David.  Welcome back. :-)  I will check it out.  Thank you.

ak120

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #7 on: December 12, 2017, 02:41:45 pm »
Please check the I/O section of IBM DDK. I can recommend the following book:
Microsoft Mouse Programmer's Reference (1989, Microsoft Press, ISBN 1-55615-191-8)
On Hobbes there should be the source code of the former shareware mouse driver RODENT.
The official "IBM Mouse" documentation would be the "IBM PERSONAL SYSTEM/2 MOUSE TECHNICAL REFERENCE OPTION"

RickCHodgin

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #8 on: December 12, 2017, 02:53:48 pm »
Please check the I/O section of IBM DDK. I can recommend the following book:
Microsoft Mouse Programmer's Reference (1989, Microsoft Press, ISBN 1-55615-191-8)
On Hobbes there should be the source code of the former shareware mouse driver RODENT.
The official "IBM Mouse" documentation would be the "IBM PERSONAL SYSTEM/2 MOUSE TECHNICAL REFERENCE OPTION"

Since you know these texts and documents, can you summarize and identify from either your memory or a quick re-examination of the place where it shows the acceleration algorithm?

I am well aware of how to write a mouse algorithm.  What I'm trying to mimic specifically is the acceleration profile, so that the native mouse driver in ES/1 "feels" like a normal mouse in OS/2, as I have observed the mouse experience in OS/2 is different from other operating systems.

I have Ray Duncan's Advanced OS/2 Programming manual by Microsoft Press, ISBN 1-55615-045-8.  It has been very helpful in giving me a baseline as the version of the kernel in existence in OS/2 1.x is simple, elegant, and straight-forward.

It has been my goal to get a good handle on the fundamental design, and then see from 1.x to 2.x to 3.x to 4.x where they were heading at each stage, and to see how they departed from Microsoft's guidance in 1.x to 2.x.

ak120

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #9 on: December 12, 2017, 03:04:37 pm »
As I don't know which mouse driver is used I have no idea what you're looking for. I have here the second edition ISBN 1-55615-336-8. So Mouse 2.0 with Mouse Driver 8.0 should fit.

RickCHodgin

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #10 on: December 12, 2017, 03:07:40 pm »
As I don't know which mouse driver is used I have no idea what you're looking for. I have here the second edition ISBN 1-55615-336-8. So Mouse 2.0 with Mouse Driver 8.0 should fit.

Is this it?  Microsoft Mouse Programmer's Reference

Can you thumb through it and see if there is a section on acceleration algorithms?  It was only $5.98 with shipping on Amazon so I went ahead and ordered it.  I don't know if it will have any useful information.  But, it's 350 pages.  Surely something good in there. :-)

I'm looking forward to looking a the DDK and a couple other suggestions.  I haven't had time yet, but hope to this evening.
« Last Edit: December 12, 2017, 04:35:14 pm by Rick C. Hodgin »

ak120

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #11 on: December 13, 2017, 12:59:04 am »
Can you thumb through it and see if there is a section on acceleration algorithms?
At least the interface for accel curves is covered for application programmers. For protocol handling issues I would refer to the technical specification of the specific device. Detailed documents covering PS/2 are widely available.

Quote
It was only $5.98 with shipping on Amazon so I went ahead and ordered it.  I don't know if it will have any useful information.  But, it's 350 pages.  Surely something good in there. :-)
It came originally with 2 diskettes that included sample programs etc. The information is not OS/2-specific but outlines the basic concepts quite reasonable. In fact OS/2 mouse device drivers are derived from their older PC DOS counterparts.

ak120

  • Guest
Re: IBM Mouse Acceleration Algorithm
« Reply #12 on: December 13, 2017, 06:54:24 pm »
Perhaps this will help. It's under the BSD license so you can look. http://hobbes.nmsu.edu/download/pub/os2/system/drivers/mouse/amouse-gui-src-20071101.zip
I don't know who placed this stuff under Hobbes drivers directory. It contains only binaries of amouse.sys and usbmouse.sys but no source code for them. So it would not help for this issue at all.

For low level code there should be a driver called "ctmouse" available from the open source FreeDOS project. This should fit better for real-mode purposes and the code is quite easy assembler.

Joop

  • Hero Member
  • *****
  • Posts: 633
  • Karma: +5/-0
    • View Profile
Re: IBM Mouse Acceleration Algorithm
« Reply #13 on: December 15, 2017, 11:41:49 am »
I can find this: Amouse (2007/11/01) is a driver for mice with single wheel. This package contains the source code of the GUI elements. Source code included. Released as open source under the BSD 3 Clauses license. Requires OS/2 Warp 4 / eCS 1.0 or later. Uploaded by Martin Iturbide. From Noller & Breining Software.

As it says, only the GUI elements. It might be that the driver isn't public code. You have to ask Noller & Breining Software if they are still in business.