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.
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)
"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.
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.
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
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; }
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 23 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