Hacking backup file . . .
Bon, j'arrive à faire exécuter du code à l'aveugle à la calculette, en truquant le pointeur de gestion des touches.
Il reste maintenant à lui faire exécuter du code précis!
OS & compatibilités
-
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: OS & compatibilités
oh oui, la nSpire!!!!
Bon j'ai trouvé l'endroit exact du backup où coller le code Z80.
En apparence, j'arrive à exécuter ce que je veux.
J'ai tenté des NOP, et j'ai également fait la restauration de pointeur de touches.
Donc en 3 étapes:
* B - A (écrase le pointeur de gestion de touches, par l'adresse de mon code assembleur)
* taper une touche (lance l'exécution de mon code assembleur)
* les touches suivantes sont gérées normalement (si le code assembleur a bien restauré le pointeur)
Bon ceci étant fait, j'ai tenté le changement de ROM page.
Apparemment, ça ne marche pas...
2 interprétations:
- soit ça ne marche vraiment pas (code assembleur mal tapé?...)
- soit, en sortie du programme assembleur, le ROM page initial est restauré...
Je pencherais pour la 2ème explication.
Et dans ce cas, ce sera plus dur que ce que je pensais... Car il faudra alors code la partie "dumping" dans le code assembleur, pour qu'elle soit exécutée avant la restauration...
Bon j'ai trouvé l'endroit exact du backup où coller le code Z80.
En apparence, j'arrive à exécuter ce que je veux.
J'ai tenté des NOP, et j'ai également fait la restauration de pointeur de touches.
Donc en 3 étapes:
* B - A (écrase le pointeur de gestion de touches, par l'adresse de mon code assembleur)
* taper une touche (lance l'exécution de mon code assembleur)
* les touches suivantes sont gérées normalement (si le code assembleur a bien restauré le pointeur)
Bon ceci étant fait, j'ai tenté le changement de ROM page.
Apparemment, ça ne marche pas...
2 interprétations:
- soit ça ne marche vraiment pas (code assembleur mal tapé?...)
- soit, en sortie du programme assembleur, le ROM page initial est restauré...
Je pencherais pour la 2ème explication.
Et dans ce cas, ce sera plus dur que ce que je pensais... Car il faudra alors code la partie "dumping" dans le code assembleur, pour qu'elle soit exécutée avant la restauration...
-
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: OS & compatibilités
euh atta tu fais quoi là au juste ? oO
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Messages: 10994
- Inscription: 19 Déc 2005, 00:00
- Localisation: /dev/null mais je survis :)
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: epita ING3 \o
Re: OS & compatibilités
Je tente de dumper les ROMs 10.0 et 11.0 de la TI-82.
Et le problème, c'est que ces ROMs ne sont pas supportées par les shells/kernels existants.
(j'ai testé tous les shells et toutes leurs versions)
Les shells supportent les versions 16.0, 17.0, 18.0, 19.0, et certains 19.006.
Le problème est que beaucoup d'adresses ROM diffèrent.
Par exemple, la routine CLEAR_LCD n'est pas à la même adresse sur les 10.0 et 11.0 que sur les 16.0 et ultérieures.
Donc la seule façon de dumper ces ROMs, c'est de hacker un fichier backup à la dure, pour y inclure du code assembleur qui sera exécuté.
Dans le code assembleur, les ROM_CALLs sont interdits, puisque apparemment ces ROMs sont totalement différentes.
Pour le hack, il s'agit d'écraser temporairement l'adresse de la routine de gestion du clavier (appellée lors de l'appui sur toute touche) par l'adresse du code assembleur.
La 1ère touche frappée après le restore, exécute alors le code assembleur.
Bon, mon petit fichier backup évolue.
Il exécute le code suivant:
- mettre le curseur en colonne 10
- restaure le pointeur de gestion clavier (les touches suivantes seront traitées correctement)
(au moins avec le curseur, je vois que ça fait quelque chose)
Sur ma 19.006, parfait.
Sur ma 10.0 ou 11.0, le curseur va bien en colonne 10, mais les touches suivantes ne sont pas gérées correctement. Donc l'adresse de la routine de gestion clavier que je restaure (411B), n'est apparemment pas la même sur ces roms...
Il va falloir que je la trouve, car sinon même après l'exécution d'un dump éventuel, je n'aurais plus accès au TI-OS pour renvoyer sur l'ordi...
Et le problème, c'est que ces ROMs ne sont pas supportées par les shells/kernels existants.
(j'ai testé tous les shells et toutes leurs versions)
Les shells supportent les versions 16.0, 17.0, 18.0, 19.0, et certains 19.006.
Le problème est que beaucoup d'adresses ROM diffèrent.
Par exemple, la routine CLEAR_LCD n'est pas à la même adresse sur les 10.0 et 11.0 que sur les 16.0 et ultérieures.
Donc la seule façon de dumper ces ROMs, c'est de hacker un fichier backup à la dure, pour y inclure du code assembleur qui sera exécuté.
Dans le code assembleur, les ROM_CALLs sont interdits, puisque apparemment ces ROMs sont totalement différentes.
Pour le hack, il s'agit d'écraser temporairement l'adresse de la routine de gestion du clavier (appellée lors de l'appui sur toute touche) par l'adresse du code assembleur.
La 1ère touche frappée après le restore, exécute alors le code assembleur.
Bon, mon petit fichier backup évolue.
Il exécute le code suivant:
- mettre le curseur en colonne 10
- restaure le pointeur de gestion clavier (les touches suivantes seront traitées correctement)
(au moins avec le curseur, je vois que ça fait quelque chose)
Sur ma 19.006, parfait.
Sur ma 10.0 ou 11.0, le curseur va bien en colonne 10, mais les touches suivantes ne sont pas gérées correctement. Donc l'adresse de la routine de gestion clavier que je restaure (411B), n'est apparemment pas la même sur ces roms...
Il va falloir que je la trouve, car sinon même après l'exécution d'un dump éventuel, je n'aurais plus accès au TI-OS pour renvoyer sur l'ordi...
-
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: OS & compatibilités
oO technique tout ça
bonne chance en tout cas
bonne chance en tout cas
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Messages: 10994
- Inscription: 19 Déc 2005, 00:00
- Localisation: /dev/null mais je survis :)
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: epita ING3 \o
Re: OS & compatibilités
Bon alors confirmation.
La ROM page variable (mappée entre 4000 et 7FFF) c'est bien la numéro 3.
(numéro de page lu par programme assembleur)
Je confirme que j'ai donc bien dumpées les ROM pages 0 et 3...
Bon maintenant faudrait vraiment que je trouve un moyen de mapper les pages 1, 2, 4, 5, 6 et 7...
La ROM page variable (mappée entre 4000 et 7FFF) c'est bien la numéro 3.
(numéro de page lu par programme assembleur)
Je confirme que j'ai donc bien dumpées les ROM pages 0 et 3...
Bon maintenant faudrait vraiment que je trouve un moyen de mapper les pages 1, 2, 4, 5, 6 et 7...
-
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: OS & compatibilités
Bon, je reprends (et peut-être enfin termine) mon projet de numériser les roms TI-82 10.0 et 11.0.
Le problème est que la numérisation nécessite du code assembleur, que l'assembleur n'est pas officiellement supporté sur TI-82, et que les shells/kernels permettant de rajouter le support de l'assembleur ne supportent pas ces très vieilles roms.
J'avais déjà réalisé un fichier backup truqué pour forcer l'exécution de code assembleur Z80 (méthode expliqué précédemment).
Et bien enfin! Ce code assembleur fait tout ce qu'il faut pour dumper les roms:
L'écran graphique montre alors visuellement la rom en binaire.
Après ça, il faut donc enregistrer le graphique dans une image (StorePic Pic6).
Et il faut encore envoyer l'image sur l'ordi, et bien la numéroter.
En comptant les 2 roms, ça va me faire au total 396 images à envoyer sur l'ordi...
Je ne sais pas si je terminerai ce soir, ou demain... pour l'instant j'en suis à 76 images (19%).
C'est la partie la plus rébarbative. Après, j'ai déjà un programme C pour concaténer automatiquement le tout en virant l'en-tête.
Bon, j'y retourne...
Peut-être l'été prochain je numérise la rom de la nSpire
Le problème est que la numérisation nécessite du code assembleur, que l'assembleur n'est pas officiellement supporté sur TI-82, et que les shells/kernels permettant de rajouter le support de l'assembleur ne supportent pas ces très vieilles roms.
J'avais déjà réalisé un fichier backup truqué pour forcer l'exécution de code assembleur Z80 (méthode expliqué précédemment).
Et bien enfin! Ce code assembleur fait tout ce qu'il faut pour dumper les roms:
- restaure le pointeur de gestion du clavier (40F2 sur les roms 10/11, alors que c'est 411B sur les roms 16 et plus)
- change la rom page (numéro de 0 à 7 à modifier dans le fichier backup avec un éditeur hexadécimal)
- recopie 756 octets vers la mémoire graphique à partir de l'adresse rom (de 4000 à 7FFF à modifier dans le fichier backup avec un éditeur hexadécimal)
L'écran graphique montre alors visuellement la rom en binaire.
Après ça, il faut donc enregistrer le graphique dans une image (StorePic Pic6).
Et il faut encore envoyer l'image sur l'ordi, et bien la numéroter.
En comptant les 2 roms, ça va me faire au total 396 images à envoyer sur l'ordi...
Je ne sais pas si je terminerai ce soir, ou demain... pour l'instant j'en suis à 76 images (19%).
C'est la partie la plus rébarbative. Après, j'ai déjà un programme C pour concaténer automatiquement le tout en virant l'en-tête.
Bon, j'y retourne...
Peut-être l'été prochain je numérise la rom de la nSpire
-
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
-
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
-
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: OS & compatibilités
100%!!!
Dumping terminé.
Je dois encore:
1) concaténer les images pour générer les 2 roms
2) tester la cohérence des roms (j'espère ne pas avoir interverti de fichier)
3) tester l'émulation
4) patcher un des shells/kernels disponibles pour supporter ces roms
Dumping terminé.
Je dois encore:
1) concaténer les images pour générer les 2 roms
2) tester la cohérence des roms (j'espère ne pas avoir interverti de fichier)
3) tester l'émulation
4) patcher un des shells/kernels disponibles pour supporter ces roms
-
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
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 69 invités