Ce tableau, établi d'après celui des pages 92 et 93 du manuel d'utilisateur et complété par de longs examens de la mémoire, montre comment est organisée la RAM de la Casio FX-850 P, en particulier la RAM système. Comme vous le voyez, la plupart des zones sont identifiées mais il reste encore beaucoup de choses inconnues...

Les adresses en bleu dépendent de la quantité totale de mémoire, dans le cas présent 40 Ko

Adresses

Nb d' octets

Contenu de la RAM
 Notes

0000-00FF

256
Mémoire écran (buffer) (1)

0100-01FF

256
???  

0200-02FF

256
Buffer d'entrée INPUT  

0300-03FF

256
Buffer pour formule : CALC ou VALF (ASCII) (2)

0400-04FF

256
Mémoire formule = CALC$ (ASCII) (2)

0500-0608

264
???  

0609-0610

8
Buffer mot de passe et derniére fonction LIB (3)

0611-0685

117
???  

0686-0688

3
Pointeur de mémoire tampon entrée/sortie Zone de pointeurs

0689-068B

3
Pointeur de pile de fonctionnement de caractères

068C-069E

3
Pointeur de zone libre de pile

069F-0691

3
Pointeur de pile de données

0692-0694

3
Pointeur de pile FOR

0695-0697

3
Pointeur de pile GOSUB

0698-069A

3
Pointeur de données de variables de caractères

069B-069D

3
Pointeur de zone libre de de variables

069E-06A0

3
Pointeur de données de variables numériques

06A1-06A3

3
Pointeur de tableau de variables
06A4-06A6

3
Pointeur de début de zone de programmes
06A7-06A9

3
Pointeur de début de zone MEMO
06AA-06AC

3
Pointeur de zone libre programmes
06AD-06AF

3
Pointeur de zone de contrôle zone MEMO

06B0-06B2

3
Pointeur de zone de contrôle programmes (P9 à P0)

06B3-06B5

3
Pointeur de RAM totale (=A000)

06B6-06B8

3
Adresse de la table des pointeurs de la bibliothèque
06B9-06EA 50 ???  
 06EB-06ED  3 Pointeur zone de contrôle du dernier prog lancé  
06EE-06EF   2 No de la dernière ligne exécutée  
 06F0-06F2  3 Pointeur dernière commande exécutée  
 06F3-06F8  6 ???  
06F9-0700  8 Dernier résultat de cacul (ANS) (4)
0701-071A 26 ???  
071B  1 Voyant KANA (0 = éteint, 1 = allumé) (7) (8)
071C  1 Voyant CAPS (0 = éteint, 4 = allumé) (8)
 071D-074A  46 ???  
074B-0752 8 Mot de passe (3)
0753-0755 3 ???  
0756-0854 255 Formule CALC sous forme exécutable (2)
0855-087F 43 ???  

0880

 

 

0B7F

768
Memoire tampon d'entrée/sortie Zone de pile 

Pile de fonctionnement de caractères

Zone libre de pile

Pile de données

Pile FOR

Pile GOSUB

0B80

 

0B80+FRE2

 FRE2 Données de variables de caractères  Zone de données
Zone libre de de variables=FRE0
Données de variables numériques
Tableau de variables
    Zone P0 Zone de programmes 
Zone P1
Zone P2
Zone P3
Zone P4
Zone P5
Zone P6
Zone P7
Zone P8
Zone P9
Zone de la banque de données MEMO
Zone libre de programmes=FRE1
9F5B-9F69 15 Zone de contrôle de la banque de données

 Zone de contrôle

(5)

9F6A-9F78 15 Zone de contrôle de P9
9F79-9F87 15 Zone de contrôle de P8
9F88-9F96 15 Zone de contrôle de P7
9F97-9FA5 15 Zone de contrôle de P6
9FA6-9FB4 15 Zone de contrôle de P5
9FB5-9FC3 15 Zone de contrôle de P4
9FC4-9FD2 15 Zone de contrôle de P3
9FD3-9FE1 15 Zone de contrôle de P2
9FE2-9FF0 15 Zone de contrôle de P1
9FF1-9FFF 15 Zone de contrôle de P0

 A000 FFFF
  Fin de la RAM (6)

 Note

 Commentaires
(1) Modifier des valeurs dans cette zone n'affecte pas immédiatement les caractères affichés à l'écran. Ces modifications prennent effet quand l'affichage est réactualisé, lorsque les lignes passent de l'écran virtuel à l'écran réel (voir page 7 du manuel). Ou bien, lorsqu'on affiche le caractére CHR$(0).
(2) Lorsqu'on entre une formule en mémoire (avec la touche [IN] ou en la rentrant dans la variable CALC$), celle-ci est d'abord placée dans la zone 0400-04FF. Quand la formule est exécutée (touche [CALC] ou commande CALCJMP), celle-ci est placée dans la zone 0300-03FF puis convertie en une forme executable (comme les programmes BASIC) à l'adresse 0756-0854.
(3) Lorsqu'on entre un mot de passe avec la commande PASS, celui-ci est placé à l'adresse 0609. S'il n'y pas de mot de passe actif, il est activé et stocké à l'adresse 074B. S'il y a déja un mot de passe actif, il est comparé avec celui de l'adresse 074B.
(4) Le nombre est codé de la maniére suivante : les deux premiers pour l'exposant, les six suivants pour la mantisse (un chiffre sur un demi octet).
(5)

Voici la fonction détaillée des 15 octets de chaque zone :

Octets 1-3 : adresse de début de la zone de programme
Octets 4-6 : adresse de fin de la zone de programme
Octet 7 : &H80 pour P0 à P9, &H81 pour la zone MEMO
Octet 8 : &H50 pour P0 à P9, 0 pour la zone MEMO
Octet 9 : &H30 + No programme, 0 pour la zone MEMO
Octets 10-15 : &H20, pour P0 a P9, 0 pour la zone MEMO

(6) La mémoire physique réelle se termine à 9FFF. A partir de A000, on retrouve les valeurs des adresses à partir de 0 jusqu'à FFFF qui est la plus grande valeur adressable dans un segment de mémoire.
(7) Voir page Truc & Astuces pour l'utilisation des katakana.
(8) Apparemment, ces valeurs ne sont accessibles qu'en lecture. Si on change un de ces octets par un POKE, cela n'a pas d'effet sur les voyants correspondants.

Organisation de la mémoireSommairePage de liens