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!

Tutorial 24

    Cliquez pour revenir au menu du site... ou ici pour retourner au menu du tutorial.