Tutorial 23
Les shells en assembleur - Utilisation de Ion
Introduction
Les shells sont des programmes
pour calculatrice qui rendent plus facile la détection et l'exécution de
programmes en assembleur (essentiellement). Certains shells, comme Ion, donnent
aux utilisateurs quelques routines spéciales, qui facilitent le travail des
programmeurs.
Qu'est-ce que Ion?
Ion est un shell pour TI-83 et
TI-83 Plus écrit par Joe Wingbermuehle. Ion comporte quelques caractéristiques
spéciales, entre autres des routines unique à lui! Aussi, les programmes
assemblés pour Ion fonctionneront à la fois sur TI-83 et sur TI-83 Plus. Ce
tutorial va vous montrer comment faire un programme qui fonctionne sous Ion.
Choses à savoir
Ion est écrit en Asm
TI-83 Plus. Ion est un shell qui exécute des programmes Asm. Pour que Ion
détecte des programmes Asm, ceux-ci doivent avoir l'en-tête suivant. Si vous
jetez un coup d'oeil à quelques programmes/jeux pour Ion très bien écrits, vous
remarquerez qu'il peut ne pas y avoir d'en-tête évident. Ça peut aller, en
autant que le contenu soit quelque part là-dedans. Les programmes Ion doivent
aussi utiliser le fichier include de Ion, car certaines routines spécifiques à
Ion y sont localisées, et l'utilisation de ce fichier permet à l'utilisateur
d'assembler à la fois pour TI-83 et TI-83 Plus. Les programmes Ion aussi
utilisent la macro bcall() pour appeler des ROM calls au lieu du B_CALL() qui
nous est familier.
Programmation
Tous les programmes que vous
voulez que Ion détecte devraient avoir l'en-tête suivant au début de chaque
programme:
.nolist
#include "ion.inc"
;C'est le fichier include qui doit être utilisé avec Ion.
#ifdef TI83P
.org progstart-2
;Début du programme - 9D95h - Comme définit dans le fichier include de Ion.
.db $BB,6D
#else
.org progstart
;Début du programme pour la TI-83 - 9237h
#endif
ret
jr nc,Start
;Saute au label Start du programme
.db "nom du programme",0 ;C'est le nom que Ion affiche
Start:
;Votre programme commence ici
Voici un
"échantillon" de programme écrit pour Ion qui affiche du texte à l'écran:
.nolist
#include "ion.inc"
.list
#ifdef TI83P
.org progstart-2
.db $BB,6D
#else
.org progstart
#endif
ret
jr nc,Start
.db "Affiche texte",0 ;Nom du programme
Start:
;Début du programme
bcall(_clrlcdf) ;Efface l'écran
bcall(_homeup) ;Amène l'écran de démarrage
(home screen)
ld a,0
;Charge 0 dans le registre a
ld (CURCOL),a ;Charge les coordonnées dans CURCOL
ld a,0
ld (CURROW),a
ld hl,txtDisplay
bcall(_puts)
bcall(_getkey) ;Attends la
pression d'une touche
bcall(_clrlcdf)
ret
txtDisplay:
.db "Voici le texte "
.db "que ce programme"
.db "affichera. "
.db "Chaque ligne"
.db "peut faire16"
.db "lettres. Il y a "
.db " 7 lignes ",0
.end
END
Assembler des programmes pour Ion
Les programmes Ion, à la
différence des programmes Asm pour TI-OS, doivent être compilés avec Devpac83 et
le fichier Asm.bat inclus avec Ion. On peut trouver plus d'information dans la
documentation incluse avec Ion.
Conclusion
Ion est très utile, surtout si
vous désirez réaliser des programmes Asm compatibles à la fois avec la TI-83 et
la TI-83 Plus. On peut trouver des utilisations plus avancées des librairies de
Ion dans IonGuru, de Matt Hernandez!