Test de la Graph 35+E II, Partie 3 - Système et add-ins
Posté le 13/05/2019 15:23
Casio a annoncé pour la rentrée prochaine la nouvelle Graph 35+E II pour succéder à la Graph 35+E. Voyons ensemble ce qu'elle a dans le ventre !
Cet article est le dernier d'une série de trois articles portant sur les fonctionnalités de cette nouvelle calculatrice, du plus large au plus technique. Il y aura peut-être un article bonus à la sortie de Python !
Partie 1.
Premier contact et applications
Partie 2.
Transfert de fichiers
Partie 3. Support des add-ins et aspects matériels
Voyez aussi
le test de la Graph 35+E II par Critor (tiplanet.org).
Changements dans le système
On a pas mal de choses à voir ici. Commençons par regarder du côté du
menu constructeur que l'on lance en appuyant sur
[OPTN],
[×10^] et
[AC/ON] au démarrage, suivi de
[F1] et
[9].
On note que l'identification du système (
CY835A) a changé depuis les versions précédentes, mais les trois bits de matériel (
010) sont identiques. Voyons ce qu'on peut trouver sur la version du système :
Il s'agit donc d'un OS
03.00.2200. Le numéro de version majeure a changé, ce qui sous-entend qu'il y a eu de grands changements (incompatibles) par rapport aux versions précédentes. Notons que les versions
03.xx étaient jusque-là réservées aux Prizm et Graph 90+E, c'est inattendu !
Vous savez peut-être que les quatre derniers chiffres ne sont pas le numéro du patch comme on le fait
habituellement, mais donnent des informations sur la localisation et le matériel. En particulier, le dernier chiffre a longtemps été noté 0 pour les OS SH3 et 1 pour les OS SH4. Manifestement, CASIO a décidé d'enterrer cette convention avec les processeurs SH3 qui ont été changés, je le rapelle, il y a 7 ans.
L'autre nouvelle, c'est qu'on a affaire à
un nouveau bootcode daté de 2018, et c'est moins joyeux pour nous. En effet cela signifie que fxRemote ne pourra pas fonctionner immédiatement, et qu'il faudra de nouveau étudier le code pour le rendre compatible.
Le test de la mémoire nous donne également les checksums, que je vous mets pour la référence.
On note par ailleurs que
le menu de test caché à côté du menu constructeur en appuyant sur
[5],
[9],
[6],
[3] au lieu de
[F1],
[9], qui contient de nombreuses informations sur les contenus de la mémoire et le système, a disparu ! Il a probablement été assigné à une autre combinaison secrète, mais on ne l'a pas encore découverte.
Pas de modifications d'OS pour l'instant
Comme vous avez pu le voir dans l'article précédent, la ROM fait désormais 8 Mo au lieu des 4 Mo précédents. Cela permet d'avoir un OS d'environ 3.5 Mo et de garder une très grande mémoire de stockage de 3 Mo (on ne sait pas encore où est passé le reste).
L'inconvénient, c'est que l'OS avec Python de 3.5 Mo ne pourra pas être flashé facilement sur les anciennes Graph car l'ancienne mémoire n'est tout simplement pas assez grosse - il resterait 512 ko de mémoire de stockage au plus, et c'est seulement si l'OS veut bien fonctionner.
Le sens inverse est également difficile car fxRemote ne peut pas fonctionner tel quel sur le nouveau bootcode. Heureusement, on n'a pas de bonne raison d'installer un ancien OS sur la Graph 35+E II, car on perdrait :
• 1.5 Mo de mémoire de stockage en plus ;
• Le support des add-ins ;
• L'application Python.
Pour l'instant, aucun changement d'OS entre la Graph 35+E II et les anciennes Graph n'est donc possible.
Changement de l'écran
Il y a un changement majeur de matériel : la Graph 35+E II est en effet équipée d'une
variante de l'écran habituel des Graph, le T6K11 de Toshiba. Le nouvel écran a la même dimension, la même résolution et le même aspect que l'ancien, mais les commandes de communication ont changé. Le T6K11 a probablement été déprécié, obligeant CASIO à en utiliser un plus récent.
J'ai rapidement décortiqué le nouveau protocole, qui n'est pas très différent de l'ancien, en
désassemblant le syscall Bdisp_PutDisp_DD(). Les différences sont mineures et je les ai intégrées à gint comme implémentation de référence.
Le problème majeur est que
MonochromeLib ne sait communiquer qu'avec le T6K11, les add-ins utilisant MonochromeLib doivent donc être modifiés et recompilés pour pouvoir marcher !
Cela signifie que
les add-ins utilisant MonochromeLib peuvent être adaptés, mais les g1a ne marcheront pas directement. Un peu comme la Graph 90+E par rapport à son précédesseur, la Prizm, dont
un topic traque les portages.
Les add-ins utilisant fxlib sont binaire-compatibles, ce qui signifie que les g1a marchent tous seuls.
On déplore que
CasioPython n'exécute pas correctement les programmes et que
Windmill ne démarre pas. On n'a pas encore de piste sûre pour expliquer ces problèmes.
Problèmes sur le système de fichiers
Comme on l'a vu, le système de fichiers a également bien changé puisqu'il permet maintenant la création de sous-dossiers et peut être accédé par USB. Par contre, il semble y avoir eu des modifications également dans les appels de fonctions de
Bfile car les add-ins embarquant leur propre navigateur de fichiers ne marchent plus correctement.
On compte notamment
C.Basic et
CasioPython dans cette liste. Ci-dessous, C.Basic ne parvient pas à ouvrir un programme.
Le problème ne provient pas de l'add-in lui même car tous les programmes ont des problèmes d'une façon ou d'une autre. Insight, l'add-in de Simon Lothar permettant de fouiller la calculatrice, ne trouve carrément aucun fichier dans la mémoire.
Il faudra un peu de reverse-engineering pour comprendre où se situent les difficultés.
Changements dans la gestion de la RAM
Les calculatrices monochromes sont équipées depuis longtemps de 512 ko de RAM. Cependant, d'anciens modèles n'en possédaient que la moitié, et le système était donc fait pour se contenter de 256 ko. Depuis un moment, les add-ins utilisaient donc la deuxième moitié de la RAM à leur guise.
Cependant, Insight nous révèle des changements dans cette gestion !
Sur la capture ci-dessous, Insight indique que la fin du tas (la zone mémoire dans laquelle
malloc() puise ses ressources) se situe à l'adresse
0x88050400. Pour rappel, la mémoire physique peut être accédée par les adresses suivantes :
80000000-807fffff 8M ROM (avec cache)
88000000-8807ffff 512k RAM
a0000000-a07fffff 8M ROM (sans cache)
Autrement dit, le tas se situe désormais dans la deuxième moitié de la RAM. Et ce n'est pas tout ! Les plus habiles d'entre vous auront remarqué que la pile (
StackPtr) se trouve également dans cette deuxième moitié.
Cela n'est pas surprenant, car l'ancien tas faisait 48 ko et c'est assez peu pour un interpréteur Python. Casio a certainement commencé à exploiter la deuxième moitié de RAM à sa disposition pour satisfaire les besoins de Python. Les scripts de Critor révèlent que
le nouveau tas fait environ 90 ko, quasiment deux fois plus que l'ancien.
La mauvaise nouvelle du coup, c'est que les applications utilisant cette zone de la mémoire, comme C.Basic et MicroPython, ne pourront plus le faire librement. Rappelons que MicroPython peut utiliser 250 ko de mémoire grâce à cette technique, soit bien plus encore que les 90 ko disponibles sur l'application officielle. Il est peu probable que Casio utilise tout, mais il faut encore savoir quelle zone est employée.
État actuel du développement
Actuellement, le seul gros projet d'add-in sur Graph 35+E II est
le portage de KhiCAS par Bernard Parisse. Il utilise fxlib et n'a donc pas de problèmes de compatibilité.
MonochromeLib peut être rendue compatible facilement, mais les add-ins déjà compilés devront être recompilés, ou peut-être être passés à un outil similaire au SH4 Compatibility Tool pour fonctionner.
J'ai porté le nouveau driver d'écran dans gint, et désassemblé une partie du nouveau bootcode.
Conclusion
La Graph 35+E II apporte de grandes innovations matérielles... et donc de grands changements pour tous les add-ins qui ne se contentent pas du strict minimum offert par fxlib. On retiendra que :
• L'écran a changé donc MonochromeLib doit être adaptée et les add-ins recompilés.
• Les add-ins utilisant le système de fichiers glitchent sans que l'on sache encore pourquoi.
• La deuxième moitié de la RAM n'est plus entièrement libre.
• Le tas fait désormait 90 ko environ, au lieu de 48 ko.
Comme vous pouvez le voir, ce n'est pas une partie de plaisir, mais en anticipant bien on peut s'en sortir sans détour.
Cet article s'est avéré plus long que je ne l'avais imaginé parce que je parle beaucoup sur ce sujet. N'hésitez pas à réagir sur toute la série ou la Graph 35+E II en général dans les commentaires !
Et à bientôt sur Planète Casio !
Citer : Posté le 20/10/2020 19:26 | #
ok
Ajouté le 20/10/2020 à 19:27 :
dans cette liste il y a jetpack joyride, j'ai testé et ca marche pas la calculatrice crash
Citer : Posté le 20/10/2020 19:28 | #
Il a été mis à jour et est posté dans les commentaires de ce topic. Télécharge le à en cliquant sur le lien directement.
Ça devrait fonctionner
(Et de toute façon, vous pouvez pas dire le contraire)
MultipliCasio
RDM Calculs
Back Mirror
A Switch To The Top C
Citer : Posté le 20/10/2020 19:29 | #
et evasion surv?
Citer : Posté le 20/10/2020 19:32 | #
Nous n'avons pas tous une 35+E II, on a pas pu tester chaque add ins.
C'est d'ailleurs pour ça que ce topic existe, c'est pour lister les jeux compatibles ou non.
Donc si évasion survival ne marche pas, poste un commentaire sur le topic, il sera ajouté dans la liste des incompatibles
(Et de toute façon, vous pouvez pas dire le contraire)
MultipliCasio
RDM Calculs
Back Mirror
A Switch To The Top C
Citer : Posté le 20/10/2020 19:33 | #
Eh bien vérifie que t'as installé la bonne version et essaie d'établir un rapport de bug complet ; ça marche sur ma Graph 35+E II, et j'ai beau être magicien je sors rarement les bugfix de mon chapeau.
Plus tu postes vite et sans fournir d'informations réellement utiles et plus tu vas te faire ignorer, donc par pitié prend le temps de former des messages clairs, avec un minimum d'effort sur le français, et essaie de mettre le plus d'informations possibles dans tes messages. Evasion Survival ? Teste-le, il est évident que pour nous c'est bon, il est listé. Tu attends quoi comme réponse ? La balle est dans ton camp. Poster des messages vites fait sans chercher avant est compris comme un signe que tu veux qu'on fasse le travail à ta place. Désolé, mais ça ne marchera pas.
Si un add-in ne marche pas, mets le lien de la version que tu as téléchargé, explique avec quoi tu l'as transféré, est-ce que l'écran est devenu blanc, est-ce que la calculatrice a redémarré toute seule ou s'il a fallu que tu appuies sur RESET, est-ce que ça le fait à tous les coups, bref des détails ! Sinon, plus personne ne vas te lire ni te répondre...