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

Re: [MiNT] Keyboard handler



Anyway, Helmut has said he had fixed it, if I understood correctly. So let's wait for the patch.

That only applies to the Texel/Insert-bug/feature, which is easily fixed by removing INSERT from the list of modifiers. The stuck-key problem that people experience when using an Eiffel is yet to be fixed.

Correct.

Here's what I've found so far (on aranym):

Key pressed: -> scancode to ikbd_scan

Key released -> same scancode with MSB set to ikbd_scan

When I quit XaAES and hold a key while it quits, the release of this key is never submitted to ikbd_scan, no matter what key it is.

So I get the same endless repeat as the Eiffel-users. But it stops when I press a key.

Which is the same phenomenon, I guess, as when you press a key when TOS is starting, at an early stage, like when the Atari loggo appears; at this point, when you hit a key, you'll hear constant key-repeat sound from the loudspeakers until you press another key.

You know, I have sold my Falcon three years ago and have stopped coding on Atari ST even earlier. So it obviously has a _very_ good chance to be a complete rubbish what I say here. But:

The interrupt-routine in acia.S is not called until a new key is pressed, so the error seems to come from the ikbd-chip directly. As this is not present in aranym, I assume it is reset or similar by something.

By what or whom can this happen? v_clswk?

I've found nothing MiNT itself.

I don't think it's the v_clswk(). At least, N.AES also probably has a v_clswk() and I remember no problems with the keyboard under it.

Also - I don't recognize the code in acia.S anymore. I am sure that I wrote something like that once, but now I don't remember, what part of that is mine.

But: maybe interrupts get disabled for a longer period of time, when XaAES is getting shutdown? An ACIA interrupt - caused by a keypress or release - would possibly not be caught then.

There are many places in MiNT code where spl(7) - or something like that - is done. Maybe one of that places causes a problem with receiving keyboard interrupts.

Well, anyway, I guess I can't help - I simply forgot everything. it's been a long time.

Pozdrawiam
KMK