En 2015/2016, dans le monde balbutiant des utilitaires de communication avec fx-9860G et compatibles Linux, on trouvait un
xfer9860 vieillissant et pas très fonctionnel, et un
UsbConnector qui ne supportait pas assez de features. Alors en août 2016, j'ai fini par faire
p7, une implémentation des interactions avec la mémoire de stockage avec le protocole 7.00 tel que
documenté par Simon Lothar.
Tel que le veut la tradition capitaliste, maintenant que j'avais quelque chose qui fonctionnait et était apprécié de la communauté, il s'agissait de grandir. Les autres commandes du protocole 7.00 requièrent une connaissance beaucoup plus approfondie de la mémoire principale et de formats bien plus diversifiés, alors il est temps de s'enfoncer dedans et de gérer ces formats ; c'est ainsi qu'en novembre 2016, je sors la
libg1m. Mais voilà, ces formats requièrent un encodage de caractères qu'il faut gérer également, alors hop, le même mois, la
référence FONTCHARACTER est annoncée.
En 2018/2019, alors que je reprends mes études, je me rends compte que tout ça fait beaucoup de projets à interconnecter, documenter et faire marcher ensembles ; alors j'entreprends d'en faire un projet commun, nommé "libcasio", où j'en profite pour aller au bout de mon refactoring en séparant les différentes couches, introduisant beaucoup de complexité mais beaucoup de flexibilité au niveau du design, introduisant des concepts assez intéressants mais qui sortent du cadre simple de la communication avec des calculatrices CASIO, au point même que j'en extraierai l'I/O dans une bibliothèque nommée "libtio" (pour "Touhey I/O").
La libcasio a de belles réussites, notamment avec l'ajout d'un utilitaire nommé "p7os" qui permet, enfin, de flasher une calculatrice depuis Linux, faisant au passage deux victimes collatérales sous la forme de deux Graph 35+USB, celle que j'avais au lycée et celle d'
Eltoredo qui en a fait don pour la science (merci à lui !). C'est
Lailouezzz qui réussira le premier flash avec p7os ; une commande était incorrecte, et il fallait en réalité en employer un autre. La barre était franchie, fxRemote ou même Windows n'est plus nécessaire pour flasher une calculatrice !
Seulement voilà, la libcasio était très complexe à maintenir, avec beaucoup de couches différentes, et j'étais seul à m'en occuper. Courant 2019, ma motivation s'effrite et je finis par m'intéresser à d'autres sujets, d'autres projets, et à délaisser les calculatrices CASIO.
Pendant quatre ans, nous avions donc une libp7 et des p7utils plus maintenus, une libcasio qui n'est jamais sorti, une myriade de petits projets plus maintenus non plus et dont le potentiel d'interconnexion avec les autres projets n'a jamais été exploité. Avec de plus, des utilitaires de moins en moins utiles dans la vie de tous les jours, puisque les fx-CG / Prizm / Graph 90+E ont un mode "clé USB" qui rend accessible leur contenu de façon standard.
Alors mi-février 2024, je me suis motivé et j'ai recommencé un projet similaire à la libcasio, mais avec les expériences que j'ai eues entretemps (beaucoup de documentation, un recours à la simplicité bien plus présent, et plus d'expérience en général), et un scope plus limité dans un premier temps : avoir les mêmes features que la dernière release de la libp7 et des p7utils, mais sous une forme plus maintenable et, surtout, documentée cette fois. Cet objectif a été atteint avec la release 0.1 de Cahute, qui a lancé ce topic !
Citer : Posté le 03/04/2024 15:25 | #
Ouais, erreur de ma part qui a été fixed peu après la release :
https://gitlab.com/cahuteproject/cahute/-/commit/157f710ccd99ac6eb2595dec136f0b4a93a8bcbb
Ce sera fixed upstream pour la release 0.3, j'ai pas spécialement demandé aux packagers de faire un patch en attendant parce que c'est pas forcément nécessaire mais tu peux demander ça aux packagers Arch au besoin
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Citer : Posté le 03/04/2024 15:26 | #
Ok, merci !
Citer : Posté le 03/04/2024 15:34 | #
Certes… il y a zéro utilisateur windows, mais on peut imaginer une gui cross-platform pour cahute
Citer : Posté le 03/04/2024 15:54 | #
Je refais des tests avec la 35+E II pour le déblocage de Fugue. Je voulais utiliser la fonction upload and run. Il n'y a plus de commande pour lancer un programme personnalisé dans p7os ? L'option -u ne semble pas faire ce que j'imagine, vu que dans la fonction interne y'a "fxremote method" et la suppression est obligatoire.
Citer : Posté le 03/04/2024 15:56 | #
Pour uploader un programme custom tu fais p7os prepare-only -u <path>. Le nommage est bizarre mais j'ai voulu reprendre le même qu'à l'époque
Attention, la doc est un peu flaky là-dessus, mais ça upload & run à l'adresse 0x88024000, et pas à 0x88030000. En attendant que j'ajoute une option pour changer ça...
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Citer : Posté le 03/04/2024 15:58 | #
Aah oui c'est vrai, j'avais oublié ça. Merci pour la précision.
Citer : Posté le 04/04/2024 00:02 | #
Je suis en train de poursuivre mon effort de réimplémentation de l'utilitaire historique CaS, avec support des modes correspondants dans le Protocole 7.00. Dans ce cadre, je commence à supporter l'option TRANSMIT du menu LINK !
[2024-04-04 00:00:21 cahute info] determine_protocol_as_receiver: Waiting for input to determine the protocol.
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 1165ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 96ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 112ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 96ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 96ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 96ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 112ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 96ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 96ms).
[2024-04-04 00:00:23 cahute info] read_from_link: Read 1 bytes in 0ms (after waiting 96ms).
[2024-04-04 00:00:24 cahute info] read_from_link: Read 6 bytes in 0ms (after waiting 112ms).
[2024-04-04 00:00:24 cahute info] initialize_link_protocol: Using Protocol 7.00 (serial).
[2024-04-04 00:00:24 cahute info] initialize_link_protocol: Playing the role of receiver / passive side.
[2024-04-04 00:00:24 cahute info] read_from_link: Read 16 bytes in 32ms.
[2024-04-04 00:00:24 cahute info] read_from_link: Read 35 bytes in 48ms.
[2024-04-04 00:00:24 cahute info] seven_receive: Received packet data is the following:
[2024-04-04 00:00:24 cahute info] seven_receive: 00000000 0130 3231 3030 3233 .0210023
[2024-04-04 00:00:24 cahute info] seven_receive: 00000008 3030 3030 3030 3030 00000000
[2024-04-04 00:00:24 cahute info] seven_receive: 00000010 3030 3030 3036 3034 00000604
[2024-04-04 00:00:24 cahute info] seven_receive: 00000018 3031 3030 3030 3030 01000000
[2024-04-04 00:00:24 cahute info] seven_receive: 00000020 3131 3532 3030 4556 115200EV
[2024-04-04 00:00:24 cahute info] seven_receive: 00000028 454E 3139 35 EN195
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: Sending the following packet to the device:
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000000 0630 3030 3730 .00070
[2024-04-04 00:00:24 cahute info] seven_receive_data: New serial settings have been set!
[2024-04-04 00:00:24 cahute info] read_from_link: Read 6 bytes in 0ms (after waiting 29ms).
[2024-04-04 00:00:24 cahute info] seven_receive: Received packet data is the following:
[2024-04-04 00:00:24 cahute info] seven_receive: 00000000 0530 3130 3646 .0106F
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: Sending the following packet to the device:
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000000 0630 3030 3730 .00070
[2024-04-04 00:00:24 cahute info] read_from_link: Read 6 bytes in 16ms.
[2024-04-04 00:00:24 cahute info] seven_receive: Received packet data is the following:
[2024-04-04 00:00:24 cahute info] seven_receive: 00000000 0130 3930 3637 .09067
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: Sending the following packet to the device:
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000000 0630 3030 3730 .00070
[2024-04-04 00:00:24 cahute info] read_from_link: Read 6 bytes in 0ms (after waiting 32ms).
[2024-04-04 00:00:24 cahute info] seven_receive: Received packet data is the following:
[2024-04-04 00:00:24 cahute info] seven_receive: 00000000 0130 3130 3646 .0106F
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: Sending the following packet to the device:
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000000 0630 3231 3030 4134 .02100A4
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000008 4779 3336 3330 3046 Gy36300F
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000010 5245 4E45 5341 5320 RENESAS
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000018 5348 3733 3535 3031 SH735501
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000020 3030 3030 3030 3030 00000000
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000028 3030 3030 3430 3936 00004096
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000030 3030 3030 3035 3132 00000512
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000038 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000040 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000048 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000050 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000058 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000060 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000068 3032 2E30 392E 3232 02.09.22
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000070 3031 FFFF FFFF FFFF 01......
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000078 3030 3031 3030 3030 00010000
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000080 3030 3030 3234 3332 00002432
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000088 372E 3030 4141 4141 7.00AAAA
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000090 4141 4141 FFFF FFFF AAAA....
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000098 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 000000A0 FFFF FFFF FFFF FFFF ........
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 000000A8 FFFF FFFF 3833 ....83
[2024-04-04 00:00:24 cahute info] read_from_link: Read 13 bytes in 0ms (after waiting 48ms).
[2024-04-04 00:00:24 cahute info] read_from_link: Read 45 bytes in 16ms.
[2024-04-04 00:00:24 cahute info] seven_receive: Received packet data is the following:
[2024-04-04 00:00:24 cahute info] seven_receive: 00000000 0132 3531 3030 3244 .251002D
[2024-04-04 00:00:24 cahute info] seven_receive: 00000008 3030 3031 3030 3030 00010000
[2024-04-04 00:00:24 cahute info] seven_receive: 00000010 3030 3143 3036 3037 001C0607
[2024-04-04 00:00:24 cahute info] seven_receive: 00000018 3037 3030 3031 3030 07000100
[2024-04-04 00:00:24 cahute info] seven_receive: 00000020 7379 7374 656D 5448 systemTH
[2024-04-04 00:00:24 cahute info] seven_receive: 00000028 4520 454E 4450 524F E ENDPRO
[2024-04-04 00:00:24 cahute info] seven_receive: 00000030 4752 414D 3232 31 GRAM221
[2024-04-04 00:00:24 cahute error] seven_receive_data: File transfer is not supported for now.
[2024-04-04 00:00:24 cahute info] seven_receive_data: Received command had the following properties:
[2024-04-04 00:00:24 cahute info] seven_receive_data: Data Size: 28
[2024-04-04 00:00:24 cahute info] seven_receive_data: Data Type: 01
[2024-04-04 00:00:24 cahute info] seven_receive_data: Directory Name: system
[2024-04-04 00:00:24 cahute info] seven_receive_data: Data Name: THE END
[2024-04-04 00:00:24 cahute info] seven_receive_data: Group Name: PROGRAM
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: Sending the following packet to the device:
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000000 1530 3430 3643 .0406C
[2024-04-04 00:00:24 cahute info] read_from_link: Read 6 bytes in 16ms.
[2024-04-04 00:00:24 cahute info] seven_receive: Received packet data is the following:
[2024-04-04 00:00:24 cahute info] seven_receive: 00000000 1830 3030 3730 .00070
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: Sending the following packet to the device:
[2024-04-04 00:00:24 cahute info] seven_send_and_receive: 00000000 0630 3030 3730 .00070
[2024-04-04 00:00:24 cahute info] close_link: Closing the link.
Décoder le fichier à la volée demandera encore quelques réorganisations des buffers du lien, et le décodage des fichiers MCS, mais c'est en bonne voie !
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Citer : Posté le 07/04/2024 14:08 | #
Cahute est maintenant installable via GiteaPC :
Les instructions seront publiées dans la doc publique à la prochaine release.
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Citer : Posté le 07/04/2024 17:20 | #
You played yourself un peu parce que là ça install le dev mais @0.2 ça marche pas parce que y'avait pas le support GiteaPC et @0.3 ça marche pas non plus parce que y'a pas la release en question
Citer : Posté le 07/04/2024 17:27 | #
Ça arrivera en soi, ce n'est qu'une question de temps
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Citer : Posté le 09/04/2024 14:44 | #
Rappel personnel de @RDP (le temps que Cake écrive un résumé)
Citer : Posté le 09/04/2024 21:34 | #
Franchement plus j'y pense et plus je me dis que ceci constitue un résumé sympa et intriguant :
Cahute !
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Citer : Posté le 16/04/2024 19:24 | #
Salut,
j'ai essayé de installer Cahute pour Windows mais je ne vois pas trop comment faire... En gros, je ne trouve pas ce qu'il faut télécharger.
Merci d'avance
Citer : Posté le 16/04/2024 20:12 | # | Fichier joint
Hello, bien que la compatibilité pour Win32 soit assurée au niveau du code, aucune méthode d'installation n'est pour le moment fournie pour Windows. Les problématiques vis-à-vis de ceci sont documentées dans l'issue #10 du dépôt Gitlab, mais ne sont pas traitées pour le moment, et ni date ni responsable ne sont définis pour la résoudre.
Si l'envie t'en prend, tu peux tenter de répondre à ces problématiques et proposer une solution pour les utilisateurs du même système que toi ; ou par défaut, tu peux attendre que quelqu'un aie pris le point en charge
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Citer : Posté le 17/04/2024 00:44 | # | Fichier joint
Avec quelques petits efforts (faits dans !27), Cahute tourne dans Windows XP
Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blog ⋅ Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?