La mémoire vidéo du ST

 

La mémoire vidéo occupe 32000 octets. Elle n'a pas de circuit mémoire dédié et se trouve positionnée dans la mémoire RAM de la machine. Elle peut se situer n'importe où dans celle-ci (où presque). Cela signifie qu'une partie de la RAM de la machine sera réservée pour la vidéo et que cette RAM aura d'autant moins de place de disponible pour les programmes ou données.

Evidemment, il est possible de retrouver la zone mémoire occupée...

 

Structure de la mémoire

La structure de la mémoire vidéo du ST ne peut se comprendre que si vous avez bien à l'esprit que la couleur d'un point est définie via des registres de couleurs qui eux contiennent les composantes RVB de la couleur à afficher. La mémoire vidéo contient donc pour chaque point à afficher, le registre de couleur à utiliser pour représenter ce point dans la bonne couleur.

Image non trouvée !Si vous avez tout suivi, ce n'est donc pas les couleurs des points que l'on retrouve en mémoire (comme c'est le cas de nos jours) mais des n° de registres de couleur.

La basse résolution:

On peut afficher 320x200 soit 64000 points.

1 point affiché à l'écran se décompose en fait dans 4 plans. Pourquoi ? Dans le but de ne pas perdre des bits ! En effet, le ST n'a que 16 registres de couleurs et le codage de 16 valeurs pour identifier ces registres se fera donc sur 4 bits...Or un octet (qui est la plus petite unitée de mémoire exploitable), c'est 8bits, d'où 4 bits qui serait perdus !

L'ensemble de ces 4 plans permet donc d'indentifier le n° de registre de couleur (codé sur 4 bits, 1 par plan permettant ainsi d'avoir 16 valeurs de registres ou 16 couleurs de la palette affichables).

 

1 point se décompose sur 4 plans, et occupe un bit par plan pour sa définition.

Or la machine étant 16 bits, le découpage des plans se fait de la manière suivante:

2 octets pour le plan 0 suivi de 2 octets pour le plan 1, suivi de 2 octets pour le plan 2 et enfin 2 octets pour le plan 3

 

Un groupe de points sera ainsi codé sur un groupe de 4 plans soit:

16 bits pour le plan 0

16 bits pour le plan 1

16 bits pour le plan 2

16 bits pour le plan 3

puis de nouveau un groupe de points codé sur un groupe de 4 plans:

16 bits pour le plan 0

16 bits pour le plan 1

16 bits pour le plan 2

16 bits pour le plan 3

et ainsi de suite...

 

Or comme déjà dit, 1 point c'est 1 bit par plan * 4 (il y a 4 plans). Il y a 16 bits par plan, on peut donc afficher un groupe de 16 points par groupe de 4 plans.

Refaisons le calcul:

Nous avons 64000 points qui se découpent en 4 plans. Ce qui donne 256000 bits d'où en octets : 256000/8 = 32000 octets. Nos 32000 octets de mémoire occupée...

 

La moyenne résolution:

Le principe est identique à celui de la basse résolution. Cependant, le nombre de points augmente (640x200 soit 128000 points). La mémoire vidéo ne pouvant pas augmenter en taille (toujours de 32000 octets), on diminue donc le nombre de plan : 32000 octets = 256000 bits, nous ne pouvons donc plus avoir que 2 plans (128000 x 2 = 256000). Le nombre de couleurs affichable sera donc de 2^2 = 4 couleurs...

 

La haute résolution:

Même chose que pour les résolutions précédentes...

La résolution est de 640x400 = 256000 points. Il n'y a donc plus qu'un seul plan de disponible... 2^1 = 2 couleurs.