Vùng đệm màn hình hay còn gọi là bộ nhớ hiển thị được bắt đầu từ địa chỉ A000h:$0000h. Vì vậy, để hiển thị thông tin ra màn hình thì ta chỉ cần đưa thông tin vào vùng đệm màn hình bắt đầu từ địa chỉ trên là được.
Có nhiều cách để vẽ một điểm ra màn hình: có thể dùng các phục vụ của BIOS hoặc cũng có thể truy xuất trực tiếp vào vùng nhớ màn hình.
· Nếu dùng phục vụ của BIOS, dùng hàm 0Ch ngắt 10h.
· Nếu muốn truy xuất trực tiếp vào vùng đệm màn hình: Giả sử một điểm (x,y) được vẽ trên màn hình với độ phân giải 320x200x256 (mode 13h), điểm đó sẽ được định vị trong vùng đệm màn hình bắt đầu từ địa chỉ segment là A000h và địa chỉ offset được tính theo công thức:
Offset = y*320 + x = (y<<8)+(y<<6)+ x
Ta có thể viết một hàm để vẽ điểm (x,y) với màu là color như sau:
void PutPixel(int x,int y,int Color)
{
unsigned char far*video_buffer;
video_buffer=(unsigned char far *)0xA0000000L;
int offset = (y<<8)+(y<<6)+ x;
video_buffer[offset]=(unsigned char)Color;
}
» Tin mới nhất:
» Các tin khác: