|
||
|
Chapitre III Le but de ce chapitre est de vous expliquer les différences notoires qui existent entre les programmes de type "Nostub", comme ceux que nous avons fait jusqu'à présent, et les programmes de type "Doors"
I:\ Définitions : Un programme "nostub" est un programme qui ne nécessite aucun "kernel" (noyau, en français) pour fonctionner. Cela signifie, plus clairement, que, pour utiliser ce type de programmes, il n'est pas utile d'avoir un programme tel que DoorsOS, UniversalOS, ou en TeOS installé sur sa calculatrice. Un programme de type "Doors" est exactement le contraire : il a besoin d'un kernel installé pour fonctionner. (Attention, pour des raisons de compatibilité, il est généralement bon d'avoir la dernière version du kernel si vous utilisez la dernière version de la ROM flash !). Actuellement, le meilleur est UniversalOS1.30 : c'est le seul qui soit encore mis à jour, et c'est le seul à être totalement compatible avec la ROM2.05
II:\ Avantages et inconvénients : 1:
Les programmes de type nostub sont généralement plus polyvalent
que ceux de type Doors. En effet, ils sont utilisables par tout le monde. Imaginons
par exemple que vous vouliez faire un programme qui serait inutile pour les
programmeurs en C ou en ASM, mais qui apporterait de nouvelles
fonctions aux programmateur en TI-BASIC (comme Flib, par
exemple, que vous avez peut-être déjà utilisé en TI-BASIC, et qui est
écrit en C). Dans ce cas, il sera peut-être bon de faire un programme
qui ne nécessite pas de Kernel. (Certains programmateurs en TI-BASIC
ont une peur bleue des programmes noté "ASM" dans leur menu
"VAR-LINK" et refusent totalement d'installer un Kernel, croyant sans
doute que celui-ci est à la base de nombreux plantages... Alors que, au contraire,
les Kernels ont tendance à empêcher certaines erreurs et plantages ! Les programmes nostub ont deux inconvénients majeurs :
2:
Les programmes de type Doors ont pour premier avantage de prendre,
en général, moins de mémoire que leurs équivalent de type Nostub. Ils permettent
aussi d'utiliser les librairies des kernels : à partir d'un programme utilisant
le mode Doors, il vous sera possible d'exploiter, par exemple, les capacités
de compression et de décompression de Ziplib. (Une fonction concernant ZipLib
est donnée dans la FAQ de TIGCC, mais ce n'est pas celle qui sert à compresser
et décompresser des variables de la TI. Nous verrons donc dans la FAQ de ce
tutorial comment faire.). Les programmes de type Doors ont, eux aussi, deux inconvénients :
III:\ Création : A: Programme en mode nostub : Les programmes que nous avons jusqu'à présent utilisés dans nos exemples étaient de type nostub. Comme vous avez pu le remarquer, il n'y avait aucun instruction de type declare(nostub). Cela est du au fait que cette commande n'existe pas. En effet, le compilateur de TIGCC crée par défaut des programmes de type Nostub. B: Programme en mode Doors : * Pour faire un programme en mode Doors, il faut dire au
compilateur qu'il devra créer un exécutable de ce type. Pour cela, il faut
rajouter une commande au début du programme : * Pour définir le
commentaire général du programme, il faut inclure la ligne de commande
suivante... * Enfin, les programmes de type Doors peuvent avoir un point de sortie, qui sera une fonction nommée "_exit", et qui sera exécutée après la fin du programme, d'après la doc de TIGCC. |