![]() |
Bienvenue ! - Articles : Article -
|
News | Archives | FAQ | Communauté | Projets |
News Non Officielles | Le site | TiWiki | Liens |
Bienvenue sur Ti-Fr v3!
News
Officieuses
BTS en bâtiment...
Message personnel... Romain Liévin quitte la communauté TI - la suite TIGCC v0.95 moins pratique que GTC v0.90 ? sortie de ppglib Et 100000, ça fait un joli nombre, non ? Problème d'accès MERCI !
Anciennes news
Heartbleed
Avec un peu de retard InfinitEye, un projet de casque de réalité virtuelle De retour... Questions posées en messages privés. Bonne année ! Messages... Du nouveau sur Punix
Plus...
Articles
Programmation Tutorial : Programmation C [OLD] (205834) Tutorial : Programmation C [NEW] (120379) Tutorial sur Vertel3 (62223) Hardware
Dernières archives
Assembleur & C
Basic
nSpire & nSpire CAS
Production Clickpad Nspire infor (15/09/2012)
imgmanip pour Nspire (3/04/2012) imgdump Clickpad - Touchpad - CX (4/03/2012)
Meilleurs DL
La plus consultée
Plus...
Infos
|
Article TI [Programmation] Articles sur la programmation des TI68k Tutorial : Programmation avec AS & CCComment programmer en assembleur et en C avec ces deux outils.Le C et l'assembleur On-Calc (c'est à dire directement sur la calculatrice, sans le concours d'un ordinateur) présentés par GoldenCrystal. Utilisation de cc et as Ceci suppose que vous ayez déjà une bonne connaissance du langage C et/ou de l'assembleur 68000 et n'a en aucun cas pour but de vous les apprendre 1 - cc et as cc et as sont deux outils qui permettent de programmer en c et
assembleur sur votre TI. Vous les trouverez sur le site de leur créateur
: http://darkclem.free.fr/ Ce compilateur est assez spécial, étant donné qu'il
n'utilise pas la syntaxe habituelle du C, mais la syntaxe K&R, comme
cela est expliqué dans le fichier readme.txt fourni avec cc. type_retour nom_fonction(type_1 argument_1, type_2 argument_2, ...) vous les déclarez ainsi: type_retour nom_fonction(argument_1, argument_2) type_1 argument_1; type_2 argument_2; ... Maintenant, créons notre premier programme en C: #include "ams_c" // Fichier où se trouvent les nom des ROM_CALLs et leur index // Fonction principale void main() { char screen[3840]; memcpy(screen, 0x4C00L, 3840L); // Sauvegarde l'écran ClrScr(); // Efface l'écran FontSetSys(1); // F_6x8 DrawStr(0, 0, "Hello World !", 1); // Affiche "Hello World !" à l'écran ngetchx(); memcpy(0x4C00L, screen, 3840L); // Restaure l'écran } Maintenant, il reste à créer le fichier ams_c avec les ROM_CALLs utilisés, sans lequel le programme ne se compilera pas nolist old_ams _ngetchx = -81 _ClrScr = -414 _DrawStr = -425 _FontSetSys = -399 _memcpy = -618 list L'étape suivante est la compilation. Tout d'abord, le code à compiler doît se trouver dans le fichier csrc. Si vous voulez avoir plusieurs programmes, je vous conseille de les créer dans des fichiers différents et de les copier dans csrc seulement pour la compilation. Cela peut se faire simplement en TI-Basic. Une fois que le code est dans csrc, éxécutez cc: cc() S'il y a des erreurs, regardez dans le fichier c_errors pour en connaître
l'origine. as("asmsrc","hello") Maintenant, vous pouvez en principe éxécuter le programme hello afin de le tester. Maintenant, que vous avez tout compris, vous pouvez commencer à
programmer avec cc, mais une fois que vous aurez exploré les capacités
restreintes du compileur, vous aurez peut-être envie d'ajouter de
l'assembleur dans votre code. #asm rol.l (variable_globale) #endasm cc ne connaît pas les paramètres des ROM_CALL,
donc si le type d'un paramètre n'est pas explicite, vous devrez le
spécifier vous-même afin d'éviter les erreurs. Par exemple,
0x4C00 est un short et 0x4C00L est un long. Vous pouvez
aussi utiliser quelque chose de la forme (unsigned long)0x4C00 ou
(void *)0x4C00, sachant qu'un long est équivalent à
un pointeur.
L'assembleur as vous permet d'assembler du code pour le Microprocesseur
Motorola 68000. Vous ne pouvez évidemment pas l'utiliser si vous
ne connaissez pas l'assembleur du 68000. Le codage avec as est simple, mais
il y a certaines règles élémentaires à respecter
pour pouvoir compiler sans erreur. include "ams" _main: link a6,#-3840 movem.l d3-d7/a2-a5,-(a7) movea.l a7,a5 move.l 0xc8,a4 move.l #3840,-(a7) move.l #0x4c00,-(a7) movea.l a5,-(a7) move.l 4*memcpy(a4),a3 jsr (a3) movea.l a5,4(a7) move.l #0x4c00,(a7) jsr (a3) adda.l #12,a7 movem.l (a7)+,a2-a5/d3-d7 unlk a6 rts Bien sûr, ce programme ne fait rien à par sauvegarder l'écran et le restaurer, mais ce n'est qu'un exemple. Pour compiler avec as, vous n'avez qu'à faire: as("nom_fichier_assembleur","nom_programme") Si il y a des erreurs, vous les trouverez dans le fichier as_error. Comme vous vous en êtes sûrement rendu compte, le code des programmes doit se trouver dans des fichiers texte. Vous pouvez donc utiliser l'éditeur de texte intégré à l'AMS pour cela: Mais si utiliser l'éditeur de texte vous rebute, vous pouvez toujours utiliser side qui se trouve sur le même site que cc et as. Vous trouverez le "mode d'emploi" de side dans le fichier readme.txt fourni avec. Maintenant, je pense que vous savez tout ce qu'il faut pour utiliser cc et as. Bonne chance pour vos futurs programmes. GoldenCrystal(2004-05-06 19:15:00) En cas de problème avec un article veuillez contacter DIRECTEMENT l'auteur. Merci. |
- Ti FR v3 - Ce site n'est pas le site officiel de texas instruments. En cas de problèmes techniques sur le site veuillez contacter l'administrateur. Merci de vos visites ! |