La dernière fois que j'avais touché à l'émulation de la TI-81, c'était pour réaliser le pack suivant:
http://tiplanet.org/index.php?mod=ar ... oirid=1219
Ce pack permet à partir de la ROM TI-81 1.8K (trouvable sur Internet) de créer une ROM spéciale TI-86 qui contiendra la système TI-81, et sera donc émulable.
A ma connaissance, les différentes versions de ROMs TI-81 étaient:
1.0
1.1K
1.1
1.6K
1.8K
V2.0V
La TI-81 ne disposant pas de port I/O, je me voyais déjà avec le fer à souder et le programmateur d'EPROM, pour tenter de "sauver" les 5 ROMs manquantes...
Il faudra sûrement le faire un jour pour ne pas perdre ce patrimoine!
(ne jetez pas vos TI-81: envoyez-les moi! )
Mais en attendant j'ai eu une autre idée qui me semble faisable...
Texas Instruments a produit 2 émulateurs TI-81 (payants à l'époque): un pour PC et un pour Mac.
Et vu qu'ils marchent tous seuls, ces émulateurs contiennent la ROM dans le fichier exécutable.
Avec un éditeur hexadécimal, j'ai pu confirmer cette hypothèse.
Par comparaison avec la ROM 1.8K, j'ai pu retrouver quelques segments de code Z80 familiers dans ces exécutables.
Sur l'émulateur PC (pour Mac je ne sais pas), le raccourci de l'écran Self Test (2nd)(Test)(Alpha)(S) ne marche pas.
Il n'est donc pas évident à priori de connaître la version ROM.
De plus, la TI-81 utilise un jeu de code ASCII non standard: aucun message système n'est visible quand on édite l'exécutable.
Il a donc fallu que je me fasse un tableau de conversion, et ensuite que je décode la chaîne de caractères du SelfTest.
Et voici mes résultats! Si le raccourci n'avait pas été truqué:
* L'émulateur PC devrait afficher:
Enter self-test?
1.1K
Comparons avec la photo DataMath pour voir:
Et bien il semble que j'ai bien décodé!
Si j'arrive à extraire la ROM de l'exécutable, ça fera une recherche de calculatrice + une manip au fer à souder en moins!
* L'émulateur Mac quant à lui devrait afficher:
Self-test? 1.7D1
K
Hein? C'est quoi ce truc?
Je vous jure que j'ai vérifié le décryptage 3 fois...
Bon ben... c'est une nouvelle ROM.
Je ne sais pas si elle à un jour été incluse sur les vraies calculatrices, ni si elle a été écrite spécifiquement pour cet émulateur...
Par contre, c'est pas gagné.
Quand TI change la version d'une ROM, on trouve des similarités, mais souvent elles sont décalées, ou même inversées...
Et j'ai 3 versions ROMs différentes!
(pour les comparaisons, ça part mal...)
Il n'est pas évident dans ces exécutables, de distinguer où s'arrête le code ordi, et où commence le code Z80...
De plus, rien ne prouve que la ROM soit stockée en continu dans le fichier...
Elle est peut-être découpée en pages...
Et ils ont peut-être viré les parties vides aussi...
Bon, sinon mettons à jour - les différentes versions de ROMs TI-81 sont désormais
1.0
1.1K
1.1
1.6K
1.7D1K
1.8K
V2.0V
Et je sais pas quelle manie il leur a pris avec les K sur cette calculatrice...
ROMs TI-81 sans fer à souder
Voir le premier message non lu • 4 messages
• Page 1 sur 1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41500
- Images: 14704
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: ROMs TI-81 sans fer à souder
Ne jetez pas non plus les autres calculettes, envoyez les moi!critor2000 a écrit:(ne jetez pas vos TI-81: envoyez-les moi! )
-
ProgVal
Niveau 12: CP (Calculatrice sur Pattes)- Messages: 2747
- Inscription: 05 Juil 2007, 00:00
- Localisation: Metz
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Terminale S SI (Sciences de l'Ingénieur)
Re: ROMs TI-81 sans fer à souder
ProgVal a écrit:Ne jetez pas non plus les autres calculettes, envoyez les moi!critor2000 a écrit:(ne jetez pas vos TI-81: envoyez-les moi! )
Tu me laisses les TI-80/81/82/85/86, ok?
Toi t'as les autres, avec mémoire flash
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41500
- Images: 14704
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: ROMs TI-81 sans fer à souder
Bon pour les ROMs TI-81, j'ai regardé depuis hier mais c'est pas gagné, malgré diverses tentatives d'approche...
1) Extraire la ROM du fichier avec un éditeur
D'après le système 1.8K que l'on trouve sur Internet, la taille est de 32Ko.
J'ai pu reconnaître dans les fichiers PC et MAC des parties de la ROM.
Mais au final, entre la partie la plus basse et la plus haute, il y a plus de 32Ko d'écart...
De plus, dans le fichier MAC, j'ai vu des messages de l'émulateur, entre 2 parties connues de la ROM.
Donc, soit la ROM n'est pas en continu dans les fichiers, soit elle fait plus de 32Ko, soit encore elle a été modifié pour l'émulation et contient partiellement du code non Z80...
2) Transférer la ROM
L'émulateur PC contient un utilitaire pour échanger des programmes.
Après avoir crée un programme, j'ai réussi à truquer son pointeur en RAM, pour lui donner une adresse en ROM.
Mais après en demandant de sortir le programme, ça se passe mal...
Curieusement, j'ai réussi à sortir des messages systèmes de l'émulateur (qui n'auraient rien à faire en ROM, comme RunTime Error, ou Printer not available...), mais pas de code Z80... C'est inquiétant...
Soit l'utilitaire se débarrasse des données non texte, soit les adresses ROM sont bizarre...
3) Exécuter de l'assembleur
Je pense que c'est la meilleure solution.
Il suffirait d'un code assembleur assez simple, pour recopier une zone de la ROM sur l'écran graphique (qu'il suffit ensuite d'enregistrer en TIF/BMP, l'utilitaire étant fourni).
De plus, on peut directement modifier la ROM contenue dans l'exécutable, afin d'y inclure le code.
La seule question, c'est où inclure le code?
Normalement, il faudrait écraser une des routines de la ROM, par exemple celle qui gère l'appui sur la touche CLEAR.
En pratique, ce n'est pas évident, car les routines décrites sur Internet pour la ROM 1.8K ne semblent pas du tout correspondre à ces ROMs.
Et la segmentation rend le calcul d'adresse quasi-impossible pour le moment...
En fait, elles se ressemblent assez peu...
J'ai cherché la routine d'effacement d'écran texte ou graphique, et ne l'ai pas trouvée...
Je n'ai même pas trouvé le code de démarrage d'ailleurs...
En modifiant ce que je pensais être la routine de gestion des touches, j'ai réussi à planter non pas l'écran calculatrice, mais l'émulateur au complet (affichage d'artefacts en dehors de l'écran). Normalement, ça ne devrait pas arriver...
Donc, soient ces routines ont été virées et sont gérées par l'émulateur, soit elles ont bien changé...
4) Désassemblage
Je l'ai envisagé...
Mais quand j'ai remarqué que la ROM était segmentée dans les fichiers, j'ai du abandonné cette idée...
Car les instructions assembleur était à taille variable, selon le contenu de l'espace séparant 2 segments, le deuxième sera interprété différemment...
Soit je ne suis pas passé loin de la solution, surtout avec le 3)...
Soit la ROM incluse dans les fichiers n'est pas une ROM Z80 valide (modifiée pour le logiciel l'utilisant), et ces émulateurs devraient alors plutôt s'apeller des simulateurs...
Alors en attendant mieux, pour l'histoire, voici quelques photos truquées:
Edit: je viens de poster les deux émulateurs, accompagnés de mes documents de travail
http://tiplanet.org/index.php?mod=ar ... oirid=1289 (MAC: 1.7D1K)
http://tiplanet.org/index.php?mod=ar ... oirid=1288 (DOS: 1.1K)
Si je peux trouver une TI-81 en version 1.1K, un programmeur d'EPROM, et un fer à (dé)souder, j'y verrai peut-être un peu plus clair... Peut-être assez pour extraire ensuite la 1.7D1K...
1) Extraire la ROM du fichier avec un éditeur
D'après le système 1.8K que l'on trouve sur Internet, la taille est de 32Ko.
J'ai pu reconnaître dans les fichiers PC et MAC des parties de la ROM.
Mais au final, entre la partie la plus basse et la plus haute, il y a plus de 32Ko d'écart...
De plus, dans le fichier MAC, j'ai vu des messages de l'émulateur, entre 2 parties connues de la ROM.
Donc, soit la ROM n'est pas en continu dans les fichiers, soit elle fait plus de 32Ko, soit encore elle a été modifié pour l'émulation et contient partiellement du code non Z80...
2) Transférer la ROM
L'émulateur PC contient un utilitaire pour échanger des programmes.
Après avoir crée un programme, j'ai réussi à truquer son pointeur en RAM, pour lui donner une adresse en ROM.
Mais après en demandant de sortir le programme, ça se passe mal...
Curieusement, j'ai réussi à sortir des messages systèmes de l'émulateur (qui n'auraient rien à faire en ROM, comme RunTime Error, ou Printer not available...), mais pas de code Z80... C'est inquiétant...
Soit l'utilitaire se débarrasse des données non texte, soit les adresses ROM sont bizarre...
3) Exécuter de l'assembleur
Je pense que c'est la meilleure solution.
Il suffirait d'un code assembleur assez simple, pour recopier une zone de la ROM sur l'écran graphique (qu'il suffit ensuite d'enregistrer en TIF/BMP, l'utilitaire étant fourni).
De plus, on peut directement modifier la ROM contenue dans l'exécutable, afin d'y inclure le code.
La seule question, c'est où inclure le code?
Normalement, il faudrait écraser une des routines de la ROM, par exemple celle qui gère l'appui sur la touche CLEAR.
En pratique, ce n'est pas évident, car les routines décrites sur Internet pour la ROM 1.8K ne semblent pas du tout correspondre à ces ROMs.
Et la segmentation rend le calcul d'adresse quasi-impossible pour le moment...
En fait, elles se ressemblent assez peu...
J'ai cherché la routine d'effacement d'écran texte ou graphique, et ne l'ai pas trouvée...
Je n'ai même pas trouvé le code de démarrage d'ailleurs...
En modifiant ce que je pensais être la routine de gestion des touches, j'ai réussi à planter non pas l'écran calculatrice, mais l'émulateur au complet (affichage d'artefacts en dehors de l'écran). Normalement, ça ne devrait pas arriver...
Donc, soient ces routines ont été virées et sont gérées par l'émulateur, soit elles ont bien changé...
4) Désassemblage
Je l'ai envisagé...
Mais quand j'ai remarqué que la ROM était segmentée dans les fichiers, j'ai du abandonné cette idée...
Car les instructions assembleur était à taille variable, selon le contenu de l'espace séparant 2 segments, le deuxième sera interprété différemment...
Soit je ne suis pas passé loin de la solution, surtout avec le 3)...
Soit la ROM incluse dans les fichiers n'est pas une ROM Z80 valide (modifiée pour le logiciel l'utilisant), et ces émulateurs devraient alors plutôt s'apeller des simulateurs...
Alors en attendant mieux, pour l'histoire, voici quelques photos truquées:
Edit: je viens de poster les deux émulateurs, accompagnés de mes documents de travail
http://tiplanet.org/index.php?mod=ar ... oirid=1289 (MAC: 1.7D1K)
http://tiplanet.org/index.php?mod=ar ... oirid=1288 (DOS: 1.1K)
Si je peux trouver une TI-81 en version 1.1K, un programmeur d'EPROM, et un fer à (dé)souder, j'y verrai peut-être un peu plus clair... Peut-être assez pour extraire ensuite la 1.7D1K...
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41500
- Images: 14704
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
4 messages
• Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 70 invités