Nouvelle version de dcvg5k : http://dcvg5k.free.fr/download/index.html
Tout le mérite en revient à Mokona. Il a comparé les émulateurs à la vraie machine, et dcvg5k était trop rapide. Le cycle supplémentaire lors du fetch de l'instruction n'était pas émulé. Il a été ajouté.
Après cette modification il restait un petit décalage, l'émulation était encore trop rapide. L'émulateur Z80 utilisé par dcvg5k travaille au niveau de l'instruction et ne peut pas s'arrêter tant qu'elle n'est pas terminée. Pour la terminer il exécute des cycles "en trop" qui n'étaient pas comptabilisés. Pour rétablir une bonne synchronisation, ces cycles "en trop" sont maintenant pris en compte.
D'après les dernier tests réalisés la nouvelle version de dcvg5k est parfaitement synchrone avec le vrai VG5000µ
Merci beaucoup à Mokona, je lui dédicace cette version !
[VG5000µ] DCVG5K 2020.12.27
Modérateurs : Papy.G, fneck, Carl
[VG5000µ] DCVG5K 2020.12.27
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- Mokona
- Messages : 1041
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: [VG5000µ] DCVG5K 2020.12.27
Je suis honoré par la dédicace, merci
Re: [VG5000µ] DCVG5K 2020.12.27
Donc le VG5000µ rajoute aussi un wait state au cycle M1 comme les MSX ? mais quel copieur !
Il y a une raison à cela ? des ROM et des RAM trop lents ?
Il y a une raison à cela ? des ROM et des RAM trop lents ?
Re: [VG5000µ] DCVG5K 2020.12.27
J’ai l’impression que par rapport au DataSheet, le Z80 n’a jamais été cadencé à sa pleine puissance avec tout les Wait states que les constructeurs ont rajouté dessus : MSX en rajoute systématiquement un sur un cycle M1, sur CPC, c’est le GA qui cadence le Z80 à coup de Wait States tous les 3 cycles/4, maintenant le VG5000...
Je me demande si ce n’est pas lié à sa fréquence de fonctionnement plus élevée que les autres CPU de l’époque genre 6502 qui étaient cadencés à 1 ou 2 MHz max. Les puces annexes n’arrivaient peut être pas à suivre la cadence...
Je me demande si ce n’est pas lié à sa fréquence de fonctionnement plus élevée que les autres CPU de l’époque genre 6502 qui étaient cadencés à 1 ou 2 MHz max. Les puces annexes n’arrivaient peut être pas à suivre la cadence...
- Mokona
- Messages : 1041
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: [VG5000µ] DCVG5K 2020.12.27
Dans la documentation du Z80 en tout cas, l'explication de \WAIT est au chapitre « Memory Speed Control », en disant que contrairement aux autres phases, le fetch est assez court et qu'il est donc prévu de pouvoir ralentir le Z80.
L'explication est suivi d'un petit schéma utilisant un 74LS74 pour montrer comment ajouter un cycle à M1. Le VG5000µ utilise... un 74LS74 pour reproduire ce montage. Le seul ajout est qu'il est aussi branché sur le bord de carte pour un signal \WAITE (B1), ce qui permet aussi aux extensions de faire attendre le Z80.
L'explication est suivi d'un petit schéma utilisant un 74LS74 pour montrer comment ajouter un cycle à M1. Le VG5000µ utilise... un 74LS74 pour reproduire ce montage. Le seul ajout est qu'il est aussi branché sur le bord de carte pour un signal \WAITE (B1), ce qui permet aussi aux extensions de faire attendre le Z80.
Re: [VG5000µ] DCVG5K 2020.12.27
Sur les SHARP que je connais, ce n'est pas le cas. Excepté pour le MZ-1500 (Super MZ) qui le rajoute quand il tourne en mode turbo (6 MHz au lieu de 4 MHz). Sur le MZ-700, il y a bien un ajout ce n'est pas spécifiquement sur un cycle M1 mais à l'accès de la ROM monitor; la DRAM et la VRAM ne sont pas concernées : c'est à l'accès d'une mémoire spécifique et non bêtement à chaque cycle M1. Donc j'avoue que ça me laisse perplexe cette stratégie d'ajout systématique d'un wait state au cycle M1 sur le MSX et maintenant le VG5000µ. Ca ressemble à une solution généraliste du pire cas.
Dernière modification par hlide le 28 déc. 2020 14:13, modifié 1 fois.
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [VG5000µ] DCVG5K 2020.12.27
Merci Mokona et Daniel pour cette ultime version
Carl
Carl