Ce cours est visible gratuitement en ligne.

J'ai tout compris !
Apprendre l'ASM Z80 pour TI

Apprendre l'ASM Z80 pour TI

Mis à jour le jeudi 10 janvier 2013
  • Facile

Matériel nécessaire

C'est bien beau de programmer, mais généralement ça ne suffit pas ; un matériel minimum est requis.
Vous connaissez peut-être la galère de rechercher ces bons fichiers sur le net ?
Eh bien comme je suis très gentil je vous éviterai cette souffrance ! ^^

Édition

De nombreuses IDE sont présentes sur le net mais personnellement, je leur préfère de loin le Bloc-notes ; lui n'a aucune prétention !
En plus, vous n'avez pas à le télécharger, et ses fonctions seront bien suffisantes pour l'usage que vous en ferez.
Vous devez donc créer un nouveau document texte à l'aide d'un clic droit et modifier son extension en .z80.
Répondez « oui » à la question idiote que vous pose votre ordinateur et créez si nécessaire une association de programme :

  1. clic droit sur votre fichier z80 ;

  2. Ouvrir avec ;

  3. Choisir le programme ;

  4. le Bloc-notes devrait déjà être présent dans la liste suivante.

Sélectionnez-le, cochez Toujours utiliser ce programme pour ouvrir ce type de fichier, et cliquez sur OK. Cela permet de lancer directement le Bloc-notes quand vous double-cliquerez sur un fichier z80.

Image utilisateur

Vous êtes maintenant prêts pour l'édition. :)

Compilation

Bon, là y a pas 36 solutions ! Le compilateur le plus connu (et le seul que je connaisse...) est sans conteste TASM, qui fonctionne avec une table de référence, un fichier nommé TASM80.TAB.
Cette application permet de transformer votre texte en un fichier binaire... inutilisable !
Heureusement il y a Findus un autre compilateur qui permet de compiler ce fichier .bin en programme directement exportable sur la calculatrice, ô joie ! :D
Ce compilateur s'appelle... DEVPAC8X.COM et comme son nom l'indique, il produit un fichier en .8XP lisible par la calculatrice ou par un émulateur.

C'est bien beau toutes ces applications, mais comment on les utilise ?

Je supposerai que vous préférez lancer une application plutôt que de créer plusieurs fichiers pour gérer ces deux compilateurs.
Et c'est pour ça qu'a été créé le fichier asm.bat qui gère le tout pour ne vous laisser que le programme en cas de réussite.

Image utilisateur

En cas d'échec (oui, ça arrive :p ), vous obtiendrez un fichier .XLT s'ouvrant avec Excel qui détaillera vos erreurs.

Et comme promis, voilà tous ces fichiers dans un package :

Télécharger le kit de développement

Pour utiliser asm.bat facilement, créez un fichier lancement.bat (appelez-le comme vous voulez, il faut juste que l'extension soit en .bat. Utilisez un fichier texte puis changez le .txt) et tapez le code suivant :

asm [nom du fichier z80 sans l'extension]

Par exemple, pour compiler le fichier « MATHS.z80 », tapez

asm MATHS

Ensuite, enregistrez votre .bat et double-cliquez dessus.

Et tant qu'on est dans les téléchargements, je vous propose les derniers (au moment où j'écris ces lignes !) OS :

Et c'est quoi au juste un OS ? Parce que Operating System, ça me parle pas vraiment...

Personne ne saurait expliquer ça mieux que ses créateurs je suppose... ^^

Citation : Texas Instruments

Le système d'exploitation (OS) de votre calculatrice fait référence au programme de configuration qui permet à votre calculatrice de fonctionner. Comme pour les ordinateurs, le système d'exploitation de votre calculatrice peut être mis à jour.

Transfert

OK, vous avez un programme pour calculatrice sur votre ordinateur.
Il ne serait pas mieux sur une calculatrice ? :p
Il vous faut donc un logiciel de transfert pour échanger des données de l'ordinateur vers votre TI, ou vice-versa.

Mon choix s'est porté sur le logiciel TI-Connect qui propose en plus quelques options sympa comme la capture d'écran, la conversion et le transfert d'images...
De plus, la version Windows ne fait pas de discrimination ; toutes les calculatrices (de TI-83+ à TI-84+ SE) sont acceptées.

Télécharger TI-Connect

Image utilisateur

L'installation est extrêmement simple et intuitive, je ne perdrai pas de temps à l'expliquer.

Ce qui nous intéresse le plus pour le moment, c'est l'application de transfert ordinateur -> calculatrice.
À la base, si vous double-cliquez sur un fichier en .8XP, l'ordinateur vous sortira un truc du genre « il n'y a pas de programme associé à cette action ».
Il faut lui associer l'application TISendTo.exe présente par défaut dans le dossier Program files\TI Education\TI Connect.
Vous démarrerez ainsi le logiciel de transfert en double-cliquant sur un fichier 8XP.

Voici un screenshot :

Image utilisateur

Comme vous pouvez le remarquer, plus intuitif, tu meurs ! :D
De plus, si vous essayez de transférer un programme dont le nom est déjà présent, aucun bug ne sera généré !

Image utilisateur

J'en profite pour préciser que le nom du programme n'est pas modifiable après la compilation. Si vous changez le nom du fichier 8XP, c'est tout de même le nom de départ qui apparaîtra dans vos programmes.
La preuve : j'avais compilé ce fichier en l'appelant « A.z80 » puis renommé le fichier final en « B.8XP » et regardez... le programme est transféré sous le nom A !

Voilà le plus important. Les autres applications sont moins utiles, je vous laisse les découvrir seuls comme des grands ! :p

Émulation

Si vous n'êtes pas au courant, il est temps que je vous prévienne : l'ASM génère des bugs beaucoup plus « élaborés » que le TI-Basic ! :-°
Ça passe par l'impossibilité de lancer des programmes, le sempiternel « Mem cleared », le blocage pur et simple, ou encore un écran bleu (oui ! Bleu !)...
Vous n'avez pas fini de vous amuser ! :lol:
Je vous rassure, il suffit généralement d'enlever les piles d'alimentation et de les remettre pour résoudre le problème.
Au pire, vous devrez carrément retirer la « back-up battery » et laisser patienter quelques jours.
Heureusement, il existe des émulateurs qui prennent des risques à la place de votre TI. En cas de plantage, vous avez juste à fermer le logiciel !

Image utilisateur

Voyons... je propose TI-83+ flash debugger !
Télécharger
Pourquoi « flash » ?
Parce qu'il prend des photos supporte les applications. Cela s'avère très utile pour tester un programme sous MirageOS par exemple.
Une fois le logiciel lancé, File/New, et choisissez votre calculatrice.

Image utilisateur

Pour lancer la calculatrice virtuelle, appuyez sur la flèche noire (4e icone en partant de la gauche), et sur le carré pour la stopper.

Pour charger un programme ou une application flash, choisissez Load puis Application... ou RAM file....

La calculatrice doit être stoppée pour pouvoir utiliser cette fonction.

Image utilisateur

Je déconseille fortement de charger un programme dont le nom est déjà présent dans la calculatrice virtuelle...

Les principales fonctions sont le chargement de programmes et l'émulation de la TI. Je n'expliquerai donc rien d'autre, d'autant plus que je n'ai pas encore tout compris !
Mais cela devrait vous suffire. ;)

Et GNU/Linux alors ?!...

Cette sous-partie a été créée par saimoun, merci à lui !

  1. z80asm à la place de Tasm, il est dans les paquets de la plupart des distributions, sinon faîtes une recherche sur Google. Son gros défaut (ou celui de Tasm, tout dépend de quel point de vue on se place, niark niark :diable: ) étant qu'il a une syntaxe légèrement différente de Tasm. Voir la doc ici : http://www.nongnu.org/z80asm/usage.html.
    Je donne quand même les équivalences :

    • #define Nom_de_la_macro (arg1, arg2, ...) code_de_la_macro_sur_une_ligne avec Tasm contre

      Nom_de_la_macro: macro arg1, arg2, ...
              code_de_la_macro
              qui_peu_s_etendre_sur_plusieurs_lignes
              ; Genial_non ?
      endm

      avec z80asm.

    • _fonction = XXXXh avec Tasm contre _fonction: equ XXXXh avec z80asm.

    • .dw, .db, .org, .etc... avec Tasm contre dw, db, org, etc... (enlevez tous les points ".") avec z80asm.

    Si avec tout ça vous trouvez encore des bugs avec un programme qui marchait avec Tasm, regardez sur la doc en ligne (lien un peu plus haut), sinon tapez man z80asm en console et vous aurez une documentation plus complète.

  2. Tilem à la place de VirtualTI, fonctionne très bien, téléchargeable sur http://lpg.ticalc.org/prj_tilem/.

  3. bin2var à la place de Devpac8x (je l'ai cherché celui-là...), en plus, il peut convertir en 82p, 83p, 8xp, 85s, etc. Note : le programme est distribué pour Windows, mais le code source est distribué, il faut juste le recompiler pour Nux (gcc -o bin2var bin2var.c dans le dossier où l'archive est décompressée).

  4. Tilp à la place de TI-Graph Link du programme de transfert, fonctionne très bien avec le câble TI GraphLink, mais aussi le GreyLink, les câbles séries et parallèles (voir le site ftp83plus.net).

Ci-dessous le makefile que j'utilise pour compiler (bande de veinards j'ai fait tout le boulot à votre place :p ). Pour le faire fonctionner : vous le mettez dans le même dossier que votre fichier source (portant l'extension *.z80), vous tapez make dans une console (dans le bon dossier, bien sûr) et il vous produira un fichier du même nom ayant l'extension *.8xp, ce dernier étant directement ouvrable par tilem.
Note : vous pouvez aussi taper make clean pour effacer les fichiers intermédiaires, et make mrproper pour effacer les fichiers intermédiaires et les fichiers finaux (avec l'extension *.8xp).

COMP = z80asm
FLAGS = --verbose
CONVERT = bin2var

SRC = $(wildcard *.z80)
BIN = $(SRC:.z80=.bin)
EXE = $(SRC:.z80=.8xp)

all: asm

asm: ${SRC}
	@${COMP} ${FLAGS} --input ${SRC} --output ${BIN}
	@${CONVERT} ${BIN} ${EXE}

.PHONY: clean mrproper

clean : 
	@rm -f *.bin
	@rm -rf *~
	@echo "Nettoyé."

mrproper: clean
	@rm -f *.8xp
	@echo "C'est vide !"

Voilà, je trouvais que ça manquait, partout sur le Net, on ne voit que des tutos (même ceux en anglais et réputés « très bons ») qui balancent du Tasm et Cie, pas un seul n'explique qu'on peut très bien faire ça avec GNU/Linux !

Vous devriez à présent être en mesure de compiler vos programmes sans bugs en fichiers directement transférables, et de les transférer.
Je vous sens impatients de commencer... :)

OK, maintenant on peut passer à l'installation.

Les auteurs

Exemple de certificat de réussite
Exemple de certificat de réussite