1ère amélioration de Graph 25+Pro en Graph 35+USB
Posté le 02/01/2017 16:05
Les Casio Graph 25+Pro/E, Graph 35+USB/E, Graph 75/85/95 utilisent des hardwares très similaires.
Si bien qu'il est possible, après quelques petites modifications mineures, de faire tourner l'OS prévu pour un modèle sur un modèle différent.
Il est par exemple possible depuis des années de
transformer avantageusement sa Graph 35+USB/E en Graph 75 ou même sa Graph 85 en Graph 75/95.
En ce jour historique du 2 janvier 2017, je viens de réussir la 1ère transformation de Graph 25+Pro en Graph 35+USB !
J'ai donc pris l'OS Graph 35+USB, j'ai appliqué les patchs usuels de la transformation Graph 35+USB->Graph 75, et j'ai développé plusieurs patchs spécifiques pour cette transformation Graph 25+Pro->Graph 35+USB.
Désormais, 14 applications intégrées dans le menu au lieu de 9 !
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7680)
On rajoute donc entre autres les applications de graphes de fonctions paramétrées, de suites récurrentes, de coniques et de fonctions financières, toutes fonctionnelles bien évidemment !
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7675)
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7676)
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7677)
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7678)
Graph 25+Pro et Graph 35+USB utilisent la même carte mère, et même la même puce ASIC. Ce qui veut dire que la mémoire principale était honteusement bridée sur Graph 25+Pro.
Accède désormais à 61K de mémoire principale au lieu de 20K !
Dans l'application RUN.MAT, bénéficie désormais des menus de distributions
(loi normale, binomiale...) et de calcul matriciel !
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7672)
Une petite déception toutefois, la saisie naturelle et les calculs exacts ne marchent pas.
L'option pour les activer est même manquante du menu de configuration :
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7674)
Il faut croire que l'OS Graph 35+USB vérifie quelque chose sur le matériel pour cette fonctionnalité.
Et je crois que c'est logique, vu que le modèle international équivalent fx-9750GII n'en dispose pas.
C'est sûrement patchable, mais j'ignore encore comment.
La difficulté technique principale que j'ai eue, c'est que les Graph 25+Pro/E ont une mémoire Flash de seulement 2Mio, au lieu de 4Mio pour tous les autres modèles.
Il faut donc arriver à faire rentrer l'OS là-dedans, sachant que plusieurs zones sont réservées au fonctionnement du système en fin de ROM.
Tous les patchs sont basés là-dessus : relocalisation de plusieurs choses et de tous les appels concernés pour que l'on reste dans la limite des 2Mo.
Et avec la méthode actuelle pas le choix - il faut gagner de la place en ne conservant qu'1 langue non-anglaise intégrée au lieu de 4.
Perso, j'ai gardé le français :
![](https://tiplanet.org/forum/gallery/image.php?mode=thumbnail&album_id=494&image_id=7686)
Avec la méthode actuelle, les images d'OS patchables doivent avoir leur code exécutable qui se termine (et donc les données de langues non-anglaises qui commencent) avant 0x1DFEE0 (1,875Mio) et c'est très limite.
Je n'ai pas pris le temps de regarder toute la bible Planete Casio fichier par fichier, mais à priori il est donc exclu à date de programmer sur sa Graph 25+Pro un OS de Graph 75/85/95 car sensiblement plus gros.
Les OS Graph 35+USB/E SH4 (à partir de la version 2.02) sont eux aussi il me semble légèrement plus gros et donc à oublier pour le moment.
Surtout d'ailleurs que fxRemote ne gère même pas les Graph 25+Pro/E SH4, donc même si on pouvait patcher correctement, on ne pourrait rien faire avec le fichier obtenu.
Mais rien ne prouve que l'on ne pourrait pas relocaliser les choses différemment et donc gagner un peu de place pour faire rentrer des OS un peu plus gros.
Citer : Posté le 02/01/2017 16:13 | #
Ouah, alors ça c'est quelque chose ! Bien joué Critor !
Et donc, euh... t'as bougé des bouts de l'OS comme ça ? Quelques détails de plus m'intéresseraient volontiers... :3
Citer : Posté le 02/01/2017 16:20 | #
Le grand, le beau, le majestueux GG.
Mon blog ⋅ Mes autres projets
Citer : Posté le 02/01/2017 16:46 | #
Et donc, euh... t'as bougé des bouts de l'OS comme ça ? Quelques détails de plus m'intéresseraient volontiers... :3
Les patchs supplémentaires (non déjà appliqués pour la transformation Graph 35+USB/E->Graph 75) sont :
- Les OS Graph 35+/75/85/95 sauvegardent et restaurent alternativement 2 images de la mémoire principale, en 0x00250000 et 0x00260000.
C'est beaucoup trop haut, il faut le faire en 0x001E0000 et 0x001F0000 comme l'OS Graph 25+Pro.
Rechercher tous les A0250000 et A0260000 pour les remplacer par A01E0000 et A01F0000.
- De même, les OS Graph 35+/75/85/95 ont un bloc 0x24FEE0-0x24FFFF avec entre autres la table des langues non-anglaises et la somme de contrôle.
C'est encore une fois au-delà de la zone des 2Mo, il faut le copier en 0x1DFEE0.
- En conséquence, patcher tous les appels en 0x24FE?? et 0x24FF?? par des 0x1DFE?? et 0x1DFF??.
Rechercher tous les A024FE?? et A024FF?? pour les remplacer par A01DFE?? et A01DFF??.
- Remplir maintenant la zone 0x1E0000-0x1FFFFF avec des 0xFF.
- Tronquer le fichier à 0x200000.
- Modifier le nombre de langues non-anglaises intégrées de 4 à 1 en 0x1DFFF3.
- Si l'on veut une autre langue que l'Espagnol :
-- lire les offsets de langues en 0x24FFD0 (espagnol), 0x24FFA0 (allemand), 0x24FF70 (français) et 0x24FF40 (portugais).
-- lire les tailles de langues en 0x24FFD4 (espagnol), 0x24FFA4 (allemand), 0x24FF74 (français) et 0x24FF44 (portugais).
-- écraser les données présentes à l'offset de l'espagnol par les données présentes à l'offset de la langue choisie
-- écraser la taille de l'espagnol en 0x24FFD4 par la taille de la langue choisie
- lire l'offset de la 1ère langue non-anglaise en 0x24FFD0
- lire la taille de la 1ère langue non-anglaise en 0x24FFD4
- aller à la fin de la langue en question (offset+taille) et remplir de 0xFF jusqu'à 0x1DFEDF
Après, comme pour les autres patchs :
- supprimer l'identifiant de modèle si présent
- patcher le code de vérification du type de modèle
- patcher la somme de contrôle, ici à 0x1DFFF8, à calculer sur la zone 0x10000-0x1DFFF7
Un dernier patch artificiel, encore une fois pour que fx-Remote se comporte correctement :
- remplacer le Boot code Graph 35+USB (zone 0-0xFFFF) par un Boot Code Graph 25+Pro SH3
Pourquoi y aurait-il si peu d'utilisateurs concernés ?
La Graph 25 n'a pas une popularité similaire à la Graph 35 ?
Citer : Posté le 02/01/2017 16:54 | #
Pour le setup, je me demande si on pourrait pas :
- Transférer un setup de graph 35 (avec l'écriture naturelle activée) avec FA-124;
- Selon simlo, un éditeur de setup global est accessible via le mode de test (https://bible.planet-casio.com/simlo/chm/v20/fx_legacy_Setup.htm ), est ce qu'on pourrait modifier la valeur correspondante;
- Appeler le syscall qui change les valeurs du setup.
(je me rappelle qu'il était possible de mettre des niveaux de bleus sur graph 65 avec un backup de graph 35, donc ça pourrait marcher)
Sinon c'est que le bloquage est au niveau du menu run-mat et que l'OS s'en fout de la valeur du setup. :/ Mais ça devrait pas être difficile de l'enlever (d'ailleurs, pourquoi ils ont enlevé l'écriture naturelle à l'international...?)
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 02/01/2017 17:13 | #
Impressionnant, une bonne somme de travail j'imagine
La Graph 25 n'a pas une popularité similaire à la Graph 35 ?
Le passage en 75+ apporte les Add-in, là le gain est peut-être moins grand. Et les utilisateurs de 25 sont peut-être moins attirés par une upgrade.
Comment as-tu fait pour savoir à quoi les zones mémoires correspondent ? Par exemple celui ci : "Modifier le nombre de langues non-anglaises intégrés de 4 à 1 en 0x1DFFF3."
En tout cas, c'est une belle prouesse technique bravo !
Citer : Posté le 02/01/2017 17:50 | #
Certes, pas d'add-ins ici donc le gain absolu est inférieur.
Mais les utilisateurs de Graph 25+Pro partent de si bas, que je ne suis pas sûr que le gain relatif soit négligeable.
La transformation rajoute entre autres :
- 41K de mémoire principale pour les programmes
- calcul matriciel (nécessaire pour le BAC S/ES)
- lois de probabilité binomiales et normales (nécessaires dès la Première)
- suites récurrentes (nécessaires dès la Première)
- coniques (un peu en Première S, un peu plus en STD2A)
- fonctions paramétrées (dès la Seconde)
- fonctions financières
Pour tous ceux qui se sont faits avoir en optant pour ce modèle bridé dont les fonctionnalités ne sont pas du tout en adéquation avec l'évolution des derniers programmes scolaires, c'est enfin l'occasion de réparer une injustice.
Pour le nombre de langues en 0X1DFFFF3, c'était au départ juste une intuition - vu que la valeur était de 4 comme pour le nombre de langues non-anglaises intégrées, et qu'elle faisait justement suite à une série de 4 informations similaires, que cette série était préfixée du mot "CASIOABSLangdata", que cette zone était toujours à la même adresse peu importe la taille de l'OS, et vu qu'enfin elle était au-delà de la zone des 2Mo je devais obligatoirement creuser la question.
Citer : Posté le 02/01/2017 17:58 | #
Ah ouais donc t'as bien remplacé en bloc le code
Je mettrai pas ma main à couper que c'est infaillible, mais c'est du bon boulot.
Oh, tout simplement parce qu'il y a moins d'utilisateurs de G25+ que de G35+, enfin il me semble. Je me trompe ?
Citer : Posté le 02/01/2017 18:26 | #
Oh, tout simplement parce qu'il y a moins d'utilisateurs de G25+ que de G35+, enfin il me semble. Je me trompe ?
J'ai une idée du classement au lycée.
Pour la rentrée 2015 parmi les néo-lycéens, on avait à ce que je peux observer autour de moi :
1ère : Casio Graph 35+E (37,8% - source catalogue Casio rentrée 2016)
2ème et 3ème : TI-82 Advanced et Casio Graph 25+E (ordre inconnu)
4ème : TI-83 Premium CE
5ème : TI-Nspire CX CAS
et le reste : Casio Graph 75+E, HP Prime, Casio fx-CP400+E, autres TI-Nspire (ordre inconnu)
La Casio Graph 25+E arrive donc bien derrière la Graph 35+E, mais j'ignore le rapport de proportion entre les deux.
Avec un prix à parfois moins de 40€, la Graph 25+E
charmetrompe bien des gens...Citer : Posté le 03/01/2017 17:11 | #
Bravo critor, bien joué pour cette nouvelle incroyable, peut-être une petite news sur Ti-Planet, si tu veux, je peux m'en occuper
PM Générateur
graph100+ bleue
Neuronix9302
2nde GT
Citer : Posté le 03/01/2017 18:06 | #
Y'a rien à dire, c'est du beau boulot.
Joli cadeau en ce début d'année
Citer : Posté le 03/01/2017 18:33 | #
Merci à tous.
@Neuronix9302 Ne t'embête pas, je trouverai le temps de l'annoncer en détails.
Là, je suis sur l'automatisation, avec l'intégration de ces patchs dans la prochaine version de PolyOS.
Ce qui me permettra d'ailleurs de les valider en testant si ça marche aussi bien avec les versions 2.00.
Ajouté le 03/01/2017 à 22:14 :
Je reviens sur les parts de calculatrices graphiques au lycée.
La Graph 35+E est 1ère et a représenté 37,8% des achats neufs sur la période janvier-décembre 2015.
Si l'on remonte à la période juin-septembre 2012, la Graph 35+USB était 1ère et concentrait 31.7% des achats neufs.
Et les autres modèles Casio graphiques faisaient ensemble 19.7%.
Je n'ai pas de données plus récentes sur ces autres modèles.
Si l'on suppose que la tendance n'a pas radicalement changé, on peut supposer que la Graph 25+E est loin derrière la Graph 35+E.
Entre la moitié et les 2/3.
J'ai rassemblé les parts rendues publiques par Casio :
https://tiplanet.org/forum/viewtopic.php?f=61&t=19420#p211134
Citer : Posté le 03/01/2017 22:23 | #
Il me semble que les graph 25+ possède des fonctionnalités en BASIC beaucoup plus limités non ?
Il pourrait être bon de le préciser dans ton listing des améliorations apportés, car d'après moi, c'est l'une des meilleurs amélioration que cela apporte.
Citer : Posté le 03/01/2017 23:07 | #
Remember, the Graph 75/95 firmware uses storage memory and this requires a 4 MB ROM, but the Graph 25+ Pro only has 2 MB!
Yet, if you manage to disable storage memory access, it may work...
Citer : Posté le 04/01/2017 00:59 | #
Thank you for your post, Teamfx.
Even with disabling storage access (I don't know how to yet...), the Graph 75/95 firmwares aren't going to fit with the current patching method.
By the way, at which addresses does the storage start/end ? - Thanks.
I'm currently moving the language table from 0x24FEE0 to 0x1DFEE0, and Graph 35+ firmwares hardly fit by removing 3 of the 4 non-english languages.
An idea would be to move the language table to 0x1EFEE0 instead, and patching addresses in a similar way. I couldn't take the time to test this today, sorry.
If this works, we may consider fitting the bigger Graph 75/95 firmwares by removing their non-english languages.
Of course we wouldn't gain storage access or add-ins support, but vectorial calculus and the spreadsheet icon.
Citer : Posté le 04/01/2017 08:34 | #
Une question me taraude ! Comment à tu transféré tout ça à une graph 25 qui n'a pas de port USB ? Le câble 3PINS se connecte comment au PC ?
Citer : Posté le 04/01/2017 10:26 | #
Bravo !! C'est de beau de voir qu'on arrive sans cesse à repousser les limites imposées par CASIO !
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013
Citer : Posté le 04/01/2017 13:32 | #
As far as I know:
0xA0250000 : MCS backup #1
0xA0260000 : MCS backup #2
0xA0270000 : Some file allocation table
0xA0280000..0xA03FFFFF : Storage memory file data
You could probably disable RAM/MCS backups entirely. So no need to reserve areas 0x1E0000 and 0x1F0000.
Yet, backup all your data on a PC or another calculator before replacing batteries...
Citer : Posté le 04/01/2017 14:05 | #
Voilà, l'état actuel du projet est annoncé en news sur TI-Planet :
https://tiplanet.org/forum/viewtopic.php?f=51&t=19430
Une question me taraude ! Comment à tu transféré tout ça à une graph 25 qui n'a pas de port USB ? Le câble 3PINS se connecte comment au PC ?
Il faut un câble USB(A) - mini-Jack 2.5 émulant un port série.
J'ai plein de problèmes de fiabilité des transferts sur les ordis/systèmes récents avec le câble Casio officiel, qui de plus est abusivement cher, coût d'une 2ème calculatrice :
http://www.boutique-calculatrice-casio.com/logiciel-casio/26-connexion-pc-fa-124-usb-4971850186878.html
Aucun problème par contre avec le câble de Util-Pocket, qui en prime est bien plus abordable :
http://www.util-pocket.biz/catalog/product_info.php?cPath=104&products_id=122
Citer : Posté le 04/01/2017 14:07 | #
@critor k, mais tu me dis, si un jour tu as besoin que je te fasse quelque chose, t'aider dans tes projets, je suis disponible 24/7
PM Générateur
graph100+ bleue
Neuronix9302
2nde GT
Citer : Posté le 04/01/2017 14:10 | #
Merci à toi.
Ben si tu connais le langage assembleur SH3, comprendre pourquoi la calculatrice Graph 25+Pro transformée affiche un message d'erreur n°851 "Undefinition Error" avant l'extinction - c'est gênant.
Voir la fin de la news TI-Planet pour les détails :
https://tiplanet.org/forum/viewtopic.php?f=51&t=19430#p211205
Et bien sûr, ce qu'il faut faire pour patcher ça correctement.