MSX Village forum

La Place des Développeurs [Réglé] ON KEY GOSUB = boguée ?

GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 08/02/2014 à 12h07
C'est fou ce qu'on peut découvrir lors d'une journée de mauvais temps.

Voici un petit programme qui me semble ne pas tourner rond :

Code TEXT :
10 ON KEY GOSUB 30: KEY(1)ON
20 GOTO 20
30 KEY(1)STOP:BEEP
40 IF NOTSTRIG(0) THEN 40
50 RETURN


Une fois ce programme lancé, si l'on presse la touche F1, un "bip" sonore se produira. On peut presser F1 a nouveau, le "bip" ne se reproduira pas. C'est normal, vous allez me dire.
Ok. Maintenant, pressez SPACE... Oh le "bip" se produit à nouveau ! :heink

Quelqu'un a-t-il une explication différente que le bug ? Edité par GDX Le 09/02/2014 à 10h49
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 08/02/2014 à 12h41
Si tu fais un TRON et que tu lance le programme tu t'aperçois que après le RETURN, le programme ne remonte pas EN 10. Donc le KEY on n'est pas réinitialisé.

Sinon, si tu enlèvre le KEY(1)STOP, ça marche comme il faut...


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 08/02/2014 à 12h57
:s


banniere-ericb59e
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 08/02/2014 à 13h07
En fait, ce n'est pas vraiment ça mais le mystère est quand même résolu !

KEY(1)STOP s'utilise après un KEY(1)ON. Il sert à maintenir le test de F1 mais bloque l'appel à la routine, si la touche est pressée, jusqu'au prochain KEY(1)ON.

RETURN remet le pointeur de l'interpréteur juste après le GOSUB 30 et execute bien le KEY(1)ON. Ce qui rappelle la routine une fois.

Donc tout est normal. :tchin Edité par GDX Le 08/02/2014 à 13h25
   
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5886

Le 08/02/2014 à 22h03
Mode Mstradien On:
Et la cacahuete elle tombe quand ? :D
Enfin je dis ca parceque MOI j'ai rien compris sur le but de ce programme, mais je dois certainement etre le seul, rassurez moi, hein ^^
Parseque le singe qui appuis sur le bouton, lui il ne vat pas comprendre :p

Mode Mstradien Off

En résumé que vien faire la touche space dans cette affaire ?^^

Edit : ah si j'ai enfin compris :oups, je me savais pas aussi rapide :lol:lol:lol Edité par TurboSEB Le 08/02/2014 à 22h22



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie