Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 30 Nov 2025, 10:04

Index du forum » Hardware

Le fuseau horaire est UTC+1 heure


Amstrad + DMA

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 2
 [ 17 message(s) ]  Aller vers la page 1, 2  Suivant
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
power_ukx
 Sujet du message : Amstrad + DMA
Message Publié : 05 Jan 2015, 17:34 
Bonjour à tous,
quelqu'un pourrait il me dire en combien de temps l'Asic (DMA) met à jour un registre AY (sélection du reg + nouvelle valeur) ?

Et quand on utilise les 3 DMAs, comment se passe la programmation de l'AY ?

Je n'ai malheureusement plus d'oscillo pour mesurer BDIR et BC1...

Merci


Haut
  
 
AsT
 Sujet du message : Re: Amstrad + DMA
Message Publié : 05 Jan 2015, 19:04 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
Les Dma se mettent à jour pendant et à chaque hbl et ceci est valable pour les 3 canaux Dma pour chaque instruction de ta Dma-list.
Concernant l'ay, les Dma prennent le pas sur l'ay et seront toujours prioritaires. Une fois la Dma-list passée, l'ay reprends le pas.
Je ne te donnerai pas le temps que prends l'instruction durant la Hbl sachant que je n'ai rien pour mesurer.

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
Plissken
 Sujet du message : Re: Amstrad + DMA
Message Publié : 05 Jan 2015, 19:49 
Hors-ligne
Rulezzzz
Rulezzzz
Avatar de l’utilisateur

Inscription : 13 Nov 2007, 16:09
Message(s) : 911
Localisation : Gallifrey
J'en profite pour rajouter une question: on peu avoir en même temps ay et dma ?Genre 2 canaux AY et le dernier utilisé par le DMA ?

_________________
Tout le monde il es beau,tout le monde il est gentil .


Haut
 Profil  
 
AsT
 Sujet du message : Re: Amstrad + DMA
Message Publié : 05 Jan 2015, 20:30 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
Oui, je l'ai fait pour la Synergy Demo avec mon emulation malheureuse des Sid Voices. J'avais fait des essais également avec des transferts ayc ST qui géraient les Digidrums. L'ay s'occupait de gérer le tradi, tandis que le dma, lui gérait les samples.

Dans la rst#38, mon choix a été different puisque j'ai fait mon propre player Full-Dma qui gérait à la fois le tradi (1 canal Dma) et les samples (2ème canal Dma)

Pour revenir à l'utilisation des Dma sur Cpc plus, vous pouvez aussi utiliser celui-ci.

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
power_ukx
 Sujet du message : Re: Amstrad + DMA
Message Publié : 05 Jan 2015, 20:49 
Merci pour ta reponse Ast, mais j'aurais voulu les timings... Pour 3 dma-list : 3x4µs ?


Haut
  
 
Plissken
 Sujet du message : Re: Amstrad + DMA
Message Publié : 05 Jan 2015, 21:12 
Hors-ligne
Rulezzzz
Rulezzzz
Avatar de l’utilisateur

Inscription : 13 Nov 2007, 16:09
Message(s) : 911
Localisation : Gallifrey
Merci aussi pour ta réponse.

Mais j'ai jamais rien compris non plus au dma :(
/hors sujet on
Fano a coder un outils pc:mycpctoolkit qui gere certains aspect du plus pour info.

http://cpcrulez.fr/coding-crossdev_coding-mycpctoolkit.htm
/hors sujet off

_________________
Tout le monde il es beau,tout le monde il est gentil .


Haut
 Profil  
 
AsT
 Sujet du message : Re: Amstrad + DMA
Message Publié : 05 Jan 2015, 21:55 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
@Power, poste sur push'n pop, je suppose que Grim ou Offset auront une réponse pour toi concernant les timings.

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
arnoldemulator
 Sujet du message : Re: Amstrad + DMA
Message Publié : 06 Jan 2015, 14:12 
Hors-ligne

Inscription : 22 Août 2014, 09:24
Message(s) : 4
http://www.cpctech.org.uk/docs/arnold5a.html

"The exact timing is based on 1us cycles as follows. After the leading edge of HSYNC from the 6845, there is one dead cycle followed by an instruction fetch cycle for each channel which is active (i.e. enabled and not paused). The execute cycles then follow for each active channel. All instructions execute in one cycle, except that LOAD requires at least 8 cycles. An extra cycle is added to a LOAD if the CPU is accessing the 8255, or two extra cycles if the CPU access was itself a PSG register write."

If all 3 channels are enabled, and all are using LOAD.

After HSYNC start it us:

1us unused, 1us channel a instruction, 1us channel b instruction, 1us channel c instruction, load channel a, load channel b, load channel c.

Total: 1+1+1+1+8+8+8 = 28 Cycles.

This is not confirmed yet, but I think these are the timings.

The DMA does restore selected PSG register and PPI port A input/output state.
I have tested this.


Haut
 Profil  
 
AsT
 Sujet du message : Re: Amstrad + DMA
Message Publié : 06 Jan 2015, 14:21 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
thanks for your explanations.

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
power_ukx
 Sujet du message : Re: Amstrad + DMA
Message Publié : 12 Jan 2015, 11:51 
Thanks arnoldemulator for you explanations.

Actuellement je me fabrique un logic analyzer "basic", j'ai recupere un proto d'un projet de mon ancien taf (à base de LPC2388 à 72MHz). J'arrive à une période de 69.4ns. En pièce jointe , un screenshot de ce que j’obtiens.
Le soft est pas encore terminé comme vous pouvez le voir :) mais çà avance bien !

Pour info le trig est placé sur la ligne RED[3] du circuit AMS40464 (DAC video), j'ai donc triggé un pixel rouge en fin de ligne (proche HSYNC).

J'y retourne ... ;)


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
  
 
AsT
 Sujet du message : Re: Amstrad + DMA
Message Publié : 12 Jan 2015, 14:02 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
Peux tu nous dire à quoi ça va servir?

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
power_ukx
 Sujet du message : Re: Amstrad + DMA
Message Publié : 12 Jan 2015, 14:59 
Yop,
un logic analyzer permet comme son nom l'indique d'analyser des signaux logique (0 ou 1), contrairement à l'oscilloscope qui mesure des tensions,quoique ...

Mon tools me permet de visualiser certains timings, et permet de répondre à ma question de départ :
Citer :
quelqu'un pourrait il me dire en combien de temps l'Asic (DMA) met à jour un registre AY (sélection du reg + nouvelle valeur) ?

Je comprends mieux les timings données par arnoldemulator.

L'exemple donné correspond à la mise à jour des 3 registres de volume de l'AY avec 3 DMAs, sans accès du Z80. On peut voir que l'ASIC effectue à la suite :
- sélection registre AY
- écriture donnée
- sélection registre AY
- sélection registre AY
- écriture donnée
- sélection registre AY
- sélection registre AY
- écriture donnée
- sélection registre AY

Bref c'est un peu ridicule dans ce cas, car il y a 2xsélection registre AY entre 2 DMAs, quelle perte de temps :).

Et du coup je comprend mieux pourquoi ma technique pour lire les samples >4 bits et dégueulasse :D

Voila, voila.


Haut
  
 
TotO
 Sujet du message : Re: Amstrad + DMA
Message Publié : 12 Jan 2015, 15:35 
Hors-ligne
VIP
VIP

Inscription : 13 Jan 2010, 14:25
Message(s) : 2282
Bel outil !
J'espère qu'on continuera à avoir des news à son sujet... :)

_________________
Cent Pour Cent


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Amstrad + DMA
Message Publié : 12 Jan 2015, 19:46 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
power_ukx a écrit :
- sélection registre AY
- sélection registre AY


en fait, y'a pas forcément deux fois l'instruction sélection registre AY... C'est plutôt qu'il y a un out qui sélectionne le registre AY puis le temps que l'instruction suivante soit envoyé à l'AY, celui-ci fait la même chose tant qu'on a pas changé l'instruction suivante

exemple de code pour illustrer : tant que BDIR et BC1 ne sont pas changer, l'AY fait la même chose !

// The Gate Array has the following roles: generation of a 1Mhz clock for the CRTC and AY-3-8912

dans le cas du PLUS, c'est donc l'ASIC qui dirige l'AY !

Code :
switch(this.BDIR<<1|this.BC1) {
         case 0x00: // inactive
         break;
         case 0x01: // read
         break;
         case 0x02: // write
         break;
         case 0x03: // select PSG register
         break;
}


Haut
 Profil  
 
arnoldemulator
 Sujet du message : Re: Amstrad + DMA
Message Publié : 13 Jan 2015, 09:57 
Hors-ligne

Inscription : 22 Août 2014, 09:24
Message(s) : 4
Is it this?

dma select register
dma write register
restore previous ay register selection
dma select register
dma write register
restore previous ay register selection
dma select register
dma write register
restore previous ay register selection

?

What does the ay data look like?

I would also be interested to see the pattern when both "cpu" and dma are accessing ay.

Does DMA wait or steal?


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 2
 [ 17 message(s) ]  Aller vers la page 1, 2  Suivant

Index du forum » Hardware

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 32 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

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.