Le dimanche 23 janvier 2022, Edgar a écrit :
> Je te propose l'algo ci dessous. Je l'ai écrit en C, mais j'imagine que
> ça doit pouvoir facilement s'adapter en assembleur.
Salut Edgar,
Juste pour te dire que l'implémentation en assembleur progresse bien. En
gros, ça fonctionne, mais j'ai un bug un peu aléatoire lors de l'appui
simultané sur plusieurs touches. Pas sûr que ça vienne de cette routine,
ya peut-être un truc moisi qui traîne ailleurs...
Il me reste également à implémenter une queue pour stocker les appuis, et
à gérer les 'modifiers' (Shift et Ctrl), ainsi que Caps Lock ; c'est à peu
près clair dans ma tête, donc ça devrait aller vite.
J'en ai d'ailleurs profité pour splitter le code en 2 : une partie à
timing fixe qui va s'exécuter en amont de la routine d'affichage (rasters
ligne à ligne) vu que je dois de toute façon attendre le début de l'écran,
et la partie à timing variable qui s'exécutera après. La première partie
correspond au scan brut des lignes clavier (y'a pas mal d'opérations à
faire, pour sortir la ligne, puis programmer le chip son pour qu'il relise
les bits de colonne). La seconde correspond au décodage des touches
(boucle sur les lignes, rotation de bits, isolation des 'modifiers' et
conversion en caractère...).
Merci encore pour ton déblocage de situation ;o) Je posterai le code une
fois debuggé.
À plus,
--
Frédéric