Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.csd.uwm.edu!bionet!apple!tecot From: tecot@Apple.COM (Ed Tecot) Newsgroups: comp.sys.mac Subject: Re: The REAL reason the mouse is jerkey! Message-ID: <34413@apple.Apple.COM> Date: 29 Aug 89 22:46:04 GMT References: <4254@ogccse.ogc.edu> Organization: Apple Computer Inc, Cupertino, CA Lines: 37 In article <4254@ogccse.ogc.edu> afoster@ogccse.ogc.edu (Allan Foster) writes: >No no not true. The disk access does indeed make the mouse a little jerky, but that >is not the reason. > >The real reason is in the ADB drivers. When Andy Hertzfeld wrote the mouse >drivers for the old mac he went to great pains to make sure that the mouse >acted RIGHT. All of the original mouse code was written by Bud Tribble, not Andy Hertzfeld. None of the effort you describe went into it. >The engineers who implemented the ADB just SCREWED UP. The ADB chip collects >all the info about mouse movements and stores it as one change since the last >poll by the CPU. If the CPU is busy then the figures stored as to how much >the mouse has moved becomes large. Oh, really? Actually, what this demonstrates is that additional I/O processors do not necessarily improve a system. As it turns out, the errors in ADB are far fewer than the original mouse code, but the TYPE of errors are far less tolerable. On a Macintosh Plus and older machines, floppy access (which diables interrupts) would effectively shut the mouse down. No one seemed to mind. These days, when interrupts are diasabled on the CPU, all the other input devices keep chugging along; they have their own processors. When the CPU "wakes up", the mouse reports the new movement, causing the cursor to appear "jerky". The latter is more accurate, but less desirable. >OK, so what is the fix? Simple. Patch the ADB drivers for the mouse device >so that if the mouse has moved more than a threshold value since the last time >it was read, then ignore it. This will make the mouse behave exactly like the >old mac plus mouse. Some experimenting would be in order to see exactly >what should happen. That's a reasonable fix. We've developed something similar, which you should see sometime in the future (probably System 7). _emt