CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 1.08.03 Le fonctionnement de l'AY-3-8912 sur le CPC

Nous allons nous intéresser dans cette section à la connexion concrète et certaines choses plus concrètes pour l'utilisation du chip sonore sur le CPC. Comme la description des registres qui précède était nécessairement abstraite et peut-être pas très aisément compréhensible, vous comprendrez mieux, après avoir lu ce chapitre, certaines particularités du PSG.

Jetons d'abord un coup d'œil sur le schéma de fonction.
Le PSG y figure comme IC 102.
Les pins 3, 17 et 19 sont sur +5 Volts. L'AY-3-8912 reçoit son alimentation électrique à travers le pin 3. Comme BC2 (pin 19) et A8 (pin 17) sont sur +5 Volts, ils n'interviennent pas dans la sélection des registres.

Les connexions de commande des registres restantes BC1 (pin 20) et BDIR (pin 18) sont reliées aux bits de port PC6 et PC7 du 8255. Suivant l'état de ces connexions, des adresses de registre peuvent être communiquées au PSG ou des données peuvent être écrites ou lues dans le PSG.

Le transfert d'adresse et de données proprement dit se produit à travers les connexions D0 à D7 du PSG qui sont reliées au port A du 8255. Suivant l'action demandée, le port A doit être programmé comme entrée ou sortie.

Le signal de l'horloge sur le pin 15 est un signal carré d'une fréquence de 1 MHz. Ce signal est fourni par le gâte array par division de la fréquence quartz. De ce signal sont dérivées par division de fréquence toutes les fréquences de son et de courbe d'enveloppe.
Le port I/O du PSG est relié au clavier et à la connexion pour le joystick. Vous trouverez dans un prochain chapitre une description détaillée du clavier et du joystick, nous ne nous intéressons ici qu'aux possibilités sonores du chip sonore.

Les connexions les plus importantes de ce circuit intégré sont certainement les trois sorties analogues A, B et sur les pins 1, 4 et 5. Ces sorties fonctionnent comme ce qu'on appelle des sorties Open-Emitter. Pour pouvoir sortir une tension alternative du son, des résistances sont nécessaires qui commutent entre sortie et masse. C'est la fonction des résistances R121, R122 et R123.

Le signal sonore est mixé par ces trois résistances à travers trois résistances et il se présente alors sous forme d'un signal mono sur la connexion 1 du port d'extension. Ce signal mono est cependant également conduit sur la connexion 1 du port d'extension. De là, ce signal arrive à l'amplificateur et au haut-parleur internes.

Les trois sorties sont cependant en outre conduites également vers la prise stéréo à l'arrière de l'ordinateur. A cet effet, le signal du canal B est envoyé de façon identique sur les deux canaux stéréo, à travers deux résistances. Les sorties A et C sont chacune envoyées directement sur un des canaux stéréo, à travers un condensateur de découplement.

Ce type de branchement rend même possible, avec une habile programmation, d'obtenir de véritables effets stéréo. Il serait par exemple imaginable de ne sortir d'abord un son que sur le canal A. Au bout de quelque temps, le même son pourrait être sorti en plus sur le canal B. On pourrait, ce faisant, faire monter lentement le volume du signal sur le canal B, alors que le volume du signal serait par contre réduit de façon symétrique. Le résultat serait qu'il semblerait que le son se promène d'un coin de la pièce vers le milieu entre les deux baffles. De là, il peut si nécessaire continuer vers l'autre coin.

Ces effets sont mêmes possibles en Basic avec la puissante instruction sound. Le manuel d'utilisation comporte cependant des contradictions dans l'indication de la répartition des trois canaux de son sur les deux canaux stéréo. Observez-le après avoir relié votre CPC à une chaîne stéréo. Seuls les sons du canal B apparaissent sur les deux canaux de la chaîne stéréo.

Mais comment le PSG produit-il au fond les sons? Examinons un peu comment les choses se produisent en détail sur un canal. Comme nous l'avons déjà indiqué, tous les sons sont dérivés du signal de l'horloge sur le pin 15. Le signal d'horloge est d'abord divisé par 16. Il en résulte sur le CPC une fréquence de commande de 62,5 KHz. Cette fréquence est alors conduite vers un diviseur de fréquence programmable. Suivant le contenu des registres du générateur de son, la fréquence de commande est ou non à nouveau divisée, pour obtenir la fréquence voulue.

Les développeurs de ce circuit intégré ont à cet égard fait montre de beaucoup d'astuce. La chaîne de division n'est pas seulement constituée de flip-flops qui peuvent diviser la fréquence par deux. Par une technique de branchement spéciale, des facteurs impairs de division sont également possibles. La fréquence de commande peut tout-à-fait être divisée par 3 ou par 17. C'est uniquement ainsi que toutes les valeurs nécessaires peuvent être produites dans la zone de fréquences élevées.

Le contenu des registres du générateur de son détermine donc le facteur de division pour le signal sonore. Si le registre 0 du PSG reçoit la valeur 100, le registre 1 la valeur 0, la fréquence de commande sera divisée par 100. Sur la sortie de la chaîne de division du canal A se trouve un signal d'une fréquence de 625 Hertz.

Ce signal ne peut cependant pas encore être retiré sur la sortie A. Il faut d'abord que le canal correspondant soit activé. Ceci est obtenu en annulant le bit correspondant du registre 7. Comme nous avons choisi dans notre exemple le canal A, nous devons annuler le bit 0. Mais il faut, ce faisant, considérer l'état des autres bits. Sur le CPC, cela signifie concrètement qu'il ne faut pas modifier le bit 6 involontairement car sinon le clavier est bloqué.

Mais pour le moment on ne peut entendre encore aucun son, parce que le volume de chaque canal doit être fixé. Pour le canal A, c'est le registre 8 qui est responsable. Une valeur de 1 ne produit qu'un son très doux, alors qu'une valeur de 15 donne le volume maximal.

Si nous mettons (sur 1) le bit 4 du registre de volume, les informations contenues dans les bits 0 à 3 seront ignorées. Ce sont maintenant les registres 11, 12 et 13 qui déterminent le volume. Le volume n'est plus alors fixé sur une valeur mais il devient variable.
Considérons d'abord le registre 13. Ce registre porte le nom officiel de 'ENVELOPE SHAPE/CYCLE CONTROL REGISTER'. Sa fonction sera illustrée plus aisément grâce à un exemple. Après que nous ayons fourni les valeurs adéquates aux registres 0, 1, 7 et 8, écrivons donc dans le registre 13 la valeur 12. Les bits 2 et 3 sont maintenant mis, alors que les 2 bits inférieurs sont annulés.

Le tableau fourni dans la description des registres montre pour cette combinaison une suite de dents montant lentement et retombant rapidement. En pratique, cela signifie que le volume du son monte tout d'abord lentement jusqu'au maximum. Puis le son est coupé et le volume recommence à monter. Cet état demeure jusqu'à ce qu'une nouvelle instruction soit envoyée au registre 13.

La durée de la montée du volume peut être fixée à travers les registres 11 et 12. Ces registres influencent de façon analogue aux registres des générateurs de son une autre chaîne de division programmable sur le PSG. La chaîne de division reçoit un signal qui correspond au signal de l'horloge divisé par 256. Cela donne une fréquence de 3906,25 Hertz correspondant à une période d'environ 250 microsecondes.

Si une valeur 1 est écrite dans le registre 11 et une valeur 0 dans le registre 12 qui travaille comme high-byte, le volume du son est réellement conduit en 250 microsecondes de 0 jusqu'au volume maximum. Cela figure cependant déjà dans la zone des sons audibles et produit un sifflement net qui est superposé au son véritablement souhaité.

C'est pour cette raison que les valeurs de registre choisies sont toujours nettement plus élevées. Avec la valeur maximale (255 dans Reg 11 et Reg 12), la montée jusqu'au volume maximum dure 16,8 secondes.

L'altération du volume à travers le registre d'enveloppe n'est pas utilisée par le logiciel du CPC. L'instruction ENV influence le volume du son uniquement à travers des manipulations des autre bits inférieurs du registre de volume. L'instruction ENT du CPC n'a pas d'équivalent sur le PSG. Cette fonction est produite par une modification habile des registres du générateur de son.

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 1.08.02 La fonction des différents registres du 8912
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 172 millisecondes et consultée 1206 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.