jofr54 a écrit:intéressant tout ça... mais quelle différence entre la CPU et la ROM ? La rom contient bien le code machine je suppose et la CPU c'est la mémoire vive. ti-80
Le CPU c'est le processeur ou l'unité centrale. Il exécute les instructions.
J'ai dessoudé la ROM de la TI-80 (versions 3.0 et 4.0) et en ai lu le contenu à l'aide d'un programmateur d'EPROM.
J'ai alors obtenu dans chaque cas un fichier de 64Ko, qui contenait le même code en double (32Ko utiles donc).
Une analyse de ce code suggère un processeur 16-bits propriétaire de chez Toshiba. Plusieurs messages système sont visibles, mais d'autres sont absents. Ce qui signifie bien qu'il manque une partie du code, sans doute dans une ROM interne à la puce du processeur.
Mais cette puce étant propriétaire (non documentée), je ne peux pas en dumper le contenu avec mon programmateur. Je ne sais pas quelles pattes brancher, et de plus il serait logique que les connexions processeur/ROM soient interne à la puce.
D'après l'analyse des adresses mémoire figurant dans la ROM externe, celle-ci est mappée dans la zone 0x8000h-0xFFFFh (32Ko). Les adresses suggèrent une ROM interne mappée sur 0x0000h-0x1FFFh (8Ko). Il resterait donc le 0x2000h-0x3FFFh (8Ko) pour la RAM externe ce qui est cohérent avec les spécifications, et un étrange trou d'adressage 0x4000h-0x7FFFh.
Randy Crompton a découvert un bug qui permet de faire défiler le contenu de la ROM à l'écran. Le code n'est pas affiché en brut, ce sont les "caractères/commandes" correspondant aux paires d'octets (la TI-80 ayant un Basic tokénisé) qui sont affichés.
Cela cause quelques problèmes, puisque plusieurs codes différents affichent parfois la même chose, et que d'autres codes n'affichent rien du tout.
Mais l'on peut grandement combler de nombreux "trous" dans le code, en comparant les ROMs interne 3.0 et 4.0. Beaucoup de portions de code identiques se retrouvent simplement à des adresses différentes.
Les messages système manquants sont bien présents, et c'est donc bien la ROM interne manquante qui s'affiche.
Le déclenchement du bug est très simple:
Créer un programme qui fait un INPUT
Le lancer
Sur l'invite du INPUT, entrer par exemple "." ou n'importe quoi qui provoquera une erreur.
Au menu d'erreur taper "On"
Et voilà! Le contenu de la ROM défile à l'écran. Il n'y a plus qu'à sortir sa caméra et à filmer, pour analyser ensuite sur l'ordi.
Nous avons pu déterminer à ce jour plus de 85% de la ROM interne, soit plus de 97% de la ROM totale.
Mais les octets manquants se comptent encore par centaines. Comme ils ont échappé aux méthodes génériques précédentes, en l'absence d'une autre idée il faut les analyser "logiquement" un par un ce qui prend énormément de temps...
Merci de toutes ces explications, c'est vraiment impressionnant et respect pour votre travail.
les tokens me rappellent d'autres langages basic... la TI 58 que j'avais jadis où chaque mot clé était stocké sur 2 chiffres.
je viens d'essayer plusieurs fois et ça dure longtemps... et l'arrêt se termine étrangement.
pour résumer il manque 3% ... j'espère que vous allez trouver. bon courage car je ne pense pas être très utile pour vous aider... si je trouve des infos pourquoi pas mais vous avez déjà fait je tour du www je suppose.