amin joon
دوشنبه 14 آذر 1384, 19:17 عصر
سلام
من میخوام یه برنامه ی فارسی ساز( تحت dos) بنویسم که البته خیلی از کارهاش رو انجام دادم(یا حد اقل بلدم) ولی تو نوشتن یه شرط ساده موندم.
من میخوام در صورت خاموش بودن SCROLL تابع 9H قبلی صدا زده بشه و در غیر این صورت هیچ کاری انجام نده یعنی کلیدی رو دریافت نکنه.
ببینید مشکل چیه
<code>
.286c
.model small
.stack
.code
.startup
org 100h
jmp end_of_prog
old_int dd ?
farsi proc far
PUSHA
mov ax,40h
mov ds,ax
mov si,17h
lodsb
and al,00010000b
cmp al,10h ;if scroll lock is on
je my_int ;********my problem********
POPA
jmp cs:dword ptr old_int ;call old intrupt handler
my_int:
;my program here
end_of_my_int:
POPA
iret
farsi endp
end_of_prog:
push ds
mov ah,35h
mov al,9h
int 21h ;gets int 9h address
mov cs:word ptr old_int[0],bx
mov cs:word ptr old_int[2],es
mov al,9h
lea dx,farsi ;proc to be execute insted of old handler
push cs
pop ds
mov ah,25h
int 21h
pop ds
mov al,0h
lea dx,end_of_prog+1 ;make program residen
mov ah,31h
int 27h
end
</code>
با این برنامه اگر یک بار scroll رو روشن و خاموش کنیم.از اون به بعد برنامه درست کار نمیکنه
اگه سورس برنامه قابل خوندن نیست. فایل .asm رو اتچ کردم
ممنون
من میخوام یه برنامه ی فارسی ساز( تحت dos) بنویسم که البته خیلی از کارهاش رو انجام دادم(یا حد اقل بلدم) ولی تو نوشتن یه شرط ساده موندم.
من میخوام در صورت خاموش بودن SCROLL تابع 9H قبلی صدا زده بشه و در غیر این صورت هیچ کاری انجام نده یعنی کلیدی رو دریافت نکنه.
ببینید مشکل چیه
<code>
.286c
.model small
.stack
.code
.startup
org 100h
jmp end_of_prog
old_int dd ?
farsi proc far
PUSHA
mov ax,40h
mov ds,ax
mov si,17h
lodsb
and al,00010000b
cmp al,10h ;if scroll lock is on
je my_int ;********my problem********
POPA
jmp cs:dword ptr old_int ;call old intrupt handler
my_int:
;my program here
end_of_my_int:
POPA
iret
farsi endp
end_of_prog:
push ds
mov ah,35h
mov al,9h
int 21h ;gets int 9h address
mov cs:word ptr old_int[0],bx
mov cs:word ptr old_int[2],es
mov al,9h
lea dx,farsi ;proc to be execute insted of old handler
push cs
pop ds
mov ah,25h
int 21h
pop ds
mov al,0h
lea dx,end_of_prog+1 ;make program residen
mov ah,31h
int 27h
end
</code>
با این برنامه اگر یک بار scroll رو روشن و خاموش کنیم.از اون به بعد برنامه درست کار نمیکنه
اگه سورس برنامه قابل خوندن نیست. فایل .asm رو اتچ کردم
ممنون