[Prev][Next][Index][Thread]
E/DOS handling of extended keys
There is one bug that has always existed in E/DOS that has
consistently annoyed me (a registered Executor user). (Well, actually
there is another one -- if E/DOS is started in 50 row text mode, when
it exits, you are left in 50 row mode, but the font is 8x16. But you
already know that :).)
The Macintosh has two ways of dealing with the keyboard:
1) When a non-modifier key is pressed, released, or repeated, it
generates an event, passing the keycode to the event handler.
2) It maintains a array containing an element for each key on the
keyboard. This array includes modifiers (Shift, Ctrl, etc.). For each
element, a nonzero value signals that the corresponding key is being
held down.
On the PC, extended key scancodes are prefixed by 0xE0. For example,
the scancode for Left Alt is 0x38, while the scancode for Right Alt is
0xE0 0x38. In (1), E/DOS handles this fine. But in (2), it ignores
occurences of 0xE0. If Left Ctrl is pressed and held, then Right Ctrl
is pressed and released, E/DOS will forget that Left Ctrl is being
held down. Even worse, Left and Right Alt are both translated to
Command; there is no way to make the emulated Mac think you are
holding down Option. This is significant in at least one program: Spin
Doctor.
To the people at ARDI: please consider fixing this in a future version
of E/DOS. And thank you for an outstanding product!
---
David Ellsworth
davidells@aol.com
davidell@ix.netcom.com
Follow-Ups: