Ces calculatrices scientifiques étaient les premières à exploiter un écran matriciel pour :
- permettre la saisie des calculs en écriture naturelle - fini les parenthèses à mettre de partout !
- afficher les résultats en écriture naturelle
- à cette fin, exploiter un petit moteur de calcul exact
La technologie logicielle développée par Casio est connue sous plusieurs noms, '2D' en France, "Natural Display", "Natural Textbook Display" ou encore "Natural VPAM" à l'international. Voici la différence apportée en un coup d'oeil :
sans 2D / "Natural Display" | avec 2D / "Natural Display" |
De grands constructeurs de calculatrices s'engagèrent alors sur les pas de Casio avec le développement de technologies similaires :
- Texas Instruments avec sa gamme de calculatrices 'MultiView' à la rentrée 2007, dont la TI-Collège Plus pour la France, toutes équipées de la technologie 'MathPrint'
- Sharp à partir de la rentrée 2008, avec ses nouvelles calculatrices équipées de la technologie 'WriteView'
A la rentrée 2009, Casio récidivait avec la gamme "ES Plus" à l'international et la fx-92 Collège 2D+ en France, apportant améliorations à la technologie logicielle et corrections de failles logicielles ou matérielles qui permettaient d'étendre les fonctionnalités de sa calculatrice puisque Casio utilisait la même carte mère avec le même firmware pour l'ensemble de la gamme.
Sur cette période de bientôt 10 ans, les calculatrices de gamme ES/2D et ES+/2D+ ont conservé leurs secrets, et notamment le type de processeur utilisé.
Mais aujourd'hui pour la nouvelle année, il est grand temps d'y mettre un terme !
Un émulateur de calculatrices de la gamme ES+/2D+ a été développé par Casio, le "fx-ES Plus Manager", mais est payant. La dernière fois que j'ai vu circuler une version démo d'un tel émulateur Casio, elle testait la présence physique du CD original protégé contre la copie dans le lecteur, et le pire d'ailleurs est que cette vérification échouait systématiquement sous Windows 8.
Nous avons bien un ligne un émulateur gratuit de fx-82 ES leaké il y a plusieurs années par un formateur des défunts IUFM. Il est toutefois peu intéressant pour les enseignants français, car émulant d'une part la gamme ES antérieure à la gamme ES+/2D+ actuelle, et émulant d'autre part le modèle international d'entrée de gamme fx-82 avec un clavier assez différent et un nombre d'applications intégrées plus restreint. Il est d'autre part peu intéressant pour les développeurs communautaires puisque comme vous le voyez ci-contre il est réduit à seulement trois fichiers de données brutes. Les possibilités de personnalisation et de 'reverse-engineering' sont donc limitées.
Toutefois, nous avons donc vu dans un article précédent que HP avait littéralement copié les Casio de gamme ES/2D puis ES+/2D+ avec ses calculatrices HP-SmartCalc 300s puis HP-300s+.
Outre leur surperbe design, ces calculatrices HP ont un autre intérêt beaucoup plus essentiel... c'est que la politique de l'entreprise est de distribuer des émulateurs gratuits, que l'on trouve notamment sur le site du grossiste français officiel !
Avec le "HP-300s+ Virtual Calculator", nous avons donc enfin un émulateur gratuit de calculatrice de la gamme ES+/2D+. Même si c'est beaucoup mieux, il ne pourra toutefois pas être utilisé de façon optimale par les enseignants français, puisque la partie supérieure du clavier est assez différente.
Mais regardons un petit peu ce que contient cet émulateur... Bien des choses intéressantes visiblement, il est beaucoup plus bavard que l'antique émulateur Casio gratuit :
- une image de la HP-300s+ au format BMP
- un fichier kml définissant le skin de l'émulateur avec la référence du BMP, sa taille, et les zones cliquables
- deux ROMs de 256Ko pour les HP-SmartCalc 300s et HP-300s+
Le format du fichier KML nous rappelle d'ailleurs étrangement celui des skins pour Emu48, émulateur de calculatrices HP-48 et dérivées...
Mais gardons cela pour plus tard, et plongeons-nous sans plus attendre dans la ROM, afin d'extirper enfin tous ses secrets à la gamme de calculatrices ES+/2D+ !
Nous sommes dans l'immédiat surpris par son format, avec les données n'utilisant qu'un maximum de 4-bits par octet, les 4 autres bits étant toujours nuls. C'est un format facilitant usuellement l'émulation de processeurs 4-bits, et c'est notamment le format de ROM utilisé par l'émulateur Emu48 encore une fois, tiens donc...
Après réécriture dans un format plus usuel, la ROM ferait donc en réalité 128Ko.
L'analyse de l'assembleur utilisé nous permet de réduire les processeurs possibles à une petit liste, dont le 'ePS6800', un processeur 8-bits ayant l'avantage d'être intégré avec un contrôleur d'écran 98x32 pixels, celui des calculatrices Casio permettant d'allumer 96x31 pixels, les lignes/colonnes manquantes étant probablement utilisées pour la ligne d'afficheurs de mode en haut d'écran.
Reste maintenant à confirmer cette hypothèse, l'association des mots 'Casio' et 'ePS6800' ne donnant rien de probant sous Google.
Toutefois, une part très importante des calculatrices scientifiques TI, HP, Casio et Canon ainsi que quelques-uns de leurs modèles graphiques sont actuellement fabriquées à Taïwan chez "Kinpo Electronics".
Pour une raison que j'ignore, l'usine détaille sur une page à moitié cassée que l'on peut retrouver intégralement dans les Archives du Web, les spécifications de quelques-uns des très nombreux modèles fabriqués, dont la TI-84 Plus Silver Edition pour laquelle il nous apprend que le processeur z80 caché dans la puce ASIC '84PLCR/TA1' serait un 'T6UN0AFG'.
Juste en-dessous, on trouve une calculatrice Citizen SR-270X, dont les spécifications sont les suivantes :
- processeur ePS6800
- écran 96x31 pixels
- RAM 8Ko
- ROM 64Kwords (c'est-à-dire 128Ko)
L'affichage naturel et le clavier visibles ci-contre ressemblent là encore à s'y méprendre aux Casio ES+/2D+...
Hélas, nous ne disposons pas de ce modèle pour vérifier nos hypothèses.
Mais heureusement, il a déjà été testé en profondeur par le Musée Datamath, qui conclut son article en disant que c'est à 99% une copie de Casio fx300 ES - bingo !
Avec désormais trois sources différentes concordantes nous pouvons conclure - nous avons enfin, après 10 ans, percé le secret de la gamme de calculatrices Casio ES/2D :
- processeur ePS6800
- RAM 8Ko
- ROM 128Ko
Une découverte historique !
En effet une fois le type de processeur connu, c'est la porte ouverte à la programmation assembleur! Imaginez un contrôle total de ce qu'affiche votre Casio Collège 2D+ sur son superbe écran matriciel!
Toutefois avant d'obtenir cela sur une véritable calculatrice, il faut:
- analyser les images des ROMs afin de trouver une faille dans le firmware permettant l'exécution de code
- développer un moyen de saisir les programmes assembleur facilement, et si possible de les stocker durablement
Les TI-85, TI-82, TI-92 et TI-Nspire elles non plus n'avaient aucun support de l'assembleur à l'origine, et elles ont pourtant toutes été ouvertes.
Même la TI-81 malgré l'absence de port de communication y a été ouverte, et une faisabilité a également été démontrée pour la TI-80 malgré le même handicap, même si le projet n'avance plus à ce jour.
Il n'y a aucune raison pour que nous qualifions l'ouverture de la Casio Collège 2D+ et de ses sœurs d'impossible à priori, alors qu'elles disposent également de 50 touches et de 8Ko de RAM comme la TI-81 !
Une autre application des failles logicielles éventuelles serait de permettre le changement de mode de la calculatrice, c'est-à-dire l'activation sur les calculatrices d'entrée de gamme fx-82 ES Plus et fx-92 Collège 2D+ des fonctionnalités des modèles supérieures, incluses dans le firmware mais désactivées.
En effet, toutes les failles logicielles et matérielles qui permettaient ces changements de mode sur la gamme ES/2D ont été systématiquement corrigées par Casio pour la gamme ES+/2D+. Avoir le code sous les yeux devrait permettre d'en retrouver d'autres beaucoup plus facilement.
Finalement, en copiant les calculatrices Casio ES/2D, Citizen et HP ont rendu un grand service à la communauté, et je leur adresse un grand merci !
Téléchargements :