[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] MiNT questions
-------------------------------------------------
From: "Paul Wratt" <paul.wratt@gmail.com>
Sent: Tuesday, April 27, 2010 11:04 AM
To: "mint" <mint@lists.fishpool.fi>
Subject: Re: [MiNT] MiNT questions
I have had the exact same problem with an MSX emulator. Both key
repeats and sticky shift keys.
Which MSX-emulator is this? It sounds like a problem with the emulator.
The pattern seems to be related to keyboard handler, or keyboard
(emulator) timing.
The MSX handles the keyboard quite differently from an ST. It's been many
years since I did any programming on an MSX, but IIRC the MSX polls the
keyboard matrix directly. On the ST, this is done by the controller on the
keyboard itself, which sends the keystrokes (both make and break codes) over
a serial connection to the keyboard ACIA. The ACIA then generates an
interrupt which is serviced by the TOS keyboard/mouse handler.
It's possible that the keyboard handler can miss a break-code, e.g. if
interrupts has been disabled while keystrokes arrives to the ACIA. However,
if you hit and release the key when the interrupts are enabled again, the
repeat will turn off. If I understand it correctly, this is not the case
with the Eiffel/MiNT repeat-problem. Hitting the key will not turn off the
repeat in this case. To me, this suggests a difference between the Eiffel
and a real keyboard. Finding this difference would be the key to solve the
problem.
Is this ever known to have sticky keys or repeating keys on a standard
Atari ST/STe/Falcon?
It can happen on an Afterburner. Unfortunely I don't remember the details,
but under some circumstances, a piece of code in the PureC libs could
trigger this behaviour on the Afterburner (endless repeat). It was fixed by
patching the libs. Some cache-issue related to the 040 (and possibly the 060
as well). I haven't had this problem on my Afterburner since 1998.
Also, I understand why I may be getting the problem, and wounder if it
is also a related issue for others, and that is the use of extended
characters or key tables (eg using " + e to get an e with double dots,
etc where " + space gets you the actual " character)
I'm not sure if I understand what you're refering to. Are you talking about
the emulator or the deadkey-support in the kernel?
Jo Even