MSX Village forum

La Place des Développeurs MSX turbo R: 1 cycle de plus en OUTant vers le VDP? aïe! mal à la tête là...

Overouf Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/10/2014 à 15h09

Messages: 39

Le 08/12/2014 à 08h29
Bonjour,

Prenons OUT(#99),A normalement çà prend 12 cycles.
Implicitement: sur un msx1, un msx2, standard, sous ému, etc.

Or dans certaines configs OUT(#99),A prend 13 cycles.
Certaines configs =
- Panasonic FS A1-WSX, 50Hz forcé, z80 forcé
- MSX Turbo r sous ému BlueMsx ou openMSX
- MSX2+ sous ému BlueMsx... mais pas sous openMSX
- ... et sur le vrai WSX, après "des" manip' (merci GillianSeed): c'est OK, le OUT prend 12 cycles
Comme qui dirait: WTF!?

Alors:
à quoi correspond ce cycle supplémentaire?
comment peut-on forcer le retour à la normale?

Je n'ai pas de background msx, désolé. Je tente quand même une explication à base de ce que j'ai lu à droite à gauche: c'est lié au fait que certaines archis avancées (msx2+, kit, msx turbo R) permettent au z80 de tourner plus vite. Par contre, pour garder une certaine compatibilité (notamment avec les lents vdp), le hardware ralentit volontairement le tout: en ajoutant ce cycle supplémentaire. Ce dernier n'a de raison d'être qu'en z80 overclocké (et R800 sans doute). Doit y avoir un moyen d'indiquer au hardware qu'on switche de mode et qu'on a pas besoin de ralentissement.

Voilà, difficile pour un lundi matin?
Bonne semaine!
Oliverflow
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 08/12/2014 à 08h46
Cela m'étonnerait que les ingénieurs aient prévu de configurer le hardware différemment dans le cas où l'utilisateur overclockait le Z80 par un kit ou autre chose de ce genre. Cela ne faisait pas partie du standard MSX, et donc certainement pas pris en compte à la conception.

Je peux le comprendre uniquement dans le cas du R800, vu effectivement la différence de vitesse d'accès.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/12/2014 à 10h31
Peut être est ce lié:

Lors de mes essais "no wait", j'ai pu constater une gain de vitesse important jusque dans la jouabilité de "métalgear2".

Sachant que "wait" met le z80 en attente jusqu'à ce que "la main lui soit rendue", il est tout à fait possible que le hardware embarqué dans la configuration fasse prendre quelque cycles supplémentaires au z80.

Si l'on cherche le dénominateur commun, peut être la ram qui serait plus lente sur ces machines ou encore la sram commune au msx2+ et turbo-r.
Dans le cas sram ça semble bcp moins probable puisqu'elle est pas adressée à chaque cycle.

En tout cas c'est intéressant à savoir :)


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 08/12/2014 à 11h21
Oui Igal, le "WAIT STATE" est bien connu, et d'ailleurs Overouf en tient déjà compte dans son message puisqu'il parle de 11 cycles pour le OUT(c),A alors que cette instruction ne prends que 10 cycles sur un Z80 "normal" (sur MSX on ajoute un cycle à chaque instruction à cause du "WAIT STATE").


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Overouf Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/10/2014 à 15h09

Messages: 39

Le 08/12/2014 à 12h09
Yep! J'ai bien assimilé ce(s) cycle(s) supplémentaire(s) dès mes premiers pas. (Y'a toujours des bizarreries d'architecture; sur cpc c'est arrondi à un multiple de 4: NOP/4 - LD (HL),A/8 - ADD HL,BC/12 - OUT(C),A/16 etc).

Là, je parle bien d'un encore/autre cycle d'ajouté à OUT(#99),A ou OUT(C),A ou OUTI,
en bootant et manipant un turboR d'une certaine manière;
sur la même bécane (merci Félix) avec d'autres manip, le cycle en plus n'y est pas.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 08/12/2014 à 13h29
Ben justement, est-ce que ce n'est pas unquement quand le TurboR est en mode R800 ?


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Overouf Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/10/2014 à 15h09

Messages: 39

Le 13/12/2014 à 19h29
Metalion :
(...) 11 cycles pour le OUT(c),A alors que cette instruction ne prends que 10 cycles sur un Z80 "normal"(...)
Rectifié: 12, 11 normalement (dixit Sean Young).



Metalion :
Ben justement, est-ce que ce n'est pas unquement quand le TurboR est en mode R800 ?
On est bien dans la config "50Hz forcé, z80 forcé" je confirme, vraiment aucun doute là-dessus, explicitement R800 désactivé sur Turbo R, ou z80 switché à 3,58Mhz sur les MSX2+ de Panasonic. Je poste mes outils/tests (.com et sources) ce soir.
   
GuillianSeed Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 16/10/2009 à 18h53

Messages: 691

Le 14/12/2014 à 10h32
T'as du courrier Overouf ! :)


MSX1 Sony HB501F / MSX2+ FSA1FX / MSX2+ FSA1WX / MSX2+ FSA1WSX / MSX Turbo-R ST / MSX Turbo-R GT
Moonsound 2.0 & DalSoRi - Interface CF & CF Card Interface - MegaFlash SCC 512Ko & 2x512ko - SRam 512Ko - Megaflashrom SCC + SD
MSX4Ever !!
Overouf Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/10/2014 à 15h09

Messages: 39

Le 14/12/2014 à 10h57
GuillianSeed :
T'as du courrier Overouf !
Merci!

Ca confirme: un Turbo R en mode z80, c'est un poil moins rapide qu'un MSX1 ou 2.

Y'a des wait-states pour slow-down le cpu s'il accède au vdp,

précisément 1 cycle de plus sur les instructions OUT et IN.

Suite: et sur MSX2+? avec différence chez Panasonic (ceux overclockable)?
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie