onur (./12) :
Je pense qu'il y en a quelques uns qui seraient interessés d'adapter un compilo qui peut cracher du code pour à la fois 68k et Nspire.
Bah, tant qu'on ne peut rien faire tourner sur la Nspire, ça reste obligatoirement du vapor. Et rien ne dit qu'il sera un jour possible de faire tourner des programmes dessus, il y a beaucoup de protections.
Au passage, ca explique aussi mon interdiction d'appeler les rom_call des tios sur 68k directement.
Mais il faut voir à quel prix. Bien sûr, un programme qui utilise les ROM_CALLs 68k directement ne sera pas portable (sauf si le ROM_CALL en question est émulé dans le runtime* pour les autres machines). Mais l'alternative est qu'on n'a accès qu'à un nombre très limité de fonctionnalités (celles proposées par ton runtime* portable), ce qui limite beaucoup l'utilité du langage. Personnellement, je retiens la compilation conditionnelle (
#ifdef), avec en plus un moyen d'accès aux fonctions natives par plateforme, comme une meilleure solution, ça permettrait aussi d'implémenter un runtime portable dans le langage-même.
Un autre problème est que tes fonctions ne sont pas vraiment portables. Ce n'est pas le fait de renommer
DrawStr en
Locate qui va changer le fait que ta fonction a exactement le prototype de
DrawStr et prend les mêmes valeurs numériques, valeurs qui en plus sont codées en dur (pas de constantes de type
A_NORMAL, à moins que tu ne les aies rajoutées pendant la réécriture).
* Quand je parle de runtime, ça comprend aussi une lib statique de type
tigcc.a et même des fonctions copiées-collées directement par le compilateur dans le code généré, ce n'est qu'un détail d'implémentation.