[Thomson] conversion programme basic TO -> MO

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

tjjq44
Messages : 220
Inscription : 26 oct. 2016 13:40

[Thomson] conversion programme basic TO -> MO

Message par tjjq44 »

J'avais écrit il y a un moment un petit programme basic sur mon TO7/70 pour entraîner mon fils aux tables de multiplication. Récemment Brochiman a voulu le lancer sur son MO5 et forcément il y a eu une incompatibilité...

Après avoir jeté un oeil ici ça confirme que c'est bien l'instruction "INPUTWAIT" (ligne 120) qui en est la cause. Faire une boucle avec "INKEY$" pourquoi pas mais j'ai déjà pour commencer fait une boucle avec rien dedans et le MO5 l'execute 2 fois plus lentement que le TO7/70... Au moins avec "INPUTWAIT" le temps était clairement défini! Bref je ne sais pas si je dois persévérer dans cette voie car il faudrait faire deux programmes, un pour le TO7/70 et un pour le MO5 du coup (sans compter les basic 128 et 512 qui ont peut-être des vitesses d'exécution encore différentes) :(

Voici le listing du programme d'origine :

Code : Tout sélectionner

5 SCREEN 6,0,0
10 CLS
20 PRINT "TABLES DE MULTIPLICATION"
24 PRINT" "
25 PRINT" "
30 INPUT "NOMBRE DE QUESTIONS";N
35 PRINT" "
40 INPUT "DELAI DE REPONSE (SECONDES)";D
45 PRINT" "
50 INPUT "MUSIQUE (O/N)";M$
65 S=0
70 FOR Q=1 TO N
75 CLS
80 A=INT(RND*4)+6
90 B=INT(RND*6)+3
100 PRINT "MULTIPLIE   PAR"
101 COLOR 3
102 LOCATE 9,0
103 PRINT A
104 LOCATE 15,0
105 PRINT B
106 COLOR 6
110 PRINT " "
120 INPUTWAIT 200;D,"REPONSE";R
130 PRINT" "
140 COLOR 2
141 IF R=A*B THEN PRINT "EXACT"
142 IF R=A*B AND M$="O" THEN GOSUB 280
145 IF R=A*B THEN S=S+1
146 COLOR 1
147 IF R<>A*B THEN PRINT "FAUX"
149 IF R<>A*B THEN GOSUB 300
151 IF R<>A*B AND M$="O" THEN GOSUB 260
152 IF M$="O" THEN GOTO 156
153 FOR E=1 TO 1000
154 NEXT E
156 COLOR 6
160 NEXT Q
169 LOCATE 0,8
170 PRINT "SCORE:"
171 COLOR 5
172 IF S<10 THEN LOCATE 7,8 ELSE LOCATE 
6,8
173 PRINT S;"/";N
176 COLOR 6
179 PRINT" "
180 END
200 COLOR 1
205 PRINT " "
206 PRINT" "
210 PRINT "TROP LENT"
212 GOSUB 300
215 IF M$="O" THEN GOSUB 260
220 GOTO 152
260 PLAY "O4L24DOMISOO5DOPO4DOPREPO3L36M
IMIMI"
270 RETURN
280 PLAY "O4L24DOMISOO5DOPO4MIPFAPSOPLAP
SIPO5DOPREPMIPO4SO"
290 RETURN
300 COLOR 6
305 PRINT" "
310 PRINT "LA REPONSE ETAIT:"
315 COLOR 2
320 LOCATE 16,6
330 PRINT A*B
340 RETURN
Et la petite boucle de test qui remplace la ligne 120 :

Code : Tout sélectionner

113 FOR Z=1 TO D*420
127 NEXT Z
129 GOTO 200
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] conversion programme basic TO -> MO

Message par __sam__ »

Si tu veux une attente d’une certaine durée indépendante de la vitesse du basic, joue un silence de la durée d’une blanche, d’une noire et autres subdivisions. La durée des notes est standardisée.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
tjjq44
Messages : 220
Inscription : 26 oct. 2016 13:40

Re: [Thomson] conversion programme basic TO -> MO

Message par tjjq44 »

Excellente idée, faut que je creuse ça quand j'aurais un moment :wink:
Répondre