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