Early computer mice worked by sending a series of pulses; the more rapid the movement, the higher the frequency. How was this handled at the computer end?
At one level, it sounds easy: just run a loop, counting pulses. I did find a description of how this worked in a simpler system, the Apple II with its paddles: http://www.1000bit.it/support/manuali/apple/technotes/aiie/tn.aiie.06.html
The value of the Apple paddles (or joystick) is determined by a software timing loop reading a change of state in a timing circuit. The paddles consist of a variable resistor (from 0-150k ohms) which makes up part of the timing circuit. There is a routine in the monitor ROM, called PREAD, which counts the time until a state change occurs in the paddle circuit. This time is translated into a value between 0 and 255.
Okay, paddles are not the same as mice, but they are basically equivalent in this context.
But the games are not equivalent.
Wozniak designed the paddles for the Apple to be able to run Breakout. That's a simple game in which the game logic and animation only require a small, bounded amount of CPU time each frame. It's easy to see how this could be interleaved with calling PREAD.
Later machines used mice in the middle of much more involved games and other tasks. A game like SimCity or Lemmings is very demanding of CPU time in its own right. It's not at all clear to me how you could reasonably interleave that with spending a lot of CPU cycles in a software timing loop watching the mouse port for state changes. And if you 'go away and come back again', so to speak, you might miss one. A state change could trigger an interrupt, but then, if you move the mouse around rapidly, does that have the potential to slow or disrupt time-critical tasks?
How exactly did early computers like the Amiga, Atari ST and Macintosh handle the mouse while also carrying out demanding tasks?