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
Cliquez pour revenir au menu du site... ou ici pour retourner au menu du tutorial.