GPU jr - TIMING

ORIC ATMOS jr  GPU jr - Accueil  GPU jr  TECHNIQUE TIMING
LE TIMING

Je vais utiliser le timing qui a été adopté pour la norme EGA/VGA/SVGA.
Les résolutions proposées ne sont donc pas aussi innocentes que cela.

Récapitulatif de la norme vga:

SOURCE : Der einfache SVGA Generator
ResolutionVertical Refresh RateHorizontal FrequencyPixel Clock Frequency
640 x 48060 Hz31.5 KHz25.175 MHz
640 x 48072 Hz37.9 KHz31.5 MHz
640 x 48075 Hz37.5 KHz31.5 MHz
640 x 48085 Hz43.3 KHz36 MHz
Quelle fréquence de pixel devons nous prendre ?
31.5 MHz.
Pourquoi ?
Parce que 32 MHz / 2 = 16 Mhz, fréquence de fonctionnement du processeur !!
De plus 32 ~ 31.5. Les moniteurs peuvent s'en accommoder !!
Le mode d'origine de l'ula est un peu spécial : 240 x 200.
Cela nous donne une fréquence de rafraichissement très élevée !!
Mais il y a un autre problème. La fréquence horizontale étant incompatible avec celle admise par les moniteurs, il faut trouver une solution pour pouvoir afficher les faibles résolutions.
J'ai pensé à utiliser un scandoubler.
LES DETAILS TECHNIQUES
 
A l'origine, l'ULA accédait à la mémoire durant la période où le 6502 n'utilisait pas la mémoire.
L'horloge qui cadençait le CPU est asymétrique c'est à dire que l'état bas de l'horloge était deux fois plus grande que l'état bas.
Ce qui nous laisse penser que le 6502 utilisé était une version 2 MHz et non pas 1 MHz.
La conception de l'ULA ne répond pas à un désir à son remplacement mais à comprendre le fonctionnement de celle-ci.
Le but de l'ULA II est de proposer une amélioration de son prédecesseur tout en gardant une compatibilité totale.
 
La tache n'est pas aisée car :
Les pixels affichés sont régis par des attributs.
De nos jours, les pixels sont indépendants les uns des autres.
L'ULA II ne sera pas connecté au téléviseur mais à un moniteur.
FONCTIONNEMENT DE L'ULA
 
LE MODE TEXTE
L'ULA effectue deux accès mémoire.
Le premier accés permet de déterminer si nous avons affaire à un attribut.
Si c'est un attribut nous le stockons et nous affichons la couleur papier.
Si c'est un caractère, nous allons chercher sa description en mémoire pour afficher les pixels.
 
LE MODE HAUTE RESOLUTION
L'ULA lit un octet.
Si c'est un attribut nous le stockons et nous affichons la couleur papier.
Sinon nous affichons les pixels.
LES AJOUTS
 
Nous allons ajouter une unité de calcul qui permettra d'effectuer un scrolling hard et divers effets tels que :
Le remplissage avec une couleur / motif prédefini,
Le tracé de ligne.
Le problème vient des conflits d'accès mémoire. En effet :
L'ULA est prioritaire pour afficher les pixels,
Le CPU ayant une priorité moindre pour écrire/lire les octets en mémoire,
L'unité de calcul, ayant la plus basse des priorités, pour écrire/lire en mémoire vidéo.
Il faut donc ajouter un module d'arbitrage pour les accès mémoire.
GPU TIMING LUCE