glre Le 06/11/2005 à 19:15 le seul moyen est de créer ta propre routine (je pense)
Ah ah ! Sacré Gödel, il avait l'idée de vouloir mettre au chômage tous les mathématiciens ce fourbe !
pacHa Le 06/11/2005 à 19:38 regarde dans les tutos ce qui concerne le direct input et les ROM CALLs genre getkey
joe14 Le 08/11/2005 à 12:57 le tuto de base : asm in 28 days
Sinon, à la limite, asmguru, mais bon...
getkey sert à obtenir le code de la touche appuyée par l'utilisateur. Je crois que la calculatrice attend jusqu'à ce qu'une touche soit actionnée. Elle (la romcall) supporte les fonctions secondaires (c'est à dire que si 2nd est frappé, elle attend la touche suivante pour mettre dans a le code de la fonction secondaire affecté à la touche en question). PROBLEME : cela permet à l'utilisateur d'éteindre la calculatrice et ainsi d'obtenir un joli crash...
getcsc n'attend pas que l'utilisateur appuie sur une touche, je crois qu'elle regarde au moment de son exécution si une touche est actionnée (ou a été actionnée récemment, disons), si ce n'est pas le cas, elle met zéro dans a. Elle stocke le code de la touche dans a. Elle n'affecte qu'un code par touche, donc pas de fonctions secondaires (et donc pas de crash).
La routine (créée par dwedit) qui permet de l'utiliser comme un getkey (les fonctions secondaires en moins) :
waitkey:
ei
boucle:
HALT ;"éteint" le Z80 jusqu'à la prochaine interruption (d'où le ei précédent).
bcall(_getcsc)
or a ;cp 0
jr z,boucle
ret
ATTENTION : les codes transmis par getkey et getcsc sont différents. Ils sont disponibles dans les fichiers d'include (je conseille dwedit.inc). Les scans codes correspondent à getcsc.
Il y a aussi une autre méthode de détéction d'activation de touches par l'utilisateur, le direct input où la caltos "surveille" simplement quelques touches à la fois (des groupes étant définis, voir fichiers d'include). Elle est plus rapide. Je ne l'ai jamais utilisée, donc je ne saurais te dire exactement comment ça marche, mais va voir dans asmguru, il en parle (il doit probablement en parler aussi dans asmin28days).
pacHa Le 08/11/2005 à 17:32 Oui, tu peux directement "lire" le clavier via son port avec des in et out. Ca doit être dans tout tuto digne de ce nom