π
<-
Chat plein-écran
[^]

Récupérer un programme perdu par un RAM Cleared

Regroupement de tous les tutoriaux z80 (82/83/84)

Récupérer un programme perdu par un RAM Cleared

Message non lude mdr1 » 19 Mai 2013, 18:27

Bonjour à tous !

Note : Ce tutoriel est destiné à n'importe qui : aucune connaissance particulière sur la calculatrice n'est demandée. Je ne suis pas responsable des éventuels problèmes qui pourraient vous survenir, même si je ne vois pas de raison pour laquelle il pourrait y avoir un problème : normalement, tout au plus un RAM Cleared.

Avant de crier de joie si vous venez de perdre un programme, il faut que vous soyez dans les conditions suivantes :

  • Votre programme a déjà été archivé avant que vous ne le mettiez en RAM avant d'avoir un RAM Cleared, et il n'y a pas eu de Garbage Collect depuis.
  • Calcsys est sur votre calculatrice (s'il n'y est pas déjà, le transfert peut écraser le programme).

Ceci m'est déjà arrivé (il y a longtemps), et je me suis dis que ça pourrait être utile de vous indiquer comment procéder ! Je vais donc vous faire l'exemple d'un programme se nommant WORMS de ma création (de manière historique, cette technique m'a permis de récupérer ce programme !) :

wabbitemu.gif
wabbitemu.gif (1001 Octets) Vu 27651 fois


Puis je désarchive le programme, pour l'utiliser ou le continuer par exemple :

wabbitemu07.gif
wabbitemu07.gif (986 Octets) Vu 27651 fois


Et malencontreusement, en jouant avec je ne sais quel jeu, en faisant joujou avec l'hexa ou autre chose :

wabbitemu08.gif
wabbitemu08.gif (1023 Octets) Vu 27651 fois


Horreur ! Je viens de perdre des dizaines d'heures de code !! Alors je cherche à tout hasard sur internet, et je tombe sur ce tutoriel de mdr1, et en plus, je suis intelligent : je possède l'excellente application Calcsys. Alors je veux tenter ma chance.

Pourquoi pouvez-vous à priori récupérer votre programme ? Il faut savoir que lorsque vous désarchivez un programme, certes, il est copié dans la RAM, mais son contenu n'est pas supprimé de la ROM. Seule la référence qui indique où il se situe dans la ROM est supprimée. Notre but va donc être de retrouver cette adresse.

Pourquoi transférer Calcsys si je ne l'ai pas peut poser problème ? Son transfert peut écraser le contenu en ROM, mais vous pouvez quand même essayer, Calcsys pourrait être stocké ailleurs.

Au passage, le programme a bien disparu :

wabbitemu09.gif
wabbitemu09.gif (832 Octets) Vu 27651 fois


Lancez donc l'application Calcsys, puis appuyez sur la touche [5] pour aller dans la console :

wabbitemu11.gif
Console de Calcsys
wabbitemu11.gif (730 Octets) Vu 27651 fois


J'espère que vous vous souvenez du nom de votre programme, parce que sinon, on ne va pas aller bien loin ! J'espère également que le nom est assez long et surtout qu'il n'a pas le mauvais goût d'être répété dans d'autres programmes !

Il va falloir convertir le nom de votre programme en hexadécimal. Si vous ne savez pas ce que c'est, et que vous ne connaissez pas la correspondance entre un caractère ASCII et son code hexadécimal, ce n'est pas grave, vous n'avez pas besoin de connaitre l'hexadécimal. Voici une table de correspondances :

Show/Hide spoilerAfficher/Masquer le spoiler
A = 41
B = 42
C = 43
D = 44
E = 45
F = 46
G = 47
H = 48
I = 49
J = 4A
K = 4B
L = 4C
M = 4D
N = 4E
O = 4F
P = 50
Q = 51
R = 52
S = 53
T = 54
U = 55
V = 56
W = 57
X = 58
Y = 59
Z = 5A
thêta = 5B
0 -> 30
1 -> 31
2 -> 32
3 -> 33
4 -> 34
5 -> 35
6 -> 36
7 -> 37
8 -> 38
9 -> 39


Dans l'exemple de mon programme Worms, ça donne : 574F524D53. Pour chercher cette suite d'octets notés hexadécimalement, il faut taper dans la console : "SEARCH 574F524D53" puis ENTER. Les résultats de la recherche apparaissent à l'écran au fur et à mesure que vous pressez ENTER. Si cela met du temps, c'est tout à fait normal. Moi, j'ai obtenu :

wabbitemu13.gif
Résultat de la recherche.
wabbitemu13.gif (1.47 Kio) Vu 27651 fois


Aïe, c'est là que les choses vont se corser. Il y a plusieurs résultats, lequel prendre ? Dans le cas ci-dessus, le premier résultat correspond bien au nom du programme, tandis que le suivant correspond à un affichage de texte dans le programme. En effet, le premier nombre 400B ou 409C désigne l'adresse hexadécimale du programme, et le suivant, 08, désigne la page où est stocké le programme. Vous n'y comprenez rien à ce charabia ? Ce n'est pas grave du tout, je dis ces choses incompréhensibles pour ceux qui veulent en savoir plus ! S'il y a également des résultats avec une page 00, ne le prenez pas en compte.

Show/Hide spoilerAfficher/Masquer le spoiler
Note technique : il ne faut pas le prendre en compte puisque la page 00 désigne la mémoire RAM, et nous, notre programme à récupérer n'est pas dans la RAM mais dans la ROM.


Notez les résultats susceptibles de vous intéresser sur un morceau de papier, puis quittez la console en tapant la commande "QUIT" ou "Q". Ensuite, allez dans l'éditeur hexadécimal avec [1]. Choisissez un des résultats que vous avez notés : nous allons vérifier s'il s'agit du bon. Pressez [ALPHA][tan] pour la lettre "G" et tapez le code hexadécimal (le premier nombre, dans mon cas, 400B) que vous choisissez. Puis appuyez sur [APLHA][*] pour la lettre "R" et tapez la page (second nombre, dans mon cas, 08). Le nom du programme est censé apparaitre.

Enfin, appuyez deux fois sur la touche haut, et deux fois sur la touche gauche. J'obtiens ceci :

CalcsysHexa.png
CalcsysHexa.png (3.19 Kio) Vu 27651 fois


Dans l'ordre, les vérifications à faire sont :
  • Le nombre en jaune est bien 00 00
  • Le nombre en rose est bien 05 (Programme) ou 06 (Programme protégé)
  • Le nombre en bleu, ici, 01 40, correspond bien à l'inversé de celui tout en haut à gauche de l'écran, ici, 40 01
  • Le nombre en blanc correspond bien au numéro de la page que vous avez entré
  • Le numéro en vert correspond bien au nombre de caractères qui constitue le nom du programme (pour moi : WORMS)

Une vérification supplémentaire est possible, mais plus compliquée : si vous connaissez la taille du programme, celle qui s'affiche dans le menu Mem lorsque le programme est sur la calculatrice, vous pouvez vérifier qu'elle correspond bien au nombre hexadécimal inversé en rouge (note : la table des correspondances n'a rien à voir là dedans).

Si une des vérifications échoue, vous pouvez rayer la possibilité de la liste et réessayer pour le reste. Sinon, les chances sont environ de 100% qu'il s'agisse de la bonne adresse. NB : il est possible que plusieurs adresses fonctionnent, car votre programme aurait été archivé plusieurs fois, et il y aurait donc plusieurs fois votre programme restant en archive. Prenez alors la dernière adresse si vous voulez la version la plus récente.

Écrivez donc sur un papier le nombre tout en haut à gauche de l'écran, ici : 4001. Pour ne pas s'emmêler, appelons ce nombre "carabistouille".

Sortez de Calcsys avec [2nd][MODE], et créez un nouveau programme du nom de celui que vous voulez récupérer. Pour moi :

wabbitemu14.gif
Nouveau programme.
wabbitemu14.gif (886 Octets) Vu 27651 fois


Quittez le programme, retournez sur Calcsys et allez dans Prog/List VAT en appuyant sur [6][1][1]. Puis appuyez sur [6] jusqu'à ce que vous voyiez le nom du programme apparaitre sur l'écran :

wabbitemu15.gif
Prog/List VAT.
wabbitemu15.gif (1.42 Kio) Vu 27651 fois


Appuyez donc sur la touche numérique se situant devant le programme. Moi, j'appuie sur [4] :

wabbitemu17.gif
Infos Prog Worms
wabbitemu17.gif (1.45 Kio) Vu 27651 fois


Écrivez le nombre à droite de VAT Loc sur un papier (ici FCF1), puis appuyez [ALPHA][^] (lettre H) pour accéder à l'éditeur hexadécimal. Appuyez sur [ALPHA][tan] (lettre G) puis tapez l'adresse que vous venez d'écrire. Cliquez sur la touche du haut.

Retrouvez sur votre papier le nombre carabistouille : dans mon cas, il s'agit de 40 01. Appuyez sur ENTER et tapez les deux premiers chiffres, ici 40. Appuyez sur droite, ENTER, puis entrez les deux derniers chiffres, ici, 01. Appuyez deux fois sur la touche de gauche puis sur ENTER, et enfin, entrez le numéro de la page, ici, 08.

wabbitemu18.gif
Éditeur hexadécimal VAT Loc
wabbitemu18.gif (1.8 Kio) Vu 27651 fois


Cliquez autant de fois que nécessaire sur la touche :f45: pour quitter Calcsys, puis allez dans PRGM :

wabbitemu19.gif
Le miracle
wabbitemu19.gif (1001 Octets) Vu 27651 fois


Ouiiii !!! Les heures de travail ont été récupérées ! Merci qui ? :D
(En somme, c'est moi qui viens de perdre plusieurs heures à votre place :p )

PS : n'hésitez pas à me poser une question si vous bloquez à un point, histoire que je n'aie pas perdu toutes ces heures pour rien !
Dernière édition par mdr1 le 20 Mai 2013, 12:10, édité 3 fois.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude Adriweb » 19 Mai 2013, 18:46

Excellent tuto :)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80%
 
Messages: 14599
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude Xeda E. » 19 Mai 2013, 22:15

Cool o.o Il y a un programme qui s'appelle Archive Undeleter. Je pense que ce programme utilise le même technique. ^-^
Très bien, les images étaient une bonne idée!

[english]
That's really cool o.o There is a program called Archive Undeleter (par Dr. Dnar) that uses the same technique, I think. The screen shots were a great idea!
Je suis désolé pour ma grammaire ^^ Je suis une américaine >.>
Avatar de l’utilisateur
Xeda E.
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 71.9%
 
Messages: 17
Inscription: 03 Sep 2011, 05:19
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
GitHub: Zeda

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude mdr1 » 19 Mai 2013, 22:59

Xeda E. a écrit:Cool o.o Il y a un programme qui s'appelle Archive Undeleter. Je pense que ce programme utilise le même technique. ^-^
Très bien, les images étaient une bonne idée!

Je ne connaissais pas ce programme, il a l'air très bien. :) Cela dit, ma technique reprend directement ce qui est en ROM et donc est plus propre ; il n'y a rien besoin d'archiver à nouveau, tandis que ce programme copie tout vers la RAM. Il faut ensuite archiver pour libérer de la RAM et récupérer les autres programmes, et si le GarbageCollect est obligatoire, c'est impossible car ça vire tout le reste. De plus, comme c'est un programme assembleur, si on le désarchive pour l'exécuter et qu'on se prend un GarbageCollect, c'est pareil. Mais c'est vrai qu'il y a les shells... mais ça ne résout pas le problème de copie vers la RAM.

Et puis surtout, ma technique est nettement plus classe ! B-)
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude Persalteas » 20 Mai 2013, 08:44

Superbe technique !
ça risque de me motiver à mettre Calcsys sur ma TI :P
Il est compatible MathPrint, au moins ?
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude nikitouzz » 20 Mai 2013, 09:17

Calcsys est compatible MP oui ^^ il est même a posseder sur sa calculette !
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude AlexisVieira » 29 Mai 2013, 01:25

what's the difference between this method and this: http://clrhome.org/tutorials/crash/05/ ??

I tried that on the website and it worked fine... i don't tried this one on the post because i can't understand some words on french...
I'm Portuguese, sorry about bad English :s
Avatar de l’utilisateur
AlexisVieira
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 25.7%
 
Messages: 213
Images: 13
Inscription: 05 Fév 2013, 16:58
Localisation: Portugal
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 12ºAno PT

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude mdr1 » 07 Juin 2013, 17:13

AlexisVieira a écrit:what's the difference between this method and this: http://clrhome.org/tutorials/crash/05/ ??

Thus, the technic already existed? Ok, I can see a difference: in my method, there's a stronger verification to be sure the location is the destroyed program one's.

AlexisVieira a écrit:I tried that on the website and it worked fine... i don't tried this one on the post because i can't understand some words on french...

What don't you understand?
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude Ti64CLi++ » 09 Jan 2015, 12:07

Très bon tuto.
Il m'a beaucoup aide.
Merci Mdr1
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Récupérer un programme perdu par un RAM Cleared

Message non lude Ti64CLi++ » 14 Oct 2015, 13:48

J'avais perdu un programme nommé ION (non, ce n'est pas le shell :D), mais aucune des adresses qu'il m'a donné n'a marché :?
(J'avais mis plusieurs mois a le confectionner, l’améliorer, le corriger, et le compiler (c'était un programme en Axe Parser ;)) :'()
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Suivante

Retourner vers Tutoriaux

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
735 utilisateurs:
>715 invités
>15 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)