CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 1.05.00 La Ram du CPC

La RAM (mémoire écriture/lecture) de 64 K intégrée dans le CPC n'est pas uniquement utilisée comme mémoire de donnée et de programme. Les informations concernant l'écran sont également placées dans cette mémoire.

Après que nous ayons étudié en détail dans les chapitres précédents les trois éléments les plus importants, le processeur, le gâte array et le contrôleur vidéo, nous allons dans le présent chapitre jeter un regard sur l'interaction de ces trois éléments lors de l'accès aux circuits intégrés de mémoire. Nous expliquerons également à cette occasion comment le contrôleur vidéo appelle la Ram pour représenter des caractères à l'écran.
Mais nous voulons faire auparavant une petite digression pour étudier comment fonctionnent les éléments de mémoire.

Nous allons tout d'abord expliquer comment est possible l'adressage de 65536 cases mémoire avec les 8 connexions d'adresse existantes. Le principe consiste à diviser l'adresse 16 bits en deux moitiés et à envoyer ces deux octets d'adresse l'un après l'autre sur les pins d'adresse de la RAM. Ce procédé est appelé multiplexage. Le multiplexage nécessite cependant des signaux qui indiquent à la Ram quelle information se trouve dans l'instant sur les connexions d'adresse.

C'est ici qu'entrent en jeu les signaux RAS* et CAS* fournis par le gâte array.

Après qu'un octet d'adresse ait été envoyé aux Rams, une bascule high-low du signal RAS* leur indique qu'une moitié d'adresse est prête. Avec la bascule négative (high-low) du RAS*, l'information d'adresse disponible est stockée dans les Rams.

La deuxième moitié de l'adresse peut alors être envoyée à la RAM. Dès que cet octet d'adresse est prêt, le signal CAS* devient low. La Ram a ainsi reçu la totalité de l'adresse 16 bits et sélectionne alors la case mémoire souhaitée. Il est maintenant possible d'écrire ou de lire cette case.

La commutation des moitiés d'adresse doit bien sûr être également prise en charge par un signal convenable, sur le CPC, c'est le signal CAS-ADDR*.

Le multiplexage ou commutation est effectué par quatre circuits intégrés du type 74LS153. On peut se représenter le fonctionnement de ces circuits intégrés du type 74LS153 comme deux commutateurs commandés électroniquement. A travers deux entrées de commande, on peut décider laquelle des quatre entrées doit être reliée à la sortie.

Les deux entrées de commande sont commandées par les signaux CPU-ADDR* et CAS-ADDR*. Le signal CPU-ADDR* permet de décider si c'est le processeur ou le CRTC qui peut envoyer une adresse à la Ram et CAS-ADDR* effectue la commutation entre les moitiés d'adresse.

La table suivante montre l'affectation précise des connexions d'adresse du processeur et du contrôleur vidéo:

Z80 6845 Z80 6845
A0 CCLK A8 MA7
A1 MA0 A9 MA8
A2 MA1 A10 HA9
A3 MA2 A11 RA0
A4 MA3 A12 RA1
A5 MA4 A13 RA2
A6 MA5 NA14 HA12
A7 MA6 NA15 HA13

Comme on voit, tous les bits d'adresse du processeur sont envoyés à travers les multiplexeurs sur les connexions d'adresse des Rams. Sur le CPC 6128, toutefois, les signaux d'adresse A14 et A15 ne sont pas placés directement sur les multiplexeurs. C'est en effet ici qu'est intercalé le composant responsable de la commutation de la mémoire. Mais le contrôleur vidéo adresse également avec l'aide du CCLK l'ensemble de la zone adressable de 64 K. Ce qui contredit cependant le chapitre précèdent où nous disions que le CRTC ne peut adresser qu'une zone de 16 K.

Cette affirmation était exacte dans la mesure où seules les 14 connexions désignées par MA (Memory Adress Line) peuvent être comptées comme canaux d'adresse. Ces 14 connexions permettent d'adresser une zone d'adresse de 16 K.

Le mode de travail du 6845 utilisé dans le CPC pour l'adressage de la mémoire vidéo est rarement employé. Les connexions RAO à RA4 servent normalement à appeler une ROM de caractères déjà programmée qui contient le modèle bits des caractères qui doivent être représentés à l'écran.

Les ordinateurs ont normalement une zone de mémoire appelée mémoire vidéo dans laquelle sont stockés tous les caractères à représenter à l'écran. Dans cette mémoire, l'emplacement de chaque caractère occupe un octet. Cela donne donc, pour représenter 80 x 25 caractères, une mémoire de 2000 octets.

Mais il n'est pas possible de faire entrer dans un octet toutes les informations nécessaires pour la représentation des caractères. Chaque caractère se compose en effet d'un certain nombre de lignes de points placées les unes sous les autres.

Sur le CPC, on peut également reconnaître ces lignes sur le moniteur. C'est ainsi par exemple que le curseur se compose de 8 lignes placées les unes sur les autres, dont tous les points image sont "allumés". Pour représenter des lettres ou des chiffres, seuls les points d'une ligne correspondant à la forme de la lettre ou du chiffre sont allumés. Les modèles de ces lignes de points sont stockées sous forme de cartes bits, dans lesquelles un bit mis correspond normalement à un point allumé sur l'écran. Les connexions RA sont maintenant nécessaires pour recevoir de la ROM de caractères les différentes lignes, c'est-à-dire les cartes bits. A cet effet, les connexions RA sont utilisées comme canaux d'adresse pour la ROM de caractères.

Comme vous pouvez l'imaginer, il n'est pas possible de réaliser à l'écran du graphisme haute résolution lorsqu'on utilise une ROM de caractères. Les ordinateurs fonctionnant suivant ce principe ne peuvent sortir du jeu de caractères intégré.

Sur le CPC, cette ROM de caractères n'existe pas et on a choisi une voie totalement différente.

Comme les connexions RA adressent directement la mémoire, les informations sur les points doivent donc nécessairement figurer également en RAM. Ce n'est qu'à travers cette astuce de commutation qu'il est possible de produire n'importe quelle carte bits sur le moniteur et donc de représenter le graphisme dans les limites connues.

Mais avant que nous ne nous tournions vers la structure concrète de la mémoire vidéo, il nous faut enfin expliquer le signal CCLK. Mais il nous faudra pour cela un peu de mathématiques.

Le CRTC est commandé par une fréquence d'horloge de 1 MHz. Avec chaque impulsion d'horloge est adressée une case mémoire. Dans cette case se trouvent les informations sur les points qui doivent être représentés 'allumés'sur l'écran, c'est-à-dire dans la couleur d'écriture. Comme une fréquence de 1 MHz correspond à une période de 1 micro-seconde, exactement un huitième de la fréquence d'horloge est disponible pour la réprésentation de chaque point, soit 0.125 micro-secondes. Pour représenter les 640 points d'une ligne, il faut donc un temps de 80 micro-secondes.

Mais comme le signal V Sync qui détermine la durée d'une ligne a une période de 52 micro-secondes, le compte n'est pas bon. Ces valeurs ne permettent de réprésenter que 40 caractères au maximum.

La solution à ce problème réside dans un mode spécial de travail des Rams, le Page Adress-Mode (mode d'adressage par page). Lorsqu'une Ram, après avoir envoyé les signaux RAS et CAS, envoie le contenu de la case mémoire souhaitée sur les sorties de donnée, il suffit alors de n'envoyer avec une autre impulsion CAS qu'une nouvelle moitié d'adresse aux Rams pour recevoir l'octet suivant. Cela suppose bien sûr que seule une moitié des informations d'adresse change.

C'est exactement cette possibilité qu'ont utilisée les développeurs du CPC. Bien sûr, il faut que les informations d'adresse correspondant aux deux différentes impulsions CAS soient différentes, sinon on lit deux fois la même case mémoire. Mais c'est justement ce que réalise le signal CCLK qui commute exactement entre les deux impulsions CAS. Ce signal est envoyé par le multiplexeur IC 105 sur le bit d'adresse 0 (du point de vue du processeur), lorsque le signal CAS-ADDR est sur low et le signal CPU-ADDR par contre sur high. Ce signal représente bien ainsi le bit d'adresse inférieur de la Ram vidéo.

Les deux octets fournis rapidement l'un après l'autre par la Ram vidéo sont entrestockés dans le gâte array, convertis dans la forme sérielle indispensable pour le moniteur et envoyés avec les informations de couleur sur la sortie RVB.

Restent encore les deux signaux MA12 et MA13. Ces deux signaux permettent de déterminer par blocs de 16 K le début de la Ram vidéo. Ces bits sont normalement mis et la Ram vidéo commence donc en &C000. Mais il est également possible d'obtenir par programmation que la Ram vidéo soit placée de &4000 à &7FFF.

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 1.04.00 Le contrôleur vidéo HP 6845
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 463 millisecondes et consultée 1253 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.