View Full Version : سوال: روشن کردن پیکسل بدون استفاده از وقفه؟
FBAFC590
سه شنبه 04 فروردین 1388, 18:50 عصر
چه جوری میشه بدون استفاده از وقفه یک پیکسل رو روشن کرد (در وی جی ای)
hoax3r
سه شنبه 04 فروردین 1388, 19:36 عصر
این مثالی هست که در emu8086 موجوده یه نگاهی کنید فکر کنم بدردتون بخوره
سورس همراه توضیحات هست
FBAFC590
سه شنبه 04 فروردین 1388, 22:58 عصر
ممنون از راهنمایی تون ولی این مثال برای حالت تکست مود هست من برای حالت گرافیکی می خوام (روشن شد یک پیکسل)
hoax3r
چهارشنبه 05 فروردین 1388, 00:22 صبح
فرقشون جزئی هست تو حالت گرافیکی باید آدرسی رو 0A000h قرار داد بعد هر پیکسل یک بایت هست
هر رنگی خاستین توش میتونین بریزین
org 100h
; set video mode
mov ax, 13h
int 10h
; set segment register:
mov ax, 0A000h
mov ds, ax
mov [01h], 1110b
mov [02h], 1110b
mov [03h], 1110b
mov [04h], 1110b
mov [05h], 1110b
mov [06h], 1110b
mov [07h], 1110b
mov [08h], 1110b
mov [09h], 1110b
mov [0ah], 1110b
lizbazar
سه شنبه 11 فروردین 1388, 15:32 عصر
برای دسترسی مستقیم به کارت گرافیک باید از آدرس A000h استفاده کنی . و در es قرار بدی .
برای set کردن یک پیکسل با رنگ و مختصات خاص باید اینطور عمل کنی یعنی » offset = y*320 +x
که x و y مختصات مورد نظر هستند . برای تعیین رنگ از جدول pallete استفاده میکنی :
0 -- Black
8 -- Dark Gray
1 -- Blue
9 -- Light Blue
2 -- Green
10 -- Light Green
3 -- Cyan
11 -- Light Cyan
4 -- Red
12 -- Light Red
5 -- Magenta
13 -- Light Magenta
6 -- Brown
14 -- Yellow
7 -- Light Gray
15 -- White
حالا به این شکل در بافر کارت گرافیک set میکنی :
mov AL, Color { Load the color into AX }
mov ES:[DI], AL { Write to the VGA }
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.