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
Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License