13h x-mode
Stronnicowani
procedure x_mode;
asm
mov ax,0013h
int 10h
mov dx,3c4h
mov ax, 0604h
out dx,ax
mov dx,3d4h
mov ax,0014h
out dx,ax
mov dx.3d4h
mov ax,0e317h
out dx,ax
ret
Wywołanie powyższej procedury zmienia organizację pamięci ekranu. Jeden bajt zapisany do pamięci ekranu powoduje zapalenie 4 kolejnych punktów na ekranie monitora. Szerokość ekranu w bajtach wynosi więc 80. Wynika z tego, że jedna strona graficzna zajmuje 16kB pamięci i istnieje możliwość utworzenia w sumie 4 stron graficznych.
Możliwość zapalenia jednego punktu daje rejestr Map Mask (adres 3c4h/`3c5h indeks 02h). Umożliwia on wybór punktu, który z pozostałych 4 ma zostać zapalony. Np zapisanie do Map Mask wartości 00001000b powodyje zapalenie w danej 4 tylko 1. punktu od prawej, a 00000011b - 2 od lewej
Zwiększenie rozdzielczości
procedure tryb_320_240;
asm
mov al,0e3h
mov dx,3c2h
out dx,al
mov dx,3d4h
mov ax,2c11h
out dx,ax
mov ax,0d06h
out dx,ax
movax,03e07h
out dx,ax
mov ax,0ea10h
out dx,ax
mov ax,0ac11h
out dx,ax
mov ax,0df12h
out dx,ax
mov ax,0e715h
out dx,ax
mov ax,0616h
out dx,ax
ret
Powyższa procedura nie zmienia sposobu zarządzania pamięcią ekranu. Wywołana dla w trybie 13h spowoduje po wyświetleniu 200 pierwszych linii powtórzenie pierwszych 40, ale w trybie x-mode gdzie istnieją 4 strony indeksowania pozwoli na utworzenie 3 pełnych stron
Podobne strony
Podobne Strony
wersja strony: 3, ostatnia edycja: 21 Jul 2009 07:53