[Prev][Next][Index][Thread]

Re: E/DOS handling of extended keys



>>>>> "David" == David Ellsworth <davidell@ix.netcom.com> writes:
In article <4rvjvi$cec@dfw-ixnews9.ix.netcom.com> David Ellsworth <davidell@ix.netcom.com> writes:


    David> There is one bug that has always existed in E/DOS that has
    David> consistently annoyed me (a registered Executor
    David> user). (Well, actually there is another one -- if E/DOS is
    David> started in 50 row text mode, when it exits, you are left in
    David> 50 row mode, but the font is 8x16. But you already know
    David> that :).)

Yes, that's a bug that we know about that will not be relevant when we
have a native Win32 version.

    David> The Macintosh has two ways of dealing with the keyboard:

    David> 1) When a non-modifier key is pressed, released, or
    David> repeated, it generates an event, passing the keycode to the
    David> event handler.  2) It maintains a array containing an
    David> element for each key on the keyboard. This array includes
    David> modifiers (Shift, Ctrl, etc.). For each element, a nonzero
    David> value signals that the corresponding key is being held
    David> down.

    David> On the PC, extended key scancodes are prefixed by 0xE0. For
    David> example, the scancode for Left Alt is 0x38, while the
    David> scancode for Right Alt is 0xE0 0x38. In (1), E/DOS handles
    David> this fine. But in (2), it ignores occurences of 0xE0. If
    David> Left Ctrl is pressed and held, then Right Ctrl is pressed
    David> and released, E/DOS will forget that Left Ctrl is being
    David> held down. Even worse, Left and Right Alt are both
    David> translated to Command; there is no way to make the emulated
    David> Mac think you are holding down Option. This is significant
    David> in at least one program: Spin Doctor.

    David> To the people at ARDI: please consider fixing this in a
    David> future version of E/DOS. And thank you for an outstanding
    David> product!

I just fixed it now, although I didn't test it with Spin Doctor (I
tested it with Asymptote Demo).  We were already doing a bunch of
extended translations, but I guess I overlooked the fact that the
right alternate uses them.  This had been on my TODO list for a while,
thanks to Gene DeClark.

    David> --- David Ellsworth davidells@aol.com
    David> davidell@ix.netcom.com

--Cliff
ctm@ardi.com


References: