π
<-

1ère programmation OS modifié fx-CP400+E

1ère programmation OS modifié fx-CP400+E

Unread postby critor » 29 Jan 2018, 14:22

Il est possible de reprogrammer l'OS des Casio Graph 35+E et Graph 75+E, et d'y faire ainsi tourner des OS modifiés ou tiers, même si ce dernier cas relève encore à ce jour de la science-fiction.

Toutefois cela nécessite l'outil fxRemote dont le code source n'a jamais été publié et que les auteurs ne mettent plus à jour depuis des années. :mj:
Les autres modèles Graph 25+E, Graph 90+E et fx-CP400+E n'étaient donc en pratique pas reprogrammables à ce jour.


Mais les choses viennent de changer grâce the6p4c. Ce dernier avait déjà analysé et documenté le format utilisé par l'image d'OS dans le fichier temporaire OSupdateDLL.dll extrait lors de la mise à jour des calculatrices, une simple compression GZip. Il a pris le temps d'expliquer sa démarche pas à pas avec moultes détails, si bien que l'article est accessible sans connaissances techniques bien poussées.

Une fois l'image extraite il devient donc possible en théorie de la modifier, de la recompresser, puis de la réintégrer dans le fichier DLL grâce à un éditeur de ressources.

Théorie que the6p4c s'est empressé de mettre en pratique.

Mais question. Où injecter notre propre code ? Dans l'immédiat il faut trouver une adresse fixe qui tout en étant appelable ne soit pas utilisée par le système en temps normal, afin de ne pas générer de conflit.

47064707the6p4c fait le choix pour cela d'utiliser le mode Debug. C'est un mode qui est proposé lorsque l'on appelle le menu de diagnostics de la machine :
  • éteindre la calculatrice
  • allumer la calculatrice en maintenant les touches
    =
    et
    EXP
  • taper alors rapidement
    et
    z
  • taper alors rapidement
    3

92549253Cette manipulation rajoute un bouton
Check
à l'écran de sélection de la langue, permettant de lancer un programme de tests.

Et voici, the6p4c nous signe en ce jour historique la toute première programmation d'un système modifié sur calculatrice fx-CP400, le bouton
Check
ne lançant plus le programme de tests de Casio mais déclenchant l'affichage de deux lignes de texte, comme tu peux le constater toi-même ci-contre ainsi que sur la démo-vidéo ci-dessous :

Précisons que la mise en pratique avec le bouton
Check
n'est absolument pas détournable afin de contourner le mode examen. En effet, le mode Debug est annulé à chaque redémarrage de la calculatrice, dont le redémarrage suivant l'activation du mode examen, et qu'en prime le menu de diagnostics n'est pas appelable une fois en mode examen.

Par contre ce qui est remarquable, c'est que la modification du fichier OSupdateDLL.dll va bien au-delà de la fx-CP400+E et peut être appliquée aux autres logiciels de mise à jour Casio fonctionnant sur le même principe, soit pour les modèles Graph 90+E et même Graph 75+E si un jour pour une raison ou pour une autre fxRemote n'était plus exploitable. :bj:

En attendant the6p4c est passé à la configuration d'un compilateur C pour fx-CP400+E, histoire d'être capable de sortir rapidement des bouts de code un peu plus évolués qu'un simple affichage de quelques lignes de texte. A suivre... ;)


Sources :
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47%
 
Posts: 41934
Images: 15609
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: 1ère programmation OS modifié fx-CP400+E

Unread postby Lionel Debroux » 29 Jan 2018, 22:04

Ce travail que j'avais vu chez @binnitamshah mérite d'être salué, tant pour le travail de RE que pour l'effort de rédaction :)
La méthode utilisée pour modifier le DLL pourra toujours servir ailleurs, oui.
On attend avec impatience la suite.

Pas de vraie protection contre le transfert d'OS arbitraires, donc... c'est juste que presque tout le monde se fout de ce modèle rare dont l'OS n'est pas très supérieur à celui des modèles dix ans plus vieux dont il est dérivé :D
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6863
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: 1ère programmation OS modifié fx-CP400+E

Unread postby The6P4C » 02 Feb 2018, 06:52

Hey everyone!

Sorry this isn't in French. I've exactly 0 experience in French and I know Google Translate is terrible so I'll just write in English.

I've been working for a while and I've actually got a lot more information about the calculator than I've published on my blog. I've been able to write a small stub of code which can be placed in the much easier to access "Imaginary Unit" setup menu (accessible through System App -> System Menu -> Imaginary Unit menu, no debug mode necessary) which loads a binary file placed on the flash and runs it. This has meant I've been able to avoid having to flash the device (which can take almost 5 minutes to do) when testing out code. I haven't been able to successfully return from the stub back to the calculator code yet, meaning the calculator must be reset with the rear button once the code has finished running, but it's still WAY quicker than re-flashing every time.

Obviously in having to do this I've investigated the file system functions quite heavily (open, close, fstat, read, write, etc.) and I've written quite a bit of documentation about them. I haven't discovered a system call interface like I've seen on the Prizm model yet, so I'm relying on using the direct addresses of each of the functions to call them from my own code. I'm pretty sure there won't be one though - since the device doesn't support add-ins it wouldn't make sense for CASIO to add a system call interface.

I'm not exactly ready to publicly release my information yet, since I'd like to confirm stuff and build a platform where people can run their own code easily before I do. When I've got that, I'll definitely release something akin to a basic SDK. Then the real work can get started and the device properly investigated.

Glad to know you guys have found my posts and think it's cool.

-- The6P4C
User avatar
The6P4CProgrammeur
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 20%
 
Posts: 3
Joined: 02 Feb 2018, 06:44
Location: Brisbane, Australia
Gender: Not specified
Calculator(s):
MyCalcs profile
YouTube: The6P4C
Twitter: The6P4C
GitHub: The6P4C

Re: 1ère programmation OS modifié fx-CP400+E

Unread postby Lionel Debroux » 02 Feb 2018, 07:55

Thanks for posting here :)

Sorry this isn't in French. I've exactly 0 experience in French and I know Google Translate is terrible so I'll just write in English.

Don't worry, a bunch of persons post purely in English on TI-Planet ;)

(about the Imaginary Unit mode stub)

Interesting. Saving flashing time is precious for development.

Obviously in having to do this I've investigated the file system functions quite heavily (open, close, fstat, read, write, etc.) and I've written quite a bit of documentation about them.

Great :)

I haven't discovered a system call interface like I've seen on the Prizm model yet, so I'm relying on using the direct addresses of each of the functions to call them from my own code. I'm pretty sure there won't be one though - since the device doesn't support add-ins it wouldn't make sense for CASIO to add a system call interface.

Indeed.

I'm not exactly ready to publicly release my information yet, since I'd like to confirm stuff and build a platform where people can run their own code easily before I do.

This approach was used for Ndless on the Nspire, it's pretty sound.

Keep up the good work ;)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6863
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: 1ère programmation OS modifié fx-CP400+E

Unread postby critor » 03 Feb 2018, 00:20

Thank you for your nice post @The6P4C :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47%
 
Posts: 41934
Images: 15609
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


Return to News Casio

Who is online

Users browsing this forum: No registered users and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
844 utilisateurs:
>822 invités
>13 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)