Site

. Les News
. Le Forum
. L'équipe et les projets
. Les Tutoriaux
. IRC
. La boite à outils
. Les routines et algos indispensables
. Les liens


Les News de TI-FR



 

 



LA COMPILATION

La compilation, bon nombre de personnes se pose la question: coment faire? c'est ce que nous verrons ici: quoi utiliser et surtout comment l'utiliser et avec quoi l'utiliser.
 

I) Le compilateur

     Que l'on utilise DoorsOS ou Plusshell, on utilisera le meme compilateur, à savoir, A68K (suivi de makeprgm).
Cet outils traduit touts les données d'un fichier source en langage machine (du binaire) directement executable par la machine à laquelle le programme est destiné. On ne va pas s'attarder sur son fonctionnement, car ce n'est pas mon but; par nous allons créer un raccourci pour les execiuter plus vite:
     Créons donc un fichier que nous allons appeler compil.bat par exemple.
     On edite le fichier et l'on y place les commandes suivantes

   xxxxxxxxxx\a68k abc.asm -g -t -izzzzzzzzzzz\include
   xxxxxxxxxx\makeprgm abc
     Ou xxxxxxxxxxxx represente le repertoire ou l'on a installé a68k.
           yyyyyyyyyyyy celui ou l'on a mis makeprgm
     et  zzzzzzzzzzzzzzzz celui ou l'on a placé le repertoire include

Un petit exemple:
     Vous installer plusshell dans c:\plusshell, vous devrez rentrer les commande 
   c:\plusshell\a68k\a68k abc.asm -g -t -ic:\plusshell\include
   c:\plusshell\makeprgm abc

Voila! pour compiler le programme contenu abc.asm il suffit de double-cliquer sur le compil.bat.
     Pour le style, on peu rajouter à la fin del abc.o > nul, pour effacer le fichier objet (qui ne sert plus à rien maintenant.) et au debut @ECHO OFF, qui evite l'affichage des commandes à l'écran: il ne reste que les messages des deux programmes: plus facile à trier.
 

II) L'éditeur

    Pour écrire vos fichiers sources il existes plein de programmes. Je vous conseille soit Notepad ,simple mais efficace ou beaucoup plus élaboré Ultraedit (disponible à www.ultraedit.com) qui permet de colorer certain mot (les instructions par exemple ou les chaines de caractère) à l'aide d'un script (à placer dans le repertoire principal et à activer dans avancé puis configuration onglet coloration syntaxique entrer le chemin du fichier dans la fenetre du bas.), celui-ci est tout simplement genial et permet une clarté exellente!
 

III) Le fichier source
 

;----------------------------------------------------------------------------------
;          Un programme de test                                                          Ceci est l'en-tête 
;                  par Zewoo                                                                     du fichier source
; http://www.ifrance.com/microsheep/                                              mettez-y les infos du programme
;    le 01/01/2000 (oui, mon ordi fonctionne :)                                   pour vous en rappeler ou pour le distribuer
;----------------------------------------------------------------------------------

     include     <bibliothèque.h>                                                           ;inclure toutes les bibliothèques utilisées au cours du programme

     xdef     _main                                                                               ;definir un point de depart pour le programme
     xdef     _comment                                                                        ;definir un commentaire (visible si les shells sont prevu pour) pour le programme
     xdef     _ti89                                                                                 ;créer un .89z
     xdef     _ti92plus                                                                           ;créer un .9xz
     xdef     nostub                                                                              ;uniquement si l'on a un programme ne nécessitant ni biliothèque ni kernel (kernel(plusshell) ou doorsos)

_main                                                                                                ;label de debut de programme
 ;ici on met
 ;le code du progamme
 ;les instructions étant toujours espacées du bord
 ;on peut aussi avoir par exemple:
 include teste2.asm                                                                            ;cela insère un autre fichier: pratique si le fichier est trop gros on en fait plusieurs petits.

 rts                                                                                                    ;instruction de fin de programme

longword      dc.l      0                                                                       ;ici on place les variables
lword            dc.w    0                                                                       ;avec leur valeurs de départ
 ;on peut ausi avoir:
 incbin test.bin                                                                                  ;on insère de cette façon des gros sprites ou des images (autre exemple: " img: incbin image.bin" sans les guillemets evidemment)

 BSS                                                                                                 ;les variables placées après cette commande ne sont pas
byte              dc.b    0                                                                      ;initialisées lorsque l'on démarre le programme

_comment     "programme test",0                                                   ;attention aux guillemets et à bien mettre le ,0 : cela indique la fin de la chaine

  end
                                                                                                        ; laissez une ligne blanche à la fin du programme (il y a parfois des erreurs de compilation sans cette ligne, je ne sais pas pourquoi. )

   De façon plus claire le programme minimum faisable est:

     xdef     _main
     xdef     _ti89

_main
     rts

  end                                                                                                 ;label de fin de programme
 

 Mais à mon avis cela ne sert pas à grand chose :o)

Maintenant que vous avez compris cela on va voir rapidement comment faire une bibliothèque

;----------------------------------------------------------------------------------
;        Une bibliothèque de test                                                          Ceci est l'en-tête 
;                  par Zewoo                                                                     du fichier source
; http://www.ifrance.com/microsheep/                                              mettez-y les infos de la bibliothèque
;    le 01/01/2000 (oui, mon ordi fonctionne encore:)                        pour vous en rappeler ou pour la distribuer
;----------------------------------------------------------------------------------

     include     <bibliothèque.h>                                                           ;inclure toutes les bibliothèques utilisées

     xdef     _library                                                                             ;definir un point de depart pour le programme
     xdef     _ti89                                                                                 ;créer un .89z
     xdef     _ti92plus                                                                           ;créer un .9xz
     xdef     _testlib@0000                                                                   ;definir les fonctions de la librairies
     xdef     _testlib@0001                                                                   ; en mettre autant que necessaire (9999 si il le faut vraiment :)
 

_testlib@0000                                                                                    ;label de debut de fonction
 ;ici on met
 ;le code du progamme
 ;les instructions étant toujours espacées du bord
     rts

_testlib@0000                                                                                    ;label de debut de fonction
 ;ici on met
 ;le code du progamme
 ;les instructions étant toujours espacées du bord
     rts                                                                                                 ;instruction de fin de programme
 

longword      dc.l      0                                                                        ;ici on place les variables avec leur
lword            dc.w    0                                                                        ;valeurs de départ ces valeurs sont
byte              dc.b    0                                                                        ;initialisées à chaque appel de la bibliothèque
 

  end                                                                                                  ;label de fin de bibliothèque

   Et hop le minimum:

     xdef     _library
     xdef     _ti89
     xdef     _testlib@0000

_testlib@0000:
     rts
   end

  Mais cela ne sert pas plus que tout à l'heure. :)

     Voilà avec ça vous devez etre capable de compiler n'importe quoi (dans la limite du raisonnable tout de même :o) 




©Tous les programmes presents sur ce site sont soumis à l'autorisation de leur programmeurs respectifs pour toutes modifications. La mise en page a necessité un certain travail, il serait donc plus correct de ne pas la plagier.