π
<-
Chat plein-écran
[^]

Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Online

Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby critor » 14 Oct 2021, 11:01

7230Les calculatrices graphiques
Classpad
sont le haut de gamme de
Casio
. Elles combinent un moteur de calcul formel et un écran tactile résistif à stylet.

Les derniers modèles appartiennent à la génération
Classpad II
et présentent en prime un écran couleur. Il s'agit à ce jour des :
  • fx-CP400+E
    en France
    (rentrée 2016)
  • fx-CG500
    en Amérique du Nord
    (rentrée 2017)
  • fx-CP400
    dans le reste du monde
    (rentrée 2013)
Pour simplifier, nous les désignerons par la suite en tant que
fx-CP400
.

Les
fx-CP400
rencontrent du succès dans certains pays mais clairement pas en France ; c'est une combinaison de différents facteurs qui explique cela, tout dépend de ce que l'on fait avec.

D'une part, bien que leur processeur soit identique à celui de la superbe
Graph 90+E
(un 32 bits
Renesas SH4
cadencé à
117,96 MHz
)
, les
fx-CP400
sont des modèles assez lents. Plusieurs opérations s'achevant dans la minute sur d'autres modèles peuvent ici dans certains cas nécessiter plusieurs minutes, et parfois encore pire :
  • programmes
    (déjà arrivé avec un algorithme du
    BAC S
    )
  • graphiques
  • tableau de variations
Le problème est ainsi transversal aux diverses applications, et on ne peut clairement pas incriminer le processeur. L'autre hypothèse permettant alors d'expliquer tout cela, c'est le moteur de calcul numérique, ces manipulations ayant en commun d'effectuer une série de calculs. Il semble que le moteur de calcul numérique ait du mal dans certains cas, possiblement parce que le moteur de calcul formel interfère d'une façon non optimale.

Rien à avoir avec le moteur de calcul, mais les affichages graphiques au sein des programmes ont également le défaut d'être très lents. En conséquence il n'y a que très peu de développement de programmes pour
fx-CP400
, donc peu de sites qui en distribuent, et sans doute que ça joue sur les achats dans les pays où les utilisateurs se sentent concernés par la possibilité de rajouter des programmes comme en France.

Jusqu'au modèle
Classpad 330
de la rentrée 2007, on pouvait développer des applications en langage
C
et assembleur puis les compiler en fichiers
.cpa
, contournant ainsi à la fois la lenteur et les limitations du langage de programmation interprété
Basic
.

Hélas à compter de la
Classpad 330+
de la rentrée 2012,
Casio
a fait le choix de fermer complètement la gamme aux développements tiers. Le format des applications devient le
.c1a
.
Casio
semble avoir lourdement taillé dans la gestion des applications, dans le sens où le code des applications est maintenant intégré en dur dans le système d'exploitation. Les
fx-CP400
ont repris le même fonctionnement avec le format
.c2a
.

Les applications possibles sont ainsi restreintes aux seules applications officielles et applications développées en partenariat avec
Casio
. C'est très simple, il n'en existe que 2 à notre connaissance :
  • Physium
    , application officielle avec le tableau périodique des éléments et la bibliothèque de constantes physiques
  • , application partenaire de vérification des étapes d'un calcul littéral, comme par hasard payante et sans aucune concurrence possible suite aux choix de la fermeture par
    Casio
Les fichiers
.c1a/c2a
semblent ainsi ne contenir que de quoi donner accès au code de l'application déjà intégrée au système, ainsi que les nom et icône à afficher au menu d'accueil.

Dans une actualité précédente, nous te parlions des travaux de .

Il avait réussi suite à un lourd travail de rétro-ingénierie et de documentation, à installer un système d'exploitation modifié sur sa
fx-CP400
.

Le système en question permettait d'exécuter du code machine préalablement injecté lors de la modification. Oui, c'était la 1ère exécution de code machine tiers sur
fx-CP400
! :bj:

C'était bien évidemment insuffisant en l'état ; il n'était pas envisageable de devoir réinstaller un nouveau système d'exploitation à chaque fois que tu souhaitais lancer du code différent.

Il fallait quelque chose pour permettre de charger à chaud tes programmes en langage machine, et choisir lequel exécuter.

avait en ce sens commencé à développer
Hollyhock
, un
jailbreak
pour ta
fx-CP400
, mais n'y avait hélas plus touché depuis 3 ans.

Le projet
Hollyhock
n'ayant pas atteint la
release
, tu devais déjà t'embêter à le compiler toi-même. Mais de plus même après ça, son installation correcte nécessitait nombre de manipulations bien trop techniques pour l'utilisateur final.

14708Et bien aujourd'hui nous y sommes enfin.
SnailMath
a repris le travail de et nous sort
Hollyhock-2
, une version cette fois-ci bien plus facile à installer ! :bj:

Enfin après une attente interminable de 8 années, nous avons notre
jailbreak
à la
Ndless
/
arTIfiCE
pour les
fx-CP400
! :D

Hollyhock-2
contient différents éléments :
  • le
    patch
    modifiant le système d'exploitation pour lui rajouter un bouton permettant l'exécution de code arbitraire
  • un lanceur de programmes en langage machine
    (fichier
    run.bin
    )
    lancé par le bouton précédent, t'affichant donc la liste des programmes lançables
  • quelques exemples de jeux en langage machine

Enfin des jeux
fx-CP400
qui peuvent bénéficier à pleine vitesse des capacités du processeur et de l'écran ! :bj:

Précisons que le
patch
modifiant le système d'exploitation cible à ce jour la seule version
2.01.2000
remontant à la rentrée 2017.
(ce qui veut dire que si tu installes
Hollyhock-2
, tu renonces à ce jour aux améliorations apportées depuis puisque nous en sommes aujourd'hui à la version
2.01.7000
, et notamment les corrections de valeurs du tableau périodique des éléments avec la version
2.01.6000
)


L'installation se passe uniquement sous
Windows
à ce jour. Le patch est appliqué à chaud, pendant que tu exécutes le logiciel officiel de mise à jour de la calculatrice en version
2.01.2000
.

Voici les instructions d'installation :
  1. Mets le dossier
    Snail2021/
    du
    .zip
    téléchargé obligatoirement sur ton bureau
  2. Lance le logiciel
    Snail2021.exe
    présent dedans, et qui te guidera dans tout le reste de la procédure d'installation
  3. Installe le logiciel , qui servira à
    patcher
    automatiquement l'
    OS
    au sein du fichier
    .dll
    de
    Casio

  4. Lance le logiciel officiel de mise à jour en version
  5. Confirme les différentes boîtes de dialogue du logiciel officiel jusqu'à-ce qu'il te demande de connecter la calculatrice
    (ne pas confirmer cette dernière boîte)

  6. Retourne sur le fenêtre de
    Snail2021
    et valider en tapent
    Entrée
    ;
    Snail2021
    va alors récupérer et patcher le fichier
    .dll
    de mise à jour de
    Casio
    .
  7. Une fois que
    Snail2021
    te confirme avoir récupéré les fichiers, retourne sur la fenêtre du logiciel officiel de mise à jour pour annuler l'installation et la fermer.
  8. Retourne sur la fenêtre de
    Snail2021
    pour confirmer le
    patching
    de l'
    OS
    en validant avec
    Entrée
    .
    14706
  9. Il est maintenant temps d'installer l'
    OS
    modifié sur ta calculatrice. La version
    2.01.2000
    est très probablement plus ancienne que tu as déjà sur la machine en question. Pour installer donc une version inférieure à celle que ta calculatrice exécute, tu as besoin de mettre cette dernière en mode de récupération de l'
    OS
    , sans quoi l'installation sera refusée :
    1. maintiens enfoncées les 3 touches
      EXP
      ^
      Clear
    2. sans relâcher ces 3 touches, enfonce et relâche le bouton
      RESTART
      au dos
    3. la calculatrice affiche alors un l'écran texte suivant :
      Code: Select all
      *****************
      *               *
      *   OS Error    *
      *               *
      * Please update *
      *               *
      *      OS.      *
      *               *
      *****************
  10. Sur la fenêtre de
    Snail2021
    , valide alors l'installation de l'
    OS
    modifié en tapant
    Entrée
    .
  11. Patiente le temps de l'installation de l'
    OS
    , plusieurs minutes.
  12. Une fois l'installation terminée, copie les fihiers suivants du dossier
    Snail2021
    sur ta calculatrice
    (directement à la racine et pas dans un sous-dossier)
    :
    • run.bin
      (obligatoire pour le bon fonctionnement d'
      Hollyhock-2
      , c'est lui qui te permettra de choisir le programme assembleur à exécuter)
    • et si tu le souhaites, les fichiers
      .hhk
      contenant des exemples de jeux
      (MineSnail qui est un démineur, Snake, et Tetris30)

Voilà, ta calculatrice est maintenant enfin capable de lancer des programmes en langage machine ! :bj:
Ceux-ci peuvent être de différents types :
  • du langage machine directement exécutable, assemblé sur ordinateur à partir de code assembleur
    SH4
    ou compilés à partir de code source
    C
  • des programmes directement modifiables sur ta calculatrice
    (dans l'éditeur de programmes)
    contenant une représentation hexadécimale du code machine

14707L'utilisation d'
Hollyhock-2
est très simple. Il modifie le menu de l'application textuelle, mettant le lanceur de code
Hollyhock-2
à la place de la configuration de l'unité imaginaire
i/j
.

Ce menu t'exécute alors le fichier
run.bin
si tu l'as placé au bon endroit, ce dernier te listant alors les programmes en langage machine exécutables.

14709Précisons que
Hollyhock-2
respecte le mode examen de
Casio
, refusant dans ce contexte de lancer
run.bin
et donc t'empêchant entre autres d'exécuter des programmes pouvant t'afficher des données/informations interdites.

Le fonctionnement de ce blocage est extrêmement simple. En mode examen, l'icône indiquant la charge de batterie en bas à droite change de couleur. Elle est :
  • grise hors mode examen
  • verte dans les 15 minutes suivant l'activation du mode examen
  • puis bleue en mode examen au-delà des 15 premières minutes

Hollyhock-2
vérifie tout simplement la couleur de cette icône, et refuse de lancer
run.bin
si cette dernière n'est pas grise.

Nous verrons bien ce qu'en pense
Casio
, si il y a une réaction ou pas. Mais paradoxalement, le fait que le code source d'
Hollyhock-2
soit public, permet à n'importe qui de malintentionné de le modifier pour faire sauter cette sécurité. :mj:

Reste maintenant à savoir si
Hollyhock-2
va pouvoir relancer l'intérêt envers la
fx-CP400
ainsi que ses ventes, dans les pays qui comme en France avaient laissé de plus en plus ce modèle de côté.

À ce jour nous en sommes loin, il n'existe pas grand chose comme programmes pour le moment.

Un problème est aussi que
Hollyhock-2
nous sort bien tard. La
fx-CP400+E
sortie en 2016 n'a certes que 5 ans. Mais ce modèle n'a fait que rajouter une diode examen à la la
fx-CP400
qui existait déjà depuis 2013 et continue à être commercialisée aujourd'hui hors de France.

La
fx-CP400
a ainsi aujourd'hui plus de 8 ans, c'est un record, jamais aucun modèle couleur ou formel de
Casio
n'avait duré aussi longtemps sans remplacement.

Il est possible que la pandémie ait ralenti les choses, mais pour nous la
fx-CP400
est en fin de vie et devrait être remplacée très prochainement par un nouveau modèle, à moins d'un changement de stratégie de
Casio
qui pourrait avoir décidé de ne poursuivre le développement du logiciel de Mathématiques intégré
Classpad
que dans sa version en ligne ayant l'intérêt d'être directement exécutable sur les smartphones/tablettes de plus en plus utilisés au lycée.

Jusqu'à présent l'histoire n'a jamais offert de succès aux
jailbreaks
sortant aussi tardivement. On peut citer :
  • la
    TI-81
    : sortie en
    1990
    , elle n'a eu son
    jailbreak
    qu'en
    2010
    , soit après 20 ans, avec un succès quasiment nul.
  • la
    TI-73
    : sortie en
    1998
    , elle n'a eu son
    jailbreak
    que 7 ans après en
    2005
    . Il était déjà bien tard, le public intéressé par le développement
    assembleur
    avait déjà pris l'habitude d'éviter ce modèle d'entrée de gamme, cette sortie n'a pas intéressé grand monde et n'a pas changé les habitudes : extrêmement peu de programmes assembleur sortis pour cette plateforme.
  • la
    TI-82
    : sortie en
    1993
    elle a eu son premier
    jailbreak
    en
    1997
    , un meilleur délai mais qui restait quand même important. De plus en
    2001
    Texas Instruments
    a lourdement modifié les
    TI-82
    afin d'économiser sur les coûts de production, leur faisant utiliser la carte électronique très différente de la
    TI-83
    avec une version système spéciale
    19.006
    , cassant ainsi la compatibilité. 8 ans après le lancement cela n'intéressait plus grand monde, les mises à jour des
    jailbreaks
    se sont faites attendre, et n'ont pas toujours conservé la compatibilité avec les programmes assembleur produits pour les anciennes versions. En conséquence de ces délais et incidents, une bibliothèque de programmes assembleur nettement réduite par rapport à ce qui est sorti pour d'autres modèles contemporains comme la
    TI-85
    .

Nous souhaitons bien évidemment le meilleur à
Hollyhock-2
et ne demandons qu'à-ce que l'avenir balaye nos craintes, mais il n'empêche qu'après 8 ans il est maintenant bien tard pour juste
commencer
l'aventure assembleur sur
fx-CP400
.

Téléchargements pour Windows
:


Tutos-vidéo
:


Code source
:
https://github.com/SnailMath/hollyhock-2
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 24.5%
 
Posts: 38811
Images: 11333
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby Adriweb » 14 Oct 2021, 13:51

Meme si ca ne remporte pas un succès fou (on verra bien), mieux vaut tard que jamais, comme on dit, au moins l'exploit technique existe :)
Image
MyCalcs
: Help the community's calculator documentations by filling out your calculator info!
MyCalcs
: Aidez la communauté à documenter les calculatrices en donnant des infos sur votre calculatrice ![/url]
Inspired-Lua.org
: All about TI-Nspire Lua programming
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 71.5%
 
Posts: 13678
Images: 1107
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Twitter: adriweb
GitHub: adriweb

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby DJ Omnimaga » 14 Oct 2021, 16:24

Mieux vaut tard que jamais. :)

Juste dommage que je n'ai plus en ma possession une fx-CP400 acheté à "gros rabais" (par gros rabais, je veux dire la modique somme de 105 euros, ce qui reste beaucoup trop cher pour les performances de la machine), car j'aurais bien aimé la voir en action avec de l'ASM.
User avatar
DJ OmnimagaPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 60.6%
 
Posts: 524
Images: 23
Joined: 21 Feb 2012, 12:04
Location: Quebec, Canada
Gender: Male
Calculator(s):
Class: Diplômé Secondaire (11ème année scolaire terminé)
YouTube: DJOmnimaga
Twitter: DJOmnimaga
Facebook: djomnimaga.music

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby SlyVTT » 14 Oct 2021, 19:57

C'est clair que ceci serait arrivé au bout d'un ou deux ans, la donne aurait été tout autre.
On doit pouvoir faire des trucs sympas en ASM/C, surtout si on sait accéder au stylet.
Je connais pas la machine, mais je trouve bizarre que même via le hook, on voit encore la barre d'icones du bas de l'écran.
Ca a pas l'air d'être un jailbreak "à la Ndless", mais plutôt une ouverture à l'API des fonctions de l'OS.
Du coup je sais pas si ça reste pas encore limité au niveau des performances.
Cela dit l'exploit mérite un bravo.

Sly
Developing the GUI Toolkit for nSpire
see current revision here : https://github.com/SlyVTT/Widget-for-TI-NSpire

And for the GUI Toolkit NF (New Foundation), this is here https://github.com/SlyVTT/Widgets-Spire-NF

Image Image Image Image
User avatar
SlyVTTPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 4.1%
 
Posts: 230
Images: 0
Joined: 19 Jan 2021, 09:41
Gender: Male
Calculator(s):

Online

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby critor » 14 Oct 2021, 20:00

Merci pour vos retours. :)

SlyVTT wrote:Je connais pas la machine, mais je trouve bizarre que même via le hook, on voit encore la barre d'icones du bas de l'écran.

Sur cette photo ?
14708
Ce sont tout simplement des boutons tactiles physiques en bas d'écran ; ils sont hors de la dalle de pixels.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 24.5%
 
Posts: 38811
Images: 11333
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby SlyVTT » 14 Oct 2021, 20:04

Oui c'est ça, OK, quand on connait pas, on dirait vraiment que ca fait partie de l'ecran tactile et que c'est dans la zone d'affichage.
Donc c'est normal qua ca reste apparent ;-)
Ceci explique cela :-D
Developing the GUI Toolkit for nSpire
see current revision here : https://github.com/SlyVTT/Widget-for-TI-NSpire

And for the GUI Toolkit NF (New Foundation), this is here https://github.com/SlyVTT/Widgets-Spire-NF

Image Image Image Image
User avatar
SlyVTTPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 4.1%
 
Posts: 230
Images: 0
Joined: 19 Jan 2021, 09:41
Gender: Male
Calculator(s):

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby fabcvlr » 15 Oct 2021, 08:41

J'attends avec impatience un portage de Python sur la CP400 !
User avatar
fabcvlr
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 40%
 
Posts: 8
Joined: 12 Feb 2012, 09:59
Gender: Male
Calculator(s):

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby Hamza.S » 15 Oct 2021, 09:21

fabcvlr wrote:J'attends avec impatience un portage de Python sur la CP400 !

C'est vrai que ça serait une bonne chose car ça manque cruellement sur ce modèle jusqu'à présent
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 24.1%
 
Posts: 4243
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):

Online

Re: Hollyhock-2 : jailbreak C/assembleur pour fx-CP400

Unread postby critor » 15 Oct 2021, 21:26

Il y aurait beaucoup à faire en effet : Python, KhiCAS, Doom, Mario, Geometry Dash, émulateurs Nintendo... surtout que là contrairement à d'autres modèles, on bénéficie d'un véritable système de fichiers en Flash. :bj:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 24.5%
 
Posts: 38811
Images: 11333
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor


Return to News Casio

Who is online

Users browsing this forum: No registered users and 12 guests

-
Search
-
Social
-
Featured topics
Concours de l'Avent 2021 "l'énigme des 3 portes". Viens prendre connaissance des indices et bouts de code Python chaque jour. Sois parmi les 7 premiers à trouver et franchir l'une des 3 portes pour remporter de superbes lots : équipements complets en calculatrices Python couleur et/ou accessoires exclusifs !
Concours Geometry Dash - 2 équipements complets en calculatrices TI (+ goodies et accessoires) à gagner pour les 2 meilleurs niveaux créés
Concours de dessin de Noël 2021 Jusqu'au 7 janvier 2022 inclus par Casio. Dessine ta liste au Père Noël sur calculatrice/émulateur Graph 90/35+E II en Python ou fx-92+ Spéciale Collège. Ouvert aux élèves et enseignants, classement séparé. À gagner 2 consoles Nintendo Switch, 2 trottinettes électriques, 10 calculatrices Graph 90/35+E II au choix, 72 montres Casio G-Shock ou Vintage. Pas de perdant, goodies Casio pour tous les autres !
Coque NumWorks édition limitée Décembre 2021 à gagner.
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12345
-
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.
636 utilisateurs:
>615 invités
>15 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)