Page 2 sur 2

Re: DCMOTO - comptage du nombre de cycles

Publié : 11 nov. 2020 08:36
par Daniel
licence.png
licence.png (8.79 Kio) Consulté 5164 fois

Comme indiqué dans la licence de dcmoto, les développeurs peuvent utiliser les sources de mes émulateurs sous licence GPL pour ajouter de nouvelles fonctionnalités. C'est une pratique courante, ces émulateurs ont été portés sur de nombreux systèmes, y compris Raspberry Pi et plusieurs consoles de jeu. Tous les émulateurs Thomson sous RetroArch dérivent des sources que j'ai publiées.
https://www.retroarch.com/

Re: DCMOTO - comptage du nombre de cycles

Publié : 11 nov. 2020 12:56
par Sebiohazard
OK super merci pour ta réponse :) DCMOTO est écrit en C++ ?

Salutations !

Re: DCMOTO - comptage du nombre de cycles

Publié : 11 nov. 2020 13:04
par Daniel
En dehors de dcmo5online (en javascript) tous mes autres émulateurs, y compris dcmoto, sont écrits en C.

Re: DCMOTO - comptage du nombre de cycles

Publié : 04 mars 2021 22:15
par Bentoc
Encore merci pour cette nouvelle fonctionnalité de comptage de cycle : je m'en sers tout le temps.
c'est extra vraiment pour profiler son code.

Un petit bug cependant :
le cmpx #03,y est annoncé 7 et est compté 5
2021-03-04 22_13_08-DCMOTO mise au point (1).png
2021-03-04 22_13_08-DCMOTO mise au point (1).png (22.91 Kio) Consulté 4785 fois
2021-03-04 22_13_32-DCMOTO mise au point (2).png
2021-03-04 22_13_32-DCMOTO mise au point (2).png (23.11 Kio) Consulté 4785 fois
une idée ?

Re: DCMOTO - comptage du nombre de cycles

Publié : 05 mars 2021 00:34
par __sam__
Il me semble que cela ne compte que les cycles entre deux points d'arrêts, pas entre 2 pas d'executions. Me trompes-je ? Me gourre-je ?

Re: DCMOTO - comptage du nombre de cycles

Publié : 05 mars 2021 08:06
par Bentoc
Je suis reparti d'un cas de test plus simple pour essayer de cerner le problème:

cas 1

Code : Tout sélectionner

test        
        mul
        bvc test
Ce cas fonctionne correctement :
- Avec un point d'arrêt sur mul, lorsqu'on appuie sur "Jusqu'au point d'arrêt" la boucle se joue, on a Cycles: 14 (11+3)
- En appuyant sur "Pas à pas" on a successivement 11 et 3
=> c'est OK
test1-01.png
test1-01.png (24.22 Kio) Consulté 4757 fois

cas 2

Code : Tout sélectionner

test        
        cmpx  pcm_end_addr,y
        bvc test
Ce cas semble poser problème :
- Avec un point d'arrêt sur "cmpx $03,y" , lorsqu'on appuie sur "Jusqu'au point d'arrêt" la boucle se joue, on a Cycles: 8 (au lieu de 7+3=10)
- En appuyant sur "Pas à pas" on a successivement 5 et 3 (au lieu de 7 et 3)
=> c'est KO (pourtant on a bien 7 cycles en face de l'instruction dans la fenêtre de désassemblage)
test2-01.png
test2-01.png (24.09 Kio) Consulté 4757 fois

Re: DCMOTO - comptage du nombre de cycles

Publié : 05 mars 2021 09:16
par Daniel
Je vais vérifier dès que possible et si je trouve une explication je répondrai ici...

Re: DCMOTO - comptage du nombre de cycles

Publié : 05 mars 2021 13:25
par Daniel
La cause est identifiée : C'est une erreur dans les tables d'instructions de dcmoto pour l'émulation du 6809.
Le désassembleur utilise des tables indépendantes, il donne la bonne valeur.

Pour l'instruction $AC le nombre de cycles officiel est 6+. La table de dcmoto contenait 4+, ce qui explique les deux cycles de différence.
Je ne sais pas encore si c'est une faute de frappe, ou si la documentation que j'ai utilisée à l'époque (il y a plus de 20 ans) avait une erreur.

En parcourant rapidement la table, j'ai noté une autre erreur. Je vais être obligé de passer en revue toutes les instructions une par une pour être sûr qu'il ne traîne pas d'autres erreurs similaires. Il est surprenant que le bug n'ait pas été détecté plus tôt, car il doit désynchroniser certaines démos qui comptent les cycles. Je me demande si ce n'est pas la cause d'une différence de comptage du timer entre dcmoto et TEO, que l'on avait mise en évidence il y a quelques années. Un grand merci à Bentoc pour avoir découvert l'erreur 8)

Dès que la table sera validée je publierai une nouvelle version de dcmoto, probablement ce soir ou demain matin.

Re: DCMOTO - comptage du nombre de cycles

Publié : 05 mars 2021 13:45
par Bentoc
Super efficace Daniel, comme toujours ! merci !!!

l'outil de mise au point porte bien son nom :lol:

Re: DCMOTO - comptage du nombre de cycles

Publié : 05 mars 2021 14:17
par Daniel
Finalement il n'y avait pas d'autre erreur. Heureusement !
La nouvelle version dcmoto 2021.03.05 : http://dcmoto.free.fr/emulateur/dcmoto_20210305.zip

Le nouveau comptage du nombre de cycles :

comptage.png
comptage.png (18.25 Kio) Consulté 4713 fois