# Mode graphique des Thomson MOTO

Le mode graphique des Thomson MOTO (unique pour les TO7, TO7/70, MO5 et MO5E, principal pour les TO9, TO9+, TO8, MO5NR et MO6) est un mode graphique particulier aux ordinateurs de la Gamme MOTO. Il est possible d'afficher seize couleurs (8 couleurs sur le TO7) en même temps sur l'écran (parmi 4096 pour les MO5NR, MO6, TO8, TO9 et TO9+) et une palette fixe pour les autres en 320x200 mais avec contraintes de proximité (la mémoire vidéo n'est que de seize kilooctets).
En fait, la mémoire vidéo est divisée en deux blocs de huit kilooctets : l'une est dédiée à la forme (image monochrome), l'autre à la couleur.
La mémoire forme ne fait que décrire une image monochrome (donc un bit par pixel). La mémoire couleur est plus originale : pour chaque octet de la mémoire forme correspond deux couleurs, une pour l'encre (de 0 à 15) et une autre pour le papier (-1 à -16, en complément à deux sur un octet), la somme des deux peut être contenue sur un octet.
Donc les contraintes de proximité sont les suivantes : pour chaque ligne et sur huit points consécutifs, il ne peut y avoir que deux couleurs différentes.
Le coprocesseur graphique utilisé pour les MO5/TO7 est le Motorola MCA1300 et pour les MO6/TO8/TO9/TO9+, il s'agit du Thomson MF 9369 (voir les versions anglaises Wikipedia pour les Thomson MOTO).

## Utilisations

Ces modes particuliers avaient pour intérêt des manipulations d'effets graphiques en manipulant la forme sans toucher à la couleur, ceci était utilisé par Animatix pour ses animations.

## Couleurs

| Numéro | Nom | Numéro | Nom |
| 0 | noir | 8 | gris |
| 1 | rouge | 9 | vieux rose |
| 2 | vert | 10 | vert clair |
| 3 | jaune | 11 | sable |
| 4 | bleu | 12 | bleu ciel |
| 5 | magenta | 13 | magenta clair |
| 6 | cyan | 14 | cyan clair |
| 7 | blanc | 15 | orange |

## Palette étendue

Les modes vidéo sont gérés par des Gate Array ou ASIC : CF 74021 (Thomson MO6, TO8 et TO9+) et EFGJ03 pour les TO9. Sur les modèles MO5NR, MO6, TO8, TO9 et TO9+, il est possible de choisir 16 couleurs parmi 4096 (palette constituée de 16 niveaux de rouges, verts et bleus).

## Autres modes graphiques

Sur les modèles MO5NR, MO6, TO8, TO9 et TO9+, il y avait, en plus les modes vidéos :
* 640x200 2 couleurs, dit BM 2 (sans contraintes de proximité)
* 320x200 4 couleurs, dit BM 4 (sans contraintes de proximité)
* 160x200 16 couleurs, dit BM 16 (sans contraintes de proximité)
* Mode page 1, 320×200 2 couleurs en RAM A
* Mode page 2, 320×200 2 couleurs en RAM B
* Mode surimpression : 320×200 pour les 2 pages, la page 1 ayant une seule couleur d'écriture et une couleur de fond, idem pour la page 2. La page 1 se situe en avant de la page 2 (la couleur d'écriture de la page 1 domine sur celle de la page 2). Les 2 pages ont la même couleur de fond. Ce mode (utilisant 3 couleurs) est particulièrement intéressant pour déplacer des sprites monochrome sur un décor de fond sans avoir besoin de masquer les contours des dits sprites.
* Mode triple surimpression : 160×200 5 couleurs. Ce mode utilise 4 pages en surimpressions (la page 1 est prioritaire sur la page 2 qui est elle même prioritaire sur la 3…).
Tous ces modes sont accessibles avec le Basic 128 ou 512 avec l'instruction Console.
De plus, les TO8, MO6 et TO9+ avaient un autre mode :
* 320×200 4 couleurs dit BM 4 spécial : Ce mode diffère du mode bm4 dans l'organisation des bits de couleurs dans la RAM. Là où dans le mode bm4, les 2 bits de couleurs de chaque pixel écran étaient partagées en RAM A et RAM B, ce mode spécial se rapproche plus d'une organisation plus cohérente, à savoir que chaque quatuors de pixels pairs (0 à 3, puis 8 à 11, etc.) ont leurs couleurs codées par octets de 4 pxl sur la RAM A, alors que pour les quatuors impairs, ils sont codés sur les octets de RAM B
Ce mode vidéo n'est pas accessible par l'instruction Console du Basic. On y accède en changeant la valeur de l'octet de l'adresse A7DC (MO6) et E7DC (TO8/TO9+) en &h41. Il y a également la possibilité d'incrustation vidéo.
Il existe des dizaines de combinaisons de modes vidéo non officiels comme par exemple, un mode 160×200 avec, pour le quartet de couleur, 2 bits forts en RAM A et 2 bits faibles en RAMB pour chaque pixel (code &h5b). L'octet situé en E7DC/A7DC (TO/MO), permettant de changer le mode vidéo, est organisé en 3 séries de bits (b6b5, b4b3, b2b1b0) : la première série sert au transcodage (4 valeurs), la deuxième série sert pour la fréquence Phi (1, 4 ou 16 MHz), et la troisième, pour les 8 modes vidéo possibles (décrits ci-dessus). Le bit 7 de cet octet est inutilisable d'après la documentation.