Tutorial 7
Afficher du texte

Survol
   
Ce tutorial va vous montrer comment faire un programme qui affiche du texte normal et en vidéo inversée (blanc sur fond noir).

Programmation
   
Le programme ci-dessous va afficher du texte normal sur l'écran home. Il utilise des calls que nous avons déjà appris, et en utilise quelques nouveaux. Dans un futur tutorial, nous ferons un programme qui affichera du texte en petit format.

 

#define B_CALL(xxxx)   rst 28h \ .dw xxxx
#define B_JUMP(xxxx)  call 50h \ .dw xxxx
 

_clrlcdfull                      =4540h                         ;Les calls que nous allons utiliser sont définis ici, ou utilisez un fichier include
_homeup                      =4558h

_puts                            =450Ah
CURCOL                      =800Dh
CURROW                     =800Ch

           
            .org 9D95h

           
            B_CALL(_clrlcdfull)                               ; Efface l'écran
            B_CALL(_homeup)                                ;Amène l'écran de démarrage (Home Screen)
            ld         a,0                                           ;Charge zéro dans le registre "a"
            ld         (CURCOL),a                             ;Charge zéro dans la coordonnée y
            ld         (CURROW),a                            ;Charge zéro dans la coordonnée x
            ld         hl,txtLabel                                ;Charge le texte du label ci-dessous
            B_CALL(_puts)                                     ;Met le texte à l'écran
            B_CALL(_clrlcdfull)                               ;Vide l'écran
            ret                                                       ;Retourne au TI-OS
txtLabel:                          ;"Label" peut être remplacé par n'importe quel nom que vous voulez pourvu que vous changiez aussi celui ci-dessus
           .db      "This Program   "
           .db      "displays text   "
           .db       "on the home    "
           .db       "screen. It can  "
           .db       "be up to 16 char"
           .db       "long, it    can  "
           .db       "only be 8 lines "
           .db       "long.              ",0         
.end
END


Nouvelles commandes utilisées
     (CURCOL) - la coordonnée y du curseur
    (CURROW) - la coordonnée x du curseur
    _puts - Affiche le texte à l'écran. Cette commande amène le texte spécifié à l'écran.
    _getkey - Détecte si une touche est pressée sur le clavier
    ld - Instruction z80 pour charger quelque chose. Dans ce programme, elle charge 0 (zéro) dans le registre "a". La syntaxe correcte est: ld (registre),(valeur numérique)

Registres
   La mémoire de la calculatrice est l'endroit où sont stockées presque toutes les données. Malheureusement, l'accès à la mémoire est relativement lent pour le processeur. C'est pourquoi, quand nous voulons que le processeur manipule des données, comme additionner deux nombres ensemble, nous ne le faisons pas en mémoire. À la place, nous chargeons les données dans des emplacements mémoires rapides situés dans le processeur lui-même, que l'on appelle des registres. Dans le programme d'affichage de texte normal (ci-dessus), la valeur "0" a été enregistrée dans le registre "a". La valeur dans le registre a alors successivement été chargée dans CURCOL et CURROW (les coordonnées X et Y du texte). Les registres sont extrêmement importants! Si vous ne comprenez pas leur principe, je recommande que vous lisiez le tutorial 4 de l'ensemble de tutorials de Andy S.


Texte en vidéo inversée
   Eh bien les choses vont de mieux en mieux. Le texte en vidéo inversée, comme son nom l'indique, est un texte avec la police normale (en blanc) sur un fond d'écran noir. Ce programme affiche le texte "TI-83 Plus Asm" en vidéo inversée. Tout ce que vous avez besoin de savoir pour afficher du texte en vidéo inverse est de charger les coordonnées du texte et de régler le mode vidéo inversée.

#define bcall(xxxx)        rst 28h \ .dw xxxx
#define bjump(xxxx)      call 50h \ .dw xxxx

 
_clrlcdf             =4540h
_homeup          =4558h
_puts                =450Ah
CURCOL          =800Dh
CURROW         =800Ch
textinverse        =3                                            ;Voyez la section nouvelles commandes pour plus d'information
textflags           =5

 
.org 9D95h

 
            bcall(_clrlcdf)    
            bcall(_homeup)
            set      textInverse,(iy+textflags)            ;Règle le mode vidéo inversée pour le texte
            ld        a,0                                          ;Charge 0 dans le registre "a"
            ld        (CURCOL),a                               ;Règle les coordonnées Y
            ld        a,0                                          ;Charge 0 dans le registre "a"
            ld        (CURROW),a                              ;Règle les coordonnées X
            ld        hl,txtTIAsm                               ;Affiche le texte du label TIAsm
            bcall(_puts)                                         ;Met le texte à l'écran
            res      textInverse,(iy+textflags)             ;Sort du mode texte inversé
            ret                                                     ;Retourne au TI-OS
txtTIAsm:
            .db      " TI-83 Plus Asm ",0                    ;Texte à afficher à l'écran
.end
END

 

Nouvelles Commandes
   set - Instruction z80 qui ajuste les caractéristiques de la TI
    res - Instruction z80 qui remet les caractéristiques à leur état initial
    textinverse - Mode texte inversé de la TI
    textflags - Vous n'avez pas besoin de savoir ça maintenant

 

 

Tutorial 8

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