Page 1 of 1

Prototype TI-86 Flash + écran secret mise à jour système

Unread postPosted: 30 Aug 2020, 21:48
by critor

Pour la rentrée 1998 Texas Instruments sortait son premier modèle exploitant la technologie Flash, la TI-89.

Les nouvelles puces Flash ROM avaient l'avantage d'être reprogrammables logiciellement, une révolution qui ouvrait la voie à nombre de possibilités jusque-là totalement inédites :
  • mises à jour du système d'exploitation ; plus besoin donc de te racheter une calculatrice pour bénéficier des corrections de bugs et ajouts ou suppressions de fonctionnalités :bj:
  • stockage de données persistant en cas de retrait des piles et de capacité très supérieure à ce qu'offrait le stockage en RAM jusque-là :bj:
  • gestion des applications :bj:

Toujours cette même rentrée 1998, Texas Instruments sortait parallèlement des modules d'extension TI-92 Plus qui permettaient de rajouter la technologie Flash aux TI-92 et TI-92 II.

Apparue donc sur le haut de gamme, la technologie Flash sera ensuite généralisée à l'ensemble des modèles du constructeur :
  • entrée de gamme TI-73 à la rentrée 1999
  • milieu de gamme TI-83 Plus à la rentrée 1999
  • milieu de gamme TI-84 Plus à la rentrée 2004
  • haut de gamme TI-Nspire à la rentrée 2007

Pour l'entrée de gamme, la TI-82 Stats.fr de la rentrée 2006 utilisait une puce Flash ROM. Pareil hors de France pour la révision matérielle majeure de la TI-82 STATS cette même année.
Toutefois, ces modèles ne permettaient pas à l'utilisateur de profiter des avantages de la technologie Flash, n'utilisant cette dernière qu'en lecture seule. Pas d'applications, pas de mémoire de stockage, pas de mise à jour système.
Même remarque d'ailleurs pour la TI-76.fr de la rentrée 2009.



125661256712569Bien évidemment, si la technologie Flash est donc sortie chez TI pour la rentrée 1998, c'est que leurs ingénieurs l'utilisaient déjà en interne auparavant. Et bien ils l'ont utilisé entre autres sur un modèle qui n'est pas parmi les précédents. ;)

La TI-86 sortie en 1997 utilise une puce ROM de 256 Kio non réinscriptible logiciellement, initialement une Atmel AT27C020.

fred desautels a découvert un prototype TI-86 dérogeant à cette règle. Il utilise une puce ROM qui n'est pas soudée sur la carte mais amovible, emboîtée dans un socle. Jusqu'ici rien de surprenant, il était normal pour les ingénieurs Texas Instruments de se donner les moyens de tester facilement leurs modifications apportées au système. Au lieu de remplacer la calculatrice de développement au complet, pour tester une nouvelle version ici il suffisait tout simplement de remplacer la puce ROM.

Sauf que ce prototype était loin de nous avoir révélé tous ses secrets. Petite différence niveau référence, la ROM n'est pas une AT27C020 mais une AT29C020...

12567Une différence de taille en fait, puisque l'Atmel AT29C020 exploite la technologie Flash et est donc en prime reprogrammable logiciellement ! :bj:

Le prototype fait tourner une version système 1.4001 totalement inconnue jusqu'alors.

Sur les versions équipant les TI-86 commercialisées (1.2, 1.3, 1.4, 1.5 et 1.6), le dernier octet de code système en ROM se situe à l'offset 0x361F0, laissant un peu plus de 40Ko libres après cela. La taille du système TI-86 est donc restée extrêmement stable au cours de ses diverses évolutions.

Alors qu'on aurait pu la supposer très similaire à la version 1.4, la version 1.4001 du prototype déroge à cette règle. A l'offset 0x361F0 nous n'avons ici qu'une interruption temporaire du code, un autre bloc de code de plus de 3Ko étant présent plus loin à l'offset 0x3C000 ! :o
Pour un système dont la fin n'avait jamais bougé du moindre octet, 3K c'est énorme... On y trouve plusieurs chaînes en clair :
Waiting
Receiving
Done
ERROR!
RC!

Commences-tu à comprendre ? Il s'agit tout simplement d'un code de mise à jour du système attendant donc la réception du nouveau système à inscrire en mémoire Flash ROM.

Avant la TI-89 haut de gamme de 1998, la TI-86 de 1997 semble donc être le premier modèle Texas Instruments à avoir été conçu pour exploiter la technologie Flash à des fins de mise à jour du système, même si en pratique cela n'a été utilisé qu'en interne sur les prototypes et modèles de développement ! :bj:

Et d'ailleurs, une étude du code en question par fred desautels révèle le raccourci secret qui permet d'accéder à l'écran de mise à jour du système. Proche du
2nd
MORE
ALPHA
S
pour l'auto-diagnostic, c'est
2nd
MORE
ALPHA
F
. L'écran alors obtenu est aisément distinguable de celui de réception des variables et programmes, et finit par retourner une erreur puisque nous n'avons rien à lui envoyer.

Texas Instruments n'ayant jamais diffusé de fichier de mise à jour pour la TI-86, il resterait donc maintenant à reconstruire le format attendu pour ensuite pouvoir en rajouter la gestion dans un logiciel de connectivité utilisable de nos jours, comme TiLP. ;)

Re: Prototype TI-86 Flash + écran secret mise à jour système

Unread postPosted: 01 Sep 2020, 04:09
by mr womp womp
C'est pas tous les jours qu'on trouve un cheat code dans une ROM :P
À l'époque, la ROM était considérablement moins cher que la flash, donc c'est pas surprenant qu'elle soit réservée aux modèles plus haut de gamme comme la TI-89.
Initialement, je croyais qu'ils mettaient les puces dans un programmeur pour les reflasher, et ils le faisaient sans doute, mais comme tu l'as noté, 1.4001 est très différent de 1.4, donc ça mérite plus d'investigation :P

1.4001 nous révèle qu'ils pouvaient aussi les reprogrammer avec un câble dans le link port (encore plus facile que de reprogrammer la puce avec un programmeur). Certaines portions du code sont aussi présentes dans les ROM de production, mais il n'est pas possible d'y accéder à l'aide de la combinaison ALPHA F sur l'écran MODE puisque le code qui trap la lettre F à 0x6A94 (46 20 0A 21 63 74 22 D8 C1 CD 40 18 C9 FE) est manquant dans les ROM de production.
Récemment, Joerg de Datamath a dégoté un nouveau proto de TI-86 avec la mention MARKETING SAMPLE, qui utilise de la flash aussi. Cette fois-ci, elle fait tourner 1.2, ce qui est une version de production connue... Je suspecte qu'il s'agit plutôt d'une différente version 1.2 de développement contenant le code pour la flash, il serait donc très important de la dumper et de voir ce qu'il en est. Présentement, 1.4001 est la seule version dumpé d'une TI-86 flash, et elle s'est avérée être très intéressante :P

En regardant les portions du code flash qui se trouvent dans les versions de production, Zeroko (aka Randy Compton) m'a indiqué qu'elle croit que les protos de TI-85 utilisaient probablement aussi de la flash, par contre, personne n'a trouvé de protos TI-85 pour le moment donc c'est spéculatif.