1ère transformation de Graph 25+Pro en Graph 35+USB
Posted: 04 Jan 2017, 13:57
Les calculatrices Casio Graph 25+Pro/E, Graph 35+USB/E et Graph 75/85/95 utilisent des cartes mère extrêmement similaires et des puces ASIC identiques.
Il est donc en théorie possible, après quelques petits patchs mineurs, d'installer l'OS prévu pour un modèle sur un modèle différent.
En pratique, plusieurs de ces manipulations avantageuses ont déjà été réalisées et documentées par la communauté :
La Casio Graph 25+Pro/E est pour sa part un modèle extrêmement pauvre en fonctionnalités comme déjà annoncé, ce qui est matériellement ridicule avec un matériel quasiment identique à celui de la Graph 35+USB/E.
Il serait donc là aussi très avantageux de lui programmer l'OS d'une Graph 35+USB/E ou Graph 75/95.
Matériellement, il n'y a que 2 différences entre la Graph 25+Pro/E et la Graph 35+USB/E, modèles utilisant exactement la même carte mère :
Et c'est ce dernier point qui est le principale écueil dans la manipulation.
D'une part, les OS de Graph 35+USB/E et Graph 75/95 font déjà autour de 2Mio, et ne rentrent donc pas en l'état dans une Graph 25+Pro/E.
Oublions donc pour le moment les OS de Graph 75/95 sensiblement plus gros, et concentrons-nous sur les OS de Graph 35+USB/E.
Certaines des premières versions 2.00-2.01 font légèrement moins de 2Mio et nous avions déjà réussi à les faire rentrer dans une Graph 25+Pro !
Mais hélas, cela plantait immédiatement. C'était particulièrement rageant, alors que l'on pouvait voir les icônes supplémentaires du menu d'accueil derrière !
Le plantage était dû au fait que l'OS Graph 35+USB/E est prévu pour accéder à divers choses en mémoire Flash, au-delà des 2 Mio (0x200000) :
Depuis, nous avons développés plusieurs patchs pour :
Nous obtenons bien désormais 14 applications intégrées au menu d'accueil au lieu de 9, avec en prime :
L'application de calculs RUN.MAT bénéficie désormais en prime de fonctionnalités en adéquation avec les dernières évolutions du programme au lycée :
Sans doute l'OS Graph 35+USB/E vérifie-t-il quelque chose sur le matériel quelque part, et ce serait logique vu que le modèle international équivalent fx-9750GII ne bénéficie pas de ces fonctionnalités.
Comme déjà dit plus haut, tous ces modèles utilisent la même puce ASIC, intégrant 512Ko de mémoire RAM.
Sur ces 512Ko, presque tous les modèles réservent 62,7Ko pour le stockage de variables système, dont notamment les programmes.
Tous les modèles sauf un, la Graph 25+Pro/E qui limite la chose de façon totalement artificielle à 20,7Ko.
Mais désormais suite à la transformation, tu as donc accès à la totalité de la page mémoire avec 3 fois plus de place pour tes programmes !
Comme on écrit la table système à 0x1DFEE0, les seuls système programmables à ce jour ne doivent pas déborder de cette adresse.
Pour les OS 2.00-2.01, cela tombe sur les messages de la 2ème des 4 langues non-anglaises intégrées, messages présents à la fin de l'OS, après tout le code exécutable.
En l'état actuel du patch développé, petit inconvénient mineur, faire rentrer l'OS nécessite donc de ne conserver qu'une seule des 4 langues non-anglaises.
Autre inconvénient cette fois-ci un peu plus embêtant - mais à notre avis supportable face aux immenses améliorations des fonctionnalités du modèle, à chaque extinction, que ce soit avec les touches ou via la fonctionnalité d'économie d'alimentation, la calculatrice affiche une erreur n°851.
Rien de grave, la calculatrice s'éteint normalement après avoir validé avec
Mais cela veut dire que la calculatrice ne s'éteindra plus toute seule si on l'oublie allumée, et videra complètement les piles.
Comme cela se passe à l'extinction, c'est donc un problème en rapport avec les 2 sauvegardes de la RAM initialement localisées en 0x250000 et 0x260000, que nous avons déplacées en 0x1E0000 et 0x1F0000.
Nous pensions pourtant avoir patché tous les appels référençant explicitement ces adresses... sans doute avons-nous raté un petit quelque chose quelque part...
Même si en théorie la manipulation peut être effectuée avec toute Graph 25+Pro/E, en pratique elle n'est réalisable à ce jour que sur les vieilles Graph 25+Pro munies d'un processeur SH3, c'est-à-dire venant avec une version système 2.00 ou 2.01.
Les Graph 25+Pro/E plus récentes, venant avec une version système 2.02 ou supérieure, utilisent un processeur SH4 et ne sont pas gérées par l'outil de reprogrammation système fxRemote.
Cet outil semble de plus abandonné depuis des années, sans plus aucune mise à jour ni publication du code source, et nous avons donc fort peu d'espoir pour ces modèles.
Quoi qu'il en soit, à très bientôt on espère pour l'annonce d'un patch amélioré et sa sortie !
Il est donc en théorie possible, après quelques petits patchs mineurs, d'installer l'OS prévu pour un modèle sur un modèle différent.
En pratique, plusieurs de ces manipulations avantageuses ont déjà été réalisées et documentées par la communauté :
- Installation d'un OS Graph 75/95 sur Graph 85, ce qui rajoute :
- calcul exact
- calcul vectoriel (versions 2.04+)
- application intégrée d'acquisition de mesures physiques
- Installation d'un OS Graph 75/95 sur Graph 35+USB/E, ce qui rajoute :
- application intégrée de tableur / feuille de calculs
- calcul vectoriel (versions 2.04+)
- 1,5Mio de mémoire de stockage
- gestion des applications/add-ins
La Casio Graph 25+Pro/E est pour sa part un modèle extrêmement pauvre en fonctionnalités comme déjà annoncé, ce qui est matériellement ridicule avec un matériel quasiment identique à celui de la Graph 35+USB/E.
Il serait donc là aussi très avantageux de lui programmer l'OS d'une Graph 35+USB/E ou Graph 75/95.
Matériellement, il n'y a que 2 différences entre la Graph 25+Pro/E et la Graph 35+USB/E, modèles utilisant exactement la même carte mère :
- les composants du circuit USB sont manquants sur la Graph 25+Pro/E
- la puce Flash-ROM ne fait que 2Mio sur Graph 25+Pro/E contre 4Mio sur tous les autres modèles cités jusqu'ici
Et c'est ce dernier point qui est le principale écueil dans la manipulation.
D'une part, les OS de Graph 35+USB/E et Graph 75/95 font déjà autour de 2Mio, et ne rentrent donc pas en l'état dans une Graph 25+Pro/E.
Oublions donc pour le moment les OS de Graph 75/95 sensiblement plus gros, et concentrons-nous sur les OS de Graph 35+USB/E.
Certaines des premières versions 2.00-2.01 font légèrement moins de 2Mio et nous avions déjà réussi à les faire rentrer dans une Graph 25+Pro !
Mais hélas, cela plantait immédiatement. C'était particulièrement rageant, alors que l'on pouvait voir les icônes supplémentaires du menu d'accueil derrière !
Le plantage était dû au fait que l'OS Graph 35+USB/E est prévu pour accéder à divers choses en mémoire Flash, au-delà des 2 Mio (0x200000) :
- 2 sauvegardes alternées de la mémoire RAM en 0x250000 et 0x260000, utilisées à chaque extinction/rallumage de la machine
- une table système à 0x24FEE0, décrivant entre autes le modèle ciblé, les langues non-anglaises, et la somme de contrôle
Depuis, nous avons développés plusieurs patchs pour :
- relocaliser ces 3 éléments dans la zone des premiers 2Mio, en 0x1DFEE0, 0x1E0000 et 0x1F0000, valeurs utilisées officiellement par l'OS Graph 25+Pro/E
- corriger tous les appels ciblant les anciennes adresses
Nous obtenons bien désormais 14 applications intégrées au menu d'accueil au lieu de 9, avec en prime :
- DYNA : graphes de fonctions paramétrées (Seconde)
- RECUR : suites numériques (Première)
- CONICS : coniques (séries S et STD2A)
- TVM : fonctions financières
- E-CON2 : acquisition de mesures physiques
L'application de calculs RUN.MAT bénéficie désormais en prime de fonctionnalités en adéquation avec les dernières évolutions du programme au lycée :
- calcul matriciel (Terminale S/ES)
- fonction de distribution probabiliste (loi normale, binomiale... Première)
Sans doute l'OS Graph 35+USB/E vérifie-t-il quelque chose sur le matériel quelque part, et ce serait logique vu que le modèle international équivalent fx-9750GII ne bénéficie pas de ces fonctionnalités.
Comme déjà dit plus haut, tous ces modèles utilisent la même puce ASIC, intégrant 512Ko de mémoire RAM.
Sur ces 512Ko, presque tous les modèles réservent 62,7Ko pour le stockage de variables système, dont notamment les programmes.
Tous les modèles sauf un, la Graph 25+Pro/E qui limite la chose de façon totalement artificielle à 20,7Ko.
Mais désormais suite à la transformation, tu as donc accès à la totalité de la page mémoire avec 3 fois plus de place pour tes programmes !
Comme on écrit la table système à 0x1DFEE0, les seuls système programmables à ce jour ne doivent pas déborder de cette adresse.
Pour les OS 2.00-2.01, cela tombe sur les messages de la 2ème des 4 langues non-anglaises intégrées, messages présents à la fin de l'OS, après tout le code exécutable.
En l'état actuel du patch développé, petit inconvénient mineur, faire rentrer l'OS nécessite donc de ne conserver qu'une seule des 4 langues non-anglaises.
Autre inconvénient cette fois-ci un peu plus embêtant - mais à notre avis supportable face aux immenses améliorations des fonctionnalités du modèle, à chaque extinction, que ce soit avec les touches ou via la fonctionnalité d'économie d'alimentation, la calculatrice affiche une erreur n°851.
Rien de grave, la calculatrice s'éteint normalement après avoir validé avec
EXIT.
Mais cela veut dire que la calculatrice ne s'éteindra plus toute seule si on l'oublie allumée, et videra complètement les piles.
Comme cela se passe à l'extinction, c'est donc un problème en rapport avec les 2 sauvegardes de la RAM initialement localisées en 0x250000 et 0x260000, que nous avons déplacées en 0x1E0000 et 0x1F0000.
Nous pensions pourtant avoir patché tous les appels référençant explicitement ces adresses... sans doute avons-nous raté un petit quelque chose quelque part...
Même si en théorie la manipulation peut être effectuée avec toute Graph 25+Pro/E, en pratique elle n'est réalisable à ce jour que sur les vieilles Graph 25+Pro munies d'un processeur SH3, c'est-à-dire venant avec une version système 2.00 ou 2.01.
Les Graph 25+Pro/E plus récentes, venant avec une version système 2.02 ou supérieure, utilisent un processeur SH4 et ne sont pas gérées par l'outil de reprogrammation système fxRemote.
Cet outil semble de plus abandonné depuis des années, sans plus aucune mise à jour ni publication du code source, et nous avons donc fort peu d'espoir pour ces modèles.
Quoi qu'il en soit, à très bientôt on espère pour l'annonce d'un patch amélioré et sa sortie !