Toutes les adresses dans ces pages sont codées en hexadécimal (ainsi que les octets de la mémoire). Ceci a pour avantage une lecture beaucoup plus claire (ex : 32 Ko = 32768 octets = &H8000 en hexa). On a ainsi des adresses composées de deux octets qu'on identifie clairement comme l'octet de poids fort et l'octet de poids faible. A cela, on rajoutera devant un troisième octet pour indique le numéro de segment. C'est de cette manière que les adresses sont stockées dans la mémoire (pour les pointeurs) mais dans l'ordre inverse : octet de poids faible, octet de poids fort et numéro de segment.
Exemple : l'adresse de la table des pointeurs de fonctions de la librairie située à l'adresse 63406 (décimale) du 5 ème segment est égale à &HF7AE en hexa. F7 est l'octet de poids fort, AE l'octet de poids faible et on rajoute 05 pour avoir l'adresse compléte. En mémoire elle sera notée de la maniére suivante : AE F7 05.
La mémoire de la Casio FX-850 P est divisée en plusieurs blocs de 64 Ko appelés "segments". A l'intérieur d'un segment, les adresses vont donc de 0 à &HFFFF. L'adresse du segment est quand à elle fixée par la commande DEFSEG. Une adresse est donc égale à DEFSEG x 16 + (octet de poids fort) x 256 + octet de poids faible.
Pour que les commandes PEEK et POKE accèdent à
un segment de mémoire particulier, la valeur de DEFSEG
doit être égale à (No de segment) x &H1000.
Voici un tableau résumant toutes ces explications :
No de bloc | Adresses | Mémoire |
|
|
|
|
&H5000 |
4 |
FFFF 0000 |
ROM | &H4000 |
3 |
FFFF 0000 |
&H3000 | |
2 |
FFFF 0000 |
&H2000 | |
1 |
FFFF 0000 |
&H1000 | |
0 |
FFFF 0000 |
RAM | 0 |
La mémoire disponible pour l'utilisateur est répartie
en deux zones : la zone des programmes(y compris Banque MEMO)
et la zone des données (ou variables). On peut voir la
manière dont elles sont réparties avec la commande
FRE :
On peut changer la répartition programmes/données avec la commande CLEAR. Si elle est utilisée seule, cette commande efface le contenu de la zone de variables. Pour changer la taille de cette zone, il faut faire suivre CLEAR de la nouvelle valeur. La taille par défaut de la zone des données dépend de la quantité de mémoire sur la machine :
Capacité de la mémoire | Taille de la zone de variables |
Inférieur à 32 Ko | 1536 octets |
32 Ko et plus | 8192 octets |
Ces valeurs par défaut sont normalement suffisantes dans la plupart des cas. Mais en fonction des utilisations, il peut être utile de les changer. Si on a besoin de beaucoup de mémoire pour les programmes, on peut augmenter la zone programmes en réduisant la zone données (pas trop quand même !). Inversement, si on utilise beaucoup de variables (ou des fonctions de la bibliothèque scientifique qui font appel à beaucoup de variables), on devra augmenter leur zone et donc réduire celle des programmes.