Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vie communautaire


Index du Forum » Vie communautaire » Mod Math+
Lephenixnoir En ligne Administrateur Points: 24611 Défis: 170 Message

Mod Math+

Posté le 02/12/2024 12:36

Comme annoncé pour le Puzzle de l'Avent, un mod Math+ non-officiel est en cours de développement pour permettre d'écrire des add-ins sur la Math+.

Le mod n'est pas encore public du fait qu'il n'y a pas encore les sécurités nécessaires pour bien empêcher qu'on en abuse. Mais les questions techniques sont partiellement résolues et on commence à avoir une vue raisonnable de ce qu'on va pouvoir, ou pas, faire sur la Math+.

La préoccupation principale est si les .g3a existants vont marcher tels quels, ou compatibilité binaire. Ce serait le pied, mais c'est pas encore clair si on peut parce que la table des syscalls n'existe plus.

Par ce topic je souhaiterais savoir ce que la communauté voudrait voir dans un tel mod et discuter de la faisabilité technique. Y a-t-il des choses qui posaient problèmes sur la 90 que vous voudriez améliorer ? Des soucis attendus avec la Math+ que vous voulez voir adressés ? J'ai déjà quelques idées en tête, mais je vous laisse vous exprimer.


Slyvtt Hors ligne Maître du Puzzle Points: 2401 Défis: 17 Message

Citer : Posté le 02/12/2024 12:45 | #


Partant du principe que l'on peut faire tourner un g3a sur math+, il me semble que le souci premier sera le changement de layout du clavier.

Les touches F1 a F6 ayant disparu.il faudra revoir pas mal de mécanique et d'addins (par exemple gintctl, Prune, ...).

Toujours avec le clavier, un truc chiant était le ghosting, mais ça vient du matériel donc je sais pas si la conception de la math+ souffre de ça aussi.

J'ai plus en tête si il y a un serial 3pin sur la math+.

Y'a aussi la ram étendu qu'il faudra checker. Au pire on fera comme avec la prism cg10/20.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24611 Défis: 170 Message

Citer : Posté le 02/12/2024 12:48 | #


Pour le clavier, ça "devrait aller". GetKey() adapte ses codes de touche donc les add-ins à syscalls, s'ils marchent, continueront de marcher sur les touches fléchées, SHIFT, ALPHA. Les quelques touches sans correspondance seront perdues, par contre.

Pour gint, il faudra recompiler. Je peux vaguement imaginer une astuce pour rétablir le layout mais je suis pas sûr que ça marche bien. Mais recompiler irait. Ça invite à ajouter un flag dans le g3a pour dire s'il est compilé pour la Math+ ou juste 90.

De ce que j'ai pu voir, la RAM étendue ça a l'air de passer.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Critor Hors ligne Administrateur Points: 2678 Défis: 18 Message

Citer : Posté le 02/12/2024 12:53 | #


Slyvtt a écrit :
J'ai plus en tête si il y a un serial 3pin sur la math+.

Il y a, mais il ne sert plus qu'à désactiver le mode examen.
L'application Lien/Link pour les transferts de données n'est plus présente, tout comme l'application E-CON4 pour l'acquisition de mesures physiques via une interface compatible comme le C-LAB.
Nous avons tenté malgré tout de transférer depuis une autre calculatrice, ce qui ne marche pas, et de mémoire il me semble que le comportement de l'erreur diffère, ce qui pourrait signifier qu'ils ont également sabré des branches entières du protocole, et qu'il y aurait donc peu de chances que cela revienne plus tard.
Lephenixnoir En ligne Administrateur Points: 24611 Défis: 170 Message

Citer : Posté le 02/12/2024 12:55 | #


Notez que gint s'en fout si le protocole est codé. Tout coder en freestanding a ses mérites, heh.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2401 Défis: 17 Message

Citer : Posté le 02/12/2024 13:30 | #


Oui comme a priori le proc est le même, le module serial de gint (cough, cough !! ) sait/saura gérer directement
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24611 Défis: 170 Message

Citer : Posté le 02/12/2024 13:41 | #


Pour ceux qui se demandent, la Math+ est avant tout un reskin de la 90+E. Ça ira beaucoup, beaucoup plus vite de lister les différences que les points communs. Le matériel est le même sauf le clavier, le CPU est le même, MPU est le même...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 513 Défis: 0 Message

Citer : Posté le 02/12/2024 14:27 | #


Alors concernant KhiCAS, les deux premiers points auxquels je pense sont :
1/ est-ce que la taille de flash user va rester à 4.7Mo ou bien peut-on imaginer utiliser une partie de la flash non utilisée par l'OS mais non accessible normalement? Actuellement la version complète de KhiCAS occupe 4.3M, ça laisse bien de la place sur les 90, mais sur les math+ 4.7-4.3 reste 400K
2/ est-ce qu'on pourrait éviter la limite des 2Mo d'un addin et donc ne pas avoir à recopier une partie du code en RAM?

Sinon, si on a compatibilité binaire ce serait très intéressant. En ajoutant des codes touches pour les nouvelles touches de la Casio (c'est ce que je fait pour gérer les autres calculatrices avec une grande base de code commun pour l'UI), on pourrait gérer la 90 et la math+ correctement.
Lephenixnoir En ligne Administrateur Points: 24611 Défis: 170 Message

Citer : Posté le 02/12/2024 14:32 | #


Pour 1/, c'est un peu compliqué. Revenir à 16 Mo semble possible sur le plan de l'expérience de pensée. Mais il est probable que ça casse à chaque mise à jour de l'OS, avec au meilleur cas besoin de sauvegarder + restaurer les fichiers, pire cas bricker la calto.

Par contre, on peut compresser les g3a. Il se passe quoi si tu gzip le fichier de 4.3 Mo ?

Pour 2/, le loader va probablement charger le code en RAM de toute façon, auquel cas la limite de 2 Mo devrait pouvoir sauter oui. Je sais pas si c'est raisonnable/possible d'exécuter depuis la ROM, je regarderai. En tous cas exécuter depuis la ROM est incompatible avec la compression.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 513 Défis: 0 Message

Citer : Posté le 02/12/2024 15:31 | #


Oui, j'y pensais aussi, compresser la partie de l'addin qui est recopiée en RAM est certainement faisable. Ca gagne environ 800Ko de flash (2.2Mo -> 1.4Mo), et on se retrouverait avec environ 1.2Mo de libre pour la version complète de KhiCAS. C'est mieux.
Lephenixnoir En ligne Administrateur Points: 24611 Défis: 170 Message

Citer : Posté le 02/12/2024 15:34 | #


Et si tu charges tout en RAM ? On a assez de RAM, enfin à moins que tu utilises déjà tout pour les données dans KhiCAS, mais je ne crois pas ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Parisse Hors ligne Membre Points: 513 Défis: 0 Message

Citer : Posté le 02/12/2024 17:23 | #


Gain de 850Ko environ en flash mais il faut 2M de RAM en plus. Or dans la config actuelle, je n'ai que 512K de libre en RAM pour le tas, pris à partir de l'adresse 0x8c480000 (la 2ème partie de l'addin est chargée en 0xac200000, avec de la marge pour jusqu'à 2.5M). Il y a peut-être plus de disponible?
Lephenixnoir En ligne Administrateur Points: 24611 Défis: 170 Message

Citer : Posté le 02/12/2024 17:30 | #


Si on s'aventure un peu plus la zone à 0x8c200000 fait en réalité 6 Mo, donc oui a priori y'a de quoi.

Si je lis bien tu gagnes donc 800 ko + 850 ko en compressant la totalité, soit 3.1 Mo pour KhiCAS complet ? Ça semble pas trop mal, 34% de réduction.

Je viens de tester sur quelques add-ins que j'ai sous la main, avec gzip :
  • gintctl.g3a : 188 ko → 109 ko (-42%, surtout du code)
  • Azuray.g3a : 108 ko → 53 ko (-51%, mix de code et d'assets)
  • RogueLif.g3a : 459 ko → 153 ko (-67%, surtout des assets)

Si dans le cas moyen on est dans les 40% ça donnerait une capacité "réelle" de 7.5 Mo de stockage.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Calamari En ligne Membre Points: 399 Défis: 0 Message

Citer : Posté le 02/12/2024 17:35 | #


I used the miniz library for in-memory decompression in my Calibrate add-in, and it worked well. Source code: https://git.planet-casio.com/calamari/Calibrate
“Remember to have fun doing this, or it ain't worth it.” — Robert Alan Koeneke
“They call me the king of the spreadsheets, got 'em all printed out on my bedsheets.” — “Weird Al” Yankovic

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
: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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 57 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