Caractères semi-graphiques

Les caractères semi-graphiques sont utilisés en mode texte pour donner l'illusion d'un graphisme. Ce sont des caractères non alphabétiques ; une partie d'entre eux réalisent la colorisation d'un groupe contigus de pixels sur un bloc-caractère : la moitié inférieure ou supérieure, le quart inférieur-droit, le quart supérieur-gauche, etc. Ainsi, sans aller jusqu'à l'adressage de chaque pixel d'écran, il est possible, en exploitant la carte de caractères étendue (très généralement selon la codification ASCII), de réaliser des dessins reconnaissables sur un écran basse-résolution (par ex. 16 lignes par 80 colonnes, typique du début des années 1980) et de dépasser en précision l'art ASCII[1]. Sur un écran de résolution 1280×800 ou davantage, le codage en caractères semi-graphiques (voir la bibliothèque logicielle Curses) donne des programmes graphiques rapides et très compacts en taille de code.
Le jeu vidéo Castle Wolfenstein, les tableurs VisiCalc et Lotus 1-2-3 étaient dotés d'une interface semi-graphique. Cette méthode a été particulièrement utilisée par le Minitel, les serveurs BBS (Bulletin board system), ainsi que les ordinateurs qui ne disposaient que du mode texte avant l'arrivée des interfaces graphiques durant les années 1980. Elle était encore utilisée au démarrage par le BIOS de la plupart des ordinateurs jusqu'en 2012.
L'esthétique propre aux interfaces semi-graphiques a donné naissance à la vogue du pixel art.
Principe


Les caractères semi-graphiques offrent le moyen de produire des images matricielles sur un écran vidéo ne disposant que d'un mode texte. Il y en effet a deux façons de créer des images matricielles : l'une consiste à diviser l'écran de l'ordinateur ou du terminal en pavés de pixels 8 × 8 (par exemple), et en donnant la façon de remplir chaque pavé par un code binaire, à la manière d'un pochoir[2]. Chaque pavé est ainsi une matrice de points adressables ; l'autre consiste à étendre la table de caractères alphanumériques avec des caractères graphiques prédéfinis glyphes (lettres et formes) : ce sont les caractères semi-graphiques. Une famille utile de ces caractères est celle des bords de tableaux, avec les coins de tableau.
| ─ | │ | └ | ┘ | ┌ | ┐ | ┤ | ├ | ┼ | ┴ | ┬ |
Toutes les cartes compatible avec le VGA possèdent une table intégrée de caractères semi-graphiques activée par le BIOS, ce qui permet à tout PC d'afficher ces caractères dès le démarrage, avant même que le système d'exploitation soit actif. Les cadres à bord simple ou double sont souvent utilisés pour simuler un découpage de l'écran en fenêtres fixes, par exemple pour l'interface graphique du BIOS.
Plusieurs de ces artifices historiques ont été conservés dans le standard Unicode : symboles désuets, pavés rectangulaires pleins ou tramés, bords de tableaux et formes géométriques[3].
Les pavés graphiques

Avec des pavés de 8 pixels horizontaux et 8 pixels verticaux (soit une matrice 8 × 8), il faudrait 264 ≈ 1019 caractères pour adresser toutes les combinaisons possibles ; mais si l'on se borne à subdiviser les pavés 8 × 8 en quadrants de 2 × 2 pixels[4], ont obtient un jeu de pavés de taille plus raisonnable, qu'on peut adresser avec 16 bits (ou un octet) seulement : c'est le choix qui avait été adopté notamment pour le Sinclair ZX81.
Le Télétexte, en revanche, était fondé sur des pavés de 8 × 12 pixels, divisés horizontalement en trois et verticalement en 2 moitiés, avec une couleur de tracé (ink) et une couleur de fond (background), codés dans une table binaire[5]. Ce standard désignait les pavés d'un mot-valise, les squots[6] (square dots) ou comme sextants[4]. Un variante moins courante[7] consiste à diviser les pavés selon un rapport 1 × 6 (sixels).
Les caractères de texte semi-graphiques, lorsqu'ils n'étaient pas directement intégrés à la table de caractères de l'ordinateur, étaient fournis par une carte vidéo auxiliaire permettant de convertir le bitmap de la mémoire vidéo en pixels. Il y a quelques cas où il n'est pas possible de diviser le pavé graphique en trois (par exemple si c'est une matrice de 8 × 8 pixel) : on le divisait alors en 3:2:3, comme dans le Galaksija[8].
La première utilisation de cette technique se retrouve dans le TRS-80, où le seul moyen d'adresser individuellement des pixels était de jouer sur la combinaison de pavés de 2 × 3 pixels. Dans le cas du TRS-80, ces pavés ne faisaient pas partie d'une fonte en ROM, comme c'est devenu plus tard la règle : ils étaient simulés directement par un circuit à portes logiques spécial de la RAM vidéo[9]. L'interface vidéo (VTI) du Poly-88 de Polymorphic Systems exploitait une table de code demi-graphiques similaire, fondée sur des pavés 2 × 3, et gérée par un bus S-100.
Ordinateurs exploitant des caractères semi-graphiques


Parmi les ordinateurs individuels exploitant une table de caractères semi-graphiques,
- L’IBM PC et son adaptateur MDA ne proposait encore que les caractères pour les bords de tableau disponible dans sa page de code 437 micro-câblée.
- Le Commodore PET a été l'un des premiers ordinateurs individuels à exploiter massivement une table de caractères semi-graphiques, lui permettant d'afficher dès 1980 des graphiques d'une précision peu ordinaire.
- Le Sinclair ZX80 puis le ZX81 disposaient de pavés graphiques pour les dessins en basse résolution (pavés noirs et blancs de 64×48 pixels ou pavés gris tramé 32×48). Les caractères semi-graphiques utilisaient des combinaisons de quadrants de 2 × 2 pixels, mais pour limiter l'adressage des caractères à 7 bits (au lieu de 16), les caractères étaient codés avec un bit d'inversion vidéo. En outre, l'utilisateur pouvait charger sa propre table de caractères en RAM pour obtenir les pavés graphiques dont il avait besoin. D'autres PC ont utilisé des quadrants 2 × 2 : le Panasonic JR-200, et le Mattel Aquarius. Ce dernier, commercialisé dans les magasins de jouets, exploitait une table de caractères semi-graphiques pour ses jeux. Déjà dépassé au moment de sa mise sur le marché, ç'a été un échec commercial.
- La série des Sharp MZ disposait d'une table très complète de caractères semi-graphiques, ce qui a favorisé sa diffusion sur le marché des jeux vidéos.
- L’Alice 32 et 90 de Matra, et le Philips VG5000.
- Le Compukit UK101 était un clone de la carte de développement Ohio Scientific qui offrait un jeu élémentaire de 256 caractères semi-graphiques.
- Les modes texte des derniers Apple II (l’Apple IIc et sa version améliorée, l’Apple IIe), supportaient le jeu de caractères MouseText, qui mettait les majuscules en surbrillance quand on l'activait. Les ordinateurs Apple, s'ils n'ont pas utilisé le semi-graphique à proprement parler, ont cependant stimulé l'émergence d'interfaces graphiques grâce au mode texte amélioré des dernières versions de la gamme Apple.
Annexe
Notes
- ↑ Miguel Chevalier, L'art ASCII : Du code à l'art de jouer avec les lettres, Montreuil, Art populaire, , PDF (lire en ligne)
- ↑ R.T.Russell, « BBC BASIC for Windows », sur BBC BASIC décrit cette technique comme celle de block graphics.
- ↑ The Unicode Standard, Version 15.1 - Geometric Shapes, Unicode, Inc., , PDF (lire en ligne)
- 1 2 (en) Michael Everson et al., Rapport L2/19-25: Proposal to add characters from legacy computers and teletext to the UCS. Part 5. Graphic characters, Organisation Internationale de Normalisation, Terminals Working Group (TWG), 4 janvier 2019-01-04, PDF (lire en ligne), p. 3. Ce rapport propose de désigner les pavés du mot "sextant", par analogie avec le terme de quadrant. Dans les spécifications du standard Télétexte, on pouvait afficher les caractères de ce type soit bord à bord, soit en ménageant une ligne blanche entre eux. Ainsi, un émulateur de Télétexte savait interpréter les caractères de contrôle U+001A (pavés disjoints) et U+0019 (pavés contigus, l'option par défaut).
- ↑ (en) ETS 300 072 – Terminal Equipment (TE); Videotex presentation layer protocol. Videotex presentation layer data syntax, Institut européen des normes de télécommunications, (réimpr. 1996) (lire en ligne)
- ↑ Ira Goldklang, « Graphic Tips & Tricks », (version du sur Internet Archive).
- ↑ « JayceLand's Weekly Rochester Events #191: All White Sixel », sur jayceland.com
- ↑ « OLD-COMPUTERS.COM Museum ~ GALAKSIJA Galaksija software & screenshots » (consulté le ).
- ↑ « Description of TRS-80 block graphics », sur Old Computers
Articles connexes
- termcap
- mode texte
- Vidéotex
- Curses
- Afficheur numérique
- Portail de l’informatique
- Portail des années 1980