Poursuivons l'exploration (un peu décousue !) de la FX-603P grâce aux instructions PEEK et POKE de cette calculatrice, instructions très originales sur une machine de ce type.
En explorant la ram avec le programme ci-dessus, on découvre des zones mémoires intéressantes. Par exemple :
1392-1407 : Ligne haute de l'afficheur
1168-1183 : ligne basse de l'afficheur
1217-1232 : ligne basse .de l'afficheur (zone tampon ??)
On en sait assez pour trouver les codes des 255 caractères de la 603 :
Code : Tout sélectionner
255 Min00
"->"
LBL0
MR00 POKE 1394 // 1394 = 3 ieme caractère de la ligne haute de l'afficheur
";" HLT
DSZ GOTO0
Ce programme affiche le n° du caractère en bas et le caractère en haut. On y trouve par exemple les symboles des cartes de jeu :
239 : Trèfle
238 : Carreau
237 : Coeur
236 : Pique
Ainsi, le programme suivant affiche aléatoirement des symboles de cartes sur la largeur de la ligne d'affichage alpha.
Code : Tout sélectionner
" " // Vide l'écran alpha
LBL0
1392 + 16 x RAN# = INT Min01 // Adresse où écrire le caractère
236 + 4 x RAN# = INT // Pique, coeur, carreau ou trêfle ?
POKE MR01 // Affiche le caractère sur l'écran
";" // Rafraichi l'affichage
GOTO0 // Ad libitum
On peut donc afficher un caractère spécifique sur l'écran en pokant à l'adresse 1392 + position caractère. On peut aussi lire (avec PEEK), quel caractére est sur l'écran à telle position. Cela est strictement impossible avec une 602P
Par exemple le programme suivant transforme une chaine MAJUSCULE en minuscule :
Code : Tout sélectionner
"SILICIUM" PAUSE
8 Min00 1392 Min01
LBL0
PEEK MR01 - 32 =
POKE MR01
1 M+01
DSZ GOTO0
SILICIUM -> silicium
Ici l'affichage n'apparait que quand toute la chaine est passée en minuscule. Comme variante,vous pouvez ajouter ";" juste avant le DSZ,cela donne une rapide animation
(à suivre ...)