Sauvegarde ROM fx-5800P + sortie 2 émulateurs fx-5800P !
Posted: 24 Jan 2024, 00:07
Dans un fil précédent nous évoquions 2 émulateurs universels de calculatrices scientifiques Casio à processeur nX-U8/100 :
En effet, ils permettaient de reproduire sur ton ordinateur un nombre phénoménal de 141 modèles différents à ce jour :
- BeuCalc par EnderFire09, directement utilisable après l'installation de Java
- et u8-emu-frontend par Steveyboi, une interface pour le coeur d'émulation u8_emu, à récupérer et compiler soi-même sur GitHub
En effet, ils permettaient de reproduire sur ton ordinateur un nombre phénoménal de 141 modèles différents à ce jour :
- les scientifiques génération ES de 2004 (13 modèles dont la fx-92 Collège 2D de 2005 en France)
- les financières réutilisant la technologie ES (2 modèles : fc-100V et fc-200V de 2012)
- la quatre opérations réutilisant le processeur nX-U8/100 (1 modèle : fx-82 Solar II de 2016)
- les scientifiques génération ES Plus de 2008 (44 modèles dont la fx-92 Collège 2D+ en France)
- les scientifiques génération EX Classwiz de 2014 (46 modèles dont en France les fx-92 Spéciale Collège de 2015 puis fx-92+ Spéciale Collège de 2018)
- les scientifiques génération CW Classwiz de 2022 (35 modèles dont la fx-92 Collège Classwiz de 2023 en France)
Dans une actualité suivante nous te testions la Casio fx-5800P. Sortie en 2006, la fx-5800P est une formidable calculatrice scientifique hybride fusionnant la technologie 8 bits d'une calculatrice scientifique avec les fonctionnalités d'une calculatrice haut de gamme ou graphique !
En effet, la fx-5800P réutilise clairement le matériel des Casio scientifiques de l'époque (génération ES de rentrée 2004, avec en France la fx-92 Collège 2D dès la rentrée 2005), c'est-à-dire le processeur 8 bits nX-U8/100 cadencé à 0,5 MHz et peut-être également le même microcontrôleur ML610901, mais dans une déclinaison légèrement évoluée. En effet, là où sur les Casio scientifiques tout se passe dans le microcontrôleur, seule puce du circuit, la fx-5800P lui adjoint des puces ROM et RAM externes.
Quant à ses capacités exceptionnelles pour un cœur de calculatrice scientifique, on peut citer :
En effet, la fx-5800P réutilise clairement le matériel des Casio scientifiques de l'époque (génération ES de rentrée 2004, avec en France la fx-92 Collège 2D dès la rentrée 2005), c'est-à-dire le processeur 8 bits nX-U8/100 cadencé à 0,5 MHz et peut-être également le même microcontrôleur ML610901, mais dans une déclinaison légèrement évoluée. En effet, là où sur les Casio scientifiques tout se passe dans le microcontrôleur, seule puce du circuit, la fx-5800P lui adjoint des puces ROM et RAM externes.
Quant à ses capacités exceptionnelles pour un cœur de calculatrice scientifique, on peut citer :
- la possibilité de saisir et exécuter des programmes en langage Casio Basic
- la possibilité de transférer des programmes entre deux calculatrices !
- la possibilité de transférer le système d'exploitation entre deux calculatrice, et ainsi d'effectuer des mises à jour
Avec ceci BeuCalc et u8-emu-frontend n'étaient plus universels, la fx-5800P à processeur nX-U8/100 manquant à leur offre d'émulation.
La fx-5800P avait déjà fait l'objet d'un dumping partiel en 2021.
AndyLithia avait exploité la possibilité de transférer une mise à jour du système d'exploitation entre deux machines, afin de pouvoir intercepter ce dernier en interfaçant un analyseur de signal.
De plus, grâce à sa documentation publique, il avait réussi à connecter la Flash ROM externe, récupérer l'intégralité de son contenu, et identifié les zones mémoire concernées par l'écriture d'une mise à jour système.
AndyLithia avait exploité la possibilité de transférer une mise à jour du système d'exploitation entre deux machines, afin de pouvoir intercepter ce dernier en interfaçant un analyseur de signal.
De plus, grâce à sa documentation publique, il avait réussi à connecter la Flash ROM externe, récupérer l'intégralité de son contenu, et identifié les zones mémoire concernées par l'écriture d'une mise à jour système.
Avant de pouvoir faire quelque chose de concret avec tout ça, il manquait toutefois encore 96 Kio à extraire de la ROM interne au microcontrôleur ML610901B partagé avec les calculatrices scientifiques de génération ES dont la fx-92 Collège 2D en France.
Et hélas la chose s'arrêta là. Comme de plus le contenu de la Flash ROM n'a bien évidemment pas été publié et que AndyLithia n'est plus actif, tout serait à recommencer...
Et hélas la chose s'arrêta là. Comme de plus le contenu de la Flash ROM n'a bien évidemment pas été publié et que AndyLithia n'est plus actif, tout serait à recommencer...
Et bien pour le nouvel an 2024, Yukidamayaki a décidé de s'y remettre avec une toute nouvelle méthode fort ingénieuse.
Il a ici encore exploité le processus de mise à jour officiel, grâce à la documentation du protocole de communication publiée par AndyLithia, afin de pouvoir écrire librement dans la mémoire Flash ROM externe.
1er janvier 2024, il avait réussi à changer le texte de certains menus.
Prochaine étape, écrire en mémoire Flash non plus du texte mais du code machine directement exécutable. Yukidamayaki arrive à injecter dans le système une routine affichant une image.
Dès le 2 janvier, il s'offre même le luxe de d'en faire une version en 3 niveaux de gris, c'est-à-dire d'avoir du code gérant un clignotement de certains pixels puisque l'écran ne supporte pas d'origine les niveaux de gris !
Maintenant que nous pouvons donc enfin exécuter du code machine comme bon nous semble sur fx-5800P, Yukidamayaki avec l'aide de Steveyboi et EnderFire09 finalise une routine d'extraction du contenu ROM.
L'idée est d'afficher le contenu ROM sur la zone matricielle de l'écran, littéralement en représentaiton binaire avec les pixels allumés ou éteints, de filmer la chose, et de reconstruire le contenu ROM côté ordinateur en tenant compte de l'état de chaque pixels sur chacun des écrans successifs.
Avantage remarquable de cette méthode d'extraction par rapport à la précédente, elle permet aussi bien de récupérer le contenu de la Flash ROM externe que celui de la ROM interne au microcontrôleur !
Inconvénient toutefois, la détection de l'état allumé ou éteint de chacun des 96×31 pixels sur la vidéo après chaque rafraichissement risque de ne pas être fiable à 100%.
Pas grave, ça n'empêche pas de poursuivre dans l'immédiat, malgré un contenu ROM sans doute pas 100% identique à l'original.
EnderFire09 travaille également à une mise à jour 0.5 de son émulateur BeuCalc compatible avec la fx-5800P, fonctionnelle dès le 7 janvier !
Formidables outils qui permettent dès maintenant d'explorer le système fx-5800P plus en profondeur.
EnderFire09 découvre par exemple que la fx-5800P dispose d'un menu "Built-in Prog" orphelin, c'est-à-dire bel et bien présent en ROM mais appelé nulle-part par le système. Casio avait apparemment prévu d'avoir une bibliothèque de programmes intégrée à la fx-5800P, avant d'abandonner l'idée.
Bon, on pouvait s'y attendre, d'après l'outil d'autodiagnostic intégré au système d'exploitation, le contenu ROM récupéré est mauvais, la somme de contrôle différant du FB86 attendu.
Mais pas grave, car l'émulateur permet de tester diverses routines en langage machine avant de les envoyer sur une vraie calculatrice.
Le temps de se faire la main sur quelques petits amusements, Steveyboi arrive à finaliser pour le 14 janvier non pas un mais deux visualisateurs de contenu ROM, un en notation ASCII et un en notation hexadécimale :
Et voilà, à force de tester et comparer, le contenu ROM récupéré finit par être corrigé pour être enfin identique à celui de la calculatrice !
2024 donc, les mémoires ROM de la fx-5800P ont enfin pu être toutes les deux extraites correctement 18 ans après sa sortie, et la fx-5800P t'est donc enfin utilisable en émulation sur ton ordinateur !
EnderFire09 a poussé les changements avec le support fx-5800P dans le dépôt u8-emu-frontend, et EnderFire09 vient de te publier une nouvelle version 0.5b2 de son émulateur BeuCalc avec le support fx-5800P !
Il a ici encore exploité le processus de mise à jour officiel, grâce à la documentation du protocole de communication publiée par AndyLithia, afin de pouvoir écrire librement dans la mémoire Flash ROM externe.
1er janvier 2024, il avait réussi à changer le texte de certains menus.
Prochaine étape, écrire en mémoire Flash non plus du texte mais du code machine directement exécutable. Yukidamayaki arrive à injecter dans le système une routine affichant une image.
Dès le 2 janvier, il s'offre même le luxe de d'en faire une version en 3 niveaux de gris, c'est-à-dire d'avoir du code gérant un clignotement de certains pixels puisque l'écran ne supporte pas d'origine les niveaux de gris !
Maintenant que nous pouvons donc enfin exécuter du code machine comme bon nous semble sur fx-5800P, Yukidamayaki avec l'aide de Steveyboi et EnderFire09 finalise une routine d'extraction du contenu ROM.
L'idée est d'afficher le contenu ROM sur la zone matricielle de l'écran, littéralement en représentaiton binaire avec les pixels allumés ou éteints, de filmer la chose, et de reconstruire le contenu ROM côté ordinateur en tenant compte de l'état de chaque pixels sur chacun des écrans successifs.
Avantage remarquable de cette méthode d'extraction par rapport à la précédente, elle permet aussi bien de récupérer le contenu de la Flash ROM externe que celui de la ROM interne au microcontrôleur !
Inconvénient toutefois, la détection de l'état allumé ou éteint de chacun des 96×31 pixels sur la vidéo après chaque rafraichissement risque de ne pas être fiable à 100%.
Pas grave, ça n'empêche pas de poursuivre dans l'immédiat, malgré un contenu ROM sans doute pas 100% identique à l'original.
EnderFire09 travaille également à une mise à jour 0.5 de son émulateur BeuCalc compatible avec la fx-5800P, fonctionnelle dès le 7 janvier !
Formidables outils qui permettent dès maintenant d'explorer le système fx-5800P plus en profondeur.
EnderFire09 découvre par exemple que la fx-5800P dispose d'un menu "Built-in Prog" orphelin, c'est-à-dire bel et bien présent en ROM mais appelé nulle-part par le système. Casio avait apparemment prévu d'avoir une bibliothèque de programmes intégrée à la fx-5800P, avant d'abandonner l'idée.
Bon, on pouvait s'y attendre, d'après l'outil d'autodiagnostic intégré au système d'exploitation, le contenu ROM récupéré est mauvais, la somme de contrôle différant du FB86 attendu.
Mais pas grave, car l'émulateur permet de tester diverses routines en langage machine avant de les envoyer sur une vraie calculatrice.
Le temps de se faire la main sur quelques petits amusements, Steveyboi arrive à finaliser pour le 14 janvier non pas un mais deux visualisateurs de contenu ROM, un en notation ASCII et un en notation hexadécimale :
Et voilà, à force de tester et comparer, le contenu ROM récupéré finit par être corrigé pour être enfin identique à celui de la calculatrice !
2024 donc, les mémoires ROM de la fx-5800P ont enfin pu être toutes les deux extraites correctement 18 ans après sa sortie, et la fx-5800P t'est donc enfin utilisable en émulation sur ton ordinateur !
EnderFire09 a poussé les changements avec le support fx-5800P dans le dépôt u8-emu-frontend, et EnderFire09 vient de te publier une nouvelle version 0.5b2 de son émulateur BeuCalc avec le support fx-5800P !
Téléchargement : BeuCalc 0.5b2
Source : http://discord.gg/QjGpH6rSQQ via https://community.casiocalc.org/topic/7 ... entry64325