Forum

Catégorie : Support
Forum : TI-82 STATS.fr
Vues : 1492
Réponses : 23
Type : discussion
Etat : réponses autorisées

Erreur syntaxe qui ne devrait pas (prgm PROTECT)

capmalo le 22/10/2012 à 18:30
Bonjour,
Ayant fait quelques programmes, j'ai décidé de les verrouiller avec le programme PROTECT (qui est sur ce site). j'ai soigneusement recopié le code mais ma calto me trouve une Erreur Syntaxe cry.gif à la ligne:

:Envoi(9prgmZPROT

Elle positionne le curseur sur le "T", ZPROT étant le nom d'un prog, je ne comprend pas où est l’erreur. J'ajoute aussi qu'elle m'a déjà fait cette erreur avec cette ligne ("Envoi(9prgmXXX") avec d'autres prog.

Merci d'éclairer ma lanterne happy.gif
Sangohan38 le 22/10/2012 à 22:09
Si elle envoie une erreur sur le T de ZPROT c'est que ce programme à un soucis. Tu as bien créer un programme nommé ZPROT avec le bon contenu?

Sangohan38
capmalo le 23/10/2012 à 11:27
J'ai correctement recopié le code ci-dessous (ZPROT), la calto me met une erreur sur le "End" avant les zéros:
CD8E42
3E72
323A80
CD2A44
DA
7B
46
E61F
FE04
C26C46
213980
3605
23
1A
4F
0600
13
13
EB
EDB0
CD2A44
DA7B46
3606
C9
End
0000
End

le lien du post:https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=3337

Merci
Cytropus le 23/10/2012 à 16:19
Tu l'as recopié depuis un ordi ?
les prog en ASM ne marche pas si on les recopie à la main dans la calculatrice happy.gif
blg_flg le 23/10/2012 à 18:04
Citation
les prog en ASM ne marche pas si on les recopie à la main dans la calculatrice


Heeeeeeeeeeeeeeiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin??????

Qu'est-ce qui faut pas entendre!!!! crazy.gif


Je pense que l'erreur se situe dans le fait que tu as laissé les retours à la ligne, qui ne servent qu'à faciliter le recopiage. Normalement, ça doit faire ça:
Code
:CD8E423E72323A80CD2A44DA7B46E61FFE04C26C46213980605231A4F06001313EBEDB0CD2A44DA7B463606C9
:End
:0000
:End


Je suis pas sûr à 100% hein... winkle.gif Si c'est pas ça, c'est une faute de recopiage.
linkakro le 23/10/2012 à 19:43
En effet les programmes hexadécimaux peuvent être recopiés.

Non, les retours à la ligne ne posent aucun problème à l'intérieur du code hexadécimal tant qu'il y a un nombre pair de caractères par ligne.
C'est même conseillé de revenir souvent à la ligne pour faciliter la relecture.
En revanche il ne doit y avoir aucune ligne vierge avant le code ni après la fin du code. (dès le premier End)
(je ne sais pas si des lignes vierges posent problème à l'intérieur du code hexadécimal)
capmalo le 23/10/2012 à 21:03
C'est à ne rien y comprendre:
le code est parfaitement recopié, sans aucune ligne vierge. Peut être que l'auteur du post a fait une erreur en recopiant le code ? Peut être que les 3 lettres du "End" bloque le prog (tu as dis un nombre pair de caractères), le premier "End" ne sert peut être à rien ?

Merci de vos réponses godgrace.gif
blg_flg le 23/10/2012 à 21:22
Euh... Attend un peu! Pour faire "End", tu fais bien [prgm]+[7]?

Si oui, relis attentivement le programme. Je l'ai recopié 2 fois et ça marchait parfaitement, en suivant le code posté. Par contre une fois, j'ai mis un 5 à la place d'un 6 ou un truc dans le genre et ça marchait plus bien sûr. La moindre erreur est fatale. cupsmiley.gif
linkakro le 23/10/2012 à 21:45
Non le End est nécessaire au fonctionnement.
Code
ABCD // exemple de code hexadécimal sur la PREMIERE ligne du programme
1234 // par exemple une seconde ligne de code
End  // saisi avec prgm+7 ; sur la ligne qui suit immédiatement le code
0000 // sur la ligne suivant immédiatement le End
End  // sur la ligne suivant immédiatement le 0000 ; DERNIERE ligne
capmalo le 24/10/2012 à 14:02
Oui j'ai fait le "End" avec [prgm]+[7], j'ai vérifié 4 fois le code, tout est bon bien sûr, la calto me met bien l'erreur sur le "End" avant les zéros, c'est un bug de la calcu ou il falait mettre quelque chose avant pour lire l'ASM ?! A moins qu'il y aie une option quelque part qui n'est pas activée goutte.gif
Samos le 24/10/2012 à 14:52
Tu dois rentrer dans Ans le nom du programme à protéger et faire ça:
Envoi(9prgmZPROT
capmalo le 24/10/2012 à 18:09
Excuse moi mais c'est quoi "Ans" ? godgrace.gif
linkakro le 24/10/2012 à 19:23
Ans=Answer=Réponse=Rép
Pour utiliser correctement le programme, il faut stoker le nom du programme dans Rép/Ans puis executer ZProt/ZunProt.
Le programme Protect disponible dans ce forum permet de saisir le nom avec Input puis de gérer automatiquement la suite.
blg_flg le 24/10/2012 à 19:32
Le programme protect se charge tout seul de mettre le nom dans Chaîne1. C'est pour ça que je comprenais pas le problème. crazy.gif
linkakro le 24/10/2012 à 21:07
Mais il faut mettre la chaine1 dans Rép pour que les programmes assembleur Zprot et ZunProt fonctionnent. (du moins la version ti83)

Moi je n'avais pas pensé qu'il ne s'en servait pas forcément comme il faut.
capmalo le 24/10/2012 à 23:06
Merci j'y vois beaucoup plus clair grâce à vous. Comme je ne l'ai jamais fait, comment mettre "chaîne 1" dans "Rép" ? J'ai essayé en faisant Répchaîne1 mais ça ne marche pas.

Encore merci pour votre aide happy.gif
linkakro le 24/10/2012 à 23:49
Code
 ///////// version écran principal
:"NOMPROG  // cela stocke la chaîne "NOMPROG" dans Rép
:Envoi(9prgmZPROT
Code
 ///////// version programme
:Input "prgm",Chaîne1  // saisir le nom quand la calculatrice affiche "prgm"
:Chaîne1  // cela stocke dans Rép le nom saisi dans Chaîne1
:Envoi(9prgmZPROT
capmalo le 25/10/2012 à 18:52
Nonnn ça maaarche pas cry.gif encore cette erreur syntaxe de ZPROT sur le "End", c'est peut être un bug de la calcu qui n'arrive pas à finir le programme ? Je comprend pas en quoi le "End" peut faire une erreur surtout que ça a marché sur la calcu de Le Grec. frozen.gif Y a t'il un prog debug pour avoir quelque chose de plus précis que "Erreur Syntaxe" sur "End" car ça ne m'avance pas beaucoup.

En tout cas merci pour l'aide happy.gif
m@thieu41 le 25/10/2012 à 20:01
Sur le End?
Celui du prgm Asm!? crazy.gif
Normalement, la calto n'est pas censée ouvrir le prgm Asm... Tu l'a bien lancé avec Send(9prgmxxxx ?
linkakro le 25/10/2012 à 21:28
Vérifie qu'il n'y ait pas simplement un espace dissimulé autour.
capmalo le 25/10/2012 à 21:42
Oui je l'ai bien lancé avec "Envoi(9prgmZPROT" et il me met: "ERR: SYNTAXE", quand je fais "voir" le curseur est sur le "T" de "ZPROT", pour le "End" j'ai lancé le prog normalement pour voir et Erreur Syntaxe sur le premier "End", de toute façon le programme à été recopié sans erreur donc je ne voit pas d'où vient cette erreur
matrefeytontias le 26/10/2012 à 09:26
T'as bien pris Envoi( dans le catalogue, et pas écrit à la main ?

T'as bien une 82 stats et pas une 83+ ? tongue.gif
linkakro le 26/10/2012 à 15:49
Si tu executes le programme sans Send(9prgm c'est normal que la TI plante sur le End.

J'ai testé divers mélanges de syntaxes et de programmes et de calculatrice entre 83/83plus et le seul résultat concluant est celui-ci :
La variable Rép sur ti83 est invalide.
C'est le seul cas (que j'ai trouvé) qui provoque une erreur syntaxe sur la lettre T de ZPROT.

Revoir l'initialisation de Rép/Ans...
Samos le 26/10/2012 à 19:36
J'ai ma petite idée.
Tu as bien copié le code hexa dans un programme nommé ZPROT et non dans PROTECT?