Posté le 06/11/2005 à 15:41 Membre depuis le 08/11/2004, 9 messages
Suite au message precedant je repose ma question (1an apres lol)
J'ai oublié de donner mon addresse a mcbeach donc... mourn
Quelqu'un peut il me repondre ??
Merci

Ancien message
----------------------------------------
Salut a tous !
Je voulais vous poser une question:
comment fait t'on pour interagir avec l'utilisateur en Asm ?
En basic c'est Prompt ou Input.
merci pour vos reponses
++
---------------------------------------
Posté le 06/11/2005 à 19:15 Membre depuis le 10/10/2004, 541 messages
le seul moyen est de créer ta propre routine (je pense)
Posté le 06/11/2005 à 19:38 Membre depuis le 10/03/2003, 641 messages
regarde dans les tutos ce qui concerne le direct input et les ROM CALLs genre getkey
Posté le 06/11/2005 à 21:27 Membre depuis le 19/12/2002, 480 messages
ou getcsc
Posté le 07/11/2005 à 17:39 Membre depuis le 08/11/2004, 9 messages
gLre=>Comment creer cette routine ?
pacHa et joe14=>Dans quels tuto et je vois pas a quoi me sert getkey...
thx pour vos reponses smile
Posté le 08/11/2005 à 12:57 Membre depuis le 19/12/2002, 480 messages
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).
Posté le 08/11/2005 à 17:32 Membre depuis le 10/03/2003, 641 messages
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
Posté le 08/11/2005 à 18:57 Membre depuis le 08/11/2004, 9 messages
oki merci beaucoup pour vos reponses je vais etudiez ça top
Bonne soirée
@+++
Posté le 08/11/2005 à 19:38 Membre depuis le 19/12/2002, 480 messages
"je vais etudiez ça"

Ca fait plaisir de voir qu'il y a encore des motivés par l'asm Z80 smile