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 !
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 !
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 !
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 :
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 :
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 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.
Citer : Posté le 04/01/2017 14:12 | #
Ok, je peux peut-être essayé, je l'avais appris il y a quelque temps
PM Générateur
graph100+ bleue
Neuronix9302
2nde GT
Citer : Posté le 06/01/2017 14:47 | #
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.
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).
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.
Ajouté le 06/01/2017 à 22:19 :
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 :
Citer : Posté le 06/01/2017 22:56 | #
Btw, due to size restrictions an SH-4A OS on a Graph 25+ Pro would involve:
- no RAM/MCS backups possible (sectors 0x1E0000/0x1F0000 reclaimed for OS)
- fx-9750GII OS 2.02 or 2.04 firmware only (no natural input/output)
- English + one language (OS 2.02) or English only (OS 2.04)
Citer : Posté le 06/01/2017 23:19 | #
Ah yes... indeed, SH4/2.02+ OS seem to be much bigger.
With the current method, the OS code (without the non-english language strings) must end before 0x1EFEE0.
It's the case for :
- fx-9750GII 2.00-2.01
- Graph 35+USB 2.00-2.01
- Graph 85 2.00-2.01
- fx-9860GAU 2.00-2.01
For a SH4/2.02+ OS, I don't really mind about non-english languages.
It's a very tiny drawback compared to the huge advantages.
But what about the MCS backup ? What are the drawbacks of removing it ?
Is this going to harm the exam mode, as I think its status is stored in the MCS ?
For example, if it becomes easy to kill the exam mode by just removing the batteries, we should avoid to do this on SH4 models.
Citer : Posté le 07/01/2017 01:53 | #
Replace batteries and the user RAM data is gone.
For example, if it becomes easy to kill the exam mode by just removing the batteries, we should avoid to do this on SH4 models.
There are two key codes inside getkey() that will either ask for exam mode to be terminated and reboot, or instantly kill exam mode without rebooting. These codes are no longer assigned to real keys, but I have assigned them to [Shift]+[6] and [Shift]+[3] ...
A single byte needs to be changed in the active MCS backup:
0xFF: no exam mode information
0x95: exam mode is active
0x05: 10 minute wait mode
0x00: exam mode is off
Mode 0x05 requires you to wait 10 minutes after you have manually terminated exam mode. However, this code is disabled in the OS and will just turn exam mode off (at least this is the case for OS 2.05). Maybe this feature was originally planned but regulations have changed since.
Citer : Posté le 07/01/2017 17:37 | #
Citer : Posté le 07/01/2017 18:45 | #
On TI-z80 models, yes. You've got a separate button cell for this.
If you remove all batteries including the button cell, you loose all your RAM content, thus all variables that you didn't move to the Flash.
(and you usually don't move things to the Flash on such calculators, as in most cases the variable will become unusable until you move it back to RAM)
In the context of the LED-exam mode, I've tested all calculators autonomy by starting the exam mode (and thus the exam-LED blinking) and turning the calculator off.
TI-z80 calculators stop blinking after some weeks... and Casio Graph + TI-Nspire calculators after some months.
Now, we know the technical reason behind such a huge difference.
Citer : Posté le 09/01/2017 11:29 | #
Après tout ça, quelle place reste-t-il pour les programmes et ajout d'un addin ? A quand un tutoriel ? Merci Critor
Citer : Posté le 09/01/2017 19:37 | #
Pas d'add-in, non - l'OS Graph 35+ ne les gère pas.
Et de toutes façons, il ne reste déjà quasiment plus de place en Flash.
Je termine la prochaine version de Polyos qui gèrera ça, et oui il y aura un tuto dans la foulée.
Citer : Posté le 10/01/2017 08:13 | #
il reste un petit quelque-chose pour les programmes quand même !?
Citer : Posté le 10/01/2017 10:43 | #
Les programmes vont dans la RAM, pas dans la Flash (â l'exception de la sauvegarde passive). Il reste donc autant de mémoire qu'avant dans la mémoire principale.
Citer : Posté le 10/01/2017 20:34 | #
Même davantage qu'avant.
60Kio après la transformation de la Graph 25+Pro en Graph 35+USB au lieu de seulemement 20Ko d'origine.
Ajouté le 11/01/2017 à 16:02 :
Bien, nous cheminons tranquillement vers une release - 3 choses à finaliser pour ça.
Voici déjà la 1ère, pack avec la nouvelle version fxRemote 2.0.3.26 + 2 patches :
https://tiplanet.org/forum/archives_voir.php?id=301094
Sauf erreur de ma part, la version que nous partagions jusqu'à présent un peu partout était la 2.0.3.25.
Il existait toutefois une 2.0.3.26, apparemment publiée sur casiocalc.org avant d'être effacée par les admins :
- mentionnée dans les commentaires d'un torrent
- mentionnée également sur Casiopeia : http://www.casiopeia.net/forum/viewtopic.php?t=1628
J'ignore ce qu'elle fait de mieux que la 2.0.3.25.
J'ai donc reconstruit le patch fxRemoteE à partir de la version 2.0.3.26, et pour plus de clareté je l'appelle désormais fxRemoteE205.
Il est donc destiné à gérer les calculatrices Graph USB SH4 venant avec un Boot Code 2011.0531.1709, c'est-à-dire les premières Graph 35+E/75+E préchargées avec l'OS 2.05.
Même contrepartie : les modèles USB SH4 à Boot Code 2011.0525.1010 ne sont plus gérés, leur support étant écrasé.
Nouveau patch, qui vient compléter désormais le pack, fxRemote2M4M.
Pour faire rentrer les OS Graph 35+USB sans corruption dans la petite ROM 2Mio des Graph 25+Pro, je modifie légèrement le format officiel.
Je déplace le bloc CASIO normalement écrit (avec la somme de contrôle dedans) à 0x1DFEE0 en 0x1EFEE0. Cela me fait gagner 64Ko - ce qui est beaucoup quand la ROM est déjà pleine à craquer.
Cela permet de faire rentrer intégralement les OS Graph 35+USB 2.00/2.01 avec désormais 2 langues non-anglaises contre 0-1 lors des premiers essais !
Malheureusement, le fxRemote d'origine ne s'adapte pas, ayant l'offset de ce bloc hardcodé, et râlant donc que l'image que l'on veut programmer a une mauvaise checksum.
D'où ce patch qui écrase les valeurs hardcodées avec celles convenant à l'upgrade.
Voici ci-dessous l'actuel fichier readme.txt du pack.
Auriez-vous des modifications/améliorations à proposer avant que l'on ne passe à une version française ?
Merci à vous.
fxRemoteE2.05.exe : patched 2.0.3.26 version by Xavier Andréani
fxRemote2M4M.exe : patched 2.0.3.26 version by Xavier Andréani
Which one to use ?
fxRemote E2.05 :
--------------
* Targetted models : USB SH4 models with Boot Code 2011.0531.1709
* Known models : Graph 35+E/75+E preloaded with OS 2.05
* Description :
Support of SH4 USB models with Boot Code 2011.0525.1010 was
overwritten with support of SH4 USB models with Boot Code 2011.0531.1709.
Boot Code datestamp can be checked by :
- turning the calculator off
- holding [OPTN] and [EXP] keys (on Graph models the [EXP] key is labelled [×10^x]
- without releasing them, hold [AC] key
<calculator should turn on and show you a "DIAGNOSTIC MODE" popup>
- now only, release all 3 keys
- type [F1] key
- type [9] key
<calculator should show you the diagnostic menu>
- type [4] key
The 2nd "DateA" datestamp (not the 1st one with "DateO") is your Boot Code DateStamp.
fxRemote 2M4M :
-------------
* Targetted models : non-USB SH3 models with a 2MiB ROM to upgrade with a 4MiB OS
* Known models : Graph 25+Pro / fx-7400GII to upgrade to a Graph 35+USB / fx-9750GII OS
* Description :
Supports a slightly altered ROM image format,
making you able to fully fit patched images of OS built for 4MiB ROMs
in your smaller 2MiB ROM.
You'll need to check the "Recover Main Memory Backup Area" checkbox
below the Quit/Cancel buttons (scroll/resize the window if necessary)
for such images to be flashed properly.
Ajouté le 11/01/2017 à 18:47 :
Bien, passons à la 2ème des 3 étapes.
J'ai donc fait une réécriture massive de l'outil polyos.
Il prend désormais comme argument l'image source, et génère :
- une image en théorie installable sur tous les modèles USB à ROM 4Mio
- si on tombe dans un cas géré, une image installable sur les modèles non-USB à ROM 2Mio
Normalement, tous les modèles USB à ROM 4Mio sont gérés, que ce soit pour l'image source ou l'image créée :
Graph 35+/75/85/95, fx-9860G, fx-9860G AU, fx-9750GII, fx-9860GII, fx-9860G Slim et même fx-FD10 Pro que la dernière bêta de polyos ne faisait pas.
Si si, je viens de tester l'OS fx-FD10 Pro sur Graph 75+E.
Par contre, polyos n'applique aucun patch concernant la matrice clavier - il faudra donc que le modèle reflashé ait le même clavier que celui dont provient l'image, sinon les touches ne réagiront pas correctement.
Attention donc aux fx-9860G Slim et fx-FD10 Pro.
Même si ça n'intéresse personne, quand on donne à polyos une image source de Graph 25+Pro, il génèrera donc entre autres une image pour modèles USB à 4Mio de ROM.
Oui, vous pouvez maintenant installer l'OS Graph 25+Pro sur une Graph 35+/75/85/95 USB, histoire de faire une très mauvaise blague à quelqu'un.
USB désactivé, mémoire réduite de 64K à 20K, disparition de nombres d'icônes du menu... :P
Dans le cas inverse, où on donne à polyos une image pour ROM 4Mio et qu'il accepte de générer une image pour ROM 2Mio, l'outil pourra éventuellement demander les langues à conserver selon la taille de l'OS.
Avec les OS fx-9750GII 2.00/2.01, normalement tout rentre.
Avec les OS Graph 35+USB 2.00/2.01 légèrement plus gros, seules 2 langues rentreront.
Voici par exemple ci-dessous le log où l'outil a comme source l'OS Graph 35+USB 2.01, et où dans la partie où il génère une image pour ROM 2Mio je choisis de conserver le français et l'allemand :
Reading g35pusb-02.01.bin...
Checking for CASIO_BLOCK at 1dfee0... not found !
Checking for CASIO_BLOCK at 1efee0... not found !
Checking for CASIO_BLOCK at 22fee0... not found !
Checking for CASIO_BLOCK at 24fee0... found.
Assuming OS type : 9750GII/9860G/9860GII 2.xx.
Checking for CPU : SH3
Checking version : 02.01.0000
Killing target model ID.
Killing model checking code... found at 3c036.
Target model : 9750GII/9860G/9860GII 2.xx
Creating g35pusb-02.01_4M.bin...
Regen checksum for 10000-24fff7... 10a1e9b0
Target model : 7400GII
Fake Boot datestamp [ for fxRemote 2.03 ]
Fake Boot checksum [ for fxRemote 2.03 ]
WARNING : Not enough space for all non-english languages...
Available non-english languages :
Language #0 : Espa▒+ol ( 19786 B )
Language #1 : Deutsch ( 19644 B )
Language #2 : Franais ( 19820 B )
Language #3 : Portugu▒s ( 19799 B )
Available space : ( 48424 B )
Choose the ID of a language to include :
?2
Available non-english languages :
Language #0 : Espa▒+ol ( 19786 B )
Language #1 : Deutsch ( 19644 B )
Language #3 : Portugu▒s ( 19799 B )
Available space : ( 28604 B )
Choose the ID of a language to include :
?1
Moving RAM backup areas to new location : 1f0000
Patching a0250000 to a01f0000 [ffffffff] ... 2 found
Patching a0260000 to a01f0000 [ffffffff] ... 2 found
Patching 250000270000 to 1f0000200000 [ffffffffffffffff] ... 1 found
Moving CASIOBLOCK to new location : 1efee0
Patching a024fe00 to a01efe00 [fffffe00] ... 7 found
Creating g35pusb-02.01_2M.bin...
Regen checksum for 10000-1efff7... b0f74f4
Pareil que pour le pack fxRemote - vu que les tutos sont hébergés ici, si il y a des remarques/demandes c'est le moment.
Citer : Posté le 11/01/2017 18:52 | #
On aura le code source de PolyOS, bien entendu ?
Mon blog ⋅ Mes autres projets
Citer : Posté le 11/01/2017 18:56 | #
Comme pour la version précédente, oui.
Citer : Posté le 12/01/2017 13:56 | #
Je sens que je vais bientôt commander mon câble pour flasher ma 25+E
Citer : Posté le 26/01/2017 17:36 | #
A single byte needs to be changed in the active MCS backup:
0xFF: no exam mode information
0x95: exam mode is active
0x05: 10 minute wait mode
0x00: exam mode is off
Mode 0x05 requires you to wait 10 minutes after you have manually terminated exam mode. However, this code is disabled in the OS and will just turn exam mode off (at least this is the case for OS 2.05). Maybe this feature was originally planned but regulations have changed since.
It works !
I've just been banned from the exam mode for 10 minutes !
https://tiplanet.org/forum/viewtopic.php?p=212439#p212439
parrotgeek1 Invité
Citer : Posté le 27/01/2017 20:49 | #
This is a little off topic but, does a 2.05 OS that conforms to American exam regulations exist? It needs to disallow programming in exam mode like 2.09 does, but I want vectors.
Citer : Posté le 27/01/2017 21:24 | #
2.05 was dumped from new calculators models released in France so, unlike 2.09 which was a worldwide update released on Casio website, we only have a single version of 2.05, the one conforms to France exam regulations.
You'll need to take OS 2.05 or 2.09 and patch it.
By the way, why is programming forbidden ?
Ajouté le 08/02/2017 à 18:30 :
PolyOS 2 est maintenant en ligne :
https://tiplanet.org/forum/archives_voir.php?id=4475
C'est une réécriture massive de l'outil.
Finalité : apporte deux types de modifications à votre image d'OS :
- la rend programmable avec fxRemote
- la rend compatible avec un maximum de modèles
Le code a été presque entièrement réécrit, pour gérer proprement les nouveautés (c'est-à-dire autrement qu'en faisant des cas particuliers), maintenant que j'ai davantage de recul sur le bazar Casio (et ce n'est pas peu dire).
Jusqu'à 2 images patchées seront générées :
- dans tous les cas une pour tous les autres modèles SH3/SH4 à 4Mio de ROM
- dans les cas où c'est géré, une pour les modèles à 2Mio de ROM
Nouveautés :
- gère et patche correctement les images d'OS fx-FD10Pro
- patche les images d'OS fx-9750GII/Graph 35+ SH3 pour les faire rentrer sur les modèles SH3 à 2Mio de ROM (Graph 25+Pro / fx-7400GII)
Ajouté le 08/02/2017 à 19:43 :
Et voilà, dernière des 3 étapes, le 1er jet du tutoriel d'upgrade générique (comme polyOS, tous modèles gérés) est enfin en ligne :
https://tiplanet.org/forum/viewtopic.php?f=96&t=19592
5 étapes.
Anglais uniquement pour le moment, et à date sans illustrations.
Si j'ai raté des choses, c'est le moment de le dire.
Et comme déjà dit sur l'autre topic, le but n'est pas de faire concurrence au tuto planète Casio, mais de gérer d'autres cas :
- les anglophones qui ont des fx-, notamment aux Pays-Bas - autant mettre à jour sa fx-9750GII en 2.09 plutôt que de la jeter bêtement
- l'upgrade Graph 25+Pro -> Graph 35+ que j'ai développé
- et l'upgrade Graph 85 -> Graph 75, qui n'est pas traité ici et qui, à une étape près, est très similaire à l'upgrade Graph 35+ -> Graph 75
Ajouté le 13/02/2017 à 17:31 :
Voilà, la possibilité de transformer sa Graph 25+Pro en Graph 35+USB est maintenant annoncée, ainsi que le nouveau tutoriel de transformation polyvalent qui va avec :
https://tiplanet.org/forum/viewtopic.php?f=51&t=19610#p213199
Citer : Posté le 14/02/2017 19:27 | #
Great job!
fer Invité
Citer : Posté le 03/02/2018 12:59 | #
Bonjour,
Pouvez vous rendre publique un OS ou quand on appuie sur 2 touche nous sortons du mode examen ?
sur graph 35 + E
merci