[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] No keyboard with GEM=ROM
Am 12.09.2010, 18:15 Uhr, schrieb Vincent Rivière
<vincent.riviere@freesbee.fr>:
The MiNT-keyboard-handler needs a certain timer-interrupt to occur.
Sorry but that stuff is still obscure.
Yep!
I looked further into MiNT's keyboard handling. I saw that the interrupt
handler used for keyboard data is ikbd_scan() inside sys/keyboard.c.
Basically, it puts the new scancode into the scanb buffer and it calls
addroottimeout(IkbdScan).
If I understand well, the interrupt handler does a minimal amount of
work,
then addroottimeout() asks MiNT's main process to do the remaining job on
next task switch, isn't it ?
Yep! This timeout-stuff is also important for key-repeat.
And that task switch never happens in GEM programs, maybe because the ROM
Also true.
AES runs in supervisor mode, do it doesn't work inside form_do() ?
Maybe - I think I understood it better sometime ago. Fact is addrootimeout
never returns.
Well, these are suppositions.
What could be the clean fix ?
I'd suggest to add some yield() in Emutos, but that is not really clean.
NB: I saw the direct call to IkbdScan() when WITH_SINGLE_TASK_SUPPORT is
defined.
That's why I have keyboard in GEM.
--
Helmut Karlowski