CATEGORII DOCUMENTE |
Intreruperea 10h pune la dispozitia programatorului urmatoarele servicii pentru lucrul cu ecranul :
Aceste servicii sunt prezentate detailat in continuare. Desi ofera si posibilitati de scriere pe ecran, nu este recomandata utilizarea acestora datorita vitezei reduse. Variante mai performante sunt cele care folosesc INT 21h si mai ales cele cu scriere directa in memoria de ecran.
INT 10h, 00h (0) Stabilire mod video
Intrari AH 00h;
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
Tabelul modurilor video
Adresa de
Mod Tip Rezolutia Adaptor Culori memorie
00h Text 40 x 25 All but MDA 16 gray B8000
01h Text 40 x 25 All but MDA 16 fore/8 back B8000
02h Text 80 x 25 All but MDA 16 gray B8000
03h Text 80 x 25 All but MDA 16 fore/8 back B8000
04h Graphics 320 x 200 All but MDA 4 B8000
05h Graphics 320 x 200 All but MDA 4 gray B8000
06h Graphics 640 x 200 All but MDA 2 B8000
07h Text 80 x 25 MDA,EGA b/w B0000
08h Graphics 160 x 200 PCjr 16 B0000
09h Graphics 320 x 200 PCjr 16 B0000
0Ah Graphics 640 x 200 PCjr 4 B0000
0Bh Reserved (internal to EGA)
0Ch Reserved (internal to EGA)
0Dh Graphics 320 x 200 EGA 16 A0000
0Eh Graphics 640 x 200 EGA 16 A0000
0Fh Graphics 640 x 350 EGA b/w A0000
10h Graphics 640 x 350 EGA 16 A0000
-------- ----- ------ -------- ----- ------
Observatii
Atunci cand modul video se schimba, ecranul se sterge automat. Totusi, nu se recomanda folosirea acestui serviciu pentru stergerea ecranului deoarece este mai lent decat serviciile normale de stergere a ecranului (serviciile 06h sau 07h).
Pentru a evita stergerea ecranului se va chema intreruperea cu bitul cel mai semnificativ din AL in 1.
In modul grafic, cursorul nu este afisat (el poate fi totusi citit).
Schimbarea modului video schimba si dimensiunea cursorului.
Se poate folosi serviciul 0Fh al intreruperii 10h pentru a citi modul video curent.
Vezi si : INT 10h, 06h INT 10h, 07h INT 10h, 0Fh.
INT 10h, 01h (1) - Stabilire dimensiune cursor
Ajusteaza dimensiunea cursorului prin stabilirea liniei de inceput si de sfarsit.
Intrari: AH 01h;
CH Linia de inceput a cursorului (0 - 31);
CL Linia de sfarsit a cursorului (0 - 31).
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
Valorile liniilor de inceput si sfarsit ale cursorului (CH si CL)
Adaptor |
Permise |
Implicite |
||
Inceput |
Sfarsit |
Inceput |
Sfarsit |
|
CGA | ||||
MDA | ||||
EGA, VGA |
7(12) Depinde de mod |
Observatii
Numerotarea liniilor incepe din partea superioara a blocului unui caracter (0) si creste in jos. Daca se specifica o linie de sfarsit cu un numar mai mic decat al celei de inceput, cursorul va apare format din doua linii conform principiului: dupa ultima linie a blocului de caracter urmeaza prima linie.
Punerea in 1 a bitilor 4 sau 5 din CL sau CH produce rezultate dependente de placa grafica, si de regula se evita.
Exista o singura dimensiune a cursorului la un moment dat pentru toate paginile video
Clipirea cursorului nu poate fi dezactivata (este produsa de hardware), dar se poate face cursorul invizibil. In acest scop se pozitioneaza cursorul cu serviciul 02h in afara zonei vizibile a ecranului (de exemplu pe linia 25).
Acest serviciu afecteaza doar modurile text; in modurile grafice cursorul nu este afisat.
Pentru citirea dimensiunii cursorului se poate folosi serviciul 03h.
Vezi si: INT 10h, 03h INT 10h, 02h .
INT 10h, 02h (2) - Stabilire pozitie cursor
Seteaza pozitia cursorului (linie si coloana) pentru o pagina afisata specificata.
Intrari: AH 02h;
BH Numarul paginii afisate;
DH Linie;
DL Coloana.
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
-------- ----- ------ -------- ----- ------
Observatii: Acest serviciu poate pozitiona cursorul pe pagina activa afisata sau pe o pagina inactiva.
In modurile grafice, acest serviciu seteaza pozitia logica a cursorului, chiar si daca cursorul in sine nu este afisat (cursorul nu este afisat in nici unul din modurile grafice).
Pentru a face cursorul invizibil, acesta se poate pozitiona la linia 25.
Coltul stanga sus al imaginii este DH = 0h, DL = 0h, iar coltul dreapta este DH = 18h (24), DL = 27h (39) pentru ecran cu 40 de coloane, sau 4Fh (79) pentru ecran cu 80 de coloane.
A se vedea serviciul 05h pentru o lista de numere de pagina valide pentru diferitele moduri de afisare. Deoarece servi ciul nu verifica valoarea, pot aparea rezultate eronate daca se specifica un numar de pagina invalid. Numarul paginii pentru modurile grafice este 0.
Vezi si : INT 10h, 03h INT 10h, 05h.
Raporteaza pozitia (linia si coloana) si marimea cursorului pentru pagina afisata specificata.
Intrari: AH 03h;
BH Numarul paginii afisate.
Rezultate: CH Linia de start a cursorului;
CL Linia de sfarsit a cursorului;
DH Linie;
DL Coloana.
Registre modificate: AX, SP, BP, SI, DI.
Valorile liniilor de inceput si sfarsit ale cursorului (CH si CL)
Adaptor |
Permise |
Implicite |
||
Inceput |
Sfarsit |
Inceput |
Sfarsit |
|
CGA | ||||
MDA | ||||
EGA, VGA |
7(12) Depinde de mod |
Observatii: Acest serviciu poate raporta pozitia cursorului in pagina activa, afisata, sau intr-o pagina inactiva.
Deoarece exista numai un cursor hardware, linia de start a cursorului (CH) si cea de sfarsit (CL) (si deci marimea cursorului) vor avea aceeasi valoare indiferent ce numar de pagina a fost specificat.
In modurile grafice, acest serviciu raporteaza pozitia logica a cursorului, chiar daca cursorul nu este afisat.
Coltul din stanga sus al imaginii este DH = 0h, L = 0h, pe cand cel din dreapta jos este DH = 18h(24), DL = 27h (39) pentru modul de 40 de coloane sau 4Fh (79) pentru modul de 80 de coloane.
A se vedea Serviciul 05h pentru o lista de numere de pagina valide pentru diferite moduri de afisare.
Deoarece serviciul nu verifica valorile, pot sa apara rezultate eronate daca se specifica un numar invalid.
Numarul paginii pentru modul grafic este 0.
Se foloseste Serviciul 02h pentru a seta pozitia curenta a cursorului.
Se foloseste Serviciul 01h pentru a seta marimea curenta a cursorului.
Vezi si: INT 10h, 01h INT 10h, 02h INT 10h, 05h.
Raporteaza pozitia si starea creionului optic.
Intrare: AH 04h.
Rezultate: AH Stare (0=neactivat, 1=activat);
BX Numarul coloanei unui pixel (0-639);
CH Numarul liniei unui pixel (0-199);
CX Numarul liniei pentru modurile 0Fh-10h(0-nnn);
DH Numarul liniei caracterului (0-24);
DL Numarul coloanei caracterului (0-39 sau 0-79).
Registre modificate: AX, SP, BP, SI, DI.
Observatii: Pozitia este raportata sub doua forme: pozitia caracterului (linie in DH, coloana in DL), sau locatia pixelului (linia raster in CH, coloana/punct in BX).
Daca rezulta AH este 0, creionul optic nu este suportat.
Coordonatele pixelului pentru pozitia creionului optic nu sunt exacte. Coordonatele y sunt intotdeauna un multiplu de 2, pe cand coordonatele x sunt un multiplu de 4 pentru rezolutia 320x200 si multiplu de 8 pentru rezolutia de 640x200.
Seteaza pagina activa afisata.
Intrare: AH 05h;
AL Numarul paginii afisate.
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
Valorile valide de pagina (AL)
Mod video Pagini valide
00h 0-7
01h 0-7
02h 0-3
03h 0-3
04h 0
05h 0
06h 0
07h 0
08h 0
09h 0
0Ah 0
0Dh 0-7
0Eh 0-3
0Fh 0-1
10h 0-1
-------- ----- ------ -------- ----- ------
Observatii: Continutul paginii afisate nu este distrus cand pagina curenta este modificata. De fapt, se poate scrie pe o pagina inactiva, apoi sa se schimbe obtinand astfel modificari rapide ale ecranului.
Folositi serviciul 0Fh pentru a determina pagina activa curenta.
Vezi si: INT 10h, 0Fh.
Deruleaza fereastra specificata, in sus, cu numarul de linii specificat.
Intrare: AH 06h;
AL Numarul de linii de derulat (daca este 0, sterge intreaga fereastra);
BH Atributele display-ului pentru liniile goale;
CH Numarul liniei din coltul stanga sus;
CL Numarul coloanei din coltul stanga sus;
DH Numarul liniei din coltul dreapta jos;
DL Numarul coloanei din coltul dreapta jos.
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
-------- ----- ------ -------- ----- ------
Liniile sunt inserate in partea de jos a ecranului, mutand toate liniile in sus. Noile linii sunt scrise cu atributuele stabilite de valoarea din BH.
Liniile care dispar din partea de sus a ferestrei se pierd.
Observatii: Daca numarul de linii de derulat este specificat ca find 0, intreaga fereastra este umpluta cu spatii.
Folositi serviciul 07h pentru a derula fereastra in jos.
Acest serviciu afecteaza numai pagina activa curenta afisata.
Vezi si: INT 10h, 07h.
Deruleaza fereastra specificata in jos cu un numar specificat de linii.
Intrari: AH 07h;
AL Numarul de linii de derulat (daca este 0,
sterge intreaga fereastra);
BH Afiseaza atributele pentru liniile libere;
CH Numarul liniei din coltul stanga sus;
CL Numarul coloanei din coltul stanga sus;
DH Numarul liniei din coltul dreapta jos;
DL Numarul coloanei coltul dreapta jos.
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI
Liniile sunt introduse in partea de sus, iar toate celelalte linii se deplaseaza in jos. Noile linii sunt scrise cu caractere blanc avand atributele date de valoarea din BH. Liniile care dispar in partea de jos a ferestrei se pierd.
Observatii: Daca numarul de linii de derulat este dat ca fiind 0, intreaga fereastra este umpluta cu spatii.
Folositi serviciul 06h pentru a derula fereastra in sus.
Acest serviciu afecteaza numai pagina activa curenta.
Vezi si: INT 10h, 06h
Raporteaza valoarea ASCII si (in modul text) atributele caracterului de la locatia curenta a cursorului in pagina specificata.
Intrare: AH 08h;
BH Afiseaza numarul paginii (numai in modurile text).
Rezultate: AH Atributele caracterului (mod text);
AL Valoarea ASCII a caracterului.
Registre modificate: AX, SP, BP, SI, DI.
Observatii: In modul grafic, pagina afisata nu mai trebuie specificata.
Atributele si caracterul curent pot fi obtinute pentru orice pagina, chiar si daca pagina nu este cea activa, curenta.
Folositi Serviciul 09h pentru a scrie un caracter cu atribute specifice.
Vezi si: INT 10h, 09h
Afiseaza caracterul dat, cu atributul specificat, de un numar de ori dat.
Intrare: AX 09h;
AL Valoarea ASCII a caracterului;
BH Afiseaza pagina (numai in modul text);
BL Atribute/Culoare;
CX De cate ori se scrie caracterul.
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
Observatii: Afisarea incepe la locatia curenta a cursorului pe pagina afisata, specificata, dar cursorul nu este miscat.
In modul text, caracterele care se extind peste marginea din dreapta ecranului sunt atasate liniiei urmatoare; in modul grafic, acest lucru nu se intampla.
Acest serviciu afiseaza caracterele control ca pe niste caractere printabile, in loc de echivalentul acestora pentru controlul cursorului. De exemplu, daca AL este 13, atunci se va afisa nota muzicala, in loc de Carriage Return.
In modurile grafice, daca atributul (BL) este dat cu bitul cel mai semnificativ in 1, se face un XOR intre bitii de culoare ai caracterului specificat si bitii de culoare ai caracterului curent. Se poate utiliza aceasta optiune pentru scrierea de caractere iar apoi stergerea acestora.
Vezi si: INT 10h, 0Ah INT 10h, 0Eh INT 10h, 13h INT 10h, 08h.
Afiseaza caracterul specificat de un numar de ori dat.
Intrare: AH 0Ah;
AL Valoarea ASCII a caracterului;
BH Afiseaza numarul paginii (numai mod text);
CX Numarul de ori de scriere al caracterului.
Rezulta: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
Afisarea incepe la locatia curenta a cursorului pe pagina afisata, specificata, dar cursorul nu este miscat.
Observatii: Folositi Srviciul 09h pentru modul grafic, deoarece permite sa se schimbe culorile.
In modul text, caracterele care se intind peste marginea dreapta a ecranului sunt lipite liniiei urmatoare; in modul grafic acest lucru nu se intampla.
Acest serviciu afiseaza caracterele control ca pe niste caractere printabile, in loc de echivalentul acestora pentru controlul cursorului. De exemplu, daca AL este 13, atunci se va afisa nota muzicala, in loc de Carriage Return.
Diferenta dintre acest serviciu si Serviciul 09h este ca, acest serviciu nu acorda dreptul de a specifica octetul de atribute
Acest serviciu foloseste atributul de la pozitia curenta a cursorului pentru noul caracter.
Vezi si: INT 10h, 09h INT 10h, 0Eh INT 10h, 13h.
Selecteaza paleta de culori pentru diferitele moduri de afisare.
Intrare: AX 0Bh;
BH Id-ul Paletei de culori (0 sau 1, vezi mai jos);
BL Valoarea culorii sau paletei, pentru a fi utilizata cu ID-ul Culorii (0 -31).
Rezultate: Nici unul.
Registre midificate: AX, SP, BP, SI, DI.
Daca BH (ID-ul Paletei de Culori) este 0, atunci:
. Seteaza culoarea de fond pentru rezolutia 320 x 200
. Seteaza culoarea chenarului pentru modurile text
. Seteaza culoarea frontala pentru rezolutia de 640 x 200
BL contine culoarea de utilizat. EGA-ul va seta culoarea de fond pentru rezolutia de 640 x 200.
Cand se seteaza culorile chenarelor pentru modurile text, culorile 16 -31 vor selecta setul de fond de intensitate mare.
Daca BH (ID-ul paletei de culori) este 1, atunci:
. Selecteaza paleta de culori pentru rezolutia de 320 x 200
Valoarea in BL determina care combinatie de paleta sa fie utilizata, dupa cum este definit mai jos:
-------- ----- ------ -------- ----- ------ Paleta 0 (BL = 0)
Valoare Pixel Culoare
0 Culoarea curenta de fond
1 Verde
2 Rosu
3 Maro
-------- ----- ------ -------- ----- ------ Paleta 1 (BL = 1)
Valoare Pixel Culoare
0 Culoarea curenta de fond
1 Cyan
2 Magenta
3 Alb
Vezi si: INT 10h, 10h.
INT 10h, 0Ch (12) Scriere pixel
Scrie un punct pixel de culoare data la coordonatele de ecran specificate.
Intrare: AH 0Ch;
AL Culoare pixel;
CX Pozitia pe orizontala a pixelului;
DX Pozitia pe verticala a pixelului;
BH Afiseaza numarul paginii (modurile grafice cu mai mult de o pagina).
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
-------- ----- ------ -------- ----- ------ Valori valide
Mode CX(Horizontal) DX(Vertical) AL(Pixel Color) BH(Page Number)
04h 0-319 0-199 0-3
05h 0-319 0-199 0-3
06h 0-639 0-199 0-1
0Dh 0-319 0-199 0-15 0-7
0Eh 0-639 0-199 0-15 0-3
0Fh 0-639 0-349 0-1 0-1
10h 0-639 0-349 0-15 0-1
-------- ----- ------ -------- ----- ------
Observatii: Daca culoarea pixelului (AL) este data cu bitul cel mai semnificativ in 1, se face un XOR intre bitii de culoare ai caracterului specificat si bitii de culoare ai caracterului curent. Se poate utiliza aceasta optiune pentru scrierea de caractere iar apoi stergerea acestora.
Vezi si: INT 10h, 0Dh.
Raporteaza culoarea pixelului la coordonatele de ecran precizate.
Intrare: AH 0Dh
CX Pozitia pe orizontala a pixelului
DX Pozitia pe verticala a pixelului
BH Afiseaza numarul paginii (modurile grafice cu mai mult de o pagina)
Rezultate: AL Culoarea pixelului
Registre modificate: AX, SP, BP, SI, DI
-------- ----- ------ -------- ----- ------ Valori valide
Mode CX(Horizontal) DX(Vertical) AL(Pixel Color) BH(Page Number)
04h 0-319 0-199 0-3
05h 0-319 0-199 0-3
06h 0-639 0-199 0-1
0Dh 0-319 0-199 0-15 0-7
0Eh 0-639 0-199 0-15 0-3
0Fh 0-639 0-349 0-1 0-1
10h 0-639 0-349 0-15 0-1
-------- ----- ------ -------- ----- ------
Observatii: Pentru modurile 0Dh pana la 10h, numarul paginii este necesar sa fie precizat in BH.
Vezi si: INT 10h, 0Ch.
INT 10h, 0Eh (14) Scrierea caracterului in modul Teletype (TTY)
Scrie un caracter la locatia curenta a cursorului si il avanseaza.
Intrare: AH 0Eh;
AL Caracterul de scris;
BL Culoarea (numai modurile grafice);
BH Numarul paginii afisate (numai modurile text).
Rezultat: Nici unul.
Observatii: In modurile text, caracterul afisat are atributele de afisare ale caracterului anterior, care ocupa acea locatie de ecran. In modurile grafice, este necesar sa se precizeze culoarea de front (in BL) de fiecare data, cand se utilizeaza acest serviciu.
In modurile text, caracterele pot fi scrise sa afiseze alte pagini decat cea activa.
Acest serviciu raspunde la valorile ASCII ale caracterelor 07h (bell), 08h (backspace), 0Ah (linefeed), si 0Dh (carriage return). Toate celelalte valori ASCIIau ca efect afisarea unui caracter, mutand cursorul cu o pozitie.
Daca cursorul se afla la sfarsitul unei linii, este atasat urmatoarei linii. Daca cursorul este la sfarsitul ultimei linii a ecranului, ecranul este derulat in sus iar atributul de afisare pentru intreaga noua linie este luat de la ultimul caracter al liniei anterioare.
Vezi si: INT 10h, 09h INT 10h, 0Ah INT 10h, 13h.
Raporteaza modul video curent, numarul pozitiilor caracterelor per linie in acel mod video, si pagina curenta afisata.
Intrare: AH 0Fh;
Rezultte: AL Mod video;
AH Numar de coloane de caractere per linie;
BH Numarul paginii active afisate.
Registre modificate: AX, SP, BP, SI, DI.
Observatii: Vezi serviciul 00h pentru un tabel de moduri video si cum se seteaza modul video curent.
Vezi si: INT 10h, 00h
Seteaza registrii de paleta si contur la EGA/VGA.
Intrare: AH 10h;
AL Subserviciu:
0-Seteaza registrul paletei:
BL Registru paleta;
BH Valoarea de setat;
1-Seteaza registrul culorii de contur:
BH Valoarea de setat;
2-Seteaza registrii paletei si conturului:
ES:DX Pointerul listei de culori.
3-Activeaza bitul intensificare/clipire:
BL 0 - Activeaza intensificare;
1 - Activeaza clipire.
Subservicii numai VGA: 7-BL = registrul culoare de luat in BH;
8-Rezulta valoarea conturului in BH;
9-Rezulta lista registrilor paletei si
valoarea conturului:
ES:DX pointer catre lista;
10h-Seteaza registrul culorii:
BX Registrul de setat;
CH,CL,DL verde/albastru/Rosu;
1Ah-Informatie despre culoarea paginii: BL Mod;
BH Pagina.
Registrii modificati: AX, SP, BP, SI, DI.
Sunt 16 registri de palete in modurile de afisare EGA/VGA si un registru de contur. Acest serviciu ofera utilizatorului control asupra acestor registri.
Subserviciul 0 (Setarea Registrului Paletei)
Fiecare din cei 16 registrii de palete poate lua o valoare de la 1 la 64.
Valoarea in BH are forma urmatoare:
Bit 7 - Rezervat
Bit 6 - Rezervat
Bit 5 - Rosu Secundar
Bit 4 - Verde Secundar
Bit 3 - Albastru Secundar
Bit 2 - Rosu
Bit 1 - Verde
Bit 0 - Albastru
Culorile secundare au intensitati de 1/3, pe cand culorile normale au o intensitate de 2/3. De exemplu, BH = 02h va produce verde, BH = 10h va produce un verde pal, iar BH = 02h va produce un verde intens.
Valorile implicite pentru registrii paletelor, care sunt aceeasi ca cei ai adaptorului grafic color (CGA), sunt definiti mai jos:
-------- ----- ------ -------- ----- ------
Registru de Valoare culoare Culoare
paleta
00h 00h Negru
01h 01h Albastru
02h 02h Verde
03h 03h Cian
04h 04h Rosu
05h 05h Mov
06h 14h Maro
07h 07h Alb
08h 38 Gri inchis
09h 39h Albastru deschis
0Ah 3Ah Verde deschis
0Bh 3Bh Cian deschis
0Ch 3Ch Rosu deschis
0Dh 3Dh Mov deschis
0Eh 3Eh Galben
0Fh 3Fh Alb intens
-------- ----- ------ -------- ----- ------
Subserviciul 1 (Seteaza registrul de contur)
Acest subserviciu seteaza culoarea conturului. Subserviciul este suportat numai in moduri de 200 de linii.
Subserviciul 2 (Seteaza toti registrii paletelor si de contur)
ES:DX indica o lista de 17 octeti de culoare, in care primii 16 octeti contin in valori noi pentru cei 16 registri ai paletelor si ultimul octet contine este noua valoare a registrului de contur.
In mod normal, bitul 7 al octetului de atribut este folosit pentru a indica clipirea. Cu acest subserviciu, bitul 7 poate indica clipirea (BL=1) sau intensitatea de fond (BL=0).
Subserviciul 3 (Comuta bitul intensitate/clipire )
Numai VGA:
Subserviciul 7 (Citeste valoarea registrilor de culoare)
Subserviciul 8 (Citeste valoarea conturului)
Subserviciul 9 (Citeste registrii de culoare)
Subserviciul 10h (Seteaza Registrii de culoare)
Subserviciul 12h (Modifica registrii de culoare)
Subserviciul 13h (Seteaza pagina)
Subserviciul 15h (Citeste Registrul de culoare)
Subserviciul 17h (Incarca Registrii de culoare in memorie)
Subserviciul 1Ah (Citeste informatia de culoare a paginii)
Vezi si: INT 10h, 0Bh.
Modifica fonturile din adaptorul grafic in fonturi predefinite sau definite de utilizator in ambele moduri, text sau grafic.
Intrare: AH 11h;
AL Subserviciu:
00h -Incarca fontul definit de utilizator (moduri text):
ES:BP Indicator catre tabelul de fonturi;
CX Numarare caractere;
DX Offset-ul tabelei de caractere;
BL Blocul de fonturi de incarcat (0-3);
BH Octeti per caracter;
01h - Incarca fontul de 8 x14 puncte (setul monocrom):
BL Blocul de fonturi de incarcat (0-3);
02h - Incarca fontul dublu-punct, 8 x 8 de caractere (modurile text):
BL Blocul de fonturi de incarcat (0-3);
03h - Seteaza specificatorul de bloc (modurile text):
BL Bitii 3, 2: Selecteaza blocul (0-3) de
utilizat cand bitul 3 al atributului este 1;
Bitii 1, 0: Selecteaza blocul (0-3) de
utilizat cand bitul 3 al atributului este 0 ;
04h -Incarca fontul de 8 x 16 puncte (VGA):
BL Blocul de fonturi de incarcat;
10h - Incarca fontul definit de utilizator (modurile text):
ES:BP Indicator catre tabelul de fonturi;
CX Numarul de caractere;
DX Offset-ul tabelei de caractere;
BL Blocul de fonturi de incarcat (0-3);
BH Octeti per caracter.
11h - Incarca fontul de 8 x 14 puncte (setul monocrom)
BL Blocul de fonturi de incarcat (0-3):
12h - Incarca fontul 8 x 8 dublu-punct (modurile text)
BL Blocul de fonturi de incarcat (0-3);
20h - Incarca fontul de 8 x 8 puncte definit de utilizator (modurile grafice):
ES:BP Indicator catre tabelul grafic al utilizatorului pentru caracterele grafice 128-255.
INT 1Fh este setat catre acest indicator.
21h - Incarca fontul de caractere definit de utilizator
(modurile grafice);
ES:BP Indicator catre tabelul grafic pentru
caracterele grafice 0-255.INT 43h da indicatorul.
CX Octeti per caracter;
BL Numarul de linii:
00h - DL contine numarul de linii;
01h - 14 (0Eh) linii;
02h - 25 (19h) linii;
03h - 43 (2Bh) linii.
22h - Incarca fontul ROM de 8 x 14 puncte (modurile
grafice):
BL Numarul de linii (Acelasi format ca
subserviciul 21h);
23h - Incarca fontul ROM 8 x 8 dublu-punct (modurile grafice):
BL Numarul de linii (Acelasi format ca
subserviciul 21h);
24h -Incarca fontul 8 x 16 de caractere:
BL Numarul de linii (Acelasi format ca
Subserviciul 21h);
30h - Rezulta informatii despre font:
BH Tipul de pointer care rezulta:
00h - Pointerul curent INT 1Fh;
01h - Pointerul curent INT 44h;
02h - Pointerul ROM 8 x 14 puncte ;
03h - Pointerul ROM 8 x 8 dublu-punct;
04h - Pointerul ROM 8 x 8 dublu-punct (sus);
05h - Pointerul ROM text alternativ 9 x 14;
06h - 8 x 16 (VGA);
07h - 9 x 16 (VGA).
Rezultate: (Numai Subserviciul 30h - Da informatii despre font);
ES:BP Indicator catre tabelul specificat in BH;
CX Linii per caracter;
DL Linii.
Vezi si: INT 10h, 12h.
Rezulta informatii asupra EGA si permite selectarea unei rutine alternative EGA Print Screen.
Intrare: AH 12h;
BL Subserviciu:
10h - Rezulta informatia EGA;
20h - Selecteaza rutina EGA Print Screen
alternativa.
Numai VGA:
30h - Seteaza numarul de linii 0-200, 0-350, 2-400. Se activeaza dupa schimbarea modului;
31h - AX = 0/1 -> permite/interzice incarcarea paletei odata cu noul mod;
32h - AL = 0/1 -> Video Pornit/Oprit;
33h - AL = 0/1 -> Insumarea scale de gri Pornit/Oprit;
34h - AL=0/1 ->Scalarea cursorului cu fontul pornit/oprit;
35h - Schimba intre placa video si video de pe placa de baza:
AL = 0 adaptor pornit, es:dx salveaza starea;
= 1 video de pe placa de baza pornit;
= 2 video activ oprit, es:dx salveaza starea;
= 3 video inactiv pornit, es:dx salveaza starea;
36h - Porneste/opreste ecranul :
AL = 0/1 -> Ecran pornit/oprit.
Rezultate: (numai pentru Subserviciul 10h):
BH Modul rezultat:
00h Mod color (domeniu de adresare 3Dxh);
01h Mod monocrom (domeniu de adresare 3Bxh);
BL Memorie EGA
00h 64K;
01h 128K;
02h 192K;
03h 256K;
CH Bitii adaptorului;
CL Setarile comutarii.
Vezi si: INT 10h, 11h.
Scrie un sir de caractere cu atributele precizate pe orice pagina afisata.
Intrare: AH 13h;
AL Subserviciul (0-3);
BH Afiseaza numarul paginii;
BL Atribute (Subseviciile 0 si 1);
CX Lungimea sirului;
DH Pozitia liniei unde urmeaza sa fie
scris sirul;
DL Pozitia coloanei unde urmeaza sa fie scris sirul;
ES:BP Indicatorul catre sirul de scris.
Rezultate: Nici unul.
Registre modificate: AX, SP, BP, SI, DI.
-------- ----- ------ -------- ----- ------
Observatii:
Acest serviciu are 4 subservicii dupa cum urmeaza:
AL=00h: Aplica tuturor caracterelor atributele din BL;
nu modifica cursorul;
AL=01h: Aplica tuturor caracterelor atributele din BL;
modifica cursor;
AL=02h: Foloseste atributele din sir; nu modifica
cursorul;
AL=03h: Foloseste atributele din sir; modifica cursorul.
Vezi si: INT 10h, 09h INT 10h, 0Ah INT 10h, 0Eh.
Permite utilizarea de fonturi definite de utilizator si schimbarea atributului de intensitate mare intr-un alt atribut pe un ecran LCD.
Intrare: AH 14h;
AL Subserviciu:
00h - Incarca fontul precizat de utilizator:
ES:DI Indicator catre primul tabel de fonturi;
CX Numarul de caractere de stocat (1 - 256);
DX Offset-ul caracterului in buffer-ul de fonturi din RAM;
BL Blocul de fonturi de incarcat:
0 - Font principal (bloc 0);
1 - Font alternativ (bloc 1);
BH Octeti per character (1 - 255);
01h - Incarca blocul de fonturi implicit din ROM:
BL Blocul de fonturi de incarcat:
0 - Font principal (bloc 0);
1 - Font alternativ (bloc 1);
02h - Transformarea atributului de intensitate mare:
BL Schema de transformare:
0 - Ignora atributul de intensitate mare;
1 - Transforma in video invers;
2 - Transforma in subliniat;
3 - Selecteaza font alternativ.
Rezultate: Nici unul.
Vezi si: INT 10h, 15h.
Rezulta tipul de adaptor video alternativ si un tabel care descrie caracteristicile ecranului curent.
Intrare: AH 15h.
Rezulta: AX Tipul de adaptor video alternativ:
00h - Nici un adaptor alternativ;
5140h - LCD;
5153h - Tipul CGA de afisare;
5151h - Tipul monocrom de afisare;
ES:DI Indicator catre tabelul de 7 cuvinte al adaptorului video curent (vezi mai jos).
Observatii: Forma tabelului adaptorului video este urmatoarea:
Cuvant 1 - Numarul modelului video;
Cuvant 2 - Pixeli pe metru pe varticala;
Cuvant 3 - Pixeli pe metru pe orizontala;
Cuvant 4 - Total pixeli pe verticala;
Cuvant 5 - Total pixeli pe orizontala;
Cuvant 6 - Inaltimea pixel in micrometrii
(directie verticala);
Cuvant 7 - Latimea pixel in micrometrii
(directie orizontala);
-------- ----- ------ -------- ----- ------ Tabelul adaptoarelor video compatibile PC
Cuvant Monocrom CGA LCD (CGA) LCD (Monocrom)
1 5151h 5153h 5140h 5140h
2 0 0498h 08E1h 0
3 0 0A15h 0987h 0
4 0 00C8h 00C8h 0
5 0 0280h 0280h 0
6 0 0352h 0172h 0
7 0 0184h 0172h 0
Vezi si: INT 10h, 14h.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1363
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved