Programmation assembleur de la TI84 Stats

From Eric

Jump to: navigation, search

Contents

Objectifs

Programmer une calculatrice TI-82 Stats en assembleur Z80. Cette technique est utilisée dans l'utilisation d'une TI 84 en terminal.

Réalisation

La TI82 Stats est un modèle (relativement) ancien. On trouve de très nombreux programmes et outils pour cette machine (et pour toutes celles de la gamme TI, voir les référence en fin d'article).

Cette calculatrice utilise un Z80 (contrairement aux modèles de la gamme 89, 92,...) qui utilisent un 68000. Bien que ce soit un modèle de la gamme TI-82, la plateforme matérielle est identique à la TI83 (attention, pas la TI83-plus).

Par défaut, La calculatrice est programmable en une forme basic spécifique. Cependant, avec un peu d'effort, il est possible d'exécuter un programme en langage machine Z80 (binaire).

Le programme assembleur est

  • édité et assemblé sur un PC, MAC,...,
  • converti au format TI82 (TI83 en fait...)
  • transféré vers la calculatrice à l'aide d'un câble spécifique et d'un logiciel fournit par Texas Instruments ou exécuté directement sur un émulateur.

Voici le détail des opérations...

Installation du logiciel de transfert de fichiers PC vers

La calculatrice ne disposant pas d'un assembleur natif, un programme assembleur doit être assemblé sur un PC 'ou tout autre machine plus exotique) puis transféré sur la calculatrice. Cela implique (i) un câble pour connecter le PC à la calculatrice et un logiciel de téléchargement.

Pour ma part, j'utilise un câble "officiel" de TI, acheté dans un vide grenier pour 2 euros. Dans le commerce, c'est plutôt 20 euros. On peut aussi réaliser le câble soit même. Voir par exemple [<tbd> ici].

Il faut en outre un logiciel. J'utilise le logiciel officiel de Texas Instruments, TI-Link, que l'on trouvera normalement [tbd ici].

Mise en place de l'environnement du shell "ION" sur la calculatrice

A partir du modèle TI83-plus, Texas Instruments offre plusieurs fonctions pour lancer un programme assembleur sur la calculatrice. Sur la TI82-stats, il existe une commande obscure ("send(9PrgmXXX)") qui permet de lancer un programme installé dans un format non binaire (hexa). Nous y reviendrons plus loin.

L'autre méthode, plus "underground" consiste à utiliser un "shell", c'est-à-dire un petit programme installé sur la calculatrice dont le rôle est de lancer les programmes assembleurs installés. Il existe divers shells pour la TI82 (et suivantes) : ASH, CRASH, ION,...

Pour ma part, j'utilise ION.

On trouvera ION [<tbd> ici] (et localement [<tbd> ici]). Il suffit de lancer le téléchargement du fichier "ion.83g" vers la calculatrice puis d'exécuter le programme "ION". Si tout se passe bien, l'exécution doit s'achever pas un "fait" qui dit bien ce qu'il veut dire.

Dès lors, le menu "Prgm" doit afficher quelque chose comme :

<à compléter>

L'exécution du premier programme, "A", affiche la liste des programmes assembleurs (au format ION) disponibles sur la calculatrice.

Structure typique d'un programme assembleur "ION"

Voici un exemple typique de programme assembleur destiné au shell "ION". En fonction du shell, la liste des "include" diffèrent. (à compléter)

Assemblage du programme pour "ION" et conversion du binaire au format TI82

L'environnement de développement se compose d'un assembleur et d'un outil permettant de "packager" le binaire résultant de l'assemblage.

Divers assembleurs Z80 peuvent être utilisée :

  • TASM (en version 3.1, le plus souvent utilisé)
  • SPASM, plus rapide,
  • ZDF, l'environnement de développement de Zilog

Le "packaging" du binaire peut s'effectuer avec l'outil devpac83. Voici la séquence typique permettant de réaliser la séquence complète du source assembleur jusqu'au fichier à télécharger sur la calculatrice ou à charger dans l'émulateur.

<à compléter>

Transfert du programme sur la calculatrice

<a compléter>

Lancement du programme

Le lancement d'un programme assembleur s'effectue via le shell. Pour cela, il faut tout d'abord lancer le programme "A" qui affiche alors la liste des programmes assembleurs reconnus. Le curseur doit être déplacé sur le programme à exécuter. [enter] lance l'exécution du programme.

Voici, par exemple, une copie d'écran :

<a compléter>

Les system calls de la TI

Le fichier "ion.inc" contient la définition de tous les system calls des TI83 et 83+ (j'ignore les différences qui existent entre la TI82-stats et la TI83, mais il semble qu'elles soient très semblables). La difficultés est de savoir à quoi tel service sert... Pour ce faire, il suffit de consulter la documentation de Texas Instruments intitulée TI-83 Plus System Routines (copie locale [ici]).

L'usage du C sur la TI-84 stats

Il est tout à fait possible de compiler du C à destination des TI82-stats (83,...,86). J'ai testé le compilateur croisé Z80 z88dk. Ce compilateur support les TI et bien d'autres plateformes à base de Z80. La documentation se trouve sur le Wiki du site z88dk.

Une fois installé, le compilateur est très simple à utiliser. La commande pour compiler un programme à destination de la TI83 est la suivante :

zcc.exe +ti83ansi -lm -o world -create-app d:world.c

Le compilateur génère directement un fichier téléchargeable ("world.83p").

Personal tools