In article <9205022028.AA01614@bluffs.scar.utoronto.ca> tcomtaob@BLUFFS.SCAR.UTORONTO.CA (Brian Tao) writes:
>[...]
>I was not trying to emphasize incompatibilities between the Universal
>Access Suite and third-party software.  With anything as new and as complex
>as System 6, I expect to see software conflicts at first.  However, what
>I found inexcusable is the pervasive nature of the UAS conflicts.  Problems
>with EasyAccess showed up in almost EVERY piece of software I own,
>including the Finder!  The problem with the "phantom keypresses" and
>hung Control-Apple-Reset are not tied to one particular application.  That
>was one of the first bugs I noticed, not one hour after getting System 6.
>How did this get by Apple?

There were three options:

 (1) Don't ship the universal access software, because there will be
     some problems.

 (2) Ship the stuff, but don't install any of it by default.  Make users
     explicitly ask to have the UA stuff installed.  (This means some
     users will overlook it.)

 (3) Ship the stuff, and include it in some standard install scripts.

Not shipping it at all isn't very exciting.  The choice between 2 and 3
is a guess at *how much* of an incompatibity problem users will have.
We chose 3; maybe we should have chosen 2.

In defense (mostly) of the much-bashed UA components:

  * CloseView and Video Keyboard -are- compatible with properly-written
    applications, including the Finder and all other applications that
    ship as part of 6.0.  The warnings have been in the Technical Note
    for a long time, and there are no serious global problems.  Just a
    lot of "broken" applications.

  * Easy Access on ROM 3 does very little work and doesn't cause problems,
    since the keyboard microcontroller on the ROM 3 motherboard already
    supports Sticky Keys and Mouse Keys. -- Easy Access just provides
    visual feedback for Sticky Keys in the menu bar.

  * Easy Access on ROM 1 has one global problem:  If your key repeat
    delay is short, you get repeats that you didn't want, especially if
    interrupts are disabled for significant lengths of time right after
    you press a key (but before you release it!). -- I don't know of a
    technical solution to this, other than cranking up your key repeat
    delay.

  * Easy Access on ROM 1:  Hang, Command-Control-Reset won't reboot.
    In many cases, Easy Access did not -contribute- to the hang in the
    first place, but a side-effect of having EA installed is that the
    keyboard is completely dead any time the computer can't service
    interrupts.  There's no way around that.

    In the case that an application reads the keyboard with interrupts
    off, and never re-enables interrupts until it *gets* a keypress,
    you'll be hung. -- The Universal Access technical note did not
    mention that reading the kbd with interrupts off is a bad idea.
    The May 92 revision corrects this (not out yet).

    BTW, I would expect applications that read the kbd with interrupts
    disabled to *already* have compatibility problems, with utilities
    like DiversiKey or MacroMate.

    I don't know of any way to implement Easy Access for ROM 1 without
    requiring interrupt-time attention from the CPU to get keyboard
    access. -- So if it causes problems, remove it!
-- 
David A. Lyons, Apple Computer, Inc.      |   DAL Systems
Apple II System Software Engineer         |   P.O. Box 875
America Online: Dave Lyons                |   Cupertino, CA 95015-0875
GEnie:DAVE.LYONS  CompuServe:72177,3233 Internet:dlyons@apple.com

My opinions are my own, not Apple's.
