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
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/c
Page créée en 533 millisecondes et consultée 1730 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.