Logicielsmoto.com

Nous sommes le 28 Mar 2024, 11:22

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
MessagePosté: 17 Juil 2006, 15:37 
Hors ligne

Inscription: 27 Mai 2006, 03:09
Messages: 58
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


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Juil 2006, 18:20 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
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


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Juil 2006, 02:49 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 492
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.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 18 Juil 2006, 16:15 
Hors ligne

Inscription: 27 Mai 2006, 03:09
Messages: 58
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 18 Juil 2006, 19:43 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 19 Juil 2006, 01:21 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 492
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.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

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


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com