Hello, j'ai téléchargé sur le site de Richard Wilson l'utilitaire PlusTest, qui permet entre autres de mesurer le temps d'exécution de toutes les instructions Z80 (et donc de vérifier que mon émulateur est ok de ce côté là).
Seulement il y a un test, appelé Interrupt Wait Test, qui teste également chaque instructions Z80, mais dans un contexte particulier, lié je suppose aux interruptions vu le titre.
Et là malheureusement mon ému se vautre sur toutes les instructions.
Si quelqu'un sait à quoi cela correspond, cela m'aiderai à améliorer encore l'émulation Z80 de mon émulateur...
Inscription : 12 Juin 2008, 20:29 Message(s) : 1715
Demoniak a écrit :
Hello, j'ai téléchargé sur le site de Richard Wilson l'utilitaire PlusTest, qui permet entre autres de mesurer le temps d'exécution de toutes les instructions Z80 (et donc de vérifier que mon émulateur est ok de ce côté là).
Seulement il y a un test, appelé Interrupt Wait Test, qui teste également chaque instructions Z80, mais dans un contexte particulier, lié je suppose aux interruptions vu le titre.
Et là malheureusement mon ému se vautre sur toutes les instructions.
Si quelqu'un sait à quoi cela correspond, cela m'aiderai à améliorer encore l'émulation Z80 de mon émulateur...
euh, tu as demandé à l'auteur ? ou regarder le code ?
cela ne peut être que des tests suite à des IM 0,1 ou 2 ?!
J'ai posé la question sur le forum de cpcwiki, j'ai eu une réponse de Richard Wilson et de Kevin Thacker. Bon, j'ai implémenté le truc, mais j'ai toujours des soucis... Je vais faire des recherches de mon côté.
Inscription : 26 Nov 2008, 10:04 Message(s) : 174 Localisation : Saint Ouen l'Aumône
Super ce petit outil
Je l'ai passé sur mon émulateur et il me semble que tout est passé OK. Je vais testé sur la cible pour ne pas être pollué par l'affichage des infos de debug sur l'émulateur de palm sur pc. (je lance caprice sur le PC qui lance un émulateur de palm qui lance un émulateur de CPC... cela devient compliqué !!).
Si tout passe OK, tu peux toujours jeter un oeil au code de Caprice et même Caprice Reloaded qui est bien plus à jour.
[Edit] J'en ai 4 qui ne passe pas: ED 46:2 ED 4E:2 ED 66:2 ED 6E:2
Inscription : 26 Nov 2008, 10:04 Message(s) : 174 Localisation : Saint Ouen l'Aumône
Après quelques recherches, les instructions qui ne passent pas concernent le mode 0 des interruptions. Apparemment, ce mode n'est pas utilisé sur le CPC et a été implanté pour la compatibilité avec le 8080.
Si j'ai bien compris, dans ce mode, la routine d'interruption utilise ce qu'il y a sur le bus ou dans ces registres pour effectuer un traitement. La quantité de cycles dépend du traitement à effectuer.
Comme ce mode d'interruption n'est pas utilisé, il est encore moins simulé. Dans Caprice, Mode 0 = Mode 1 = RST 38h.
Ceci doit être la cause de ce mauvais résultat. Pour faire passer ce test OK, il faudrait savoir comment le mode 0 est utilisé.
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
En fait ,si je ne me trompe , en IM0 c'est le périphérique qui positionne un octet qui sera exécuté en tant qu'instruction sur le bus , typiquement un RST kkch.
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum