X49gp

Un article de Mwyann.info.

Attention : Ce programme n'est pas de moi. Je ne serais pas capable de réaliser un tel programme. Il a été écrit par "Eddie" Christian Dost, de juin 2006 à mars 2007.

Sommaire

Fonctionnalités

Cet émulateur fonctionne très bien,mais est un peu lent (environ 3 à 4 fois moins rapide que l'originale, sur mon AMD 3200+). Il implémente :

  • L'émulation ARM
  • L'écran
  • Les touches
  • Les différentes mémoires (IRAM, ERAM, Flash, SD)

Il semble aussi émuler le buzzer et l'USB, mais je n'ai pas trop testé.

La dernière source téléchargeable (dont le lien est présent plus bas) est compilable (juste une ligne à corriger dans le main.c), mais l'auteur a malheureusement délaissé certaines informations à propos de comment utiliser son émulateur : notamment, il manque un fichier de configuration. En effet, quand on essaye de lancer l'exécutable, celui ci nous demande un <config file>.

Alors, après avoir cherché ce qui pourrait bien manquer, j'ai fini par trouver ce qui devait composer le fichier de configuration de cet émulateur.

Fichier de configuration

Voici le contenu de ce fichier de configuration (appellons-le configfile.txt) :

[x49gp]
filename=4950_92.bin
basename=x49gp-20070306
[flash]
filename=flash
[sram]
filename=sram
[s3c2410-sram]
filename=s3c2410-sram
[s3c2410-sdi]
filename=sdcard

Sauvez ce fichier, puis lancez x49gp comme ceci :

./x49gp configfile.txt

Et voilà ! Une belle HP49G+ apparaît devant vos yeux ébahis ! A noter que si lorsque vous relancez votre HP émulée, le programme s'arrête immédiatement avec une Segmentation fault, recréez ce fichier configfile.txt (le programme sauvegarde l'état de la calculatrice, mais ne la reprend pas correctement). Il y aura juste un soft reset, comme quand vous faites un ON-C sur la calculatrice.

Si vous voulez vous servir de la carte SD, pas de problème : la commande make sdcard vous créera une carte SD de 64 Mo, préformatée en FAT. Si vous avez une vraie carte SD, vous pouvez en créer une image avec la commande dd, et en lui donnant le nom de fichier sdcard. L'émulateur se servira de cette image. Vous pouvez aussi créer un lien symbolique vers le nom de device (/dev/...) pour travailler directement sur la vraie carte SD, cependant je vous le déconseille car si l'émulateur (encore en tests) corromp votre carte SD, vous risquez de perdre définitivement des données !

Sources améliorées

Cependant, pour le commun des mortels, la plupart des messages qui s'affichent dans la console sont plutôt cabalistiques, et ne servent sans doute à rien. Ce ne sont que des messages de debug, et en plus ça fait ralentir l'émulation. C'est pourquoi j'ai eu l'idée d'en retirer la plupart, et également en passant améliorer le Makefile. Vous pouvez télécharger ce fichier en regardant la rubrique Liens, en bas de la page.

Changements dans le Makefile :

  • Suppression des directives de debug (moins de texte et plus d'action !)
  • Ajout de run : tapez directement make run pour compiler, générer les fichiers et lancer la calculatrice !
  • Ajout de softreset : supprime le fichier configfile.txt (en cas de Segmentation fault).
  • Ajout de hardreset : supprime tous les fichiers de configuration et de mémoire (sortie d'usine).
  • Ajout de clean-all : fais un clean des sources, ainsi qu'un hardreset (pratique pour redistribuer les souces sans les fichiers mémoire inutiles).

Liens