CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 1.04.02 Les registres internes du contrôleur vidéo

Comme nous l'avons déjà indiqué, le 6845 contient un registre d'adresse et 18 registres de contrôle. Comme le signal RS, Register Select, ne permet toutefois de choisir qu'entre deux adresses, on peut donc se demander comment il est possible d'appeler les 18 registres de contrôle à travers une seule adresse. La solution de ce problème réside dans le registre d'adresse. Le numéro du prochain registre de contrôle auquel on veut accéder est écrit dans le registre d'adresse. Ce procédé semble certes relativement compliqué mais il présente un avantage indéniable. De cette façon en effet, le CRTC n'occupe justement que deux adresses et non pas 18 ou même 32.

Comme d'autre part le CRTC n'est normalement programmé qu'une seule fois, lors de la mise sous tension de la machine, ce travail de programmation supplémentaire est tout à fait acceptable.

Mais examinons maintenant les 18 registres un peu plus en détail. La description suivante semblera peut-être un peu sèche et difficilement compréhensible à cause de la structure complexe des différents registres. De même, certaines connaissances de base en technique vidéo sont nécessaires pour la compréhension de certains registres. Si vous ne comprenez pas tout à la lecture de cette description, consolez-vous en vous disant que le contrôleur vidéo de votre ordinateur n'a pas absolument à être programmé "manuellement".
Dans la présentation suivante, un R placé à la suite du nom du registre indique que ce registre doit être lu et un W signifie qu'on peut écrire dans ce registre. Remarquez que certains registres peuvent uniquement être lus ou écrits, ce qui est indiqué par - .

AR -/W : Adress Register. Ce registre 5 bits reçoit le numéro du registre de contrôle souhaité. Les valeurs de registre 18 à 31 sont ignorées, les seules valeurs valables vont de 0 à 17. Ce registre est appelé lorsqu'aussi bien CS que RS sont low.

R0 -/W : Horizontal Total. Ce registre 8 bits reçoit le nombre de caractères par ligne complète. Notez d'ailleurs qu'une ligne complète est nettement plus grande que les caractères visibles à l'écran car les durées pour le bord et le retour en arrière du faisceau doivent être également prises en compte dans le calcul. Cette valeur est donc environ 1 fois et demi plus importante que le nombre de caractères par ligne choisi.

R1 -/W : Horizontal Displayed. Ce registre contient le nombre de caractères à représenter à l'écran. La valeur placée ici doit être inférieure à celle de R0.

R2 -/W : Adress Register. Ce registre 5 bits reçoit le numéro du registre de contrôle souhaité. Les valeurs de registre 18 à 31 sont ignorées, les seules valeurs valables vont de 0 à 17. Ce registre est appelé lorsqu'aussi bien CS que RS sont low.

R3 -/W : Sync Width. Les 4 bits inférieurs de ce registre déterminent la largeur des impulsions HSync et VSync. Les 4 bits supérieurs de ce registre ne sont pas utilisés.

R4 -/W : Vertical Total. Les 7 bits inférieurs de ce registre déterminent le nombre total de lignes de grille par image. Cette valeur détermine donc ainsi également si la fréquence de renouvellement de l'image est de 50 ou 60 Hertz.

R5 -/W : Vertical Total Adjust. Les 6 bits inférieurs de ee registre permettent de réaliser un ajustement précis de la fréquence de renouvellement de l'image.

R6 -/W : Vertical displayed. Les 7 bits inférieurs de ce registre déterminent le nombre de lignes de grille réellement représentées sur le moniteur. Théoriquement, on peut programmer ici n'importe quelle valeur inférieure au contenu de R4.

R7 -/W : Vertical Sync Position. La valeur 7 bits de ce registre détermine le moment de l'impulsion VSync. Si la valeur de R7 est diminuée, l'image du moniteur est alors décalée vers le bas, si cette valeur est augmentée, il y a décalage vers le haut.

R8 -/W : Interlace. Les deux bits inférieurs de ce registre permettent de déterminer si la représentation doit avoir lieu avec ou sans procédure de saut de ligne (interlace).

R9 -/W : Maximum Raster Adress. Ce registre 5 bits détermine le nombre de lignes de grille des caractères à représenter.

R10 -/W : Cursor Start Raster. Les bits 0 à 4 de ce registre déterminent sur quelle ligne de la grille doit commencer le curseur. Les bits 5 et 6 fixent le mode de curseur de la façon suivante:

Bits 6 5
0 0 Curseur non clignotant
0 1 Curseur non représenté
1 0 Curseur clignotant (env. 3 par seconde)
1 1 Curseur clignotant (env. 1.5 par seconde)

R11 -/W : Cursor End Raster. En fonction du contenu de RIO, les 5 bits inférieurs de ce registre déterminent sur quelle ligne de l'écran se termine le curseur.

R12 R/W : Start Adress High. Les bits 0 à 5 déterminent à partir de quelle adresse de tout le domaine d'adressage de 16 K du CRTC commence la mémoire écran. Si ce registre est lu, les bits 6 et 7 sont toujours low.

R13 R/W : Start Adress Low. Ce registre fixe, de façon analogue à R12 l'octet d'adresse faible de la mémoire écran à adresser.

R14 R/W : Cursor High. Les bits 0 à 5 de ce registre représentent l'octet fort de la position actuelle du curseur.

R15 R/W: Cursor Low. De façon analogue à R14, ce registre reçoit l'octet faible de l'adresse du curseur. Comme R14 ainsi que R15 peuvent être écrits ou lus, ces registres permettent de déterminer librement la position du curseur.

R16R/-: Ce registre contient après une impulsion strobe positive l'octet fort de l'adresse de la mémoire écran qui était activée au moment de l'impulsion. Les bits 6 et 7 de ce registre sont toujours low.

R17 R/-: De façon analogue à R16, ce registre contient l'octet faible au moment du strobe light-pen. R16 ainsi que R17 ne peuvent qu'être lus.

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 1.04.01 Les pôles de connexion du CRTC
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 268 millisecondes et consultée 1293 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.