Page 1 of 12

Astuces

Unread postPosted: 28 Jan 2006, 17:59
by tama
Je propose de poster ici toutes les astuces que vous connaissez pour la programmation sur TI z80 ou sur TI z80 tout court

= Pour optimiser un programme :

Exemple :

prgmTEST

code non optimisé
Code: Select all
0-A:0-B:0-C:0-D
Lbl 0
A+1-A
(A+B)x(C+D)-E
Disp E
If A1000
Then
Goto 0
Else
Goto 1
End
Lbl 1
Stop


Nombre total d'octets :
13+54=77 octets

1.Enlever les parenthèses
Code: Select all
(A+B)x(C+D)-E


devient :
Code: Select all
(A+B)x(C+D-E


Gain == 1 octet

2.Utiliser For( et End au lieu des goto (l'instruction Goto cherche le lbl correspondant et cela peut prendre du temps)

Code: Select all
Lbl 0
A+1-A
(A+B)x(C+D)-E
Disp E
If A1000
Then
Goto 0
Else
Goto 1
End


devient :
Code: Select all
For(A,1,1000
(A+B)x(C+D-E
Disp E
End


Gain == 12 octets
Gain total === 13 octets

3.Utiliser DelVar var au lieu de 0-var
Avantage : DelVar A et 0-A prennent autant de place mais on peut enchainer les DelVar (les coller)

Code: Select all
0-A:0-B:0-C:0-D


devient :
Code: Select all
DelVar BDelVar CDelVar D

(DelVar A est inutile puisque A sera utilisé pour faire une boucle)

Gain : 6 octets
Gain total : 19 octets

4.Mettre un "stop" en fin de programme ne sert à rien

Code: Select all
Lbl 1
Stop


devient :
Code: Select all
Lbl 1


Ou dans le cas actuel (suppression des labels et des goto) :
Code: Select all
...
Disp E
End
(plus rien après mais attention à ne pas oublier le End sinon la boucle ne marche plus)


Gain : 1 octet
Gain total : 20 octets

5.Utiliser vos connaissances en maths et en programmation :D:

Code: Select all
(A+B)x(C+D-E


devient

Code: Select all
(A+B)(C+D-E


ou :
Code: Select all
AC+AD+BC+BD-E


Gain : 1 octet
Gain total : 21 octets

6 (facultatif) : Installer Omnicalc ==http://www.ticalc.org/archives/files/fileinfo/226/22626.html


voilà :)

Bilan final :
+ Le programme a 21 octets de moins et la vitesse en plus correspondante :D:
- euh...

code final après optimisation :
Code: Select all
DelVar BDelVar CDelVar D
For(A,1,1000
(A+C)(B+D-E
Disp E
End

13+43 = 56 octets

N'hésitez pas à poster vos astuces !!! :D:

P.S : Attention pour les connaissances en programmation : le programme peut devenir plus complexe
Attention aussi aux gros gros programmes, il faut avoir le cerveau correspondant :;):

Re: Astuces

Unread postPosted: 28 Jan 2006, 18:19
by tama
autre astuce : pour renommer un programme sans utiliser aucun programme (ne marche que avec les TI-83 (?) et plus : il faut avoir la fonction group === [2nd]+MEM+[8])
(MEM = fonction secondaire de la touche "+")

1.Créer le programme, coder...

exemple : prgmA

2.Le grouper avec une autre variable quelconque

Procédure : [2nd]+MEM+[8]+[1]
entrer le nom du groupe
puis appuyer sur [2] et sélectionner les variables à grouper
(pour sélectionner : se mettre devant la variable à grouper et appuyer sur [enter], un carré noir devrait se trouver alors devant cette variable)
ensuite appuyer sur [](droite) et [1] (ou [enter])


3.Vérifier que l'ancien programme est désarchivé

4.Dégrouper le groupe crée
[2nd]+MEM+[8]+[]
Trouver le groupe (ex : BB) et appuyer sur [enter]

Il devrait y avoir une erreur : "Overwrite"
5.Sélectionner "1.Rename" entrer le nouveau nom et continuer


6.Supprimer :
-L'ancien programme (prgmA)
-Le groupe
-La variable utilisée dans le groupe si elle est inutile (par exemple le réel X)


-Autre méthode pour renommer
1.Créer un nouveau programme
2.Utiliser "Rcl" (fonction secondaire de la touche "Sto") puis appuyer sur [PRGM]+[] (exec) et trouver le nom de l'ancien programme
3.Appuyer sur [Enter]
4.Effacer l'ancien programme

Re: Astuces

Unread postPosted: 28 Jan 2006, 18:23
by tama
Encore une dernière astuce vite fait :

Pour rendre un programme compatible avec Mirage OS, mettre 2 ":" sur la première ligne de ce programme :

exemple :
PROGRAM:A
::ClrHome
...

Voilà mes astuces !!
N'hésitez pas à poster les vôtres !! :;):
Au fait, ce serait bien si on pouvait aussi faire ça pour les 68k. Tu peux le faire Mic ?

Re: Astuces

Unread postPosted: 29 Jan 2006, 08:23
by M@D_Doc
Un petit truc : la fonctino recall malheureusement treès peu utilisée;;;;
Elle permet de copier tout à un prgm à l'emplacement voulu dans....un autre programme....ça permet donc des trucs intéressants....
Code: Select all
[2nd]+[STO]


rajout de tama :
Par exemple dans les jeux de combat à 2 joueurs :):

Re: Astuces

Unread postPosted: 05 Feb 2006, 20:38
by tama
Une autre astuce : pour faire un self-test

[mode]+[alpha]+[S]
un écran apparait alors :
Il comporte :
-Pour les TI-82
La version de la ROM

-Pour les TI-83 et +
Le BOOT Code
Le code de la base (OS)

Et :
Enter Self-Test ?
This will clear all memory


Appuyer sur [enter] va afficher des écrans bizarres, éteindre la TI et effacer toute la mémoire (test d'écran sûrement... :s: )
Appuyer sur [on] pour quitter cet écran...euh...dangereux

Re: Astuces

Unread postPosted: 05 Feb 2006, 20:45
by tama
hihihi pour embêter quelqu'un : voici l'astuce (toute simple)

Pour occuper sa TI pour quelques minutes (seulement :D: )
taper dans l'écran principal de sa TI (ou dans un programme, ça ressemblera à un bug)
==RandM(55,50)
(RandM : dans le catalogue ou [2nd]+[Matrix]+[] (droite)+[6])

Pour effacer la mémoire (non testé)
taper dans l'écran principal (ou dans un programme (virus :D: ))
==RandBin(10^6,0)

La victime a alors 2 solutions :
--Elle enlève une pile : ok mais quand elle rallumera sa TI : MEM CLEARED !! lol (c'est pas sympa de faire ça avant un DST :#langue#: )
--Elle patiente pendant des jours...(rarement envisageable surtout si c'est dans un programme) et alors là c'est ses piles qui vont s'user
(ramène à la première solution -- MEM CLEARED)

Re: Astuces

Unread postPosted: 05 Feb 2006, 20:47
by tama
un autre truc bien marrant :
Pour les fonctions, modifier la valeur de Xres dans "Window"
Tracer tan(x) avec Xres=1 (bien ajuster la fenêtre :=): )
Maintenant tracer tan(x) avec Xres=8...
:#gni#:

Re: Astuces

Unread postPosted: 23 Feb 2006, 14:51
by Syfo
pour renommer ses programmes avec une TI 82 (pas de groupes):
creer un nouveau programme avec le nom voulu
taper RCL ( 2nd + STO)
choisir le programme a renommer et le copier integralement dans le nouveau
supprimmer l'ancien.
(à eviter quand on a plus de memoire ou quand le programme est enorme)

Re: Astuces

Unread postPosted: 23 Feb 2006, 15:41
by M@D_Doc
déjà marqué! ^^

Re: Astuces

Unread postPosted: 24 Feb 2006, 17:14
by Syfo
oups :o:
pardon...