Semigraphies - Semigraphics

Exemple d'affichage de jeu de caractères montrant des blocs graphiques tels qu'utilisés dans l' ordinateur couleur TRS-80 (CoCo) et Dragon 32/64
Un exemple de quelques caractères semi-graphiques.

À base de texte caractères semi-graphiques ou pseudo -graphique est une méthode primitive utilisée au début du mode texte matériel vidéo pour Emuler graphiques raster sans avoir à mettre en œuvre la logique d'un tel mode d'affichage.

Il existe deux manières différentes d'effectuer l'émulation de graphiques raster. La première consiste à créer un mode adressable en tous points à basse résolution en utilisant un ensemble de caractères spéciaux avec toutes les combinaisons binaires d'une certaine matrice de subdivision de la taille des caractères en mode texte ; cette méthode est appelée graphique en blocs , ou parfois graphique en mosaïque .

La seconde consiste à utiliser des formes spéciales au lieu de glyphes (lettres et chiffres) qui apparaissent comme dessinés en mode graphique raster, parfois appelé semi- ou pseudo-graphique ; un exemple important de ceci est les personnages de dessin de boîte .

Les caractères semi-graphiques (y compris certains éléments de bloc) sont toujours incorporés dans le BIOS de toute carte vidéo compatible VGA , de sorte que n'importe quel PC peut afficher ces caractères à partir du moment où il est allumé, même lorsqu'aucun système d'exploitation n'est encore chargé. Des lignes simples et doubles sont encore souvent tracées avec cette méthode lorsque le système utilise le mode texte ; par exemple lors de l'exécution du programme de configuration du BIOS.

Bon nombre de ces idées historiques ont été adoptées dans Unicode , par exemple dans les blocs Unicode des éléments de bloc , du dessin de boîte et des formes géométriques .

Graphiques de bloc

Par exemple, un caractère 8×12 pourrait être divisé verticalement en deux moitiés et horizontalement en trois parties, puis attribuer des valeurs « encre » et « arrière-plan » aux éléments de la matrice dans un motif binaire, correspondant à la séquence binaire du position dans la table des polices d'une matrice mosaïque 2×3 de soi-disant squots (points carrés) ou sextants . Les versions moins souvent utilisées utilisent une "matrice" 1 × 6, auquel cas ces six "pixels" sont parfois appelés sixels . Mais diviser un caractère 8×8 en 2×2 "pixels" appelés quadrants était également courant (c'était, par exemple, utilisé dans le Sinclair ZX81 ). Parfois, les caractères semi-graphiques du texte sont simplement incorporés dans le jeu de polices du système, parfois un matériel vidéo spécial est utilisé pour convertir directement le motif binaire de la mémoire vidéo en pixels. Dans de rares cas, une matrice de caractères n'était pas divisible verticalement par trois, par exemple dans une matrice 8×8, la mosaïque est parfois divisée de sorte qu'elle utilise un schéma de lignes de balayage 3:2:3. Le mode graphique du Galaksija en est un exemple, bien qu'avec un schéma 4:5:4 l'effet de distorsion soit minime.

Disposition des caractères et des pixels sur l'écran TRS-80

L'utilisation fondamentale de cette technologie était dans le TRS-80 où le seul moyen d'obtenir des pixels discrets sur l'écran qui pouvaient être activés et désactivés individuellement (tous les points adressables) était d'utiliser une matrice de blocs de 2 × 3 pixels. graphique. Dans le cas du TRS-80, ces blocs graphiques n'étaient pas incorporés dans une ROM de police, comme cela est devenu plus tard la norme, mais ont été générés directement à partir du modèle logique de six bits de la RAM vidéo à l'aide d'un circuit dédié composé de portes logiques . Un système antérieur utilisant le même réseau pseudo-graphique d'une matrice 2 par 3 était l'interface de terminal vidéo (VTI) du Poly-88 par des systèmes polymorphes , un système basé sur le bus S-100 antérieur au TRS-80.

Si le système prenait également en charge la couleur, la résolution des couleurs des pixels résultants était normalement égale à la résolution du texte, ce qui conduisait souvent à un conflit d'attributs car la couleur d'un pixel ne pouvait pas être modifiée pixel par pixel, mais uniquement à une "encre" , et une couleur "d'arrière-plan" pour tous les pixels dans une position de caractère.

Parfois, le nombre de caractères dans la police, dédié aux graphiques en blocs, pourrait être réduit de moitié si le système prenait également en charge un attribut "inverser", car la moitié des caractères d'un jeu de polices graphiques en blocs complets sont l'inverse logique de l'autre moitié de la police ensemble. D'autres astuces utilisées pour diminuer le nombre de caractères nécessaires consistaient à utiliser un espace pour le caractère « tous les bits sont à zéro » et à utiliser le caractère 7F hexadécimal pour le caractère « tous les bits sont activés », comme le caractère 7F hexadécimal (décimal 127) était souvent défini comme un caractère « tous les pixels activés » (c'est parce que lors de l'utilisation d'une bande de papier perforant les sept trous, il créait l'« octet » hexadécimal 7F qui était considéré comme le caractère « DEL » ou « effacement » ) . L'affectation en ASCII du caractère d' effacement (au point de code 127) a conduit les concepteurs d' écrans à utiliser "rub-out" pour un carré de caractère rempli d'"encre", qui était souvent utilisé pour représenter le curseur.

Exemples d'utilisation de blocs graphiques

ensemble graphique de blocs de texte du ZX-81

D'autres exemples de systèmes qui reposaient sur l'utilisation de blocs graphiques sont :

  • Les jeux de caractères ZX80 et ZX81 , où une matrice de 2 × 2 pixels a été utilisée, avec les astuces d'attribut d'espacement et d'inversion pour maintenir le nombre de caractères dans la ROM nécessaires à seulement 7 (sur les 16 nécessaires). Le ZX Spectrum prenait également en charge les graphiques en blocs ainsi que les « vrais » graphiques à plus haute résolution. De plus, sur le Spectrum, la police système (stockée dans sa ROM) pouvait être facilement et instantanément changée en une police stockée dans la RAM, permettant aux programmeurs de définir leurs propres caractères semi-graphiques en fonction de leurs besoins.
  • Les autres systèmes utilisant une matrice 2×2 étaient le Panasonic JR-200 et le Mattel Aquarius .
  • Le Commodore PET avait également quelques caractères pour prendre en charge les semi-graphiques de texte 2 × 2 dans son jeu de caractères PETSCII . Le PET a également été l'un des premiers systèmes à s'appuyer fortement sur les caractères semi-graphiques , pour obtenir n'importe quelle forme de graphisme à l'écran.
  • Le TRS-80 Color Computer et le Dragon 32/64 sont de bons exemples de systèmes utilisant des semi-graphiques couleur matriciels 2×2. Mais leur Motorola 6847 VDC prenait également en charge un mode semi-graphique à 6 blocs peu utilisé.
  • Les systèmes vidéotex et télétexte utilisaient une matrice 2 × 3 et un premier plan (« encre »), et une couleur d'arrière-plan, normalement parmi un ensemble de huit couleurs (y compris le noir et le blanc). De nombreux systèmes utilisaient des " graphiques vidéotex ". L'un des exemples les plus connus est le mode graphique par défaut de l'Acorn BBC Micro ( mode 7 ). D'autres systèmes qui utilisaient des graphiques de type « Vidéotex » sont : l' ABC 80 , le Grundy NewBrain , de nombreux systèmes Acorn Eurocard et le Philips P2000T , qui utilisait en fait une puce télétexte conçue pour leurs téléviseurs.
  • Le PC-8001 a réussi à combiner du texte normal avec un ensemble complet de 256 « caractères » de texte semi-graphiques dans une matrice 2 × 4 ; comment le système a distingué les 8 bits utilisés pour les polices "normales" des 8 bits nécessaires pour les semi-graphiques du texte n'est pas clair.
  • L'un des derniers systèmes vidéo où les semi-graphiques de texte étaient une option utile était le Color Graphics Adapter (CGA). Cette carte graphique pour les premiers IBM-PC ne prenait en charge que quatre couleurs dans son mode graphique haute résolution, mais en mode texte, elle pouvait afficher 16 couleurs différentes. Bien que la ROM de police de l'adaptateur CGA ne contienne pas tous les caractères semi-graphiques de texte par ailleurs typiques, il était toujours possible de créer un mode semi- graphique de texte CGA 160 × 100 en utilisant une astuce semi-documentée.

Caractères semi-graphiques

Le clavier du PET 2001 a des caractères semi-graphiques indiqués pour une saisie facile

Les caractères semi-graphiques sont également des caractères d'une police destinés à donner l'impression qu'un système peut prendre en charge des graphiques haute résolution, alors qu'en fait le système fonctionne en mode texte. Des caractères tels que des caractères de dessin de boîte , des cercles et des points, des symboles de carte tels que ♠, ♣, ♥ et ♦, et des formes géométriques de "bloc de construction graphique" telles que des triangles ont donné à ces systèmes cette apparence.

L'un des premiers systèmes à utiliser de tels caractères, l'exemple canonique que d'autres ont suivi, était le Commodore PET , qui en avait beaucoup dans son jeu de polices PETSCII . Le PET d'origine s'appuyait tellement sur ces caractères qu'il les imprimait sur son clavier, comme on peut le voir ici, un exemple que d'autres systèmes ont vite copié.

Un autre bon exemple d'un système qui reposait sur des caractères semi-graphiques est le vénérable Sharp MZ80K , qui n'avait pas de graphiques haute résolution, ni de caractères reprogrammables, mais reposait entièrement sur un jeu de polices étendu avec de nombreux caractères pseudo-graphiques. Avec ceux-ci, il était toujours possible de générer des jeux qui semblaient avoir des graphismes haute résolution.

Certains des systèmes qui disposaient d'un jeu de polices programmable, mais n'avaient pas de véritable matériel graphique raster haute résolution, étaient livrés avec des jeux de caractères par défaut à télécharger dans la RAM du jeu de caractères, et ces jeux incorporaient souvent les idées mentionnées ici, bien qu'il soit souvent également le cas où des caractères semi-graphiques dédiés étaient définis selon les besoins.

Systèmes reposant sur des caractères semi-graphiques

Voici des exemples de systèmes qui s'appuient fortement sur des caractères semi-graphiques pour leurs graphiques :

  • Le PC IBM d' origine avec le MDA n'offrait aucune forme de graphique autre que les caractères de dessin de boîte de sa page de code matériel par défaut 437 .
  • Le Commodore PET a été l'un des premiers systèmes à s'appuyer fortement sur des caractères semi-graphiques, pour obtenir n'importe quelle forme de graphiques à l'écran.
  • Les Sinclair ZX80 et ZX81 s'appuyaient sur des blocs de caractères graphiques pour des graphiques basse résolution de 64 × 48 pixels en noir et blanc ou 32 × 48 en noir, blanc et gris tramé comme on le voit dans le jeu de caractères ZX80 et le jeu de caractères ZX81 .
  • Le Mattel Aquarius reposait entièrement sur son jeu de caractères pour les jeux, même s'il était commercialisé par le biais de magasins de jouets. Ce n'est jamais devenu un succès commercial en partie à cause de cette limitation, qui était obsolète à l'époque.
  • Le Panasonic JR-200 utilisait également des caractères semi-graphiques en combinaison avec des blocs graphiques.
  • La série d'ordinateurs Sharp MZ n'offrait pas de caractères haute résolution ou programmables, mais disposait d'un ensemble très complet de caractères semi-graphiques. - et donc toujours offert de nombreux jeux visuellement agréables
  • Le Compukit UK101 (clone du populaire superboard Ohio Scientific) était également un système très ancien qui s'appuyait sur son excellent jeu de caractères.
  • Les modes texte des ordinateurs Apple II ultérieurs, à commencer par l' Apple IIc et la version améliorée de l' Apple IIe , prenaient en charge le jeu de caractères MouseText , qui remplaçait les caractères majuscules clignotants lorsqu'ils étaient activés. Bien que ces systèmes Apple ne reposent pas sur ces jeux de caractères, ils ont joué un rôle dans la simulation de l'interface graphique comme les graphiques de leurs membres les plus avancés de la famille, tout en restant en mode texte.

Voir également

Les références