Preprocesorul. Gestionarea Ecranului în Mod Text

Previzualizare laborator:

Extras din laborator:

2. Gestionarea ecranului în mod text

Placile grafice tip VGA au doua moduri primare de functionare: modul text si cel grafic. În modul text se poate selecta unul din submodurile existente (listate mai jos). Pe "plansa" ecranului punctul de coordonate x = 1, y = 1 este considerat originea si este situat în coltul din stânga sus. Consideram x ca fiind axa orizontala – abscisa (numarul de coloane), iar y axa verticala – ordonata (numarul de linii). Valoarea lui x creste pe masura ce adaugam noi coloane spre dreapta, iar valoarea lui y creste pe masura ce cursorul coboara. Maximele pentru x si y sunt 40 si 25 pentru modurile (BW40 si C40) si 80, 25 pentru celelalte moduri text. Caracterele care sunt prezente pe ecran sunt memorate într-o zona de memorie împreuna cu atributul lor, fiecare pe 8 biti (sunt 256 de caractere în modul ASCII extins). Atributul unui caracter este determinat de culoarea fondului, culoarea caracterului si daca caracterul clipeste sau nu. Sunt rezervati 4 biti pentru culoarea caracterului (16 culori), 3 biti pentru culoarea fondului si 1 bit pentru clipire.

Functii de gestionare a ecranului în mod text (CONIO.H):

void textmode(int mod_nou);

- trece ecranul în mod text;

- daca modul se indica sub forma unei constante simbolice din enumerarea text_modes, este obligatoriu sa se includa <conio.h> (care le contine);

- constantele simbolice, valorile lor numerice si modurile corespunzatoare sunt:

LASTMODE -1 modul text anterior

BW40 0 alb-negru

C40 1 color, 40 de coloane

BW80 2 alb-negru, 80 de coloane

C80 3 color, 80 de coloane

MONO 7 monocrom, 80 de coloane

C4350 64 EGA 43 de linii si VGA 50 de linii

- la apelarea textmode(), fereastra curenta este restabilita la întregul ecran, iar atributele text curente sunt restabilite la normal (echivalent cu normvideo() )

- se foloseste numai dintr-un mod text în altul. Pentru a se trece temporar din modul grafic în modul text se foloseste restorecrtmode()

void textattr(int atr_nou);

- stabileste atributele textului fixând culorile pentru fundal (background) si pentru scris (foreground) într-o singura functie (în loc de textbackground() si textcolor());

- afecteaza caracterele afisate de functiile ce lucreaza în modul text-direct video output (ca cprintf()), dupa apelarea ei (caracterele deja afisate nu sunt afectate);

- parametru atr_nou are structura: Bbbbffff

bitul 7 B autorizeaza blinking-ul (valori 0-1)

bitii 6-4 bbb culoarea de fundal (valori 0-7)

bitii 3-0 ffff culoarea scrisului (valori 0-15)

- o parte din culori pot fi folosite atât pentru fundal(background) cât si pentru scris (foreground), altele numai pentru scris

- valorile atr_nou pentru video normal (WHITE pe BLACK) cât si video invers (BLACK pe LIGHTGRAY) sunt 0x0F si respectiv 0x70 (valori date în hexazecimal)

Atributul se poate seta prin formula:

attr=16*cul_fond+cul_scris+clipire

void textbackground(int culoare);

- stabileste noua culoare pentru fundal

- afecteaza functiile care afiseaza în mod text direct pe ecran

- culoare poate fi între 0 si 7, sau constantele simbolice corespunzatoare (având numele culorii respective - definite în <conio.h>);

void textcolor(int culoare);

- stabileste noua culoare pentru scris

- afecteaza apelurile ulterioare ale functiilor ce folosesc direct video output, nu si caracterele deja afisate;

- newcolor poate fi intre 0 si 15 - sau constantele simbolice corespunzatoare putându-se adauga 128 (BLINK) pentru blinking

Exemplu:

BLACK=0;WHITE=15;

- pot exista 8 culori pentru fond (de la 0 la 7) si 16 pentru text (de la 0 la 15)

void normvideo(void);

- selecteaza caracterele normale ca intensitate, refacând atributele textului (foreground si background) la valorile de la începutul programului(implicite);

- revine la intensitatea normala în caz ca s-a folosit înainte highvideo()

- afecteaza numai caracterele ce vor fi afisate direct, ulterior apelarii ei.

void lowvideo(void);

- selecteaza caracterele low-intensity (sterge bitul high intesity din culoarea (foreground) cu care se scrie)

void highvideo(void);

- selecteaza caracterele high-intensity (setând bitul corespunzator din culoarea de cu care se scrie (foreground))

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Preprocesorul. Gestionarea ecranului in mod text.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
10 pagini
Imagini extrase:
10 imagini
Nr cuvinte:
3 381 cuvinte
Nr caractere:
17 975 caractere
Marime:
18.28KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Calculatoare
Predat:
la facultate
Materie:
Calculatoare
Sus!