Page 1 of 1

1ère transformation de Graph 25+Pro en Graph 35+USB

Unread postPosted: 04 Jan 2017, 13:57
by critor
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é :
  • 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. ;)

3761Maté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 !

3773Mais 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 ! :P

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
Et dans le cas d'un OS Graph 35+USB/E programmé sur une Graph 25+Pro/E, l'OS continuait donc à appeler ces adresses qui n'avaient aucune existence physique sur la machine en question.

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
76807671Et voici donc enfin en ce jour historique la toute première Graph 25+Pro au monde à faire tourner un OS de Graph 35+USB stable, en version 2.01 ! :D

Nous obtenons bien désormais 14 applications intégrées au menu d'accueil au lieu de 9, avec en prime : :bj:
  • DYNA : graphes de fonctions paramétrées (Seconde) :)
  • RECUR : suites numériques (Première) :D
  • CONICS : coniques (séries S et STD2A) :)
  • TVM : fonctions financières
  • E-CON2 : acquisition de mesures physiques
Ces applications sont bien évidemment toutes fonctionnelles :
76757676767776787679


76737672L'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 : :bj:
  • calcul matriciel (Terminale S/ES) :D
  • fonction de distribution probabiliste (loi normale, binomiale... Première) :D
7674Par contre, petite déception, la saisie en écriture naturelle et le calcul exact ne sont pas activés ni même activables, l'option étant manquante dans le menu de configuration de l'application. :(
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.

7685Comme 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. :mj:
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 ! :bj:


7687Comme 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.

7688Autre 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... :#roll#:



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 ! ;)

Re: 1ère transformation de Graph 25+Pro en Graph 35+USB

Unread postPosted: 04 Jan 2017, 14:05
by Ti64CLi++
Ah, tu l'as fait, bravo :bj:
Espérons que l'on pourra un jour mettre un OS de G75+/E ;)
Bonne chance :)

Re: 1ère transformation de Graph 25+Pro en Graph 35+USB

Unread postPosted: 05 Jan 2017, 18:50
by critor
Plus de problème à l'extinction - on m'a fourni un patch qui corrige l'erreur inconnue n°851 - merci ! :bj:
Donc plus aucun inconvénient - c'est releasable dès maintenant. :)

Re: 1ère transformation de Graph 25+Pro en Graph 35+USB

Unread postPosted: 05 Jan 2017, 18:52
by Ti64CLi++
Ok, et vu que tu as réussi pour graph 25+, penses-tu qu'il serait possible de faire ça avec un OS de graph 75 sur Graph 35+ non usb bleue et blanche?

Re: 1ère transformation de Graph 25+Pro en Graph 35+USB

Unread postPosted: 05 Jan 2017, 19:16
by critor
Non, la dernière Graph 35+ non-USB n'a absolument rien à voir avec la Graph 35+USB, à part le boîtier qui est commun.
Pas de Boot Code ni de mémoire Flash reprogrammable dedans. :(

Re: 1ère transformation de Graph 25+Pro en Graph 35+USB

Unread postPosted: 06 Jan 2017, 14:49
by critor
Pour l'absence de calcul exact / écriture naturelle, c'est une erreur de ma part.
L'image 2.01 testée est en fait celle d'une fx-9750GII, modèle international comparable à la Graph 35+USB par son positionnement dans la gamme, mais qui ne dispose pas de ces fonctionnalités.

C'est d'ailleurs pour ça que l'OS est relativement petit et rentre dans la zone 0x010000-0x1DFFE0.

Les OS de Graph 35+USB avec calcul exact / écriture naturelle sont sensiblement plus gros et ne rentrent pas.
Il faut donc que l'on arrive à relocaliser les choses autrement.

L'OS normalement alterne entre 2 zones de backup RAM à chaque extinction/rallumage de la machine (donc la RAM ne reste pas alimentée calculatrice éteinte, ce qui permet une autonomie à Off véritablement extraordinaire par rapport aux autres modèles, comme déjà vu lors du test d'autonomie en mode examen).
Les 2 zones de backup RAM en 0x250000 et 0x260000 ont ici été relocalisées en 0x1E0000 et 0x1F0000 (d'où la limitation à 0x1DFFE0 ci-dessus).

Je suppose qu'il y en a 2 pour économiser la durée de vie des secteurs de la mémoire Flash, même si en pratique pour une utilisation de 2-3 ans au lycée ce critère est à mon avis négligeable.

Si l'on pouvait patcher l'OS pour qu'il n'utilise plus qu'une seule zone de backup RAM, en 0x1F0000, on libérerait alors 64Kio supplémentaires pour les langues non-anglaises et les OS plus gros de Graph 35+USB voir même Graph 85/75.

Re: 1ère transformation de Graph 25+Pro en Graph 35+USB

Unread postPosted: 06 Jan 2017, 22:24
by critor
Voilà, on a réussi à gagner 64Ko via la méthode du post précédent. :)

Maintenant, les OS Graph 35+USB un peu plus gros que les OS fx-9750GII arrivent à rentrer (certes avec quelques langues en moins). ;)
Voici donc pour la première fois au monde, saisie naturelle + calcul exact sur une Graph 25+Pro : :D
7699

Une fois transformée, la Casio Graph 25+Pro, dernière à notre classement de rentrée 2016, devance donc la TI-82 Advanced ! :bj: