Semigrafie - Semigraphics

Image
Exemplu de afișare a setului de caractere care prezintă elemente grafice bloc utilizate în computerul color TRS-80 (CoCo) și Dragon 32/64
Image
Un exemplu al unor personaje semigrafice.

Semigraficele sau pseudografiile bazate pe text sunt o metodă primitivă folosită în hardware-ul video în modul text timpuriu pentru a emula grafica raster fără a fi nevoie să implementați logica pentru un astfel de mod de afișare.

Există două moduri diferite de a realiza emularea graficelor raster. Primul este de a crea un mod adresabil cu toate punctele cu rezoluție mică utilizând un set de caractere speciale cu toate combinațiile binare ale unei anumite matrice de subdiviziune a dimensiunii caracterului modului text; această metodă este denumită grafică bloc sau uneori grafică mozaic .

Al doilea este să folosești forme speciale în loc de glife (litere și cifre) care apar ca desenate în modul grafic raster, uneori denumit semi- sau pseudo-grafic ; un exemplu important în acest sens îl reprezintă personajele care desenează cutii .

Caracterele semigrafice (inclusiv unele elemente de bloc) sunt încă încorporate în BIOS - ul oricărei plăci video compatibile VGA , astfel încât orice computer poate afișa aceste caractere din momentul pornirii, chiar și atunci când niciun sistem de operare nu este încă încărcat. Liniile simple și duble sunt încă des trasate cu această metodă atunci când sistemul utilizează modul text; de exemplu atunci când rulați programul de configurare BIOS.

Multe dintre aceste idei istorice au fost adoptate în Unicode , în, de exemplu, în blocurile Unicode Elemente de bloc , Desen de cutie și Forme geometrice .

Blocați grafica

De exemplu, un caracter 8 × 12 ar putea fi împărțit vertical în două jumătăți și orizontal în trei părți, iar apoi atribuirea valorilor „cerneală” și „fundal” elementelor matricei într-un model binar, corespunzător secvenței binare a poziția în tabelul de fonturi al unei matrice de mozaic 2 × 3 a așa-numitelor squots (puncte pătrate) sau sextante . Versiunile mai puțin utilizate utilizează o „matrice” 1 × 6, caz în care acești șase „pixeli” sunt uneori denumiți șase . Dar împărțirea unui caracter 8 × 8 în 2 × 2 „pixeli” numiți cadrane a fost de asemenea obișnuită (a fost, de exemplu, utilizată în Sinclair ZX81 ). Uneori, caracterele semigrafice ale textului sunt pur și simplu încorporate în setul de fonturi al sistemelor, uneori se utilizează hardware video special pentru a converti direct modelul de biți din memoria video în pixeli. În cazuri rare, o matrice de caractere nu a putut fi divizată vertical la trei, de exemplu într-o matrice de 8 × 8 mozaicul este uneori împărțit astfel încât să utilizeze o schemă de linie de scanare 3: 2: 3. Modul grafic al lui Galaksija este un exemplu, deși cu o schemă 4: 5: 4 efectul de distorsiune a fost minim.

Image
Aspectul de caractere și pixeli pe afișajul TRS-80

Utilizarea seminală a acestei tehnologii a fost în TRS-80, unde singura modalitate de a obține pixeli discreți pe ecran care puteau fi pornite și oprite individual (toate punctele adresabile) a fost prin utilizarea unei matrice de blocuri de 2 × 3 pixeli grafică. În cazul TRS-80, aceste blocuri grafice nu au fost încorporate într-un ROM de font, așa cum a devenit ulterior norma, ci au fost generate direct din modelul logic de șase biți din RAM video folosind un circuit dedicat realizat din porți logice . Un sistem mai vechi care folosea aceeași matrice pseudo-grafică a unei matrici 2 pe 3 a fost Video Terminal Interface (VTI) al Poly-88 prin sisteme polimorfe , un sistem bazat pe magistrala S-100 anterior TRS-80.

Dacă sistemul a acceptat și culoarea, rezoluția culorilor pixelilor rezultați a fost în mod normal egală cu rezoluția textului, ducând adesea la atribuirea unei ciocniri, deoarece culoarea unui pixel nu a putut fi modificată pe bază de pixel, ci doar cu o singură „cerneală”. și o culoare „de fundal” pentru toți pixelii dintr-o poziție de caracter.

Uneori, numărul de caractere din font, dedicat graficelor bloc, ar putea fi redus la jumătate dacă sistemul acceptă și un atribut „inversat”, deoarece jumătate din caracterele dintr-un set de fonturi grafice cu bloc complet sunt inversul logic al celeilalte jumătăți ale fontului a stabilit. Alte trucuri care au fost folosite pentru a micșora numărul de caractere necesare, a fost utilizarea unui spațiu pentru caracterul „toți biții sunt zero” și utilizarea caracterului 7F hex pentru caracterul „toți biții sunt pe”, ca caracter 7F hex (zecimal 127) a fost adesea definit ca un caracter „toți pixelii pe” (acest lucru se datorează faptului că, atunci când se utilizează o bandă de hârtie pentru a șterge toate cele șapte găuri, a creat „octetul” hexagonal 7F, care a fost considerat caracterul „DEL” sau „rub-out” ) . Atribuirea în ASCII a caracterului rub-out (la punctul de cod 127) i-a determinat pe proiectanții VDU-urilor să folosească „rub-out” pentru un pătrat de caractere umplut cu „cerneală”, care a fost adesea folosit pentru a reprezenta cursorul.

Exemple de utilizare a graficelor bloc

Image
set grafic de bloc text al ZX-81

Alte exemple de sisteme care s-au bazat pe utilizarea graficelor bloc sunt:

  • The ZX80 și ZX81 seturi de caractere , în cazul în care a fost utilizat o matrice de 2 × 2 pixeli, cu spațiul și trucuri atribut invertite pentru a păstra numărul de caractere din ROM - ul necesar în jos la doar 7 (din 16 necesare). ZX Spectrum , de asemenea , susținută de grafică bloc precum și grafică de rezoluție mai mare „reale“. În plus, pe Spectrum, fontul sistemului (stocat în ROM-ul său) ar putea fi schimbat cu ușurință și instantaneu într-unul stocat în RAM, permițând programatorilor să-și definească propriile caractere semigrafice pentru a se potrivi nevoilor lor.
  • Alte sisteme care au folosit o matrice 2 × 2 au fost Panasonic JR-200 și Mattel Aquarius .
  • Commodore PET , de asemenea , a avut câteva caractere pentru a sprijini 2 × 2 semigraphics text din ei PETSCII setul de caractere. PET a fost, de asemenea, unul dintre primele sisteme care s-a bazat puternic pe caractere semigrafice , pentru a obține orice formă de grafică pe ecran.
  • TRS-80 Color Computer și Dragon 32/64 sunt bune exemple de sisteme care utilizează 2 x 2 matrice semigraphics culoare. Dar Motorola 6847 VDC a acceptat și un mod semigrafic cu 6 blocuri puțin folosit.
  • Sistemele de videotex și teletext au folosit o matrice 2 × 3 și o prim-plan („cerneală”) și o culoare de fundal, în mod normal dintr-un set de opt culori (inclusiv alb-negru). Multe sisteme foloseau „ grafică Videotex ”. Unul dintre cele mai cunoscute exemple este modul grafic implicit al Acorn BBC Micro ( modul 7 ). Alte sisteme care au folosit grafică de tip „Videotex” sunt: ABC 80 , Grundy NewBrain , multe dintre sistemele Acorn Eurocard și Philips P2000T , care foloseau de fapt un cip Teletext conceput pentru televizoarele lor.
  • PC-8001 a reușit să combine text normal cu un set complet de 256 de text semigraphical "caractere" într - o matrice de 2 × 4; modul în care sistemul a distins cei 8 biți utilizați pentru fonturile „normale” de cei 8 biți necesari pentru semigrafia textului este neclar.
  • Unul dintre ultimele sisteme video în care semigrafia textului a fost o opțiune utilă a fost adaptorul grafic color (CGA). Acest adaptor grafic pentru computerele IBM timpurii a acceptat doar patru culori în modul său grafic de înaltă rezoluție, dar în modul text ar putea afișa 16 culori diferite. Deși ROM-ul fontului adaptorului CGA nu conținea toate caracterele semigrafice de text altfel tipice, era totuși posibil să creați un mod de semigrafie text 160 × 100 CGA folosind un truc semi-documentat.

Personaje semigrafice

Image
Tastatura PET 2001 are caractere semigrafice indicate pentru o intrare ușoară

Caracterele semigrafice sunt, de asemenea, caractere într-un font care sunt destinate să dea impresia că un sistem poate suporta grafică de înaltă rezoluție, în timp ce sistemul funcționează în modul text. Caracterele, cum ar fi personajele de desenare a cutiilor , cercurile și punctele, simbolurile cărților , cum ar fi ♠, ♣, ♥ și ♦, și formele geometrice ale „blocului grafic de construcție” , cum ar fi triunghiurile, au dat astfel de sisteme acel aspect.

Unul dintre primele sisteme care a folosit astfel de caractere, exemplul canonic pe care l-au urmat alții, a fost Commodore PET , care avea multe dintre ele în setul său de fonturi PETSCII . PET-ul original s-a bazat într-un asemenea grad pe aceste caractere încât le-a imprimat pe tastatură, așa cum se poate vedea aici, un exemplu pe care alte sisteme l-au copiat în curând.

Un alt exemplu bun de sistem care se bazează pe caractere semigrafice este venerabilul Sharp MZ80K , care nu avea grafică de înaltă rezoluție și nici caractere reprogramabile, dar se baza pe deplin pe un set de fonturi extins cu multe pseudo-caractere grafice. Cu acestea a fost încă posibil să se genereze jocuri care păreau că sistemul are o grafică de înaltă rezoluție.

Unele dintre sistemele care aveau un set de fonturi programabile, dar nu aveau un hardware grafic raster de înaltă rezoluție, veneau cu seturi de caractere implicite pentru a fi încărcate în setul de caractere RAM, iar aceste seturi încorporau adesea ideile menționate aici, deși era adesea de asemenea, cazul în care caracterele semigrafice dedicate au fost definite după cum este necesar.

Sisteme care se bazau pe caractere semigrafice

Exemple de sisteme care s-au bazat în mare măsură pe caractere semigrafice pentru grafica lor sunt:

  • PC-ul original IBM cu MDA nu oferea nicio altă formă de grafică, în afară de caracterele desenate în cutie ale codului hardware implicit, pagina 437 .
  • Commodore PET a fost unul dintre primele sisteme să se bazeze foarte mult pe personaje semigraphical, pentru a obține orice formă de grafica pe ecran.
  • Sinclair ZX80 și ZX81 sa bazat pe caractere grafice bloc pentru rezoluție scăzută o grafică de 64 × 48 pixeli alb-negru sau 32 × 48 în negru, alb și dithered gri așa cum se vede în setul de caractere ZX80 și setul de caractere ZX81 .
  • Mattel Aquarius sa bazat în totalitate pe CharacterSet sa pentru jocuri, chiar dacă a fost comercializat prin jucărie magazine. Nu a devenit niciodată un succes comercial, parțial din cauza acestei limitări, care era învechită la acea vreme.
  • Panasonic JR-200 utilizat de asemenea caractere semigraphical în combinație cu o grafică bloc.
  • Cele Sharp MZ serie de calculatoare nu a oferit highres sau caractere programabile, dar a avut un set foarte complet de caractere semigraphical. - și așa a oferit încă multe jocuri vizuale frumoase
  • Compukit UK101 (clona a popularului superboard Ohio Scientific) a fost , de asemenea , un sistem foarte timpuriu , care sa bazat pe o mare CharacterSet sale.
  • Modurile de text ale computerelor Apple II ulterioare, începând cu Apple IIc și versiunea îmbunătățită a Apple IIe , au acceptat setul de caractere MouseText , care a înlocuit caracterele majuscule intermitente când este activat. Deși aceste sisteme Apple nu s-au bazat pe aceste seturi de caractere, ele au jucat un rol în simularea interfeței grafice a graficii membrilor mai avansați ai familiei lor, în timp ce se aflau încă în modul text.

Vezi si

Referințe