ARTICLES
![]() | ![]() | 4 / 5 | ![]() | ![]() |
Les composants autour du Z80
Le système est articulé autour d'une unité centrale Z80 avec une horloge de 4MHz.
Le circuit le plus important de l'Amstrad, à l'exception du microprocesseur lui-même, est certainement le "GATE ARRAY"
qui contient toute la logique de contrôle du système. En particulier, il contrôle la couleur, le mode écran et il gère les mémoires mortes (ROM).
En conjonction avec le CRTC 6845 (Cathode Ray Tube Controller), le "GATE ARRAY" gère tous les signaux vidéos pour le moniteur (écran).
Un autre circuit important est le PSG AY-3-8912 (PSG=Programmable Sound Generator). Ce circuit possède trois canaux distincts avec un générateur de bruit et un contrôleur d'enveloppe pour chaque canal.
Le système est également pourvu d'un port entrée-sortie qui est utilisé pour lire le clavier et la manette de jeux.
Le dernier circuit principal est le PPI 8255. Il jour un rôle important au niveau de la gestion de la manette de jeux, du port parralèle d'imprimante, de l'enregistreur à cassettes et aussi au niveau de la sélection des colonnes du clavier.
Le système possède 64K de mémoire vive (RAM) et 32K de mémoire morte (ROM) qui contiennent le système d'exploitation et le Basic.
La mémoire morte (ROM) de 32K, située sur le circuit central, est découpée logiquement en deux blocs de 16K. Les 16K inférieurs vont de l'adresse 0000 à l'adresse 3FFF et les 16K supérieurs occupent les adresses C000 à FFFF. Ces deux mémoires peuvent être séparément mises en circuit ou hors circuit par le contrôle de la "GATE ARRAY".
Sur le port d'extension, nous trouvons un signal pouvant être utilisé pour déconnecter les mémoires mortes internes et permettre à des mémoires externes d'accéder au processeur. Cette possibilité permet, par exemple, d'installer un disque souple.
La mémoire vive est constituée de 64K octets de RAM dynamiques qui vont de l'adresse 0000 à FFFF. Les 16K inférieurs et les 16K supérieurs se trouvent donc en superposition avec la ROM. Normalement, cela ne pose aucun problème. Lorsqu'on écrit, on écrit automatiquement dans la RAM. Lorsqu'on lit, il faut au préalable sélectionner la ROM ou la RAM, suivant ce que l'on désire lire.
La mémoire écran se situe dans la mémoire centrale et occupe 16K. Elle peut se trouver à l'adresse 0000, à l'adresse 4000, à l'adresse 8000 ou à l'adresse C000. Généralement, au départ, elle se trouve à l'adresse C000.
Le PSG est composé des éléments suivants:
- Générateurs sonores : au nombre de trois, ils produisent un signal carré dont la fréquence est programmable. On les appelle CANAUX A,B et C. Ils n'ont pas de priorité propre et sont indépendants.
- Générateur de bruit blanc : il produit un bruit à large spectre.
- Mélangeur : Il permet de mélanger (combiner) les sorties des trois générateurs sonores et du générateur de bruit.
- Contrôleur d'amplitude : il permet de sélectionner l'amplitude de sortie du signal de deux façons différentes. La première est de contrôler l'amplitude par le microprocesseur lui-même : elle est dite amplitude fixe. La seconde est de controler l'amplitude par le générateur d'enveloppes : elle est dite amplitude variable.
- Générateur d'enveloppe : il produit une enveloppe de modulation de l'amplitude. Il possède huit formes d'enveloppes.
- Convertisseurs digitaux-analogiques : les trois convertisseurs D/A produisent les signaux à 16 niveaux tels que le contrôleur d'amplitude les détermine.
- Port d'entrée/Sortie : il ne sert pas à la production sonore.
Le PSG est accessible à travers les ports A et C du PPI 8255.
Pour plus de facilité, l'écriture dans le PSG peut se faire au moyen de la routine 188 (BD34). La lecture de l'état du clavier et des manettes de jeux est donc plus difficile à mettre en oeuvre directement. Il est donc conseillé de passer par les points d'entrée standard du logiciel interne.
Pour ceux qui voudraient quand même programmer directement le PSG, signalons que les deux signaux de commande BDIR et BC1 sont fournis par le port C du PPI 8255.
BDIR | BC1 | Fonction |
0 | 0 | Inactif : pas de Fonction |
0 | 1 | Lecture : le contenu du registre courant est mis sur le bus des données D0-D7. |
1 | 0 | Ecriture : le bus D0-D7 contient une donnée à écrire dans le registre courant. |
1 | 1 | Ecriture : le bus D0-D7 contient un numéro de registre qui deviendra le registre courant. |
le PPI est un circuit fabriqué par INTEL sous la dénomination 8255A. C'est un circuit d'interfaçage prévu pour les processeurs de la famille du 8080.
Il possède 24 bits d'entrée/sortie qui peuvent être programmés en deux groupes de 12 bits et utilisés dans trois modes principaux.
Dans le premier mode (mode 0), chaque groupe de 12 bits peut être programmé par tranches de 4 bits en entrée comme en sortie.
Dans le second mode (mode 1), chaque groupe de 12 bits peut être programmé de la façon suivante : 8 bits sont utilisés en entrée/sortie, les 4 autres sont utilisés pour le HANDSHAKING (contrôle de transmission).
Le troisième mode (mode 2), est un mode où 8 bits sont utilisés comme PORT bidirectionnel et 5 bits pour le HANDSHAKING.
Le PPI possède aussi la possibilité de positionner des bits à l'état 0 ou 1 directement.
Pour plus de facilité, le PPI est divisé en trois ports de 8 bits distincts appelés PORT A, PORT B et PORT C.
le PORT C se divise en deux groupes de 4 bits pour former les groupes de 12 bits avec A et B.
Découpage des ports:
Port A - utilisé en entrée et en sortie.
B0 à B7 | Correspondent aux D0 à D7 de l'AY-3-8912 |
Port B - utilisé en entrée uniquement
Bit 7 | Lecture donnée cassette (INPUT) |
Bit 6 | Signal BUSY imprimante (INPUT) |
Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 |
Non utilisé |
Bit 0 | Interruption en provenance du CRT. |
Port C - utilisé en sortie uniquement
Bit 7 | Commande BDIR de l'AY-3-8912 (OUTPUT) |
Bit 6 | Commande BC1 de l'AY-3-8912 (OUTPUT) |
Bit 5 | Ecriture donnée sur cassette |
Bit 4 | Démarrage moteur cassette |
Bit 3 à 0 | Sélection de la ligne clavier |
Le PPI est interfacé aux adresses suivantes:
Adresse F4xx Lecture et écriture PORT A.
Adresse F5xx Lecture et écriture PORT B.
Adresse F6xx Lecture et écriture PORT C.
Adresse F7xx Ecriture dans le registre de contrôle.
Remarques:
- xx signifie n'importe quoi
- A est utilisé en lecture et en écriture. B est utilisé en lecture seule et C en écriture seule.
Le circuit 6845 contrôle la génération des signaux vidéo. Il possède un PORT bidirectionnel de 8 bits et peut être positionné au moyen de 19 registres internes. Un des registres sert d'ailleurs de tampon pour la programmation des 18 autres.
R0 à R3 | Déterminent le format horizontal et le timing. ils sont chargés en standard avec des valeurs précises en fonction du mode. Par exemple, en mode 1 : R0=63, R1=40, R2=46, R3=142. |
R4 à R9 | Déterminent le format vertical. Ils sont chargés avec des valeurs précises. R4=38, R5=0, R6=25, R7=30. |
R10 à R15 | Gèrent le curseur et sont continuellement modifiés par le software. |
R16 à R17 | S'occupent de la gestion du sylo optique. |
R0 | Nombre de caractères total en horizontal 0-255 |
R1 | Nombre de caractères affichés en horizontal 0-255. |
R2 | Synchronisation horizontale (position) 0-255. |
R3 | Longueur de synchronisation 0-15. |
R4 | Nombre de lignes total en vertical 0-127. |
R5 | Synchronisation verticale 0-31. |
R6 | Nombre de caractères affichés en vertical 0-127. |
R7 | Synchronisation verticale (position) 0-127. |
R8 | Mode entrelacé 0-3. |
R9 | Scanning 0-31. |
R10 | Ligne de départ du scanning du curseur 0-31. |
R11 | Ligne de fin de scanning du curseur 0-31. |
R12 | Octet le plus signficatif de l'adresse de départ de la vidéoram 0-16383 |
R13 | Octet le moins significatif |
R14 | Position du curseur (OLPS) 0-16383. |
R15 | Position du curseur (OLMS) |
Deux adresses de PORT suffisent pour programmer le CRTC.
Le port BCxx sert à donner des adresses de registre et le PORT BDxx sert à écrire des données sur le registre courant.
Les registres sont à écriture seule, à l'exception de R14 et R15 qui peuvent être lus, et donnent ainsi la position courante du curseur.
L'Amstrad est équipé d'un circuit spécial qui s'occupe de la commutation des ROM et du controleur CRT 6845. Ce circuit ne porte pas de numéro standard et est appelé GATE ARRAY.
Le GATE ARRAY peut être considéré comme un port de sortie de 8 bits commandé par un OUT sur le port 7Fxx.
Les deux bits supérieurs contrôlent le type d'application.
B7 | B6 | |
0 | 0 | Chargement registre de palette |
0 | 1 | Chargement mémoire de palette |
1 | 0 | Commutation ROM et controle vidéOUT |
1 | 1 | Réservé |
Commutation ROM et contrôle vidéo
BIT 7=1, BIT 6=0, BIT 5=0
BIT 4=1 : remettra à 0 le diviseur qui génère les interruptions.
BIT 3=0 : ROM supérieure connectée. BIT 3=1 : ROM supérieure déconnectée.
BIT 2=0 : ROM inférieur connectée. BIT 2=1 : ROM inférieure déconnectée.
BIT 1 : contrôle vidéo MC1
BIT 0 : contrôle vidéo MC0
Registre de palette
BIT 7=0, BIT 6=0, BIT 5=0
BIT 4=0 : chargement de numéro de couleur d'encre donné par B0-B3
BIT 4=1 : chargement de numéro de couleur de bord (B0-B3 ignorés)
BIT 3 à BIT 0 donnent le numéro d'encre (15 couleurs possibles).
Mémoire de palette
BIT 7=0, BIT 6=1, BIT 5=0
BIT 4 à BIT 0 : 31 valeurs pour le décodage de la couleur du registre de palette. Le nombre de couleurs possibles varie en fonction du mode choisi.
Extrait du livre : Clefs pour Amstrad - 1. Système de base (Mémento P.S.I.)
Article créé le : | Mercredi 10 Février 2010 à 20 h 30 |
Dernière mise à jour le : | Mercredi 08 Octobre 2014 à 16 h 26 |