Casioman Hors ligne Membre Niveau: Confirmé
Points: 140
Défis: 1 Email | Message
Posté le 29/11/2006 09:43
Allocation de la memoire:
Salut a tous
Comme je les deja dit mon reve c'est de faire de l'assembleur sur casio.
Donc j'ai etudié la memoire de ma graph 35+ et j'ai vu plusieurs choses qui m'ont etonné:
-la graph35 a 64Ko de memoire on peut acceder qu'à 60Ko mais pourquoi apres un reset on voit 61000 bits free ce qui fait 7,65Ko, j'en ai deduis que pour casio bit=octet
-Un picture fait 128*68=8192 pixel ,on peut coder normalement un pixel que par noir ou blanc donc cela ferait 8pixels=8bits=1octets donc 1024 octets alors qu'on a marque 4096 dans memory usage soit 4 fois plus :ma seul explication c'est qu'un pixel peut etre allume de 2^4=16 maniere differente (voir les niveaux de bleu de Iben) mais alors a quoi servirait le menu contraste
- attention à ne pas confondre bit et byte! byte est la traduction anglaise de octet
- oui en effet je ne vois pas trop pourquoi çà prend temps de place! Déjà il y a 5 couleurs (blanc, noir, bleu, vert, rouge) donc les pixels auraient pu être codées sur 3 bits. Peut être que c'est du aux dégradés de couleurs (quand on change les couleurs sur la graph 65)...
Bonjour à tous,
Je me suis justement posé plusieurs questions sur l'utilisation de la mémoire par une graph 35+ ou 65 et j'ai quelques pistes :
Comme il y a 4 couleurs, 3 bleus et 1 blanc pour la graph 35+, orange, vert, bleu et blanc pour la graph 65, on pourrait imaginer qu'elle stocke chaque pixel sur 2 bits, soit 4 valeurs, mais pour, je pense, une question de vitesse d'affichage, et au détriment de la mémoire, elle utilise 4 bits par pixels, chaque bit correspondant à l'état d'une couleur, allumée ou éteinte. De plus, elle considère un écran de 128 par 64 pixels. En effet, 128*64*4 = 32768 bits = 4096 octets.
Mais une question me taraude : On sait que les calculs internes utilisent une mantisse M de 15 chiffres ce qui peut être stocké sur 50 bits car 2^50 = 1125899906842624 soit environ 1E+15 et j'ai vérifié cela. Mais il reste encore 30 bits et cela est, d'après moi, beaucoup trop pour stocker l'exposant E allant de -99 à +99 tel qu'un réel soit de la forme M*10^E. Même en considérant un réel de la forme M*2^N il faudrait un N allant de -330 à 330 soit 10 bits de stockage. En fait, en stockant tout en binaire, on atteindrait péniblement les 60 bits contre les 80 bits utilisés en réalité par la calculatrice. En tout cas, la bonne nouvelle, c'est qu'on peut stocker jusqu'à 50 bits dans une variable ou une case de liste/matrice : je l'ai vérifié avec 3 entiers génériques de 50 bits de formes respectives : 010101...01, 01001001...001 et 0100010001...0001. Un plus pour le stockage de données !
Allez, à bientôt
Réflexion très juste Peter, mais il ne faut pas oublier qu'une variable peut contenir un nombre complexe, et donc 2 réel. Ce qui explique les 10 octets sur lesquels sont stockées chaque variable
*a aussi étudié ça -_-'*
Sachant que je suis en plein dedans (les variables casio ) pour le logiciel de transfert qu'on fait avec Light_Spirit, je crois pouvoir en dire pas mal dessus !
Déjà, sachez que je pense que l'optimisation mémoire à été bâclée pour privilégier la compatibilité entre les modèles, passés et à venir...
*lance le logiciel de transfert*
Bon, voilà ce que la calto émet (En héxadécimale, hein ) en tant que valeur de ma variable A, qui est égale à 15 (réel donc ) :
3A 00 01 00 01 01 50 00 00 00 00 00 00 01 01 AB
Maintenant, pour la valeur de la variable B, qui est égale à 15-20i (donc complexe :o) :
En décortiquant un peu, on peut virer les 5 premiers octets (le premier étant spécifique au transfert, et les 4 autres, probablement à compatibilité future, et on étés rajoutés lors de l'envoi) et le dernier (cheksum du bloc émis). On a donc 10 octets pour les réels et 20 pour les complexe.
Miracle!
C'est exactement ce qu'on retrouve sur la calto (sisi, vérifiez : 10 octets tant qu'il n'y a pas de complexe, mais sinon, ça passe bien à 20)!
J'ai un peu la flemme de vous expliquer tout le message reçu, mais cherchez un peu et vous comprendrez comment c'est codé (genre y a un octet pour dire si l'exposant et/ou la mantisse est négatif -_-'). Et vu la stratégie du moindre effort qu'utilise les Casio, je doute fortement que ce soit codé autrement en mémoire >_<'.
Pour les +/- 7Kio utilisés obligatoirement, l'explication, selon moi, c'est que l'OS est embarqué sur la RAM (ça m'étonnerait que ces casio puissent exécuter du code depuis la ROM/EEPROM). Il y a peut-être les graphismes (menus par exemple) en ROM, mais l'OS, lui, est transféré en RAM lors d'un reset.
Ca reste une théorie, hein!
Ensuite, la Graph 35+ a 128Kio ou 1024Kio de RAM (selon les modèles), et c'est l'OS ou le hardware qui empêche d'accéder à plus .
Si on veut vraiment voir les données de la ROM/EEPROM, il suffirait de désouder le composant et de faire un circuit de transfert au PC du contenu de la mémoire.
Pour ça, un petit tour sur les sites des constructeurs serait intéressant !
Malheureusement, la documentation sur la ROM des 35+ ancien modèle (la verte ) est quasi-inexistante :/.
Par contre, j'ai pas eu le courage de les lire, mais celle du nouveau modèle à l'air complète (enfin, en tous cas, elle existe déjà xD).
Par contre, va falloir en trouver une à ouvrir pour les références des composants, par ce que... j'ai perdu la feuille de note où j'ai inscrit tout ça !
Bon, allez, je retourne programmer >_<'...
*se fait frapper par le clavier de Light_Spirit*
Aiiiiieeeeeuuuh!
PS :: l'explication pour les pictures et correcte : un bit pour une couleur, donc 4 bits par pixel -_-'
EDIT :: PS2 :: Aussi, tant que j'y penses, si tu veux étudier la mémoire de ta 'tite casio, tu sais ce que tu fais?
Tu fais un backup sur ton PC, et tu l'ouvre avec un éditeur hexadécimal (j'utilise CR-hexact :o). Après, il te reste plus qu'à bosser (le plus duuuur :x)
ENCOREUNEDIT :: *remarque que le Casioman en question ne s'est pas connecté depuis quelques temps, et que le sujet date de 2006*
...
----------------------------------
Une bataille navale avec Intelligence Artificielle sur Graph 35? C'est ICI !
Projets en cours :
*CGUI++, Une GUI C++ multi-plateforme conçue pour fonctionner sur calculatrices.
*Tiles Creator, un environnement de création et gestion de ressources graphiques.
Pour les images, c'est vraiment abusé car chaque bit indique si la couleur est présente puisqu'il y a 4 feuilles. Il n'optimisent pas du tout chez Casio.
On s'en rend compte en travaillant sur les émissions/réceptions et sur le format FXI qui n'est pas du tout léger (déjà 857 octets qui servent à rien au début de chaque fichier).
PS : bosser avec un branleur, c'est pas facile, surtout quand il n'est jamais connecté, et quand il est connecté, il joue à des "jeux"
----------------------------------
Collectionneur de figurines d'animés. - WoW c'est le mal mais j'ai choisi le côté obscur
Calculatrices : G85 SD, G100+, Classpad 330 (temp), FX-CG 10
Linux, c'est le seul endroit où tu peux taper ls.
Planète-Casio est un site communautaire indépendant et n'est donc pas affilié à Casio | Toute reproduction de Planète-Casio, même partielle, est interdite
Les fichiers, programmes et publications postés sur Planète-Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des copyrights
Merci de respecter le travail des autres ! | CASIO est une marque déposée par CASIO Computer Co., Ltd