ورود

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 }