Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Actualités


Index du Forum » Actualités » Test de la Graph 35+E II, Partie 3 - Système et add-ins
Lephenixnoir En ligne Administrateur Points: 17444 Défis: 142 Message

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 !



Critor En ligne Administrateur Points: 1666 Défis: 18 Message

Citer : Posté le 13/05/2019 17:08 | #


Super, merci à toi, j'ai appris plein de nouveaux trucs.

Par rapport à fxRemote, techniquement je confirme que l'on peut flasher l'OS Graph 35+E II sur Graph 35/75+E.
Comme l'OS Graph 35+E II fait ~3,5Mio et la ROM Graph 35/75+E 4Mio, ça rentre. Juste qu'il n'y aura plus beaucoup de mémoire de stockage.

Il suffit donc de prendre une image des 4 premiers Mio de la ROM de la Graph 35+E II et de :
- patcher l'ID de modèle dans le boot
- patcher la chaîne de version 3.00.0000 de l'OS en 2.02.0000 (seule version SH4 connue de fxRemote)
- invalider le code de vérification du modèle
- rajouter une somme de contrôle en 0x24FFF8 pour la zone 0x10000-0x24FFF7 (ça écrase 4 octets de l'OS, mais pas le choix vu que fxRemote a cet offset en dur)
- corriger la somme de contrôle en 0x3AFFF8 pour la zone 0x10000-0x3AFFF7
- cocher dans fxRemote d'écrire également ce qu'il pense être les pages d'archive et de backup

Par contre après tout ça, l'OS Graph 35+E II ne montre aucun signe de vie sur Graph 35/75+E.
Même pas l'écran OSUpdate ou une popup de plantage, rien qu'un écran blanc.
J'ignore totalement ce qui coince.
Lephenixnoir En ligne Administrateur Points: 17444 Défis: 142 Message

Citer : Posté le 13/05/2019 17:21 | #


Critor a écrit :
Même pas l'écran OSUpdate ou une popup de plantage, rien qu'un écran blanc.
J'ignore totalement ce qui coince.

Facile : tu n'as pas patché le driver de l'écran.
Critor En ligne Administrateur Points: 1666 Défis: 18 Message

Citer : Posté le 13/05/2019 17:25 | #


Oui, mais la calculatrice ne montre pas davantage de signe de vie en USB.
Donc ce n'est pas juste qu'elle n'affiche pas, il y a autre chose.
Lephenixnoir En ligne Administrateur Points: 17444 Défis: 142 Message

Citer : Posté le 13/05/2019 17:27 | #


Ah, dans ce cas il y a probablement autre chose oui. Mais difficile de savoir quoi, tant beaucoup de choses pourraient planter (eg. le système de fichiers suppose peut-être que la ROM fait 8 Mo).
Ityt Hors ligne Membre Points: 216 Défis: 0 Message

Citer : Posté le 14/05/2019 18:35 | #


T'as fait comment pour obtenir le binaire de Bdisp_PutDisp_DD() et du bootcode ?
salut je m'appelle sacha et je viens du bourg-palette et voici mon meilleur ami pikachu
Lephenixnoir En ligne Administrateur Points: 17444 Défis: 142 Message

Citer : Posté le 14/05/2019 18:39 | #


En deux temps : d'abord j'ai dumpé l'OS avec un add-in simple (il suffit de sauvegarder une plage de la mémoire dans un fichier) car fxRemote ne marchait plus, et ensuite j'ai utilisé un outil de ma conception, fxos, pour désassembler et annoter. Ça te donne des trucs comme ça et après je commente dessus :

% fxos disasm g35peII -s 0x028

<13642 %028 Bdisp_PutDisp_DD>
13642:  2f86   mov.l   r8, @-r15
13644:  2f96   mov.l   r9, @-r15
13646:  2fa6   mov.l   r10, @-r15
13648:  2fb6   mov.l   r11, @-r15
1364a:  2fc6   mov.l   r12, @-r15
1364c:  2fd6   mov.l   r13, @-r15
1364e:  2fe6   mov.l   r14, @-r15
13650:  4f22   sts.l   pr, @-r15
13652:  d673   mov.l   <13820>(#0x80057a98), r6
13654:  dd73   mov.l   <13824>(#0x8800d431), r13
13656:  460b   jsr     @r6
13658:  0009   nop
1365a:  2008   tst     r0, r0
1365c:  8936   bt      <136cc>
1365e:  d670   mov.l   <13820>(#0x80057a98), r6
13660:  460b   jsr     @r6

On ne voit pas beaucoup d'annotations ici, mais ça fait la partie casse-pieds du boulot (chercher dans la doc à quoi correspond chaque adresse) à ta place.
Ityt Hors ligne Membre Points: 216 Défis: 0 Message

Citer : Posté le 14/05/2019 18:44 | #


Je ne pensais pas qu'on pouvait lire ce genre de choses via un add-in, merci des renseignements
salut je m'appelle sacha et je viens du bourg-palette et voici mon meilleur ami pikachu
Lephenixnoir En ligne Administrateur Points: 17444 Défis: 142 Message

Citer : Posté le 14/05/2019 18:45 | #


Toute la ROM peut être lue, il suffit de regarder l'endroit qui t'intéresse entre 0x80000000 et 0x807fffff.
Zezombye En ligne Rédacteur Points: 1655 Défis: 13 Message

Citer : Posté le 14/05/2019 19:40 | #


Pour info, Casiopython utilise ML, et pourtant il marche
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Helloyanis Hors ligne Membre Points: 40 Défis: 0 Message

Citer : Posté le 10/03/2020 16:29 | #


Bonjour!
Le menu de test ne fonctionne pas sur 35+e II et des trucs bizarres apparaissent lorsqu’on effectue la combinaison de touches! Faire n’importe quelle combinaison (à part [5] [9] [6] [3] ou [F1] [9] évidemment) reste sur le message « Diagnostic mode », ce qui est normal. Mais faire [5] [9] [6] [3] donne des trucs bizarres... Je vais lister les effets, et attention, c’est du lourd! Peut-être que certains passionnés trouveront une utilité à ces infos...
Je peux avoir loupé certains trucs, ne m’en voulez pas!
Quand on fait la combinaison…

Dans tous les cas : Aller dans un autre sous-menu (je connais pas le nom donc je vais dire logiciel) et revenir ensuite répare tous les problèmes, mais pas éteindre et rallumer la calculette. On peut interagir avec la calculette normalement, même si le popup est encore affiché (voir ci-dessous)

Sur le menu principal : Le popup disparaît, rien d’anormal ne se passe.

Dans RUN-MAT : Le popup disparaît en partie, seulement au niveau de la ligne de saisie, le reste du message reste affiché. Appuyer sur EXE le fait disparaître entièrement. Le menu des touches F1 à F6 (bas de l’écran) disparait et les touches ne fonctionnent pas.



Dans STAT : Le popup disparaît en entier et toutes les touches F(…) ne fonctionnent pas, sauf le bouton View Window (Pourquoi?)

Dans E-ACT : Sur le menu des e-acts, les F(…) disparaissent mais on peut toujours ouvrir un(e?) e-act avec [EXE], ce qui résous les problèmes.Le popup reste jusqu’à ce qu’on appuie sur replay les flèches ou [EXE].
Depuis une e-act ouverte : Le popup disparaît et tout fonctionne normalement (même les touches F…?)

Dans S-SHT : Idem que dans STAT, mais les touches F fonctionnent pour rentrer une valeur (les options de saisie), et continent ensuite à ne pas fonctionner lorsqu’on est pas en mode édition de cellule.




Dans GRAPH, depuis le menu des fonctions : Idem que dans STAT sauf que G⚡️T apparaît en appuyant sur [SHIFT]. Les touches F fonctionnent normalement en mode tracée de graph ou saisie de fonctions.

Je n’ai pas encore testé le reste (et je le noterais sur ce commentaire quand je l’aurais fait)(mais le shell python vaut le coup, regardez ça) mais je PENSE que ça arrive pour cette raison :
Le popup reste quelquefois car l’écran n’est pas rafraichi, donc rien ne va écraser l'image de ce popup (puisqu’il ne ferme pas correctement) donc des bouts restent.
Pour les touches F, c’est plus compliqué. Je pense que comme quand on éteint la calculette on doit appuyer sur [SHIFT], les touches F basculent sur leur fonction secondaire à laquelle on peut accéder uniquement en appuyant sur [SHIFT]. Quand elle s’allume en diagnostic mode, les touches F gardent leur état secondaire (on peut le voir en activant ce mode sur le menu GRAPH, car [F3] indique V-win même si on n’appuie pas sur [SHIFT]. Mais comme appuyer sur [EXIT], entrer puis sortir du mode usine ou du mode test se termine en soft reset (l’équivalent d’appuyer sur RESET au dos de la calculatrice), ça ne pose pas de problème. Mais faire la combinaison du mode test sur ce modèle de calculette fait passer le popup en arrière plan, et on reprend contrôle de la calculatrice. Or les touches sont dans leur état secondaire alors que [SHIFT] n’est pas pressé, donc elle ne sait pas trop quoi faire et désactive ces touches. C’est aussi pourquoi V-win s’affiche et fonctionne correctement (il faut appuyer sur [SHIFT] pour y accéder). Je pense donc que les touches sont bloquées dans leur état secondaire en quelque sorte.

J'espère que ça a été utile!

Lephenixnoir En ligne Administrateur Points: 17444 Défis: 142 Message

Citer : Posté le 10/03/2020 16:35 | #


Wow, je n'avais pas pensé à lancer le menu diagnostique avec une application ouverte, et je pensais pas que ça allait bugger à ce point !

L'analyse est très intéressante, sans tester je ne vois clairement rien à rajouter. Est-ce que ça pourrait avoir un lien avec le code ? Du genre si la popup s'ouvre avec SHIFT, peut-être que le désactiver d'abord avant de taper le code aiderait ? (Sinon le 5 n'est pas pris en compte...)
Helloyanis Hors ligne Membre Points: 40 Défis: 0 Message

Citer : Posté le 10/03/2020 16:40 | #


La popup s’ouvre avec [OPTN], [x10], [ON] quand la calcu est éteinte.
Or, pour l’éteindre, faut appuyer sur...
...SHIFT!

Donc je ne pense pas qu’il y ait de moyen d’ouvrir le mode diagnostic sans appuyer sur SHIFT, mais toute idée est la bienvenue!

Ajouté le 10/03/2020 à 16:42 :
Au fait, l’image s’affiche? J’ai un mauvais wifi, je vois pas...
Lephenixnoir En ligne Administrateur Points: 17444 Défis: 142 Message

Citer : Posté le 10/03/2020 16:42 | #


Ah, mais la pression de SHIFT disparaît quand on appuie sur une autre touche (genre AC/ON). En plus ça ne survirait pas au redémarrage, par exemple quand tu démarres dans le menu SHIFT n'est pas actif.

Par contre il se peut que la popup active SHIFT silencieusement depuis la version 3 juste pour nous embêter pour que le code change.

Edit : Non tes images ne s'affichent pas, tu dois mettre le lien vers l'image, pas vers une page web qui l'affiche !
Helloyanis Hors ligne Membre Points: 40 Défis: 0 Message

Citer : Posté le 10/03/2020 16:46 | #


Non, appuyer sur SHIFT ou AC sur la popup ne change rien, de même pour après avoir tapé le code et être entré dans le « mode bug » (j'appelle ça comme ça, après tout je pense je l’ai découvert!)

Ajouté le 10/03/2020 à 16:49 :
Voilà, les images s’affichent!

Ajouté le 10/03/2020 à 16:56 :
Et ouah! Le shell python est complètement cassé avec ça!
Désolé pour le triple post

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 74 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd