Posté le 13/07/2008 à 21:10Edité par very le 17/07/2008 à 00:06 Membre depuis le 09/07/2003, 21783 messages
salut,

Bon je suis un noob en z80 mais j'ai fait un programme que je trouve pas mal ( zCalc ), seulement je l'ai évidemment codé comme un porc (au niveau des instructions ), ie j'ai utilisé les quelques instructions de base sans trop me poser de questions.

Maintenant que ça tourne, je pense à optimiser un peu touça (en taille): il fait déjà 2000 octets alors qu'il manque encore pas mal de truc. Donc je recherche des tutos/guides/conseils sur les pratiques courantes, si vous en conaissez, n'hésitez pas happy (j'ai évidement déjà z80instr.txt et z80_reference.txt , mais bon un peu la flemme de passer des heures à réinventer la roue )

edit:
au hasard de quelques recherches:

http://kvince83.tengun.net/maxboard/viewtopic.php?t=675
http://joewing.net/programs/z80op.shtml
http://map.tni.nl/articles/fast_loops.php
http://www.ticalc.org/archives/files/fileinfo/285/28502.html
http://www.shiar.org/ticalcs/z80optim.php

Posté le 14/07/2008 à 10:39 Membre depuis le 09/02/2005, 13736 messages
Et c'est quoi comme prog, un utilitaire pour aider les débutants ? (heu quoi que si c'est pas ça, ça doit être vexant grin)

(Edit: désolé, pas lu à coté d'abord)
Posté le 14/07/2008 à 13:35 Membre depuis le 23/08/2001, 664 messages
Quelques conseils par l'auteur de ION : http://joewing.net/programs/z80op.shtml
Posté le 14/07/2008 à 15:33 Membre depuis le 09/07/2003, 21783 messages
./3 > Merci smile

( ./2 > ben si tu considères que y'a que les débutants qui ont besoin de vérifier leur dérivées ^^ )
Posté le 15/07/2008 à 20:57 Membre depuis le 09/02/2005, 13736 messages
Toujours à coté du sujet, mais ça me vient à l'esprit: ça doit aussi pouvoir se coder en basic un prog de dérivation en fait.
Suffit de bien structurer la routine de lecture caractère par caractère de la chaine contenant la fonction, et après se démerder avec les formules de dérivation de base, faudrait que j'y réfléchisse...
Je sais pas comment est codé le tien en asm...
Posté le 15/07/2008 à 21:22 Membre depuis le 09/07/2003, 21783 messages
mastercalto (./5) :
ça doit aussi pouvoir se coder en basic un prog de dérivation en fait.

ca existe déjà, cf http://tiforge.info/zcontest/?action=view_prgm&id=13&l=fr où je l'évoque et http://www.ticalc.org/archives/files/fileinfo/349/34917.html où il se situe.

Il utilise les strings (donc pas possible sur 82), et la notation à la rpl (peu couteux en place, mais long a traiter), marche bien (bien qu'un peu long et limité (pas assez de fonctions car le gars etait en premiere S ... ) ), et est globalement très malin ( j'ai survolé les sources )


En asm, j'utilise la methode usuelle des arbres. Avantage:facile, rapide. Desavantage:demande trop de place en RAM 9pour l'instant 700 octets ont toujorus suffit sur des fonctions "normales" )


Posté le 16/07/2008 à 09:08 Membre depuis le 09/02/2005, 13736 messages
Les arbres ça consiste à dériver d'abord le niveau de "parenthèsage" le plus élevé et de descendre au fur et à mesure ?
Posté le 16/07/2008 à 17:01Edité par very le 16/07/2008 à 23:40 Membre depuis le 09/07/2003, 21783 messages
Non c'est une strutucre de donée, mais oui ca fait bien comme ca....disons que de toute facon t'es obligé de faire comme ca ( pour vouloir deriver le premier niveau, tu regarde quel est l'operateur le "plus eleve", disons +: ton expression est a+b, alors t'appelles recusrsivement ta fonction pour deriver a, deriver b, et tu renvoie a' + b'. Ca ne boucle pas car y'a des cas genre constante/X où il n'y a pas besoin de faire d'appel recursif )

Un arbre, c'est un truc avec des noeuds qui ont pour fils des noeuds ou des feuilles. Par exemple ca peut ressebler a ca:

        +
     |     |
     *     2
   |   |
   x   5


pour l'expression (5*x) + 2. ( mais ca sert a tout plein d'autres trucs que representer des expression mathematiques )
Typiquement un noeud est qqch comme (+,adresse_fils1,adresse_fils) (ou, sur les languages evolués genre fonctionel, directement le les fils a la place de leur adresse ), etc.

Mais de toute facon même en representant les donnes autrement tu va faire qqch de très semblable ( enfin, tu peux partir du bas si t'a envie et remonter, mais c'est plus complique pour pas mieux .. )

edit: pre pour visualiser l'arbre
Posté le 16/07/2008 à 23:38 Membre depuis le 09/02/2005, 13736 messages
Certes je vois, et effectivement ça semble formaliser l'expression de manière (très) efficace.