[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!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
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.


mdr1
Or 1
Or 1

Sexe : Masculin
Age : 26
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!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
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 ?

mdr1
Or 1
Or 1

Sexe : Masculin
Age : 26
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!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
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é Aujourd'hui à 6:51


Contenu sponsorisé


Revenir en haut Aller en bas

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

- Sujets similaires

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