Mise-à-jour du Boot Code

Dans la suite, on considèrera que la calculatrice est une TI-83+BE ou TI-73 (512Ko de ROM).
J'ai donc conçu depuis hier un utilitaire qui me permet de générer des fichiers de mise-à-jour (8Xu) valides, à partir du contenu d'une ROM.
http://tiplanet.org/index.php?mod=ar ... oirid=1641
Mais la ROM sur les z80 contient le Boot Code (1.00 ou 1.01).
Pourquoi n'est-il donc pas mis-à-jour en même temps que le système?
Et bien analysons un peu plus les fichiers 8xu de TI.
La ROM sur les z80 est découpée en pages de 16Ko.
Sur TI-83+, il y a 32 pages, et en effet 32*16=512.
Ces pages sont numérotées en hexadécimal de 00 à 1F (00 à 31).
Le fichier 8Xu est séparé en plusieurs sections, qui mettent à jour certaines pages, et pas d'autres.
Les pages mises à jour sont:
- 00 à 07
- 18 à 1D (24 à 29)
Cela permet notamment de conserver le contenu des pages non mises à jour: applications et Boot Code.
Où est donc le Boot Code?
Tout à la fin de la ROM, dans la page 1F (31).
Grâce à une version modifiée de mon programme, j'ai extrait cette page d'une ROM TI-83+ en Boot Code 1.00, et l'ai incluse après formatage dans un fichier 8Xu contenant l'OS 1.19.
J'ai donc ensuite pris comme cobaye une TI-83+ avec Boot Code 1.01, et ai donc tenté le downgrade du Boot Code en version 1.00.
(tout en sachant qu'il était possible que le cobaye ne sorte pas vivant de l'expérience)
Le transfert du fichier commence correctement (TI OS Downloader et TiLP) et la barre de progression avance totalement normalement.
Mais autour de 90%, la calculatrice affiche "ERROR" (le message standard du Boot Code quand il y a un problème).
Ce n'est pas le logiciel de transfert qui déclenche l'erreur, puisque ce dernier continue d'attendre avant d'afficher une erreur de "time-out".
De plus, l'erreur se produisant avant 100%, ce n'est pas un problème de validation/signature...
La calculatrice refuse donc tout simplement d'écrire sur la page 1F de la ROM.
Le Boot Code semble donc protégé (au moins logiciellement) contre l'écriture.
La TI-83+ est donc ressortie vivante du labo de Critor . . .
. . .
. .
.
pour cette fois
bwawawawawawahhhhhh!!!!!
J'ai donc conçu depuis hier un utilitaire qui me permet de générer des fichiers de mise-à-jour (8Xu) valides, à partir du contenu d'une ROM.
http://tiplanet.org/index.php?mod=ar ... oirid=1641
Mais la ROM sur les z80 contient le Boot Code (1.00 ou 1.01).
Pourquoi n'est-il donc pas mis-à-jour en même temps que le système?
Et bien analysons un peu plus les fichiers 8xu de TI.
La ROM sur les z80 est découpée en pages de 16Ko.
Sur TI-83+, il y a 32 pages, et en effet 32*16=512.
Ces pages sont numérotées en hexadécimal de 00 à 1F (00 à 31).
Le fichier 8Xu est séparé en plusieurs sections, qui mettent à jour certaines pages, et pas d'autres.
Les pages mises à jour sont:
- 00 à 07
- 18 à 1D (24 à 29)
Cela permet notamment de conserver le contenu des pages non mises à jour: applications et Boot Code.
Où est donc le Boot Code?
Tout à la fin de la ROM, dans la page 1F (31).
Grâce à une version modifiée de mon programme, j'ai extrait cette page d'une ROM TI-83+ en Boot Code 1.00, et l'ai incluse après formatage dans un fichier 8Xu contenant l'OS 1.19.
J'ai donc ensuite pris comme cobaye une TI-83+ avec Boot Code 1.01, et ai donc tenté le downgrade du Boot Code en version 1.00.
(tout en sachant qu'il était possible que le cobaye ne sorte pas vivant de l'expérience)
Le transfert du fichier commence correctement (TI OS Downloader et TiLP) et la barre de progression avance totalement normalement.
Mais autour de 90%, la calculatrice affiche "ERROR" (le message standard du Boot Code quand il y a un problème).
Ce n'est pas le logiciel de transfert qui déclenche l'erreur, puisque ce dernier continue d'attendre avant d'afficher une erreur de "time-out".
De plus, l'erreur se produisant avant 100%, ce n'est pas un problème de validation/signature...
La calculatrice refuse donc tout simplement d'écrire sur la page 1F de la ROM.
Le Boot Code semble donc protégé (au moins logiciellement) contre l'écriture.
La TI-83+ est donc ressortie vivante du labo de Critor . . .
. . .
. .
.
pour cette fois

bwawawawawawahhhhhh!!!!!