REGISTRES DU VDP
Le VDP est contrôlé par onze registres internes de 8 bits. Cette section décrit la méthode par
laquelle le Z80A accède à ces registres, puis détaille la fonction de chaque registre.
Le Z80 "voit" le circuit de VDP par l'intermédiaire de deux ports d'entrée/sortie, $BE et $BF.
$BF est le registre de COMMANDE pour une écriture, et le registre de STATUT pour une lecture.
Le port d'entrée/sortie $BE est le registre de lecture/écriture de DONNEES.
Le registre de commande est écrit deux fois successivement pour toutes les opérations de
commande; le registre de données peut être lu ou écrit n'importe quel nombre de fois à la suite,
selon l'opération.
Le registre de commande étant sensible à la séquence, recquérant une paire d'octets par opération,
une instruction DI doit précéder les mises à jour de ce registre. Cela empêche, par exemple, qu'une
routine d'interruption qui lirait le registre de statut du VDP ne perturbe la synchronisation de deux
octets.
Il y a une contrainte de timing concernant l'accès au circuit VDP.
Le circuit de VDP ne peut pas traiter les données plus vite que les vitesses suivantes:
16 T-States du Z80A pendant le VBLANK
29 T-States du Z80A pendant la vidéo active
Cela signifie que vous ne devez jamais envoyer deux instructions OUT ou IN consécutives au VDP;
elles doivent être séparées par au moins une instruction NOP.
Cette contrainte s'applique à la RAM Vidéo et à la Color RAM aussi bien qu'aux registres internes.
Un champ de mode de 2 bits constitué des bits 7 et 6 du second octet de COMMANDE détermine
une des quatre opérations:
b7
b6
--------------------------------------------------
0
0
0
1
1
0
1
1
Pour configurer les deux premières opérations, lecture/écriture dans la RAM Vidéo, les deux octets
de COMMANDE ont le format suivant:
Lecture dans la RAM du VDP
Premier octet
écrit dans $BF
Deuxième octet
écrit dans $BF
Ecriture dans la RAM du VDP
Premier octet
écrit dans $BF
Deuxième octet
écrit dans $BF
Manuel de Référence Hardware de la Sega Mk3 (Rev1) Page 15
Opération
Lire dans la RAM de 16Ko du VDP
Ecrire dans la RAM de 16Ko du VDP
Ecrire dans un registre du VDP
Ecrire dans la Color RAM
+----+----+----+----+----+----+----+----+
| A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
+----+----+----+----+----+----+----+----+
|
0 |
0 | A13| A12| A11| A10| A9 | A8 |
+----+----+----+----+----+----+----+----+
+----+----+----+----+----+----+----+----+
| A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
+----+----+----+----+----+----+----+----+
|
0 |
1 | A13| A12| A11| A10| A9 | A8 |
+----+----+----+----+----+----+----+----+