Il y a 20 mois, le 23 février 2010, j'effectuais à l'aide d'un programmateur d'EPROM le premier dumping d'une TI-80 avec la ROM 4.0, et enchaînais le 23 mars 2010 avec le dumping de la seule autre version connue, la TI-80 avec ROM 3.0.
L'étude du code récupéré fut une véritable révélation. Contrairement aux autres calculatrices graphiques similaires TI-73 à TI-86, la TI-80 n'utilisait pas un processeur z80 8-bits.
Le code n'était d'ailleurs reconnu de personne: il s'agissait donc d'un processeur propriétaire, 16-bits de plus!!!
La ROM de la TI-80 est une LH5359 de 64Ko de capacité. Le code utile récupéré pour chaque version était de 32Ko. Or, certains messages système, concernant notamment le menu mémoire, semblaient absents de ces fichiers.
Où était donc le code manquant? Le peu de circuits intégrés présents sur la carte mère ne laissaient pas trop de choix...
Le code ROM était donc réparti sur 2 puces. Même si c'est le cas notamment sur les TI-Nspire avec une puce NOR-ROM pour le Boot1 d'une part, et une puce NAND-ROM pour les Boot2, Diagnostics, OS et fichiers d'autre part, ce choix pour une architecture aussi simple que celle de la TI-80 nous reste obscur.
Les circuits intégrés sont au nombre de 4:
- ROM
- RAM
- contrôleur d'écran
- processeur
Excluant la RAM et le contrôleur d'écran de tout stockage de code supplémentaire, il ne resterait que le processeur: la puce Toshiba T6M53A propriétaire (aucune documentation publique) et qui n'a jamais été réutilisée dans aucun autre appareil à notre connaissance.
Il était effectivement possible que cette puce contienne une partie du code ROM. Mais sans documentation sur le brochage, il était impossible de numériser le contenu avec la méthode précédente, et rien ne garantissait d'ailleurs que cette ROM soit accessible de façon externe, de simples interconnexions internes avec le processeur pouvant suffire.
Il peut paraître bizarre là encore de réunir dans un même circuit intégré le processeur avec une partie du code ROM. Mais c'est notamment le cas sur les TI-Nspire depuis le modèle TouchPad, où la puce NOR-ROM contenant le Boot1 s'est fondue dans la puce Zevio centrale.
Heureusement depuis 20 mois, Randy Compton s'est mis à fond sur l'étude des 32Ko de ROMs 3.0 et 4.0 récupérés.
Il a d'abord réussi à trouver une faille qui permettait en enchaînant quelques erreur en TI-Basic de lister tout le contenu de la ROM à l'écran avec des caractères. Il a ainsi pu se rendre compte qu'il nous manquait en fait 16Ko, et que la ROM totale faisait donc 48Ko. Nous en étions donc au départ à 67%.
Randy a par la suite recopié les caractères et les a traduits en code, ce qui a permis de pousser le dumping à 97%.
Les 3% manquant correspondaient à des codes correspondant à des caractères spéciaux non affichables, et à des codes différents qui affichaient le même caractère.
Mais bien loin de se décourager, Randy a continué l'étude du nouveau code récupéré.
Comme la TI-81, la TI-80 ne permet pas de communiquer, aucun port mini-Jack n'étant présent. Mais l'étude de la carte mère révèle la présence d'un circuit de communication dont les composants sont absents:
En fait, il existe une version spéciale de la TI-80 pour les enseignants: la TI-80 ViewScreen. Elle dispose d'un port mini-Jack officiellement dédié à la capture d'écran depuis un ordinateur.
Après avoir récupéré ce modèle très rare en version 4.0, Randy a codé le tout premier programme assembleur TI-80, qui a pu transférer le contenu complet de la ROM 4.0 via ce port vers un ordinateur.
Le premier dumping complet d'une TI-80 était enfin réalisé.
Continuant son oeuvre titanesque, Randy vous sort aujourd'hui une véritable prouesse technique: le tout premier émulateur pour TI-80!
La boucle est ainsi bouclée même si cela a pris 15 ans, la TI-80 étant la dernière calculatrice graphique "pré-Nspire" qui n'était pas encore émulée à ce jour.
Mais bien loin de s'arrêter là, Randy a encore bien des projets ambitieux pour la TI-80:
- un kernel permettant d'utiliser des programmes assembleur, comme déjà annoncé
- un programme assembleur de dumping (la ROM n'étant pas fournie avec l'émulateur)
- des programmes assembleur permettant de transférer des données sur les TI-80 ViewScreen
La TI-80 commence à peine à se réveiller, alors je vous dis à bientôt sur ce modèle qui commence à peine à exploiter son véritable potentiel!
Lien:
L'émulateur TI-80