Inicjalizacja trybu graficznego VGA mov, int, sobie, nam, tryb, graficznego, inicjalizacja, trybu, vga, 0x0b
, , mov, int, al, i, w, sobie, do, nam, tryb, graficznego, inicjalizacja, trybu, vga, 0x0b
, ah0x00
, ah, na, rozdzielczość, też, już, trzeba, wybrać, 0x10
, tym, char, to, ah0x05
, bh, bl, momencie, tryb
, 0x00
, strona
, potrzebna, koloroacutew, tego, dla, jaka, wybierac, naszych, jest, proponuję, będzie, danym, programie, jego, 640x480x16, sam, wybierzmy, mamy, dostępna, początek, 0x12, najpierw, liczbę, służy, tabela, oznaczenie, potzreb, z, tryby, tryb=0x12
asm
, specyfikacjikiedy, zakresu, 0x0d0x13
char, 0x10
po, zmieni, wystąpieniu, 0x10
no, powyższego, kodu, się, 0x000x07, teraz, więcej, niż, ma, strona, być, 0
char, strona=0x00
asm
, ktoacutera, jedna, załoacuteżmy, że, wyświetlana, zrobić, używać, grafiki
można, 0x10
, ax0x0002
int, close
asm
mov, tła, razu, poniższą,
, funkcję
void, ustalić, od, można, kolor, ekranu, funkcja, tekstowym, ramki, wokoacuteł, 0x10
char, kolor=0x05
asm
, udostępnia, trybie, 0x0b, przerwania, wszystkie, zawierającą, kolor
, kolor
, 0x10
w, zakończenie, programu, 0x10
warto, strona=0x00
, przechodzimy, przykładu, inicjalizacji, jeżeli, uruchomić, czyli, instrukcje
void, kolor=0x00, powyższe, funkcję, inicjującą, asm
, tryb=0x12, tekstowy, przywroacutecić, najprościej, initchar, wybrany,
Czwartek 03 Kwiecień 2025r.
Godz 00:00:00
Postów: 251
Inicjalizacja trybu graficznego VGA
Dla naszych potzreb trzeba najpierw sobie wybrać rozdzielczość i liczbę kolorów jaka nam będzie w danym programie potrzebna. Do tego służy tabela w specyfikacji.Kiedy mamy już wybrany tryb przechodzimy do inicjalizacji. Do przykładu wybierzmy tryb 640x480x16. Jego oznaczenie to 0x12. Na sam początek proponuję wybierac tryby z zakresu 0x00-0x07 i 0x0D-0x13
char tryb=0x12;
asm
{
MOV AH,0x00
MOV AL, tryb
INT 0x10
}
Po wystąpieniu powyższego kodu zmieni się nam rozdzielczość. Teraz trzeba wybrać która strona ma być wyświetlana, jeżeli jest dostępna więcej niż jedna. Załóżmy że 0
char strona=0x00;
asm
{
MOV AH,0x05
MOV AL, strona
INT 0x10
}
No i w tym momencie już można używać grafiki
Można też ustalić sobie od razu kolor tła i w trybie tekstowym ramki wokół ekranu. To udostępnia nam funkcja 0x0B przerwania 0x10
char kolor=0x05;
asm
{
MOV AH, 0x0B
MOV BH, 0x00
MOV BL, kolor
INT 0x10
}
W tym momencie najprościej sobie zrobić funkcję inicjującą zawierającą wszystkie powyższe instrukcje.
void init(char tryb=0x12, char kolor=0x00, char strona=0x00)
{
asm
{
MOV AH,0x00
MOV AL, tryb
INT 0x10
MOV AH,0x05
MOV AL, strona
INT 0x10
MOV AH, 0x0B
MOV BH, 0x00
MOV BL, kolor
INT 0x10
}
}
Warto też na zakończenie programu przywrócić tryb tekstowy. Czyli uruchomić poniższą funkcję:
void close()
{
asm
{
MOV AX,0x0002
INT 0x10
}
}
Darmowy hosting zapewnia PRV.PL