CATEGORII DOCUMENTE |
Canalele I/O ale unui port pot fi digitale sau analogice. Ele pot primi/ transmite date prin porturi seriale (900 baiti/sec), paralele (100 000 baiti/sec) sau printr-un canal DMA ( direct memory address), care permite rate de transfer foarte inalte. Deoarece semnalele sunt manipulate extern in format analogic ele trebuie digitizate, inainte de a intra in calculator, printr-un convertor digital. De exemplu rezolutia va putea fi vazuta ca o masura a cat de precis poate fi digitizat semnalul de intrare.
Tastatura constituie echipamentul interactiv cel mai comun adecvat cu precadere aplicatiilor alfanumerice, pentru care este un dispozitiv standard de intrare, unidimensional. Caracterele sunt introduse secvential, iar tastatura nu poate indeplini operatii de modificare 2D asupra unei pagini de text; acest lucru este posibil doar daca este 'indrumata ' de procesoare de text orintate ecran, care permit folosirea tastelor speciale de pozitionare a cursorului (sagetile, home, end, PageDown, PageUp) sau diferite combinatii de taste functionale sau de control.
Se poate interactiona direct cu spatiul 2D al ecranului prin asanumitele pointing devices - precum mouse-ul, dispozitiv standard de intrare pentru produse software de aplicatii grafice. Din punct de vedere hardware, mouse-ul mecanic este bazat pe miscarea unei bile, ceea ce il face mult mai susceptibil de a genera erori decat cel optic, bazat pe o dioda si un fotodetector ce numara liniile verticale/ orizontale peste care trece (suprafata caroiata). Interactiunea utilizator - calculator este asigurata deun circuit logic care converteste miscarea intr-un stream de date si doua sau trei butoane; informatiile transmise calculatorului depind de conventiile PC pe care mouse-ul le respecta prin constructie. Legatura dintre hard-ul mouse-lui si programul de aplicatie se realizeaza printr-un driver soft (.com) de tipul terminate and stay resident, invocat direct de aplicatie sau printr-un eveniment (de exemplu actionarea unei secvente de taste). In general principiul ramane acelasi pentru trackball, cu diferenta ca bila se misca intr-un ansamblu stationar.
Joystik-ul este folosit pentru jocuri si, datorita faptului ca nu este prea sensibil, nu este luat in considerare de software-ul grafic.
Interactiunea directa mana-ecran este permisa de light-pen. Un light-pen controler furnizezaza pozitia la un moment dat pe ecran, pornind de la un fotodetector care sesizeaza lumina emisa de catre fosforul excitat pe monitor de catre fascicolul de electroni. Se poate instala urmarirea pozitiei pe portiuni negre, hardware sau software, prin metode care ii incearca anticiparea pozitiei. Adaptorul EGA dispune prin constructie de un port I/O pentru light-pen, insotit de conectorul si registrii necesari.
Tableta grafica (digitizing pad) este un dispozitiv cu largi posibilitati de utilizare mai ales in proiectare si animatie. Foloseste o masa de trasare care sesizeaza pozitia unui creion pe suprafata sa, pozitia absoluta a miscarii fiind monitorizata.
Imaginea obtinuta pe ecran este bazata, in principiu, pe reprezentarea unui punct prin aprinderea unui pixel (picture element). Numarul de pixeli ai ecranului ii definesc rezolutia, care se convine sa fie numita rezolutie garfica pentru cel putin 24.000 de puncte (200x120). Cele mai inalte rezolutii (peste 16 milioane de pixeli) sunt folosite in sinteza de imagini si in industria filmului.
Monitorul poate fi analog sau digital poate fi analog sau digital, monocolor sau RGB (red green, blue), storage sau non-storage, interlaced ori non-interlaced, vectorial, raster sau de tip flat panel, cu rezolutii performante si preturi variabile.
Display-urile storage folosesc fosfor cu timp foarte lung de reactie, nu necesita reimprospatarea, dar nici nu permit stergerea selectiva a ecranului (de exemplu, monitoarele de tip DirectView storage Tube care nu necesita nici RAM pentru memorarea informatiei inainte de afisare9. Monitoarele non-storage folosesc fosfor cu timp foarte scurt de reactie, astfel ca imediat dupa ce fascicolul de electroni a parasit zona, aceasta incepe sa se stearga; ca atare reimprospatarea se face cu o frecventa de 50-70 Hz.
Display-urile de tip interlanced functioneaza pe principiul actualizarii la un moment dat numai a liniilor pare, cele impare pastrand informatia de la momentul t-1, fata de tipul non-interlanced, unde toate liniile sunt actualizate cu noile date (folosit exclusiv cu adaptoare VGA/EGA). Cu cat este mai mare rezolutia sistemului video, cu atat monitorul trebuie sa fie mai rapid pentru a face fata ratei de transfer a datelor.
In vederea afisarii, imaginea este memorata intr-un buffer RAM, din care este apoi preluata si transpusa pe ecran, punct cu punct (imagine raster( sau ca multime de segmente de dreapta, pentru care se stocheaza coordonatele capetelor in sistemul de coordonate propriu display-ului (format vector). La monitoarele de tip vector miscarea fascicolului de electroni este dictata de un procesor in functie de coordonatele ce vor fi afisate. Daca monitorul nu este rapid, numai un numar foarte mic de vectori va fi afisat inainte ca fosforul sa inceapa sa se stinga; fosforul trebuie sa aiba un timp de reactie foarte scurt pentru display-urile destinate aplicatiilor ce simuleaza miscarea. La monitoarele raster miscarea fascicolului de electroni apare ordonata si fara legatura cu imaginea: de la stanga la dreapta si de sus in jos definind liniile ecran.
Echipamentele de tip laptop computers sunt tot mai atragatoare de cand a fost depasita bariera de 1MB memorie interna, cu posibilitati de extindere la 4 sau chir la 16MB. Afisajul (flat sau panel display) se bazeaza pe cristale lichide, plasma sau electroluminiscenta; se folosesc chiar tuburi palete color cu o rezolutie de 640x480 pixeli si opt culori, compatibile VGA. Cel mai putin pretentios sistem de afisare foloseste cristale lichide, care necesita voltaj redus, insa ofera caracteristici electro-optice slabe (se bazeaza pe reflectarea luminii). Pentru lizibilitate se utilizeaza in plus o iluminare electroluminiscenta de fond de putere joasa. Nu respecta nici-un standard grafic cunoscut. Cele mai mari rezolutii le ofera display-urile cu plasma, care emit lumina ca si cele electroluminiscente consumand mai multa energie. Sunt in general compatibile EGA/VGA monocrom sau color.
Imprimanta este un periferic de iesire destul de des folosit in reprezentarile grafice, imprimantele sunt cuplate la PC printr-un port paralel sau serial si pot folosi standardul ASCII, dar compatibilitatea intre ele se opreste aici, fiecare avand tehnici proprii de imprimare grafica. O imprimanta nu poate fi folosita la intreaga ei capacitate in mod grafic fara driver special - un software ce poate translata iesirea unei aplicatii grafice in codurile specifice printerului. Imprimantele matriciale pot realiza reprezentari grafice cu rezolutii de 80-150 puncte pe inch. Cele cu jet de cerneala sunt capabile sa satisfaca o serie larga de , inclusiv grafice cu rezolutii de 300x300 puncte /inch sau de 600x600 puncte/inch. Cu toate acestea imprimantele cu jet de cerneala color nu au fost foarte bine primite pe piata echipamentelor. Imprimantele termice sunt similare celor de impact, cu exceptia faptului ca transferul cernelei pe pagina se face prin incalzirea unui element de pe capiul de imprimare, oferind posibilitatea de a pozitiona echipamentele termice foarte aproape unul de celalalt.
Imprimantele laser ofera rezolutii de pana la 600x600 punte /inch. Contin un procesor si memorie interna, adesea memorie suplimentara si un procesor mai puternic, decat calculatorul. Memoria rezidenta a imprimantei este impartita in primul rand intre pagina de date de imprimat (format bitmap) si fonturile curente rezidente. Configuratia standard cuprinde o memorie de 512KB, dar exista posibilitatea de extindere, precum si de a incarca diferite fonturi. Principala caracteristica a imprimantelor laser este faptul ca vad imaginea in intregime, memorata intern inainte de imprimare si nu linie cu linie ca la imprimantele clasice; de aceea chiar in mod text permis scrierea pe verticala (tip peisaj, landscape) sau rotirea textului.
Memorarea imaginii in format vector este compatibila cu dispozitivele standard de trasare de tip plotter / bazat pe o penita montata pe un brat cu doua grade de libertate, dupa cele doua axe, avand un al treilea semnal de control referitor la pozitia (sus/jos) a penitei.
Aplicatiile care necesita digitizarea unor imagini statice folosesc scannere. Ele functioneaza dupa o tehnica utilizata de faxuri; o linie de fotodetectori este montata intr-un mecanism care parcurge imaginea dintr-o data de pe un suport hartie, film etc.Se poate scana in cazul unor scannere o pagina dintr-odata. Sunt construite astfel incat partea mobila este fie hartia, fie mecanismul de scanare. Recent scannerele laser dispun de senzori 3d pentru parcurgerea suprafetelor unui corp.
Imaginea de pe ecran se poate reproduce si cu ajutorul video recordurilor, daca periodicitatea impulsurilor de sincronizare pe orizontala si verticala a monitorului (data de adaptorul grafic este compatibila cu limitele sistemului video. Astfel sistemul american NTSC nu este compatibil cu EGA/VGA ( care are 640 de impulsuri pe scan-lini si 350 sau 480 scan-linii pe imagine) dar este compatibil cu CGA ( care are o periodicitate de 320 de impulsuri /scan-linie),. Majoritatea implementarilor CGA au o iesire NTSC.
Reproducerea imaginii de pe un ecran poate fi obtinuta prin fotografiere direct cu o camera de 35mm (cel mai ieftin, dar cu rezultate destul de slabe) , sau utilizand o interfata monitor-aparat de fotografiat digital sau un monitor cu ecran plat -retroproiector. In cazul placilor video care au iesire TV se pot reproduce imaginile pe TV. O alta solutie este folosirea proiectoarelor in cazul sistemelor de conferinta.
Memoria grafica
Imaginile grafice nu ar putea fi create si stocate in afara memoriei grafice. In general, imaginile grafice sunt mari consumatoare de memorie, calitatea imaginii fiind direct proportionala cu volumul de informatii grafice stocate in memorie. Acest lucru se explica prin faptul ca pentru a putea fi reprezentata, imaginea este discretizata, fiecarui punct din componenta sa corespunzandu-i in memorie una pana la 8 unitati de informatie binara.
Daca intelegem prin pixel unitatea elementara adresabila direct pe ecran, aceasta va corespunde unui punct din imagine si deci raportul memorie grafica/imagine grafica, va putea fi discutat in termenii raportului biti pixel. In esenta acest raport depinde de numarul maxim de culori distincte din care se compune imaginea, de stralucirea pe care o dorim s-o dam pixelului de atributul de sclipire etc. La un raport de opt biti/pixel, foarte frecvent se ajunge ca o imagine complexa sa depaseasca usor 1MB memorie.
O alta caracteristica a memoriei grafice care conditioneaza in mare masura actul reprezentarii grafice computerizate il constituie timpul de acces al memoriei. Acest timp influenteaza constituirea si manipularea imaginilor in memorie, facand posibila animatia prin deplasari si suprapuneri de imagini. Daca in procesul de prelucrare si stocare a imaginilor apar si alte periferice, timpii de raspuns ai acestora si starile de asteptare pentru sincronizarea diferitelor periferice determina intr-o masura hotaratoare viteza si calitatea reprezentarii grafice.
Sa revenim insa sa modalitatea in care se regasesc in memorie informatiile aferente unei imagini. Asadar, fiecarui pixel de pe ecran ii corespund unul sau mai multi biti in memorie. Exista doua modalitati principale de dispunere in memorie a bitilor corespunzatori unui pixel. Prima este cea in care bitii sunt dispusi unul dupa altul, modalitatea fiind cunoscuta sub denumirea de impachetat (packed). O a doua modalitate plaseaza fiecare bit al unui pixel in baiti distincti. Baitii consecutivi apartin unor 'plane' de memorie distincte. Aceasta modalitate este cunoscuta sub denumirea de format bitmap (proiectat la nivel de bit).
Din modul de dispunere a baitilor in plane, rezulta ca in situatia in care unui pixel ii corespunde un singur bit de informatie (aprins sau stins sau culoare primplan/ culoare fond) cele doua formate de memorie sunt identice.
Deoarece foarte frecvent se pune problema citirii/scrierii unui pixel din/in memoria grafica, o importanta majora o prezinta determinarea adresei memoriei grafice care contine informatia despre acel pixel. Daca in modurile alfanumerice adresa unui caracter in memoria video se putea determina usor, in modurile grafice procedeul este ceva mai complicat. Depinde in primul rand de modul grafic activ la un moment dat, intrucat in functie de formatul de memorare impachetat sau bitmap, informatia despre un pixel se regaseste grupata intr-un plan ori inmprastiata in mai multe plane de biti.
Scrierea unui pixel in memoria grafica presupune citire/ modificare/ rescriere. In toate modurile un bait din memoria video contine informatii despre mai mult decat un singur pixel. Cu toate acestea unitatea minima de transfer la memorie este baitul. Scrierea unui pixel fara alterarea celorlalti pixeli continuti in acelasi bait impune o operare cu masti pe biti, asa incat doar pixelul selectat prin masca sa fie afectat. Adresa implicata este, evident, cea a baiului ce contine pixelul dorit. Intreaga valoare continuta in acest bait este adusa intr-o variabila read_val localizata in memoria principala (host). Se construieste de catre utilizator o masca de citire read_mask, ce permite punerea la zero a bitilor corespunzatori pixelului dorit.
Valoarea mastii depinde de numarul biti/pixeli si de localizarea bitilor pixelului vizat dintr-un bait. Printr-un SI pe biti intre read_val si read_mask se ajunge ca toti bitii aferenti pixelului de modificat sa fie pusi pe zero.
De exemplu se doreste modificarea pixelului de coordonate (175,53) de pe ecran, cand se lucreaza in modul 10, cu rezolutia de 640x350. Ecranul corespunde asadar unei matrice de text cu 25 linii si 80 de coloane scris cu un set de caractere 8x14 (80x8=640; 25x14=350), linia care contine pixelul de coordonate (175,53), va incepe cu baitul 175 linii x 640 pixeli/linie /8 pixeli/bait=14.000 =36B0, in hexa. Desi in modul 10 fiecare pixel se reda prin patru biti, deoarece fiecare bit se afla in cate un plan de memorie distinct, un bait dintr-un plan va contine informatii despre opt pixeli si de aceea s-a impartit in opt pixeli-bait.
In cadrul liniei de pixeli 175, pixelul dorit nu se afla la inceput si deci mai avem de parcurs 53 de pixeli, ceea ce conduce la parcurgerea a inca 53 pixeli/ 8 pixeli/ bait = 6bait si un rest de cinci biti.
Asadar fata de adresa de start a paginii video A0000, adresa pixelului dorit se afla la un offset de 36B0 + 6 = 36B6, adica in baitul de adresa A36B6. Restul de biti ramasi ne sunt utili pentru a localiza pixelul in cadrul baitului. Cum pixelii se numeroteaza in cadrul baitului de la dreapta la stanga si bitii de la stanga la dreapta, incepand cu 0, bitul 5 va contine pixelul Masca de identificare corespunzatoare acestui pixel va fi 04, in hexa.
Cum numai pixelul 53 din cadrul liniei de pixeli 175 trebuie modificat, valoarea 04 pusa in registrul Bit Mask register va asigura protectia bitilor din bait, cu exceptia bitului 2 la orice modificare
| |||||||
Fig 1. Localizarea pixelului in cadrul unui bait si construirea unei masti de protectie.
Valoarea ce trebuie incarcata in pixelul dorit se afla intr-o variabila write_val ocupand bitii cei mai putin semnificativi. O masca de scriere (write_mask) este folosita pentru a asigura pozitionarea pe zero a celorlati biti din variabila write_val. Dupa tratarea cu masca, valoarea de scriere este shiftata la stanga pana se suprapune cu pozitia bitilor corespunzatori pixelului dorit. In acest moment se poate face un SAU pe biti intre variabila citita si variabila de scriere, obtinandu-sevaloarea de inserat in memoria grafica, la dresa de la care s-a citit initial.
Pentru a mari viteza operatiilor, EGA/VGA dispune de registrii: Bit_mask pentru mascare si Data_rotate pentru shiftari si rotatii. Bit_mask protejaza toti bitii corespunzatoi celorlalti pixeli din bait, care nu vor fi modificati. Pentru ei ,Bit_mask are bitii pusi pe 0. Un bait transferat din memoria principala in cea grafica va afecta doar acei biti care in Bit_mask sunt pusi pe 1.
Data Rotate Register shifteza baitul de scris(preluat din memoria principala), inainte de scrierea lui in memoria video. El apare ca rotator deoarece valorile de shiftare ce depasesc 8, (marimea unui bait), dar sunt sub 16, sunt considerate shiftari la dreapta. Asa cum s-a vazut in modurile in care se opereaza cu plane de biti, scrierea este destul de complicata. Toate acestemoduri reprezinta, prin mixare, printr-un bit al fiecarui bait, informatie provenind de la opt pixeli. Fiecare pixel isi imparte informatia la unu, doi, trei sau patru biti apartinabd la unu, doua, trei sau patru plane grafice.
Fiecare plan care contine un bit de informatie aferenta pixelului dorit va trebui mai intai citit. Dintre modurile grafice care lucreaza cu format bitmap doar modul F lucreaza cu informatia despre un pixel in doua plane, toate celelalte moduri au informatia despre un pixel in toate cele patru plane de biti.
Una din problemele frecvente in utilizarea memoriei grafice o constituie compatibilizarea programelor cu diferitele placi grafice, prin proiectarea memoriei video in spatiul de adresare al memoriei gazda.
Memoria video EGA/Vga este organizata in patru plane de biti a 64K, continand una pana la opt pagini in functie de marimea paginii si disponibilul de memorie. In modurile alfa, memoria video este folosita pentru a pastra baitul de cod si baitul de atribut al caracterelor unui font. Memoria video e accesata indirect de hard pentru a obtine patternul din puncte al caracterului afisat pe ecran.
In modurile grafice lucrurile stau cu totul altfel. Cele patru plane de biti sunt accesate la aceeasi adresa. Adresa unui bait din memoria - gazda refera patru baiti din memoria video. Fiecare din acesti patru baiti rezida la aceeasi adresa - gazda, si un bait este asociat fiecaruia din cele patru plane de biti. Din perspectiva memoriei-gazda, memoria video este considerata ca o memorie de 32 de biti largime si necesita un bus EGA/VGA pe 32 biti pentru a fi accesata.
Campul Memory Map din Miscellaneus Register dicteaza adresa de start si dimensionarea memoriei video:
A0000 - BFFFF 128 kb
A0000 - AFFFF 64 kb
B0000 - B7FFF 32 kb emulare MDA/Hercules
B8000 - BFFFF 32 kb emulare CGA
Intreruperea Set Mode (AH =0) incarca in campul memory map valorile 3 pentru modurile 0, 1, 2, 3 si 2 pentru modul 7.
Planul 0 este folosit pentru stocarea codului caracterului, iar planul 1, pentru atributul caracterului (codul precede atributul; codul se afla la adresa para, iar atributul la adresa impara)
Planul 2 este folosit pentru pattern. Memoria video VGA este separata in modurile text in opt blocuri distincte a cate opt KB fiecare. Pattern - urile pe bitiale celor maximum 256 de caractere incap in aceste blocuri. EGA are patru blocuri, fiecare separate in 16KB (opt nefolositi). EGA poate tine patru fonturi si VGA opt fonturi rezidente.
Pentru compatibilizare se recomanda ca inceputul memoriei alfa sa fie plasat la B8000 si pentru MDA si pentru CGA. La EGA, cand se afiseaza text, pagina 0 a memoriei video trebuie sa inceapa cu B0000. Cand MDA sau Hercules sunt emulate, memoria video incepe la B0000. Se poate deci concluziona ca memoria grafica disponibilizeaza 128 KB pentru adaptoare video; 64 KB (intre A0000 si AFFFF) sunt dedicati EGA si 64 KB (intre B0000 si BFFFF) sunt rezervati la MDA si CGA.
3. Lucrul cu Mouse-ul
Necesitatea utilizarii mouse-lui. Utilizarea mouse-lui ca dispozitiv de intrare/iesire devine tot mai comuna, astfel incat calculatoarele tind sa generalizeze lucrul cu acest periferic punctual.
Folosirea modului grafic, complexitatea sistemului de meniuri, lucrul in mai multe ferestre sunt doar cateva din tehnicile care au necesitat un dispozitiv de activare sau dezactivare a lor, driverul mouse dovedindu-se a fi un instrument util.
Functiile de baza in lucrul cu mouse-ul. Inainte de a intra in detalii cu privire la pasii ce se parcurg pentru a putea folosi mouse-ul, trebuie sa precizam ca acest dispozitiv este punctual, adica in principiu trebuie sa se determine zona in care se afla mouse-ul pe ecran in momentul apasarii unui buton si, in functie de zona respectiva, se executa o anumita operatie. Prin zona se intelege o optiune a unui meniu, un buton care poate deschide/inchide o fereastra etc.
Pentru a putea lucra cu dispozitivul mouse, trebuie ca el sa fie corect instalat, ca parte a sistemului. Acest lucru se face de obicei in momentul startarii sistemului de operare, cand se determina configuratia (fisierul config.sys) sau prin executarea unor comenzi din fisierul autoexec.bat, care vor trebui modificate in mod corespunzator. Ambele metode vor instala rutina driverului mouse ca un program rezident in memorie.
Programul comunica cu mouse-ul prin intreruperea 0x33, ce asigura serviciile: obtinere coordonate, setare butoane, control forma cursor etc.
Codurile principalelor servicii ale intreruperii 0x33, precum si parametrii de apel sau rezultati sunt prezentati in tabelul 1. Pentru o mai buna intelegere a functiilor prezentate se va preciza codul starii butonului:
Numar
bit/valoare 0 1
0 buton stanga relaxat buton stanga apasat
1 buton dreapta relaxat buton dreapta apasat
2 buton mijloc relaxat buton mijloc apasat
(*) - pentru mouse cu trei butoane.
Cursorul mouse-lui. O particularitate in lucrul cu mouse-ul este aceea ca, de regula, apare pe ecran atat cursorul mouse-lui cat si cel normal.
Cursorul normal este implementat hard de catre adaptorul grafic
COD |
Functie |
Parametri |
dx -- pointer la masca cursorului |
||
Modifica forma cursorului (regim alfa) |
ax -- 10 bx -- 0 modifica cursor soft 1 modifica cursor hard cx -- masca ecran (bx =0)sau inceput linie scan (bx =1) dx -- masca cursor (bx =1)sau sfarsit linie scan (bx =1) |
A treia zona implicata in prelucrari este cea a imaginii de pe ecran suprascrisa de mouse. Ea nu trebuie alocata de programator, deoarece apartine implicit memoriei video.
Cand cursorul este desenat pe ecran, intre bitii ce formeaza masca si bitii de pe ecran se executa un SI pe biti (AND). Rezultatul operatiei consta intr-o configuratie de biti cu care se va executa un SAU EXCLUSIV pe biti (XOR), cu cei care formeaza masca cursorului.
Exista doua tehnici uzuale de reconstruire a imaginii peste care trece pattern-ul de mouse:
a) desenarea folosind operatorul OR intre bitii imaginii existente si bitii cursorului mouse-lui; culoarea este usor controlata fiind cea codificata prin bitii pixelului inscris. Refacerea imaginii dupa trecerea mouse-lui se realizeaza folosind scrierea in memoria video cu operatorul AND aplicat lui NOT pattern. Fondul este restabilit integral, doar daca imaginea preexistenta si cursorul mouse-lui nu au bitii setati similar. Pentru rapidizare pattern-ul poate fi pastrat atat normal cat si negat.
b) pornirea de la relatia din algebra booleana, atat desenarea cat si refacerea imaginii suprascrise de mouse se fac folosind operatorul SAU EXCLUSIV pe biti. Culoarea insa nu este cea codificata prin bitii pattern-ului (doar daca toti bitii imaginii sunt zero), ci cea combinata cu bitii imaginii. Ea poate fi calculata anticipat sau poate fi lasata se se modifice cand mouse-ul trece prin zone diferit colorate.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1526
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved