Omnimaga

Calculator Community => [FR] Section Francophone => [FR] Programmation Axe Parser => Topic started by: Sandro on April 07, 2012, 03:49:13 pm

Title: Créer des programmes à noms entrés par l'utilisateur
Post by: Sandro on April 07, 2012, 03:49:13 pm
Bonjour/bonsoir,
j'ai essayé de créer  un programme en axe parseur permettant de créer un programme de nom spécifié.
Code: [Select]
.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(.
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: kindermoumoute on April 08, 2012, 04:56:16 am
"Fill(L1,0" Ce code ne sert à rien.

"{5 -> L1" je sais pas comment tu compile ça ???

"0 -> {L1+P" c'est une très mauvaise idée, il faut faire "length(P)->P" au préalable.

For(A,0,3
disp {A*2+L1}>Dec,{A*2+L1+1}>DEC,i
End


Privilégie cette écriture :
L1-1->A
For(8 )
Disp sub(A),sub(A),i
End

.Optimisation

Lbl A
{A++}>Dec
Return


Pour tes bugs, c'est parce que tu t'y prend mal. Je n'ai pas testé mais essaye :
input->P
!If getCalc(P)
Return!If GetCalc(P,20)
End
->P

Et P point la variable créée.

Après je n'ai pas compris, le token 'prgm' doit être ajouté lors de la saisie du nom du programme, est ce que c'est ce que tu cherche à faire ?
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: Sandro on April 08, 2012, 05:11:08 am
si, sauf que j'optenais un programme valide avec 05h et non avec 5Fh bizzarement (j'ai trouvé ça en observant les octés de la chaîne "prgmFILE".

Sinon, c'était 5 -> {L1 et non {5 -> L1.

Je teste avec tes modifs

Sandro

EDIT1 : oui, le 5 est sensé être le token prgm, même si c'est bizzard que ce soit pas 5F
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: kindermoumoute on April 08, 2012, 05:27:53 am
Dac, je vois. Du coup ton programme marche ou pas ?
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: Sandro on April 08, 2012, 05:33:51 am
Donc j'ai essayé en faisant ceci :
Code: [Select]
.NPRGM2
input->P
length(P -> Q
5 -> L1
Copy(P,L1+1,Q
0 -> {L1+Q
GetCalc(L1,20
Et il arrive encore que ce token s'ajoute au nom.

Sandro

PS1 : Pour le second code, il faut rajouter quoi exactement pour avoir le token prgm?
PS2 : avec 5Fh, le code compile mais ne crée pas de programme
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: kindermoumoute on April 08, 2012, 08:19:36 am
J'ai testé ça vite fais :
Code: [Select]
input->A
5->{A-1}
GetCalc(,20)
Cela a très bien marché sauf quand il a fallut quitter le programme après édition de celui ci (ram cleared). Donc il peut-être en stockant l'octet de la manière suivante :
Code: [Select]
input->A
{A-1}->T
5->{A-1}
GetCalc(,20)
T->{A-1}
A voir. ;)
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: Sandro on April 09, 2012, 03:16:10 am
Non, je continue à avoir ce token indésirable. Peut-être est-ce une icompatibilité avec TI-Boy?

merci d'avance
Sandro

PS : tu utilise quel OS et quelle version d'Axe Parser pour vérifier?
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: kindermoumoute on April 09, 2012, 04:24:31 am
Axe Parser version 1.1.2, OS 2.41, sur 84+SE émulé, mais ça marche sur ma 83+ aussi.
Title: Re: Créer des programmes à noms entrés par l'utilisateur
Post by: Sandro on April 09, 2012, 04:43:51 am
Bon, je tente donc l'os 2.41
Merci