π
<-
Chat plein-écran
[^]

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

Online

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 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.

47064707
the6p4c
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: 9.1%
 
Posts: 36043
Images: 9856
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
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: 7.7%
 
Posts: 6579
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
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):
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: 7.7%
 
Posts: 6579
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Online

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: 9.1%
 
Posts: 36043
Images: 9856
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor


Return to News Casio

Who is online

Users browsing this forum: No registered users and 8 guests

-
Search
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.2 pour les Nspire CX II
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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.
495 utilisateurs:
>486 invités
>3 membres
>6 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)