π
<-

Pourquoi l'anti-downgrade des TI-83 Premium CE est néfaste

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Pourquoi l'anti-downgrade des TI-83 Premium CE est néfaste

Unread postby critor » 02 Apr 2017, 16:21

Dans un article précédent, nous découvrions que pour la toute première fois dans l'histoire de la famille des calculatrices TI-z80, les TI-83 Premium CE munies du Boot Code 5.1.5.0014 étaient dotées d'une protection anti-downgrade.

Le fonctionnement de cette protection est très similaire à celui de celle des TI-Nspire, à la seule différence qu'il ne tient pas compte du numéro de version complet mais juste des 3 premiers chiffres :
  • Pour toute tentative d'installation d'un nouvel OS, les 3 premiers chiffres de la version sont vérifiés en début de transfert, lors de l'envoi du certificat.
    Si ils sont inférieurs à la version minimale autorisée pour la calculatrice en question, l'installation est refusée.
  • Si l'installation est acceptée, tous les OS depuis la version 5.1.5 incluent dans leur certificat une deuxième information de version, la version minimale autorisée suite à l'installation.
    Si cette version est supérieure à celle de la calculatrice, elle est alors enregistrée dans la mémoire Flash permanente, dans une zone qu'aucun menu officiel ne permet de réinitialiser.

Cette protection ne semble pas fonctionnelle sur les toutes premières TI-83 Premium CE commercialisées, munies d'un Boot Code 5.0.0.89.
C'est la raison pour laquelle elle na été découverte que si tardivement.

Pour les machines affectées, voici le détail à ce jour :
Version OS
installé
Nouvelle
version minimale
autorisée
5.1.55.1.5
5.2.05.1.5
5.2.15.1.5
5.2.25.1.5

À ce jour, on pourrait donc nous objecter que Texas Instruments n'a pas exagéré, évitant pour le moment de bloquer systématiquement tout retour à un OS antérieur comme sur TI-Nspire.
Si tu disposes d'une TI-83 Premium CE, peu importe que tu lui installes un OS 5.1.5 à 5.2.2, tu pourras quand même revenir en 5.1.5.



Nous admettrons même que cette protection anti-downgrade est une conséquence perverse logique/légitime de l'adoption du mode examen en France.
Vu que plusieurs des dernières mises à jour d'OS modifient le comportement du mode examen, il serait très grave de permettre à un candidat de revenir à un ancien mode examen qui justement posait problème.



Mais ça, c'était la théorie.
En pratique sur sur TI-Nspire, la dernière version n'est pas toujours le meilleur choix selon les besoins et le modèle.
La protection anti-downgrade systématique empêchant tout retour en arrière immédiatement après une mise à jour a nombre de fois été très nuisible aux utilisateurs.
Il y a les cas où la nouvelle version apportait des bugs, de calculs ou autres...
Et même des cas où la nouvelle version ne démarrait pas correctement dans certaines situations, ce qui bloquait donc définitivement la machine :
  • systèmes 2.1+ sur les TI-Nspire munies d'un Boot2 1.1
  • systèmes 3.6+ sur les prototypes TI-Nspire DVT
  • ...



Est-ce que ce sera mieux sur TI-83 Premium CE ?
Visiblement non... À peine Texas Instruments a-t-il mis en place cette protection, que nous avons déjà des motifs de dénoncer cet abus.

Normalement, ta calculatrice devrait rester parfaitement fiable tant que tu t'en tiens à l'utilisation d'applications officielles et de programmes TI-Basic.
À partir du moment où tu commences à utiliser des applications non officielles (ce qui n'existe pas à ce jour pour TI-83 Premium CE) ou des programmes assembleur, il est "normal" de pouvoir rencontrer des plantages.

Et bien non, cette règle n'est pas respectée. :#non#:
Depuis la version d'OS 5.1.0, la TI-83 Premium CE dispose d'un bug très grave (déjà reporté à TI) faisant planter la machine et détruire tout le contenu de la mémoire de travail (RAM) en seulement 3 lignes de TI-Basic ! :o
Il suffit de faire appel à une liste complexe vide, ce qui sur les versions 5.0.0 antérieures déclenchait un simple erreur de dimension. :mj:

Une fois la ligne déclencheuse atteinte, la calculatrice se bloque avec un écran zébré :
7368
Code: Select all
EffÉcran
Disp "Setting list type to cplx:
{→L₁
Disp L₁
Output(2,1,"L₁=
Disp "List type is now cplx-list
0→dim(L₁
Disp dim(L₁
Output(4,1,"Emptying list: dim(L₁)=
Disp "Asking for whole content
Disp "should trigger invalid dim
Disp "error like with real-lists
Disp "With v5.1+ it is crashing:
Disp "[ON]=abort [ENTER]=crash…
Pause
Disp "L₁=",L₁

Et voilà, maintenant c'est le reset avec la perte totale de données, alors que nous n'avons utilisé que des instructions officielles documentées. :mj:

Bien évidemment, il n'y a aucun intérêt à vouloir utiliser une liste vide dans un programme.
Mais dans un gros programme utilisant des listes complexes, il n'est pas impossible qu'un bug puisse conduire à ce cas.
Et même si le programme travaille juste sur des listes réelles, elles pourront très bien être complexes si elles ne sont pas correctement réinitialisées en début de programme...

Bref, si tu as réussi à obtenir des plantages sans aller chercher de programmes assembleur, c'est hélas normal depuis la versions 5.1.0. :(
La solution serait de revenir à une version 5.0.0, mais si ta calculatrice est venue avec un Boot Code 5.1.5 cela t'est interdit - bienvenue chez TI... :#roll#:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.9%
 
Posts: 41980
Images: 15866
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby Hayleia » 02 Apr 2017, 16:24

Ce boot code est donc spécifique à la calculatrice ? Il n'est pas mis à jour lors d'une mise à jour de l'OS ?
edit
"Si cette version est supérieure à celle de la calculatrice, elle est alors enregistrée dans la mémoire Flash permanente, dans une zone qu'aucun menu officiel ne permet de réinitialiser."

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby critor » 02 Apr 2017, 16:43

Le Boot Code n'est pas mis à jour non.
D'une part les fichiers d'OS ne le contiennent pas, et d'autre part il est programmé au début de la mémoire Flash, sur des secteurs protégés contre la réécriture.

Le numéro de version minimale autorisée lui, est inscrit en Flash dans la zone des TI-Certificats.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.9%
 
Posts: 41980
Images: 15866
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby parrotgeek1 » 03 Apr 2017, 16:25

I wonder if you could make a parser hook which detects empty complex lists before the bug happens and calls the ERR: screen itself. I know how to do that on z80 but not ez80.
User avatar
parrotgeek1Programmeur
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 88.2%
 
Posts: 748
Joined: 29 Mar 2016, 01:22
Location: This account is no longer used.
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby PT_ » 03 Apr 2017, 19:26

Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"
Age of CEmpires I - In progress!
40%
User avatar
PT_Programmeur
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 57.2%
 
Posts: 259
Joined: 09 Feb 2016, 23:06
Gender: Male
Calculator(s):
MyCalcs profile

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby parrotgeek1 » 03 Apr 2017, 19:39

PT_ wrote:Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"

The problem is no one has publicly posted how to use a modified OS
User avatar
parrotgeek1Programmeur
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 88.2%
 
Posts: 748
Joined: 29 Mar 2016, 01:22
Location: This account is no longer used.
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby critor » 03 Apr 2017, 20:12

PT_ wrote:Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"

Great, PT_.
I did report that bug last september, it was still unfixed in OS 5.2.2, and you just fixed it in less than a day ! :bj:

Unfortunately, there is no OS 5.2.2 for the TI-83 Premium CE - we're still with OS 5.2.1.

parrotgeek1 wrote:
PT_ wrote:Nah, I've already discovered (and 'fixed') the bug, rather than doing complex stuff with hooks ;)

"I've fixed that dimension error bug! With OS 5.2.2.0043, at address $087561 (sorry, there is no label near it), there is a "dec hl \ ld a, h \ or a, l \ jr nz, $-E0", however, HL starts with 0 the first time it loops, so it first sets HL to $FFFFFF, and thus this routine will loop $FFFF times. Placing the "dec hl" after the "ld a, h \ ld a, l" would fix it :)"

The problem is no one has publicly posted how to use a modified OS


Using it is not a problem, the signature is only checked at installation.

So we would just need an on-calc patching program. ;)
Can this be done, @PT_ ?

We just then won't be able to transfer the patched OS directly from the calculator to another one, since it won't validate.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.9%
 
Posts: 41980
Images: 15866
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby PT_ » 03 Apr 2017, 23:08

Well, it's definitely doable to modify the OS, and if you REALLY want to, I'm MAYBE willing to write a program that swap these things what I said. My only problems are that I have not many free time, and I still shudder when thinking about modifying an OS, even though people say it's legal ;)
Age of CEmpires I - In progress!
40%
User avatar
PT_Programmeur
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 57.2%
 
Posts: 259
Joined: 09 Feb 2016, 23:06
Gender: Male
Calculator(s):
MyCalcs profile

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby critor » 03 Apr 2017, 23:50

Patching is legal, indeed.
Sharing patched images isn't.

That's the difference. ;)
And that's why I was asking about a patching program.

Even if you don't have many time, you might still be able to complete the patcher before TI fixes the bug. :P
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.9%
 
Posts: 41980
Images: 15866
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Pourquoi l'anti-downgrade des TI-83 Premium CE est néfas

Unread postby PT_ » 04 Apr 2017, 13:06

Hehe, I've patched the OS and fixed it! :P

Image

(Hope I didn't break anything else)
Age of CEmpires I - In progress!
40%
User avatar
PT_Programmeur
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 57.2%
 
Posts: 259
Joined: 09 Feb 2016, 23:06
Gender: Male
Calculator(s):
MyCalcs profile

Next

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: ClaudeBot [spider] and 7 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.
665 utilisateurs:
>643 invités
>15 membres
>7 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)