Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

Disquettes images corrompues (.fd)
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=2&t=186
Page 1 sur 1

Auteur:  sinus [ 17 Juil 2006, 15:37 ]
Sujet du message:  Disquettes images corrompues (.fd)

Bonjour à tous,

j'ai un petit problème: lorsque je programme en assembleur sous DCMOTO: souvent ça bugue. Le manque de finesse de mes programmes en est la raison. L'émulateur, lui, n'est pas en cause à ce niveau là.

Pour la 3ème fois, alors que je relance l'émulateur après plantage, je constate que la disquette image (.fd) sur laquelle j'avais sauvé mes fichiers .ASM est cruellement vide.

Ca ne change rien au fait que j'adore l'émulateur DCMOTO de Daniel, mais quand ça arrive, je le confesse, le langage que je tiens à ma machine et moi-même outrepasse de loin la gentillesse des Opcodes 6809E...

Y a-t-il un moyen de sauver les images .fd de la corruption?

Merci de votre aide!

Arnaud

Auteur:  Daniel Coulom [ 17 Juil 2006, 18:20 ]
Sujet du message:  Re: Disquettes images corrompues (.fd)

sinus a écrit:
Pour la 3ème fois, alors que je relance l'émulateur après plantage, je constate que la disquette image (.fd) sur laquelle j'avais sauvé mes fichiers .ASM est cruellement vide

Faute de pouvoir juger sur pièces, je ne peux qu'émettre des hypothèses. Je pense que le plantage du programme assembleur provoque (par hasard) le branchement à la routine de formatage de la disquette. Ca pourrait arriver de la même façon avec la vraie machine. Sur un TO8, le formatage dure plusieurs minutes et la diode rouge clignote. Avec dcmoto c'est instantané et invisible.

Il y a deux précautions à prendre avant de lancer un programme non testé :
1) dans les options de dcmoto, protéger la disquette en écriture
2) dans Windows faire une copie de sécurité du fichier .fd

Avec ces deux sécurités, il n'y a plus aucun risque de perte.

Daniel

Auteur:  Yoann Riou [ 18 Juil 2006, 02:49 ]
Sujet du message:  Re: Disquettes images corrompues (.fd)

Daniel Coulom a écrit:
sinus a écrit:
Pour la 3ème fois, alors que je relance l'émulateur après plantage, je constate que la disquette image (.fd) sur laquelle j'avais sauvé mes fichiers .ASM est cruellement vide

Faute de pouvoir juger sur pièces, je ne peux qu'émettre des hypothèses. Je pense que le plantage du programme assembleur provoque (par hasard) le branchement à la routine de formatage de la disquette. Ca pourrait arriver de la même façon avec la vraie machine. Sur un TO8, le formatage dure plusieurs minutes et la diode rouge clignote. Avec dcmoto c'est instantané et invisible.

Il y a deux précautions à prendre avant de lancer un programme non testé :
1) dans les options de dcmoto, protéger la disquette en écriture
2) dans Windows faire une copie de sécurité du fichier .fd

Avec ces deux sécurités, il n'y a plus aucun risque de perte.

Daniel


Il m'est arrive les memes problemes avec TEO il fut un temps ... Donc je pense que cela ne vient pas de l'emulateur, mais simplement de plantage (chose frequente quand on programme en assembleur, parce que la moindre erreur ne pardonne generalement pas).

Donc, je fais en effet une copie de sauvegarde du fichier image tres regulierement, et speciallement quand je sais que j'ai mis quelques chose de critique dont je ne suis pas a 100% sur.

Auteur:  sinus [ 18 Juil 2006, 16:15 ]
Sujet du message: 

J'ai regardé l'allure de l'image avec le bloc note, ben, pas jouasse... Pas d'espoir de récupérer quoi que ce soit là-dedans, c'est bel et bien vide.

En effet je fais aussi des copies de sécurité, donc il me reste des bribes. J'ai même déjà retapé ledit programme afin de reproduire le même bug!

En acceptant de réinitialiser le programme quand DCMOTO le propose, il semblerait que la disquette image reste intacte. J'avais sans doute annulé plutôt qu'accepter et les dégâts ont été d'autant plus importants (ma routine foireuse continuait à être exécutée, je suppose...).

En tous cas, merci à tous les deux!

Arnaud

Auteur:  Daniel Coulom [ 18 Juil 2006, 19:43 ]
Sujet du message: 

Quelques explications (qui ne permettront malheureusement pas de retrouver les données perdues) :

Le 6809 exécute toutes les instructions qu'il rencontre. Même les instructions dites "invalides" font quelquechose. Pour certaines on sait à peu près quoi, pour les autres on ne sait pas du tout. Il faudrait les étudier une par une, mais comme c'est long et sans intérêt personne ne l'a encore fait sérieusement.

L'émulateur 6809 de DCMOTO a un comportement différent, car certains codes opérations officiellement inutilisés servent à déclencher des entrées/sorties, comme la lecture/écriture de cassette, ou de disquette, ou la lecture des coordonnées de la souris, ou encore le formatage de la disquette. Les instructions valides sont exécutées, les codes opérations spéciaux émulent les entrées/sorties, et enfin les autres affichent le message d'erreur "instruction invalide".

Donc, pour résumer, l'émulateur se plante moins profond (si l'on peut dire) que la vraie machine, puisqu'il s'arrête à la première instruction invalide. Ce qui ne l'empêche pas d'être passé auparavant sur des codes spéciaux qui ont lu ou écrit la cassette, la disquette, récupéré les coordonnées de la souris, ou pire formaté une face de disquette.

A priori, s'il y a eu une instruction invalide, c'est sûr que le programme est planté. Après plantage, la chance de pouvoir continuer est infime. Mais comme les miracles existent, j'ai prévu la possibilité. C'est une loterie ou l'on perd presque à coup sûr. Le gros lot, c'est de retrouver un bout de programme non détruit qui puisse continuer à s'exécuter. Le cas normal est que la machine se plante encore plus gravement.

Moralité : il faut sauver le programme avant de le lancer, protéger la disquette et la cassette, en faire des copies de sécurité.

Daniel

Auteur:  Yoann Riou [ 19 Juil 2006, 01:21 ]
Sujet du message: 

Daniel Coulom a écrit:
Le 6809 exécute toutes les instructions qu'il rencontre. Même les instructions dites "invalides" font quelquechose. Pour certaines on sait à peu près quoi, pour les autres on ne sait pas du tout. Il faudrait les étudier une par une, mais comme c'est long et sans intérêt personne ne l'a encore fait sérieusement.

Ce n'est pas que sans interet, il y a quelques trucs sympas, comme les transfert 8->16 bits (par l'instruction TFR).

De plus, William Hennebois que tu connais, s'est fait un plaisir de proteger ses programmes en utilisant des instructions non documentees ;)

Les communautes du Coco ou du Dragon ont beaucoup documentes les instructions non documentees du 6809.

Page 1 sur 1 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/