[Prev][Next][Index][Thread]
Problem with E/DOS's handling of CAPS LOCK
I've discovered a problem in the way Executor handles CAPSLOCK. Please
allow me to explain.
On typical Macs, the Caps Lock key is a simple LOCKING mechanical switch.
Like most mechanical switches, it can be in either one of two states: OFF
and ON. (will be represented by 0 and 1, respectively) Since the Mac's
CAPS LOCK button is LOCKING, if you push it once, it "clicks" and stays
down, thus the CAPS LOCK key is set to the 1 state until you press it
again and "click" it off.
On the PC, it is different. Again, the PC's CAPS LOCK key is a simple
mechanical switch, and can be either turned on (1) or off (0). BUT, the
PC's CAPS LOCK key is NOT a locking key -- it does not stay down when you
press it. Thus, if you press the CAPS LOCK KEY once, it toggles briefly
to the ON (1) state, then returns to the OFF (0) state. The KEYBOARD
CONTROLLER in the PC is responsible for handling capslock, and so it
isn't as simple as on the Mac.
So, how does this affect Executor?
The other night, I was playing Maelstrom. Suddenly the phone rang. I
said "Damn!" and went to pause the game. To do this you turn on Caps
Lock. Well, unfortunately, here's what happend: for the BRIEFEST of time
(about 1 second), the "Game Paused" screen flashed on... then, the game
resumed again. "Eh?" I thought. Well, my game was toast anyway, so I
quit to dos and checked my caps lock key. It worked ok, all right. So
then I thought it might be a bug in how Maelstrom runs under Executor.
So I tried a different application -- Microsoft Word. I engaged the CAPS
LOCK and typed in some stuff. Darn it, but the stuff didn't appear in
caps! "Feh!"
Well, after some experimentation (and hair-pulling), I discovered that:
* Maelstrom will stay paused if I hold down the CAPS LOCK key. The
minute I let it go, the game resumes.
* I can type capital letters in MS Word, TexEdit, etc... IF I hold down
the CAPS LOCK key while doing so. The minute I release it, back to lower
case.
During all of these shenanigans, the CAPS LOCK light on my keyboard is
on, though!!!
My guess is that, instead of checking the PC's keyboard controller or
whatever else that controls the PC's caps lock facility, Executor is
using the state of the CAPS LOCK KEY ITSELF (down or up?) to determine
caps lockishness. So, since the caps lock in PC"s is done by software (a
control bit in the PC keyboard controller or whatever) rather than
Hardware (a physical key being "locked down") as is on the Mac, programs
like Maelstrom and MS Word, which probably work like this:
if (caps_lock_key == PRESSED_DOWN)
{
printf("Game Paused - Unclick Caps Lock to continue");
} else do_game();
do not work right.
I know many people don't use CAPS LOCK out there, but many people do, and
anyway it would probably be a good thing to fix or at least investigate ASAP.
This is under E/DOS 1.99q11. Oddly enough, the caps lock works perfectly
under E/Linux 1.99q9.
Donald Burr [d_burr@ix.netcom.com], PO Box 91212, Santa Barbara CA 93190-1212
TEL (805)564-1871 / FAX 564-2315 / WWW http://www.geopages.com/WallStreet/2072
PGP Public Key available by request (send e-mail) or on Public Key Servers.
** Uphold your right to privacy - Use PGP. **