Frustré de ne pas avoir accès aux quelques caractéristiques POSIX de PedroM, je me suis mis à coder une sorte de couche d'abstraction pour les programmes classiques tournant sur AMS.
getchar, getc, gets auront un comportement plus confortable pour l'utilisateur (simulation d'une saisie classique sur PC avec curseur déplaçable).
=> à terminer
main est défini et devient la fonction mère du programme. Le programmeur commence donc son programme par
int main (int argc, char *argv[]) conformément à la norme.
Les paramètres que le programmeur récupère dans le
main sont ceux que l'utilisateur a passé dans la commande de l'écran HOME. Ils sont adaptés pour coller au comportement standard d'un OS POSIX : chaque espace dans la ligne de commande indique un nouveau paramètre, sauf s'il est précédé d'un
[b][/b]. Les paramètres peuvent être passés exactement comme sur PC ( ex :
programme("-f -R dossier 325") ) ou selon la convention d'AMS, ou les deux ( ex :
programme("-f", "-R", "dossier", 325) ).
La valeur de retour du
main est bien un entier et est affichée comme résultat dans l'écran Home. Les codes d'erreurs sont ceux de POSIX.
=> terminé
exit est modifiée en conséquence, pour ne plus afficher de message mais pour retourner le code d'erreur au Home.
=> terminé
Divers : l'écran est mis au propre avant l'exécution du programme et est restauré à la sortie. Cela évite au programmeur de faire ces manips qui n'ont pas de sens sur PC.
=>terminé
Ces points permettront aux débutants de programmer sur TI comme s'ils étaient sur PC. J'aimerais bien faire quelque chose de propre : est-ce que quelqu'un sait comment faire un header précompilé pour GTC ? Sinon il suffit d'inclure le
.h (marche aussi bien avec TIGCC qu'avec GTC, mais bon c'est cracra).
]);
}
while (!kbhit());
return 0;
}
Exemple de programme utilisant ma petite couche d'abstraction :#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
printf("Le programme a %d arguments :\n", argc-1);
for (i=1 ; i<argc ; i++) {
printf("%s\n", argv[i