[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