Home   Archives    Hardware   Programmation   Challenges   Forum   Le Mag    Faq   La Communauté   L'Equipe
 
L'équipe progG de Ti-Fr

Voici les nicks de vos serviteurs ;-)

chickensaver_john
Kevin Kofler
Thibaut
janjan2
TiMad
Iceman89
fréka
Zewoo
Squale92
Verstand
ZdRUbAl
UtOpIaH

et nEUrOne ...

Une idée ?
Une idée pour améliorez cette partie? ou tout simplement vous souhaitez participer à l'élaborations des tutos.
Mailez-nous ici

Les raccourcis
 

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 que nous avons utilisés comme exemples jusqu'à présent étaient de type Nostub. Cela pour plusieurs raison, dont la principale est sans doute celle évoquée ci-dessus. 

    Les programmes nostub ont deux inconvénients majeurs : 

  • Ils prennent généralement plus d'espace mémoire que leurs équivalents de type Doors. (Quand ils atteignent une longueur non-négligeable.)
  • La deuxième limitation est due à TI : leurs calculatrices sont dans l'incapacité (normalement) de gérer des programmes en ASM de plus d'une certaine taille (8ko pour les ROM2.03, et 24ko pour les ROM2.05). L'utilisation du mode Doors peut permettre d'éliminer cet inconvénient. En effet, les kernels de dernière génération incluent un moyen de "pirater" (sans danger !) cette protection qui est, il faut le dire, regrettable !

    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.).
    Le second avantage de ce type de programmes est le fait qu'ils acceptent un "commentaire général". Pour vous donner une idée de ce que c'est, prenons l'exemple qui suit : vous avez sans aucun doute déjà programmé en TI-BASIC. Dans ce cas, vous savez peut-être que vous pouvez inclure, au début de ce type de programmes, une ligne telle "©Ceci est un commentaire". Cette phrase apparaît alors dans le CATALOG, comme aide (Pour les ROM 2.03 et plus !). Eh bien, le mode Doors vous permet de faire la même chose pour vos programmes en C, mais, cette fois, c'est dans un explorer comme Doors-Explorer, ou PCT que vous verrez le commentaire. Essayez, je suis sûr que vous avez déjà des programmes dotés de commentaires qui traînent sur votre TI.

    Les programmes de type Doors ont, eux aussi, deux inconvénients :

  • Il est nécessaire d'avoir un kernel installé sur sa calculatrice pour pouvoir faire fonctionner tout programme de ce type.
  • Il faut penser à déclarer le programme en mode Doors, pour que le compilateur crée un fichier exécutable de ce type. (voir ci-dessous.)

 

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 :
        #define USE_KERNEL

   * Pour définir le commentaire général du programme, il faut inclure la ligne de commande suivante...
         char _comment[] = "Votre commentaire";
   
...dans le  programme, par exemple après avoir déclaré pour quelle calculatrice devait être compilé le programme.

    * 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.

Retour au menu général

Chapitre IV


 


Copyright © Ti-Fr v2.0 1999-2002