Fonctionnalités détaillées de la carte vidéo
Registres de contrôle :
Les fonctionnalités de la carte vidéo sont contrôlées par l’intermédiaire de quatre registres. Ces registres sont accessibles en lecture et en écriture au travers des ports d’entrées/sorties du TRS-80 allant de $20 à $23 à l’aide des fonctions OUT et INP() en BASIC ou IN et OUT en assembleur.
CTRL : Registre de contrôle principal
Ce registre gère d’une manière générale l’accès à la mémoire vidéo par le TRS-80 et ainsi que la page active accédée par l’ordinateur ou celle qui est adressée par la génération de l’image. Il active la fonction de remplissage automatique
| $20 (32) | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
| CTRL | TPR | DT | EFF/FIE | RRQ | PGL | PGE | PLC1 | PLC0 |
| RAZ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PLC1 – PLC0 : Permet de sélectionner le plan mémoire vidéo qui sera accessible dans la fenêtre $C000 à $FFFF ; 00 : Rouge, 01 : Vert, 10 : Bleu, 11 : Vidéo TRS ou demi teintes
PGE : Sélectionne la page mémoire (ensemble de quatre plans couleurs) dans laquelle l’ordinateur peut lire ou écrire.
PGL : Sélectionne la page mémoire (ensemble de quatre plans couleurs) qui seront lus par la carte afin de générer l’image vidéo.
RRQ : Ecrire ‘1’ dans ce bit provoque le remplissage de l’espace vidéo pointé par CTRL_PGE|PLC1|PLC0 avec l’octet REMP. RRQ reprend la valeur ‘0’ pour signaler la fin du remplissage qui est effectué en 1/60e de seconde.
EFF/FIV : Ecrire un ‘1’ dans EFF provoque le remplissage de l’espace vidéo pointé par CTRL_PGE (les quatre plans couleur) avec l’octet REMP. Cette opération prend 1/15e de seconde. En lecture FIV donne l’état du FLAG d’interruption vidéo.
DT : Lorsque DT est positionné à ‘1’, il permet un affichage en seize couleurs, huit couleurs de bases et leur demi-teinte. Lorsqu’il est positionné à ‘0’ il permet, lorsque la vidéo native du TRS-80 n’est pas affichée, d’afficher un plan graphique indépendant superposé à l’image et dont la couleur est fixée par le registre CTLA.
TPR : Lorsqu’il est positionné à ‘1’ le registre TPS, utilisé comme compteur de temps est remis à zéro. En lecture ce drapeau change d’état à chaque synchronisation verticale. Cela peut permettre de vérifier la fin de l’action déclenchée par CTRL_EFF, au bout de son quatrième changement. Ce bit est remis à zéro automatiquement.
REMP : Registre de donnée de remplissage
Ce registre contient la valeur de l’octet qui servira au remplissage d’un ou de tous les plans de mémoire vidéo de la page sélectionnée par CTRL_PGE.
| $21 (33) | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
| REMP | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| RAZ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Remarque : Les plans de mémoire utiles à la vidéo ont la taille exacte de l’espace nécessaire à la mémorisation des pixels. Il s’agit des 192 premières lignes de chaque plan composé des 48 premiers octets de chaque ligne. Par conséquent les lignes $E000 à $FFFF ainsi que les octets de $30 à $3F de chaque ligne qui ne sont pas affichés ne sont pas modifiés par les opérations de remplissage. Ces octets sont donc libre d’utilisation comme mémoire de stockage par le programme.
CTRLA : Registre de contrôle Auxiliaire
Ce registre permet de sélectionner les fonctionnalités relatives à la vidéo native du TRS-80 ainsi qu’à l’accès aux pages mémoire de l’extension.
| $22 (34) | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
| CTRLA | M2 | M1 | M0 | EVT | DV | BL | VR | RG |
| RAZ | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
RG : Sélectionne la couleur rouge pour le quatrième plan couleur et de la vidéo native du TRS-80.
VR : Sélectionne la couleur verte pour le quatrième plan couleur et de la vidéo native du TRS-80.
BL : Sélectionne la couleur bleue pour le quatrième plan couleur et de la vidéo native du TRS-80.
- La couleur d’affichage du quatrième plan (vidéo native du TRS-80), composée par le mélange des couleurs primaires sélectionnées
DV : Permet de positionner le quatrième plan, lorsque l’affichage n’est pas réalisé en 16 couleurs, devant ou derrière l’image graphique générée par les trois premiers plans.
- DV = ‘0’ : Quatrième plan derrière la vidéo, DV = ‘1’ : Quatrième plan devant la vidéo.
EVT : Positionné à ‘1’, EVT déclenche l’échantillonnage de la vidéo native du TRS-80 et la stocke automatiquement la mémoire du quatrième plan sélectionné par CTRL_PGE.
M2-M0 : Ces trois bits permettent de sélectionner le bloc mémoire de 16ko qui sera visible et modifiable dans la fenêtre allant de $8000 à $BFFF par le processeur.
- Il est recommandé de ne pas rendre cette mémoire visible du TRS-80 car utilisée par le système, elle peut provoquer des dysfonctionnements du fait de la bascule des fenêtres qui pourrait rendre inaccessible certaines données. Au démarrage de l’ordinateur, choisir 32768 pour la taille maximum de la mémoire interne au prompt MEMSIZE ? .
TEMPS : Registre de temps et de gestion des interruptions
Ce registre permet de créer une horloge précise. Il compte les synchronisations verticales à la cadence de 60Hz.
| $23 (35) | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
| TEMPS | DX4/RIE | DX3/VIE | DX2/OF5 | DX1/OF4 | DX0/OF3 | VS2/OF2 | VS1/OF1 | VS0/OF0 |
| RAZ | - | -/0 | -/1 | -/0 | -/0 | -/1 | -/0 | -/0 |
En lecture :
VS2..1 : En lecture VS2..0 sont utilisés en diviseur par six et comptent les synchronisations verticales de 0 à 5. (Remis à zéro à 6).
DX4..0 : Ces bits de poids forts permettent de lire les dixièmes de seconde. Ce compteur reboucle à 30 c’est-à-dire toutes les 3,0s. Il est remis à zéro en écrivant un ‘1’ dans CTRL_TPR.
En écriture :
OF5..0 : En écriture Ces bits permettent d’ajuster la position verticale de la vidéo native du TRS-80 de 0 à 47 plus bas que le début de l’image.
VIE : lorsqu’il est positionné à ‘1’, Il autorise les interruptions toutes les synchronisations verticales.
RIE : En écrivant un ‘1’ à cet emplacement le flag d’interruption est remis à zéro.