ورود

View Full Version : سوال: خطا در رفتن به مُد گرافیکی در Emu8086



Kamyar_ku
دوشنبه 05 دی 1390, 14:33 عصر
با سلام دوستان
یه سوالی داشتم. موقعی که میخام تو Emu8086 برم تو مُد گرافیکی، وقتی وقفشو صدا میزنم، وقتی میخام مثلا یه پیکسلو روشن کنم، خطا میده میگه نمیتونه به مُد گرافیکی بره. مشکلش چیه؟
این پیغامو میده:
set_VIDEO_MODE: unsupported video mode: 4h
the emulator is halted.
از تابع 0 وقفه ی 10h واسه این کار استفاده میکنم:


MOV AH,0
MOV AL,12H
INT 10H

MOV CX,200
MOV DX,200
MOV AL,4
MOV BH,0
INT 10H

xman_1365_x
دوشنبه 05 دی 1390, 17:59 عصر
برای رسم پیکسل باید تابع 0cH استفاده کنید،کافیه در خط چهارم mov ah,0ch قرار بدین
موفق باشی

majid1605
جمعه 03 آذر 1391, 12:03 عصر
شرمنده تایپک قدیمی رو بالا میارم ولی منم همین مشکل رو دارم


; multi-segment executable file template.

data segment
; add your data here!

ends

stack segment
dw 128 dup(0)
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax

; add your code here
mov al,04h
mov ah,0
int 10h

mov cx,300
mov dx,100
mov ah,0ch
mov bh,0
mov al,3
int 10h
; output string at ds:dx


ends

end start ; set entry point and stop the assembler.

مقع اجرا پیغام زیر رو میده


set_VIDEO_MODE: unsupported video mode: 4h
not graphical mode!
use this code to set graphics mode:
mov ah, 0
mov al, 13h
int 10h


خوش داره میگه از 13h استفاده کنم ولی من می خوام یا از 4 یا 12h استفاده کنم
ویندوز x64 7

pr0tector
جمعه 03 آذر 1391, 12:19 عصر
کامپایلر Eme8086 توابع 4h و 12h رو پشتیبانی نمیکنه ، اما بجاش شما میتونید از کد زیر برای تغییر مد مونیتور استفاده کنید

mov al, 13h
mov ah, 0
int 10h ; set graphics video mode.
mov al, 1100b
mov cx, 10
mov dx, 20
mov ah, 0ch
int 10h ; set pixel


AL = pixel color
CX = column.
DX = row.

برای آشنایی بیشتر به Help نرم افزار Emu8086 و یا وبسایتش مراجعه کنید.

esibarnamenevis
جمعه 03 آذر 1391, 13:18 عصر
با سلام
دوستان در مورد emu باید عرض کنم که بعضی از وقفه ها رو کلا نمیشناسه برای دیدن این وقفه می تونید به قسمت help برنامه برید بعد به قسمت Short List of Supported Interrupt Functions و بعد وقفه مورد نظر رو انتخاب کنید مثلا INT 10h/00h
که وقفه 10 شامل اطلاعات زیر است:
INT 10h / AH = 0 - set video mode.
input:
AL = desired video mode.

these video modes are supported:

00h - text mode. 40x25. 16 colors. 8 pages.

03h - text mode. 80x25. 16 colors. 8 pages.

13h - graphical mode. 40x25. 256 colors. 320x200 pixels. 1 page. example: mov al, 13h mov ah, 0 int 10h

majid1605
جمعه 03 آذر 1391, 13:20 عصر
راهی برای استفاده وجود نداره ؟