Espace TI: Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

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

2 participants

Aller en bas

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

Message par sandro 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(.
sandro
sandro
Or 4
Or 4

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

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

Message par mdr1 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
mdr1
Or 1
Or 1

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

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

Message par sandro Lun 16 Avr - 19:13

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

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

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

Message par mdr1 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
mdr1
Or 1
Or 1

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

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

Message par sandro 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
sandro
sandro
Or 4
Or 4

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

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

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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