[axe] Créer des programmes à noms entrés par l'utilisateur

Voir le sujet précédent Voir le sujet suivant Aller en bas

[axe] Créer des programmes à noms entrés par l'utilisateur

Message par sandro le Sam 7 Avr - 19:51

Bonjour/bonsoir,
j'ai essayé de créer un programme en axe parseur permettant de créer un programme de nom spécifié.
Code:
.NEWPRGM
Fill(L1,0
Disp "NOM DU PROGRAMME"
input -> P
{5 -> L1
Copy(P,L1+1,length(P))
0 -> {L1+P

.début du code pour voir le contenu de L1
For(A,0,3
disp {A*2+L1}>Dec,{A*2+L1+1}>DEC,i
End
.Fin du code pour voir le contenu de L1

GetCalc(L1,20)

J'ai donc 2 problèmes :
-le premier est pourquoi quand je met "prgmFILE" par example, le "prgm" est remplacé par 05h et non par 5Fh dans la mémoire (alors que le token "prgm" a pour code 5Fh)?
-le second bien plus dérangeant : parfois, le programme ainsi créé à un ° à la fin du nom tant que le programme est dans l'inventaire des programmes. Et quand on sélectionne le programme pour le lancer, on a à la place du ° le token augment( (14h) : ce 14h est aussi contenu dans la liste L1. Quelqu'un aurrait-il une idée d'où pourrait venir ce token suplémentaire?

Merci d'avance
Sandro

PS : je viens de comprendre au moins pourquoi l'affichage varie : dans la liste des programmes, les octés sont considérés comme des caractères ASCII donc le 14h est interprété comme étant ° alors que sur l'écran de calcul, les octés sont considérés comme des tokens, donc le 14h est interprété comme étant augment(.

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!
avatar
sandro
Or 4
Or 4

Sexe : Masculin
Age : 21
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: [axe] Créer des programmes à noms entrés par l'utilisateur

Message par mdr1 le Lun 16 Avr - 18:26

Je voudrai attirer ton attention sur cette ligne de code :

Code:
:{5 → L1

Ce code sera compris comme cela :

Code:
:{5 → L1}

Donc les accolades sont inutiles. Et en plus, je n'arrive même pas à comprendre comment tu as réussi à compiler ton code puisqu'on ne peut pas mettre une valeur dans une constante.

avatar
mdr1
Or 1
Or 1

Sexe : Masculin
Age : 27
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Re: [axe] Créer des programmes à noms entrés par l'utilisateur

Message par sandro le Lun 16 Avr - 19:13

pardon, j'avais pas corigé ici, que sur omnimaga, il s'agit en fait de 5 -> {L1

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!
avatar
sandro
Or 4
Or 4

Sexe : Masculin
Age : 21
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: [axe] Créer des programmes à noms entrés par l'utilisateur

Message par mdr1 le Jeu 19 Avr - 17:30

Ok, je crois savoir d'où vient le problème.
Si je ne me trompe pas, input renvoie l'adresse d'une suite de tokens précédée par sa taille.
Ici, la taille est 5 octets (prgm + F + I + L + E), donc la suite est précédée de l'octet $05.
Et toi, tu copies cet octet. Donc je pense qu'il faut plutôt faire :

Code:
Copy(P+1,L1+1,length(P))

Mais dans ce cas, un autre problème se pose : length ne calculerait-il pas la taille d'une suite d'octets terminée par un nul ?
avatar
mdr1
Or 1
Or 1

Sexe : Masculin
Age : 27
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Re: [axe] Créer des programmes à noms entrés par l'utilisateur

Message par sandro le Jeu 19 Avr - 19:12

lenght calcule effectivement la taille d'une suite d'octets terminée par un nul, mais le compilateur rajoute automatiquement le 00 à la fin.

Sinon, sauf erreur de ma part (si j'ai bien compris se que m'a expliqué kindermoumoute hiers), la longeur est effectivement prészente mais AVANT le pointeur (la preuve : quand tu fait "ABC" -> Str1 : Disp Str1 tu n'optient pas un caractère en plus avant le A.

Sandro

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!
avatar
sandro
Or 4
Or 4

Sexe : Masculin
Age : 21
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: [axe] Créer des programmes à noms entrés par l'utilisateur

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum