Page 1 sur 2

DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 07:54
par Bentoc
Bonjour,

J'ai une demande d'évolution pour DCMOTO :
Ajouter, dans l'outil de mise au point, un champ pour afficher le nombre de cycles processeur écoulé depuis le dernier point d'arrêt :
- à la pause sur le premier point d'arrêt depuis le dernier reset (hard ou soft), on affiche la valeur du nombre de cycles depuis le reset
- à la pause sur le second point d'arrêt et les suivants on affiche la valeur du nombre de cycles écoulé entre les deux points d'arrêts
- si la valeur dépasse la capacité du compteur de cycle, on affiche overflow (ou dépassement :D )

Un entier sur 32bits suffirait largement à afficher le nombre de cycles
Cette fonction simplifierai le comptage de cycles dans le cas de programmes avec de nombreux branchements.

@Daniel : Penses-tu que ce soit réalisable ? Vois tu une meilleure solution, ou peux t-on déjà le faire d'une autre manière dans DCMOTO ?

Au passage: merci beaucoup pour ce superbe émulateur,
Benoît.

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 08:20
par Daniel
C'est une bonne idée, utile et probablement réalisable. Je ne promets rien mais je vais regarder. Réponse ici dans quelques jours...

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 10:30
par Daniel
Nouvelle version de "dcmoto nouveau" : http://dcmoto.free.fr/emulateur/dcmoto_20201108.zip

La boîte de dialogue de l'outil de mise au point affiche le nombre de cycles depuis le dernier arrêt.
- En mode "pas à pas" : c'est le nombre de cycles de la dernière instruction exécutée.
- En mode "subroutine" : c'est le nombre de cycles exécutés par la subroutine, en comptant l'appel et le retour.
- En mode "jusqu'au point d'arrêt" : c'est le nombre de cycles depuis le dernier arrêt.

Tout n'a pas été parfaitement testé. S'il y a un problème n'hésitez pas à le signaler.

debug.png
debug.png (26.21 Kio) Consulté 6763 fois

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 11:09
par jojo
Daniel a écrit : 08 nov. 2020 08:20 ....Réponse ici dans quelques jours...
:shock: Demande faite à 7h54, réponse à 10h30 ! :wink:

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 11:17
par Bentoc
Excellent !
Daniel tu es au top 8)

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 13:34
par Daniel
Bah non, je ne suis pas au top, je n'ai pas pensé moi-même à ajouter cette fonction. Merci d'avoir eu l'idée pour moi.

Le nombre de cycles est indispensable pour synchroniser le son ou l'affichage, et son calcul à la main est très pénible. Le calcul par ordinateur est une aide appréciable que tous les programmeurs de démos vont certainement utiliser. Je n'ai pas travaillé pour rien :wink:

Nota: En cas d'overflow le compteur boucle. Comme il est affiché périodiquement sa remise à zéro ne passe pas inaperçue.

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 13:37
par __sam__
Excellent.

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 18:12
par Daniel
Il reste un travail non négligeable pour le développeur : En cas de branchement conditionnel, il faut que les deux voies possibles aient le même nombre de cycles. Je ne sais pas comment faciliter la tâche avec l'émulateur.

C'est plutôt un programme indépendant qui pourrait aider à équilibrer les branches en analysant le code généré.

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 18:33
par __sam__
Daniel a écrit : 08 nov. 2020 18:12 C'est plutôt un programme indépendant qui pourrait aider à équilibrer les branches en analysant le code généré.
c6809 affiche dans le fichier *.lst le comptage des cycles.

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 20:29
par Bentoc
De mon coté je compte utiliser cette nouvelle fonction de dcmoto pour compter le nombre de cycles restant avant le rafraichissement de l'écran, ça évite de faire la somme d'un chemin de l'arbre d'appel (surtout avec les boucles). Mais c'est vrai que dans certains cas on échappe pas au comptage manuel (avec l'aide de la balise (info) de c6809, ça aide quand même pas mal).

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 22:05
par Daniel
Dans dcmoto le désassembleur affiche le nombre de cycles et on peut récupérer la liste dans un fichier texte. Mais le comptage reste manuel.

Re: DCMOTO - comptage du nombre de cycles

Publié : 08 nov. 2020 22:58
par adnz
Super comme par hasard le jour où je me posais la question sur les cycles, ça tombe pile :o

merci.

Extra, j'ai mis un point d'arrêt et en 1 clic je sais que m'a boucle principale du jeu fais entre 143742 et 147025 cycles
c'est the clic grandiose !

vraiment top.

Re: DCMOTO - comptage du nombre de cycles

Publié : 10 nov. 2020 09:50
par jasz
DCMOTO devient un outil complet et incontournable. C'est du bon boulot 8)

Re: DCMOTO - comptage du nombre de cycles

Publié : 10 nov. 2020 14:36
par Daniel
La recette est simple : A chaque demande des utilisateurs (dont je fais aussi partie) j'intègre la fonction demandée si elle paraît judicieuse.
Mais ne vous y trompez pas : il y a un gros filtrage. Presque toutes les demandes des développeurs sont réalisées immédiatement, par contre je refuse systématiquement tout ce qui pourrait transformer les ordinateurs Thomson en consoles de jeu, par exemple le lancement automatique en cliquant sur un fichier ou les options permettant d'utiliser dcmoto avec un front-end.

Il y a deux mots magiques pour m'énerver : "rom full-set" et "front-end".
Une cassette n'est pas une ROM, pas plus qu'une disquette ou un Quick Disk. Les jeunes l'ignorent probablement.
Pour utiliser un ordinateur Thomson il faut le mériter, savoir lire la documentation et apprendre les procédures de lancement des applications.

Re: DCMOTO - comptage du nombre de cycles

Publié : 10 nov. 2020 22:14
par Sebiohazard
Salut Daniel !

Est-ce que le code source de DCMOTO est libre de droit ? Si une personne a les compétences d'ajouter une fonctionnalité à DCMOTO, peut-elle le faire ?

Salutations !