Page 1 of 1

Le processeur des calculatrices Collège 2D+ enfin découvert!

Unread postPosted: 01 Jan 2015, 15:47
by critor
Pour les rentrées 2005 à 2007, Casio révolutionnait le monde des calculatrices scientifiques avec la gamme ES à l'international et la fx-92 Collège 2D en France.

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"
ImageImage
ImageImage
ImageImage
ImageImage

Image Image Image


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'
Mais d'autres marques ont fait le choix de ne pas investir en recherche et développement dans ce domaine, et de copier bêtement le travail de Casio. Parmi eux Auchan avec la CS-12+, Canon avec les F-789SGA et F-792SGA et HP avec la HP-300s+.

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. :mj:
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 :bj:
  • un fichier kml définissant le skin de l'émulateur avec la référence du BMP, sa taille, et les zones cliquables :bj:
  • deux ROMs de 256Ko pour les HP-SmartCalc 300s et HP-300s+ :#fou#:
Contrairement à l'antique émulateur Casio gratuit, il devrait donc être possible ici de créer un skin fx-92 Collège 2D+ pour les enseignants français, en modifiant tout simplement les fichiers BMP et KML !
Le format du fichier KML nous rappelle d'ailleurs étrangement celui des skins pour Emu48, émulateur de calculatrices HP-48 et dérivées... :#roll#:

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)
Des spécifications qui collent parfaitement à celles des calculatrices Casio ES+/2D+ supposées au cours de cet article.
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 ! :bj:


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! :bj:
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
Impossible selon vous?...
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 :

Re: Le processeur des calculatrices Collège 2D+ enfin découv

Unread postPosted: 02 Jan 2015, 17:10
by gildasd
8Ko?
C'est pas un peu juste pour les 10 mémoires permanentes?
A,B,C,D,E,F,M,X,Y et M+

Re: Le processeur des calculatrices Collège 2D+ enfin découv

Unread postPosted: 02 Jan 2015, 18:08
by critor
Je ne vois pas vraiment le problème.

Sur les TI-z80 par exemple, un nombre prend en mémoire 18 octets.
Avec 10 nombres, on peut donc estimer autour de 180 octets, ce qui est bien loin de 8 Ko = 8192 octets.

Re: Le processeur des calculatrices Collège 2D+ enfin découv

Unread postPosted: 02 Jan 2015, 19:20
by Victor D
critor wrote:Je ne vois pas vraiment le problème.

Sur les TI-z80 par exemple, un nombre prend en mémoire 18 octets.
Avec 10 nombres, on peut donc estimer autour de 180 octets, ce qui est bien loin de 8 Ko = 8192 octets.



Pff de toute façon le problème n'est pas là, puisque bien que je trouve que cette calculatrice est bien pour son prix, cela reste son gros défaut, car à chaque mise hors tension de la calculatrice les mémoires stockées auparavant que ce soit les calculs effectuées ainsi que les valeurs stockées dans les variables A, B, C, D, E, F, M, M+? X? Y à l'aide de la touche calc ou sto sont effacées automatiquement !!! La solution pour les garder serait de laisser la calculatrices allumée mais les piles seraient vites à plats et puis de toute façon le problème ne se pose pas puisqu'au bout d'un certain temps la calculatrice s'éteint automatiquement !

Re: Le processeur des calculatrices Collège 2D+ enfin découv

Unread postPosted: 04 Jan 2015, 13:41
by Mingerton
Victor D wrote:à chaque mise hors tension de la calculatrice les mémoires stockées auparavant que ce soit les calculs effectuées ainsi que les valeurs stockées dans les variables A, B, C, D, E, F, M, M+? X? Y à l'aide de la touche calc ou sto sont effacées automatiquement !!!

Euh... non. Les valeurs stockées dans les variables ne s'effacent pas à chaque extinction, pas sur la gamme ES+ en tout cas. (Testé sur Collège 2D+)

Par contre c'est vrai pour les calculs, mais est-ce vraiment un gros défaut ? On n'entre pas souvent de gros calcul sur ce type de machine. Mais je comprends que ça puisse être rageant si on le fait de le perdre quand la calculatrice fait son APD. ;)

Re: Le processeur des calculatrices Collège 2D+ enfin découv

Unread postPosted: 04 Jan 2015, 14:24
by Victor D
Mingerton wrote:
Victor D wrote:à chaque mise hors tension de la calculatrice les mémoires stockées auparavant que ce soit les calculs effectuées ainsi que les valeurs stockées dans les variables A, B, C, D, E, F, M, M+? X? Y à l'aide de la touche calc ou sto sont effacées automatiquement !!!

Euh... non. Les valeurs stockées dans les variables ne s'effacent pas à chaque extinction, pas sur la gamme ES+ en tout cas. (Testé sur Collège 2D+)


Ah oui c'est vrai ! J'ai raconté n'importe quoi, j'ai confondu ! Mais pour les calculs non ce n'est pas un gros défaut mais bon ce n'est pas très pratique disons ! J’espère que ce ne sera pas pareil sur la Casio ClassWiz ! ;)