Nous allons en apprendre un peu plus sur l'organisation de la mémoire de notre ti et comment en tirer parti.
Voici une carte de la ram d'une 83
8000h
mémoire système
9327h
mémoire libre
pile
FFFFh
La mémoire système est utilisé pour les modes, les op, les pointeurs....
Nous l'avons déjà vu, il existe des emplacements mémoires ou sont sauvegardez les données graphiques..
Textshadow : emplacement mémoire ou sont sauvegardés
les caractères écrits (grande police).
Cette emplacement a une taille de 128 octets et débute à
l'adresse suivante : 80C9h
Si vous voulez que cette sauvegarde ce fasse, il faut activer le mode
appTextsave, (iy+appFlags) ou au contraire le désactiver pour l'utiliser
pour votre programme.
_clrtxtshd : efface la sauvegarde
_rstrshadow : restaure à l'écran la sauvegarde
_saveshadow : effectue une sauvegarde
Graph screen backup : Contient une sauvegarde de l'écran
graphique.
Cet emplacement est situé à l'adresse mémoire
8E29h, est définie par le nom plotscreen dans le fichier ti83asm.inc
et à une taille de 768 octets.
Le mode plotloc, (iy+plotflags) contrôle si oui(=1) ou non(=0) la
sauvegarde s'effectue
_grbufclr : efface plotscreen
_grbufcpy_v : restaure plotscreen
Savescreen : c'est un emplacement mémoire qui débute à l'adresse 8265h et à une taille de 768 octets. Cet emp est uniquement utilisé lorsque la calculatrice s'éteint d'elle même au bout d'un petit moment.
Statvars : C'est un emp. mémoire qui débute à 858Fh, a une taille de 531 octets et est uniquement utilisés pour les calculs statistiques.
L'importance de ces emplacements mémoires est que l'on peut créer des variables pour stocker des nbres, des valeurs......
Pour créer une variable, il faut rajouter une ligne dans l'en-tête du programme :
.list
#define curspr 8265h
.org 9327h
Pour initialiser curspr :
ld a,54d
ld (curspr),a
Ceci est plus rapide qu'en effectuant une sauvegarde de af avec la pile.
Nous allons maintenant nous intéresser au variable utilisateurs et système (celles que vous utilisez en basic)
Initialiser une variable utilisateur :
_stox / _stoy : Place la valeur de op1 dans X ou Y
-pour les autre variables :
_stoother : avec op1 le nom de la variable et fpst la valeur
call _op1set2 ; op1=2
call _pushrealo1 ; fpst=2.
call _zeroop1 ; op1=0
ld hl,'A'
ld (op1+1),hl ;
call _stoother
-Rappeler un var utilisateur :
call _zeroop1
ld hl,op1+1
ld (hl),'A'
call _rclvarsym
-Pour les variables système (exemple Xmin)
call _op1set4
ld a,tXMIN
call _stosysok ; Xmin=4
pour rappeler :
ld a,TXMIN
call _rclsystok ; op1=valeur de Xmin
Regardez à la fin du fichier ti83asm.inc pour les noms de ces variables.