Revenir au plan du site
Annexe technique du CRTC
Registre 1 du CRTC
Le registre 1 donne la limite en mots (deux octets) parcourue par le CRTC pour afficher des données sur sa ligne de caractères (qui n'est pas obligatoirement la ligne à l'écran!).
La valeur par défaut est de 40 (pour 80 octets) de l'écran Basic au démarrage de la machine.
Registre 2 du CRTC
Le registre 2 donne la position en mots (deux octets) du signal de synchronisation horizontal (ou HBL), sur la ligne de caractères du CRTC. On s'en sert classiquement pour positionner l'écran visible en X
On évitera de mettre la HBL sur la ligne visible et encore moins à la toute fin de ligne CRTC ou même après!
Valeur par défaut : 46 qu'on peut pousser à 50* pour du plein écran ou 42 avec un écran 'carré'
*Attention à la compatibilité avec la valeur 50, voir la définition du registre 3 ci-dessous.
Registre 3 du CRTC
Le registre 3 du CRTC permet de programmer la durée du signal de synchronisation vertical et horizontal. Quelques différences apparaissent entre les CRTC : Certains peuvent programmer la hauteur de la synchro verticale, d'autres non. Quelques différences croisées entre les autres modèles.
VBL = signal de synchronisation verticale
HBL = signal de synchronisation horizontale
Registre 3 |
CRTC | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 |
Hauteur de la synchro verticale (0: VBL de 16 lignes) |
Largeur de la synchro horizontale (0: pas de HBL*) |
1 |
Bits ignorés, VBL fixe de 16 lignes |
Largeur de la synchro horizontale (0: pas de HBL*) |
2 |
Bits ignorés, VBL fixe de 16 lignes |
Largeur de la synchro horizontale (0: HBL de 16 nops) |
3 et 4 |
Hauteur de la synchro verticale (0: VBL de 16 lignes) |
Largeur de la synchro horizontale (0: HBL de 16 nops) |
*pas de HBL => pas d'interruption! Car le Gate Array compte les HBL pour générer les interruptions.
D'autres effets secondaires à prévoir sur Plus.
Changer la largeur de la HBL pour décaler l'écran
Attention, l'utilisation du registre 3 fonctionne sur un écran d'origine, la plupart des télévisions, même cathodiques retravaillent le signal et ce genre d'astuce est filtrée.
Ce n'est pas la catastrophe non plus, le scrolling va simplement descendre à 25Hz.
Les valeurs communéments admises pour scroller sont #85 et #8C avec lesquelles il suffit d'alterner.
Pouvoir décaler l'écran au maximum vers la gauche sur CRTC-2 en réduisant la HBL
Quand on veut décaler l'écran vers la gauche, il vaut mieux programmer le registre 3 à #8C avant de basculer le registre 2 à 50.
Registre 6 du CRTC
Ce registre permet de paramétrer le nombre de lignes de caractères affichées, par défaut 25 lignes en Basic donc 25! On pourra augmenter jusqu'à 32 avec un écran carré de largeur 64 octets. Le nombre de lignes n'est
pas supposé dépasser le nombre de lignes total d'un écran complet (39 lignes de caractères à 50Hz).
Registre 7 du CRTC
Ce registre permet de positionner le signal de synchronisation horizontal (ou VBL) et par conséquent, de positionner l'écran visible en hauteur. La valeur par défaut est de 30.
Les registres 12 et 13 du CRTC
Les registres 12 et 13 du CRTC fonctionnent de concert et servent à définir à quel endroit le CRTC va démarrer la lecture des données d'un nouvel écran, et aussi de savoir si il peut déborder de sa page mémoire de 16k. Voici la description de ces deux registres, telle qu'on peut la trouver un peu partout.
Registre 12 |
Registre 13 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
inutilisé |
Page vidéo |
Taille de la page |
Adresse de départ (1024 positions) |
Bit 13 |
Bit 12 |
Page vidéo |
0 | 0 | #0000 - #3FFF |
0 | 1 | #4000 - #7FFF |
1 | 0 | #8000 - #BFFF |
1 | 1 | #C000 - #FFFF |
|
Bit 11 |
Bit 10 |
Taille de la page |
0 | 0 | 16K |
0 | 1 | 16K |
1 | 0 | 16K |
1 | 1 | 32K |
|
L'adresse de départ est sur 1024 positions et concerne uniquement la première ligne de bloc, la ligne zéro. Pour mémoire, nos lignes de bloc font chacune 2048 octets c'est donc une position au mot (16 bits) et non à l'octet qui doit être renseignée ici. L'écran se déplacera de deux octets en deux octets (oui, c'est beaucoup d'un coup!).