main.c #define USE_TI89 // Compile for TI-89 #define USE_TI92PLUS // Compile for TI-92 Plus #define USE_V200 // Compile for V200 #define SAVE_SCREEN // Save/Restore LCD Contents #include <tigcclib.h> // Include All Header Files #include "utils.h" // Main Function void _main(void) { clrscr(); printf("1 + 2 = %d",calc(1,2)); ngetchx(); } utils.h int calc(register int a asm("d0"),register int b asm("d1")); utils.c #include "utils.h" int calc(register int a asm("d0"),register int b asm("d1")) { // a += b; asm("add.w %d0,%d1") return a; }
Au debut avec "a +=b" il m'affichait correctement la valeur, cad 3, jusque la tt va bien
Apres donc g mis le code asm a la place et qui logiquement fait exactement la meme chose, pourtant se con maintenant m'affiche "1+2 = 5" !!
Soit je sais plus compter, soit je pige plus rien, j'ai donc l'impression que l'ide (ou ti-gcc) se démerede tres mal avec le "versionning" des fichiers et ne recompile pas forcement se qui devrait etre recompilé, j'ai meme l'impression que l'IDE ne recompile pas si une source a été modifié et qu' l''on fait "Run" ni qu'il sauve automatiquement tt les fichiers ouvert quand on lance une compilation (je suis pas sur g pas fait de test pour sa, c l'impression que sa me donne)
Aussi un autre teste que g fait :
g ecrit utils.c comme sa :
#include "utils.h" asm(" calc: add.w %d0,%d1 [...] rts ")
Et apres TI-GCC me répond :
"1 undefined reference to 'calc'"
Le seul moyen que g trouvé est de mettre le "asm("...")" direcement dans le .h !!
Quelle horreur ! du code dans un .h ! J'avais encore été obligé de faire ça...
(d'ailleur je veux pas dire, mais je viens de voir a l'instant les sources d'un jeu que je nommerait pas, et l'auteur a osé mettre du code dans un .h, j'avais encore jamais vu qq chose d'aussi "sale"...)
les .h comme leur nom l'indique c des "header" soit en francais des en tete, qui ne servent qu'a faire des déclarations, pas à y mettre du code, sinon on va se retrouver avec 15 fois le meme code, si on inclu 15 fois le .h ...)
Enfin bon voila, ct ma geulante du jour