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.
—
Liste de préoccupations :
- Compatibilité binaire : Pas encore clair
Si on peut l'avoir, c'est super. Sinon, y'a un casse-tête à attendre pour traquer quels add-ins sont compatibles. L'absence de table de syscalls est le principal souci ici, ce qui peut peut-être se contourner avec un coup d'UBC pour intercepter les appels.
- Compatibilité de la disposition clavier : Pire cas, en recompilant
- Syscalls + GetKey() : les codes sont adaptés, certaines touches disparaissent, d'autres sont nouvelles.
- gint sans recompiler : j'ai un trick en tête mais il vaut mieux imaginer que ça va donner des mauvais résultats.
- gint en recompilant : la compatibilité sera assurée.
- Reste du matériel : Quasiment garanti identique
Il faudrait qu'un truc très gros m'ait échappé.
- RAM étendue : Probablement OK
Il y a de la mémoire après les 2 premiers Mo, pas sûr cependant de si l'utiliser interférera avec l'opération normale de l'OS.
- Récupérer 16 Mo de mémoire de stockage : Pas clair
Il faut que ça marche en pratique et c'est dur d'écarter tous risques de brick. Et je sais pas comment faire techniquement parlant.
Citer : Posté le 03/12/2024 10:04 | #
Donc si je comprends bien actuellement l'OS tient dans 16Mo en 1ère partie de flash, suivi par 4.7Mo de flash user et 11.5M de flash inutilisée. Est-ce que c'est comme ca sur la fxcg50 australienne ? Sait-on où vont se trouver les ex-addins Casio qui seront ajoutés dans la version 2? Dans la partie système des 16M ou dans les 11.5 de flash actuellement inutilisée? Dans les deux cas, je ne vois pas bien pourquoi on se priverait d'utiliser une partie de ces 11.5M de flash, quel serait le risque? Il sera toujours temps de changer si une mise à jour Casio remettait cela en question non?
Petite remarque au passage: je ne crois pas que Casio pourrait prendre le risque de "punir" une utilisation de ces 11.5Mo de flash. Une action malveillante sur le bon fonctionnement d'autres logiciels est un délit punissable de 5 ans d'emprisonnement.
https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006070719/LEGISCTA000006149839/#LEGISCTA000006149839
Citer : Posté le 03/12/2024 10:14 | #
Est-ce que c'est comme ca sur la fxcg50 australienne ?
Exactement pareil oui, Casio a repris le même code.
Sait-on où vont se trouver les ex-addins Casio qui seront ajoutés dans la version 2? Dans la partie système des 16M ou dans les 11.5 de flash actuellement inutilisée?
Nous devrions le savoir d'ici quelques jours/semaines.
Citer : Posté le 03/12/2024 10:42 | #
Il n'y a pas de vérifications spécifiques du système de fichiers lors d'une mise à jour.
C'est pas là le problème. C'est qu'en faisant ça on occuperait des secteurs de Flash qui sont pas prévus pour. Si plus tard l'OS se met à utiliser la région en question, hypothèse qu'on ne peut pas à mon sens ignorer avant au moins la sortie de la v2, on a plein de risques de corruption :
Je suis intéressé par la perspective d'avoir 16 Mo de nouveau, mais je n'ai pas les garanties techniques que c'est possible de façon sûre. J'ai bien retenu la demande, et je promets de regarder, mais veuillez ne pas compter dessus pour l'instant.
Citer : Posté le 03/12/2024 10:56 | #
Je pense aussi qu'il est raisonnable d'attendre la version 2 avant de se lancer dans du code qui risquerait de ne pas etre compatible. Mais ensuite, si les utilisateurs sont prevenus lors de l'installation de ne surtout pas faire de mise à jour sans s'etre renseigné auparavant, je trouve qu'on peut avoir une version 16Mo (ou moins) utilisant la flash libre. De toutes facons, il faut absolument que les utilisateurs prennent l'habitude de ne pas faire de mise a jour (la version 2 étant une exception). Et c'est plutot jouable, mes étudiants ne font jamais de mise à jour sauf si on les a forcé, ceux qui font des mises à jour ce sont les memes que ceux qui vont sur les forums/reseaux sociaux/etc. dédiés aux calculatrices...
Citer : Posté le 03/12/2024 12:42 | #
C'est pas là le problème. C'est qu'en faisant ça on occuperait des secteurs de Flash qui sont pas prévus pour. Si plus tard l'OS se met à utiliser la région en question, hypothèse qu'on ne peut pas à mon sens ignorer avant au moins la sortie de la v2, on a plein de risques de corruption
Comme dit plus haut, sauf retard la v2 est imminente, donc nous saurons bientôt si le système continue à occuper les seuls premiers 16 Mio, ou se voit scindé en deux avec une partie occupant les derniers 11,5 Mo.
Si la v2 ne change rien, il est peu probable que cela change par la suite.
Car par expérience sur les Casio Graph, les mises à jour majeures lorsqu'il y en a, n'arrivent que quand le modèle est encore jeune.
Par la suite, les nouveautés nécessaires sont de plus en plus souvent reportées à la sortie du modèle suivant, exactement comme nous avons vu avec la fonction getkey() qui a été rajoutée pour la Graph Math+ mais toujours pas sur l'ancien modèle Graph 90+E.
Citer : Posté le 04/12/2024 10:43 | #
J'ai ajouté une liste dans le post principal avec les principales préoccupations.
Autre chose à quoi je peux penser c'est l'équivalent d'add-in push, i.e. un mécanisme pour lancer des add-ins par USB sans les enregistrer dans la mémoire de stockage, ce qui prend des plombes. Est-ce qu'il y a des gens qui s'en servent ?
Citer : Posté le 04/12/2024 14:22 | #
Tres bien la liste, merci!
Pour l'utilisation des 11 et quelques Mo de flash, il faut attendre la version 2 de toutes facons. Si c'est occupé partiellement par l'OS, alors ca contiendra probablement des addins Casio, avec sans doute le meme systeme de fichiers que dans la partition utilisateur de 4.7Mo, donc la question sera peut-on ecrire dans cette 3eme partition des données supplémentaires avec les routines de l'OS?
Si ca reste inoccupé, est-ce que tu sais écrire sur une page en flash? Si oui, sans aller jusqu'a avoir un filesystem, on pourrait imaginer utiliser juste un tar comme pour les extensions Numworks de Delta/Omega/upsilon/Khi, tar transmis par USB, qui utiliserait donc le meme code que ce dont tu parles avec un add-in push, mais auquel on ajouterait la sauvegarde.
Citer : Posté le 04/12/2024 14:32 | #
Tout doit attendre la v2 de toute façon puisqu'il faut un updater pour réinstaller l'OS en cas de pépin.
La théorie d'une 3ème partition me semble surréaliste, je ne vois pas dans quelle réalité alternative on n'a pas juste des applis par défaut en plus compilées monolithiquement comme tout le reste.
On ne peut pas écrire en Flash comme ça, la seule option qui tient la route pour augmenter la taille du système de fichiers est de configurer l'OS pour qu'il le fasse. Je sais de façon indirecte que c'est possible, reste à savoir si la disposition du blob le permettra (et le cas échéant comment le faire techniquement).
Citer : Posté le 04/12/2024 15:02 | #
J'ai ajouté une liste dans le post principal avec les principales préoccupations.
Autre chose à quoi je peux penser c'est l'équivalent d'add-in push, i.e. un mécanisme pour lancer des add-ins par USB sans les enregistrer dans la mémoire de stockage, ce qui prend des plombes. Est-ce qu'il y a des gens qui s'en servent ?
Yes je m'en sers très souvent quand je développe, conjointement avec l'émulateur de Heath123.
Addin Push permet de tester rapidement quand on a des appels à des syscalls/acces au FS qui ne sont pas supportés par l'émulateur.
(Je ne me sers plus de l'emulateur officiel)
Citer : Posté le 04/12/2024 16:47 | #
Tout doit attendre la v2 de toute façon puisqu'il faut un updater pour réinstaller l'OS en cas de pépin.
La théorie d'une 3ème partition me semble surréaliste, je ne vois pas dans quelle réalité alternative on n'a pas juste des applis par défaut en plus compilées monolithiquement comme tout le reste.
Si tout tient dans la 1ère partition de l'OS tant mieux. Mais dans ce cas il y aurait beaucoup de place dispo dans la partition de l'OS de la 90! Je me disais qu'il pourrait y avoir une partition dédiée avec les anciens addins Casio dessus dans la v2.
On ne peut pas écrire en Flash comme ça, la seule option qui tient la route pour augmenter la taille du système de fichiers est de configurer l'OS pour qu'il le fasse. Je sais de façon indirecte que c'est possible, reste à savoir si la disposition du blob le permettra (et le cas échéant comment le faire techniquement).
Evidemment qu'on ne peut pas écrire en flash de manière aussi simple qu'en RAM, vu qu'il faut d'abord effacer une page de flash dans la zone visée puis seulement on peut écrire dessus. Mais si on a les drivers, c'est peut-être faisable sans toucher à la config de l'OS : Casio a-t-il mis des protections du genre de celles de TI?
Citer : Posté le 04/12/2024 17:14 | #
Bien sûr il y a des protections matérielles. De toute façon l'idée de stocker des données en Flash à la main est hors de question parce qu'un système fonctionnel pour faire ça présenterait trop de risques d'abus.
Citer : Posté le 04/12/2024 17:31 | #
Pas forcément. Je vais faire la comparaison avec la ti83/84: on ne peut normalement pas installer une app sur une 83 sans validation par l'OS. Mais il est quand même possible de le faire à l'aide d'un programme closed source qui sait écrire en flash, et le fait seulement à certains endroits (dans la zone de flash prévue par ti pour les apps).
Si tu sais écrire en flash, alors tu peux écrire un programme qui se charge de transférer un addin de la flash user vers la flash inutilisée sans dévoiler le code d'écriture en flash et qui controle aussi qu'on n'écrit que dans la zone inutilisée (ce qui est de toutes façons une précaution importante si on veut éviter de bricker une calculatrice).
Citer : Posté le 04/12/2024 18:58 | #
Je vais tâcher d'être plus clair. Planète Casio interdit les discussions techniques trop adjacentes à des abus potentiels du mode examen. Je ne vais pas détailler les systèmes internes juste pour te faire entendre que ton idée est bien moins réaliste que d'augmenter la borne du système de fichiers. En tant que contributeur du mod, j'affirme que c'est pas une idée folle, et en tant qu'administrateur Planète Casio, je signale que cette discussion viole les règles de modération du site.
Ce topic est là pour recueillir vos besoins côté utilisateur et communiquer sur leur faisabilité. Nous n'avons pas besoin d'opinions sur ce qu'il faut mettre ou pas dans le mod. Nous savons déjà comment la calculatrice marche et qu'est-ce qui est acceptable en termes de sécurité.
J'ai ajouté une liste dans le post principal avec les principales préoccupations.
Autre chose à quoi je peux penser c'est l'équivalent d'add-in push, i.e. un mécanisme pour lancer des add-ins par USB sans les enregistrer dans la mémoire de stockage, ce qui prend des plombes. Est-ce qu'il y a des gens qui s'en servent ?
Yes je m'en sers très souvent quand je développe, conjointement avec l'émulateur de Heath123.
Addin Push permet de tester rapidement quand on a des appels à des syscalls/acces au FS qui ne sont pas supportés par l'émulateur.
(Je ne me sers plus de l'emulateur officiel)
Got it, il faudra le porter d'une façon ou d'une autre. Je suis pas sûr qu'on arrive à remettre la main sur les syscalls USB. On pourrait le réécrire avec gint au pire.
Ce qui me fait penser qu'il faudra une option quelque part pour trier les add-ins ou leur affecter des touches choisies, parce que ça m'agace toujours que Add-In Push soit pas toujours au même endroit d'une calculatrice à l'autre et n'ait parfois pas de raccourci clavier.
Citer : Posté le 04/12/2024 20:40 | #
Alors, je suis tout à fait d'accord que tu es plus compétent que moi pour juger ce qui est techniquement faisable ou pas, par contre je ne suis pas d'accord du tout avec ton argument d'autorité qu'un programme closed source qui n'écrirait que dans certaines régions de flash (ici la zone actuellement non utilisée de flash) touche au mode examen. Maintenant en ce qui me concerne, je ne vais pas discuter plus ici puisque tu fais état de ta position d'administrateur/modérateur, je m'exprimerai ailleurs.
Citer : Posté le 04/12/2024 21:30 | #
Ce qui me fait penser qu'il faudra une option quelque part pour trier les add-ins ou leur affecter des touches choisies, parce que ça m'agace toujours que Add-In Push soit pas toujours au même endroit d'une calculatrice à l'autre et n'ait parfois pas de raccourci clavier.
Dans les trucs qu'on droppe qqpart en attendant de savoir où les mettre, il serait bien d'avoir un mécanisme/un widget dans JustUI pour remplacer les Fkeys et imiter le comportement des menus de la Graph Math+ avec les touches |<-- et -->|.
Je pensais à un système de menus en liste chainée avec un scrolling dans la liste via les deux touches en question. Mais faut voir si c'est pratique ou pas. Enfin faut y réfléchir car en l'état ce sera pas trop utilisable.
Citer : Posté le 04/12/2024 21:40 | #
Effectivement j'ai déjà ignoré ce problème avec la ClassPad, où dans mes tests je profite juste d'une ligne de 6 touches au milieu du clavier, ce qui est assez moche. Écrire des applications portables va vite devenir plus sensible quand il faudra s'adapter au deux modes à la fois :o