# Semi-gràfics

Els semigràfics o pseudogràfics basats en text són un mètode primitiu utilitzat en el hardware de vídeo en mode de text inicial per emular gràfics de trama sense haver d'aplicar la lògica per a aquest mode de visualització.
Hi ha dues maneres diferents d'aconseguir l'emulació de gràfics de trama. El primer és crear un mode adreçable de tots els punts de baixa resolució utilitzant un conjunt de caràcters especials amb totes les combinacions binàries d'una determinada matriu de subdivisió de la mida del caràcter del mode text; aquest mètode es coneix com a gràfics de blocs, o de vegades gràfics de mosaic .
El segon és utilitzar formes especials en comptes de glifs (lletres i figures) que apareixen com si estiguessin dibuixats en mode de gràfics de trama, de vegades referits com a semi- o pseudo-gràfics ; un exemple important d'això són els caràcters de caixa de text.
Els caràcters semigràfics (inclosos alguns elements de bloc) continuen incorporant-se a la BIOS de qualsevol targeta de vídeo compatible amb VGA, de manera que qualsevol PC pot mostrar aquests caràcters des del moment en què està activat, fins i tot quan no hi ha cap sistema operatiu carregat. Les línies simples i dobles encara es dibuixen sovint amb aquest mètode quan el sistema utilitza el mode de text; per exemple, quan executeu el programa de configuració de la BIOS.
Molts d'aquestes idees històriques han estat adoptats a Unicode, dins, per exemple en els Block Elements, Box Drawing i Geometric Shapes Unicode blocks.

## Gràfics de bloc

Per exemple, un caràcter de 8 × 12 es podria dividir verticalment en dues meitats i horitzontal en tres parts, i després assignar valors de "tinta" i "fons" als elements de la matriu en un patró binari, corresponent a la seqüència binària de la posició a la taula de tipus de lletra d'una matriu de mosaic de 2 × 3 d'anomenats “ squots” (punts quadrats). Les versions menys utilitzades utilitzen una "matriu" de 1 × 6, en aquest cas aquests sis "píxels" es refereixen de vegades com a sixels. Però la divisió d'un caràcter de 8 × 8 en 2 × 2 "píxels" també era comuna (era, per exemple, usada en el Sinclair ZX81). De vegades, els caràcters semigràfics de text s'incorporen simplement al joc de caràcters del sistema, de vegades s'utilitza un hardware de vídeo especial per convertir directament el patró de bits de la memòria de vídeo en píxels. En casos rars, una matriu de caràcters no era divisible verticalment per tres, per exemple, en una matriu de 8 × 8, el mosaic de vegades es divideix de manera que utilitza un esquema de línia d'escaneig de 3: 2: 3. El mode gràfic de Galaksija n'és un exemple, encara que amb un esquema 4: 5: 4 l'efecte de distorsió era mínim.
L'ús fonamental d'aquesta tecnologia va ser la base del TRS-80, on l'única manera d'obtenir píxels discrets a la pantalla que es podien activar i desactivar individualment (tots els punts adreçables) va ser mitjançant l'ús d'una matriu de punts de 2×3 píxels. En el cas del TRS-80, aquests gràfics de blocs no estaven incorporats a la ROM del generador de caràcters, que posteriorment es va convertir en la norma, sinó que es generaven directament del patró lògic de sis bits de la RAM de vídeo mitjançant un circuit dedicat fet amb portes lògiques.
Si el sistema també admetia color, la resolució de color dels píxels resultants normalment era igual a la resolució de text, sovint portant a un xoc d'atributs, ja que el color d'un píxel no es podia canviar per píxel, sinó només a un color "de fons" per a tots els píxels d'una posició de caràcter.
De vegades, el nombre d'elements del joc caràcters, dedicat a blocs de gràfics, es podia reduir a la meitat si el sistema també suportava un atribut "INVERSE", ja que la meitat dels caràcters d'un conjunt de pòlisses gràfiques dun bloc complet són la inversa lògica de l'altra meitat del tipus de lletra conjunt. Altres trucs que s'utilitzaven per reduir el nombre de caràcters necessaris, era utilitzar un espai per al caràcter "tots els bits a 0", i utilitzar el caràcter hexadecimal 7F per al caràcter "tots els bits a 1", com a caràcter hexadecimal 7F (decimal) 127) sovint es definia com el caràcter de "tots els píxels" (això a causa del fet que en utilitzar papertape per perforar tots els set forats, es va crear el número hexadecimal 7F "byte" que es considerava el caràcter "DEL" o "rub-out "). L'assignació en ASCII del caràcter de sortida (al punt de codi 127) fa que els dissenyadors de VDU utilitzin " rub -out" per a un quadrat de caràcters ple de "tinta", que sovint s'utilitzava per representar el cursor.

## Exemples de l'ús de gràfics de bloc

Altres exemples de sistemes que van confiar en l'ús de gràfics de bloc:
* El ZX80 i el ZX81, on s'utilitza una matriu de 2 × 2 píxels, amb l'espai i inverteix els trucs d'atributs per mantenir el nombre de caràcters de la ROM necessaris fins a només 7 (dels 16 necessaris). El ZX Spectrum també suportava gràfics de blocs i gràfics de "resolució" més alta. A més, al Spectrum el tipus de lletra del sistema (emmagatzemat a la seva ROM) es podia canviar fàcilment i instantàniament en un emmagatzemat a la memòria RAM, permetent als programadors definir els seus propis caràcters semigràfics segons les seves necessitats.
* Altres sistemes que utilitzaven una matriu de 2 × 2 eren el Panasonic JR-200 i el Mattel Aquarius .
* El Commodore PET també va tenia alguns caràcters per donar suport a semicàpsules de text 2 × 2 en el seu joc de caràcters PETSCII. El PET va ser un dels primers sistemes en dependre dels caràcters semigràfics, per poder obtenir totes les formes de gràfics a la pantalla.
* L'ordinador de color TRS-80 i el Drac 32/64 són bons exemples de sistemes que utilitzen semigràfics de color 2 × 2. Però el seu Motorola 6847 VDC també donava suport a un mode de semigràfics de 6 blocs abans descrit.
* Els sistemes de videotex i de teletext utilitzaven una matriu de 2 × 3 amb un primer pla ("tinta") i un color de fons, normalment d'un conjunt de vuit colors (incloent blanc i negre). Molts sistemes utilitzen " gràfics videotex ". Un dels exemples més coneguts és el mode gràfic predeterminat de l'Acorn BBC Micro - mode 7). Altres sistemes que utilitzen gràfics "videotex" són: l'ABC 80, el Grundy NewBrain, molts dels sistemes Acorn Eurocard i el Philips P2000T, que realment utilitzava el xip de teletext dels seus televisors.
* El PC-8001 va aconseguir combinar text normal amb un conjunt complet de 256 "caràcters" semigràfics de text en una matriu de 2 × 4; Com el sistema distingeix els 8 bits utilitzats per a caràcters "normals" dels 8 bits necessaris per al text semigràfic.
* Un dels últims sistemes de vídeo on els semigràfics de text eren una opció útil era el Color Graphics Adapter (CGA). Aquest adaptador de gràfics dels primers PC IBM suportava només quatre colors en el seu mode gràfic d'alta resolució, però en mode text podia mostrar 16 colors diferents. Tot i que la ROM del generador de caràcters de l'adaptador CGA no contenia tots els caràcters semigràfics possibles, encara era possible crear un mode de semigràfics de text CGA de 160×100 utilitzant un truc semi-documentat.

## Caràcters semigràfics

Els caràcters semigràfics poden ser elements d'un joc caràcters que pretén donar la impressió de que el sistema suporta gràfics d'alta resolució, mentre que de fet el sistema funciona solament en mode text. Des de caràcters tipus caixa de text, cercles i punts, a símbols de cartes ♠, ♣, ♥ i ♦, i "blocs gràfics d'edifici" les formes geomètriques amb triangles que donaven aquest aspecte.
Un dels primers sistemes que van utilitzar tals caràcters, exemple canònic que d'altres van seguir, va ser el Commodore PET, el qual va tenir molts d'ells dins el seu PETSCII conjunt de font. El PET original confiat a tal grau en aquests caràcters que els va imprimir sobre el seu teclat (vegeu imatge), un exemple que altres sistemes aviat van copiar.
Un altre bon exemple d'un sistema que es basava en caràcters semigràfics és el venerable Sharp MZ80K, que no tenia gràfics d'alta resolució, ni caràcters reprogramables, però que confiava completament en un joc de caràcters estès amb molts pseudo-gràfics. Amb aquests encara era possible generar jocs que semblessin que el sistema disposava de gràfics d'alta resolució.
Alguns dels sistemes que tenien joc de caràcters programable, però que no tenien un maquinari real de gràfics de mapa de bits d'alta resolució, venien amb conjunts de caràcters per defecte per a ser carregats en una memòria RAM de caràcters, i aquests conjunts incorporaven sovint les idees abans esmentades, encara que sovint es definien caràcters semigràfics dedicats carregats segons fos necessari..

## Sistemes amb caràcters semigràfics

Exemples de sistemes que van confiar fortament en els caràcters semigràfics pels seus gràfics són:
* L'IBM PC original amb el MDA no oferia cap tipus d'impressions gràfiques que no fossin els caràcters gràfics programats per defecte a la PROM del seu hardware (pàgina de codi 437) .
* El Commodore PET va ser un dels primers sistemes a dependre totalment en caràcters semigràfics, per obtenir qualsevol forma de gràfics en pantalla.
* El Sinclair ZX80 i ZX81 es va basar en bloc caràcters gràfics de baixa resolució de gràfics de 64 × 48 píxels en blanc i negre o 32 × 48 en negre, blanc i difuminar gris com es pot veure en el joc de caràcters del ZX80 i del ZX81 .
* El Mattel Aquarius es va basar completament en caràcters semigràfics per als jocs, tot i que era comercialitzat a través de botigues de joguines. Mai no es va convertir en un èxit comercial en part a causa d'aquesta limitació, que en aquell moment el feia obsolet.
* El Panasonic JR-200 també va utilitzar caràcters semigràfics en combinació amb gràfics de blocs.
* La sèrie d'ordinadors Sharp MZ no oferia caràcters programables, però tenia un conjunt complet de caràcters semigràfics. - i així encara oferien molts jocs visualment simpàtics
* El Compukit UK101 (clon del popular superboard d'Ohio Scientific) també era un sistema molt primerenc que es basava en caràcters semigràfics.
* Les modes de text d'ordinadors posteriors d'Apple II, que comencen per l'Apple IIc i la versió millorada de l' Apple IIe, van suportar el joc de caràcters MouseText, que va substituir les lletres majúscules que es posaven en INVERSE quan estava activat. Tot i que aquests sistemes d'Apple no depenien d'aquests conjunts de caràcters, van tenir un paper important en la simulació de gràfics dels membres de les famílies més avançades, quan funcionaven en mode text.

### Noms d'alguns jocs de caràcters amb semigràfics

* PETSCII
* ATASCII
* JOC TELETEXT
* JOC VIDEOTEXT

## Vegeu també

* ANSI
* Mode de text
* Sixel
* Codis ESC (ANSI)
* Drop shadow

## Referències

* ↑ Unicode block U25A0 contains geometric shapes
* ↑ Goldklang, Ira. «Graphic Tips & Tricks», 2015. Arxivat de l'original el 2017-07-29. [Consulta: 29 juliol 2017].
* ↑ Use of sixel in this context
* ↑ «OLD-COMPUTERS.COM Museum ~ GALAKSIJA Galaksija software & screenshots». Arxivat de l'original el 2018-01-20. [Consulta: 27 gener 2014].
* ↑ «Description of TRS-80 block graphics». Arxivat de l'original el 2018-12-09. [Consulta: 7 juliol 2019].
* ↑ «Definition of the rub-out character 7F hex». Arxivat de l'original el 2017-07-05. [Consulta: 7 juliol 2019].
* ↑ Technical details ZX-81 character set and block graphics
* ↑ «CoCo Semi-graphics-6 display mode». Arxivat de l'original el 2019-11-09. [Consulta: 7 juliol 2019].
* ↑ BBC Micro videotex graphics
* ↑ «IBM PC XT Technical Reference». [Consulta: 24 agost 2018].
* ↑ «Commodore C64 Manual: Commodore 64 Programmers Reference Guide». [Consulta: 24 agost 2018].
* ↑ «old-computers.com Entry on the Sharp MZ80K mentions the lack of graphics capabilities». Arxivat de l'original el 2015-10-19. [Consulta: 7 juliol 2019].
* ↑ A YouTube movie showing a game running on the MZ80K
* ↑ Page describing the characterset of the Aquarius
* ↑ «Games on the MZ-80K relied on its great set of semigraphical characters». Arxivat de l'original el 2018-12-09. [Consulta: 7 juliol 2019].