CODINGCLEFS POUR AMSTRAD 1 ★ Système de base par Daniel Martin ★

Clefs1 33 Circuit Ay3 8912 Psg - RegistresCoding Clefs Pour Amstrad 1

CIRCUIT AY3-8912 (PSG)

Les différents registres du PSG

Les registres sont au nombre de 15, numérotés de R0 à R14. Le registre R14 sert à  la gestion du port d'entrée/sortie et sera analysé par la suite.

Pour produire un son, une combinaison des registres R0 à R13 doit être chargée avec des données. Chaque paramètre doit être analysé de façon à dissocier la composante bruit,   la composante son,   la fréquence,   la forme et  la durée de  l'enveloppe.  Une fois cette analyse effectuée,   les registres peuvent être chargés et le son produit.

Les registres R0 à R5

Les trois premières paires de registres (R0-R1, R2-R3, R4-R5) sont les registres de contrôle de la fréquence des trois canaux A, B et C.

Les registres R0,  R2 et R4 sont les registres de réglage fin et les huit bits sont utilisés.  Les registres R1,   R3 et R5 sont les registres de réglage grossier (seuls,  les quatres bits de gauche LSB sont utilisés).

Ainsi,   les valeurs chargées dans R0,  R2 et R4 sont comprises entre 0 et 255 ;   les valeurs chargées dans R1,   R3 et R5 sont comprises entre 0 et   15.

La valeur se détermine par la formule suivante  :

VL =  125000 / F

Le registre R6

Le registre R6 détermine la fréquence du générateur de bruit  ; seuls les cinq bits les moins signicatifs sont utilisés. La valeur de R6 est donc comprise entre  1 et 31.  La même formule que pour R0-R5 est utilisée.

Le registre R7

Le registre R7 contrôle  le mélange entre  les trois générateurs sonores et  le générateur de bruit. R7 sert aussi  au contrôle du port dont nous parlerons par la suite.

Voici un tableau résumant   les effets du registre R7.

BIT    = 0                          ;   ;=1
------------------------------------------------------------
7      NON UTILISE                     ; NON UTILISE
6      PORT A ENTREE                  ;  PORT A SORTIE (inutile)
5      BRUIT SUR CANAL C ON             ;BRUIT SUR CANAL C OFF
4      BRUIT SUR CANAL B ON             ;BRUIT SUR CANAL B OFF
3      BRUIT SUR CANAL A ON             ;BRUIT SUR CANAL A OFF
2      SON  SUR CANAL  C ON             ;SON  SUR CANAL C OFF
1      SON  SUR CANAL  B ON             ;SON  SUR CANAL B OFF
0      SON  SUR CANAL  A ON             ;SON  SUR CANAL A OFF
------------------------------------------------------------

Note : mettre un canal sur OFF ne suffit pas pour arrêter l'émission de celui-ci ; il faut écrire un 0 dans le registre de contrôle d'amplitude (voir ci-après).

Exemple

Je désire,   sur le canal  A, du son et pas de bruit, sur le canal   B, du bruit et du son et,  sur  le canal  C, du bruit uniquement.

valeur  :  x x 0 0 1 1 0 0 =  12
bit     :  7 6 5 4 3 2 1 0
(x x)   = sans importance

Il  suffit d'écrire  12 dans le registre 7.

Les registres R8 à R10

Les registres R8 à R10 contrôlent  les amplitudes des canaux A, B et C ;   seuls   les quatre bits  les moins significatifs sont utilisés, donc   les valeurs possibles sont comprises entre 0 et   15. 0 signifie que l'amplitude est minimum (nulle) et   15 correspond à l'amplitude maximum.  Le cinquième bit (bit 4) est  le bit de sélection du mode de fonctionnement du contrôle de  l'amplitude. Si BIT4 est 0,   l'amplitude ne varie pas. Si   BIT4 est   1,   l'amplitude est contrôlée par le générateur d'enveloppe (voir ci-dessous).

Les registres R11 et R12

Ces deux registres contrôlent la période de l'enveloppe. Un calcul avec une formule similaire à celle utilisée pour R0-R5 est effectué pour déterminer la valeur de R11 et R12.

Formule  :   VL =   125000 * P /   16 ou P est  la période de  l'enveloppe.

Le registre R13

Le registre R13 contrôle la forme de  la modulation utilisée. Si  le BIT4 décrit dans les registres R8 à R10 est 1,   la modulation a  lieu,  sinon  la programmation du registre  13 est ignorée.

Seuls,  les quatre bits les moins significatifs sont utilisés.

--------+-----------------------------------------+----------------
   Bit  |                                       ;  |   Valeurs
3 2 1 0 |           ;Forme de l enveloppe          |  possibles
--------+-----------------------------------------+----------------
0 0 x x | A   Un seul cycle commence avec une     |  0, 1, 2, 3
        |     amplitude maximum qui diminue       |
        |     pour devenir nulle.               ;  |
--------+-----------------------------------------+----------------
0 1 x x | B   Un seul cycle commence avec une     |  4, 5, 6, 7
        |     amplitude nulle qui augmente pour   |
        |     atteindre sa valeur maximale,       |
        |     ensuite retombe brusquement à 0.    |
--------+-----------------------------------------+----------------
1 0 0 0 | C   Comme A,  mais se répète sans       |  8
        |     cesse.                          ;   ;|
--------+-----------------------------------------+----------------
1 0 1 0 | D   Comme C, mais remonte de façon plus |  10
        |     marquée vers  le maximum (ATTACK).  |
--------+-----------------------------------------+----------------
1 0 1 1 | E   Comme A,  mais revient ensuite au   |  11
        |     maximum et y reste.               ;  |
--------+-----------------------------------------+----------------
1 1 0 0 | F   Comme B, mais se répète sans cesse. |  12
--------+-----------------------------------------+----------------
1 1 0 1 | G   Comme B, mais reste au maximum.     |  13
--------+-----------------------------------------+----------------
1 1 1 0 | H   Comme F, mais avec une attaque plus |  14
        |     marquée                           ;  |
--------+-----------------------------------------+----------------


Le registre R14

Ce registre n'a rien à voir avec la production sonore. Il gère un port d'entrée-sortie qui s'occupe de la lecture du clavier et de la manette de jeux.
Le bit 6 du registre R7 règle le sens de la transmission, mais comme le port est utilisé uniquement en entrée,  il  suffit de toujours mettre  le bit 6 de R7 à 0.

★ ANNÉE: ???
★ AUTEUR(S): ???

Page précédente : Clefs1 33 Circuit Ay3 8912 Psg - Prog

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 123 millisecondes et consultée 949 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.