tails (./1) :
J'ai vu que l'on pouvait correctement simuler une minuterie, notamment comme le défini la fonction WaitForMillis du fichier waitms.c du projet TICHESS.Le problème c'est que j'aurais voulu m'en servir en le fixant à 1s de délai
WaitForMillis est bloquant, c'est une mauvaise idée de tout bloquer pour une seconde entière.
Va voir du côté de
OSRegisterTimer.
tout en prenant un temps beaucoup plus court pour détecter les touches ... qui plus est sans toucher aux interruptions (je risquerais fort de mal les programmer) donc en utilisant ngetchx() .
ngetchx est également bloquant sauf si tu l'utilises avec
kbhit. Mais
kbd_queue est probablement un meilleur choix.
Mais que veux-tu détecter exactement: des
appuis de touches (genre "l'utilisateur a appuyé sur F1, ENTER et x") ou des
états de touches (genre "2nd et F1 sont actuellement appuyées, toutes les autres touches ne le sont pas")? Le système d'exploitation propose les premiers, la lecture bas niveau (
_keytest) est la meilleure solution pour les deuxièmes.
Folco (./2) :
Si tu veux une routine de lecture clavier, tu peux t'inspirer de PedroM. Tu peux aussi te servir de ça, toujours sous GPL : http://www.mirari.fr/7PJjL'avantage de cette routine est qu'elle n'utilise que l'int 1 (d'ailleurs, à toi de l'installer à la place du handler de l'int 1, à $64).
Ça ne répond pas à sa question, il ne veut pas toucher aux interruptions. Et je ne vois pas du tout l'intérêt d'émuler la lecture du clavier du système d'exploitation par de la lecture bas niveau, c'est un bidouillage qui réinvente la roue et gaspille de la place dans le programme pour rien.