سلام
این کد رو ببینید درسته
میخوام دسترسی به کیبورد با استفاده از توابع بایوس داشته باشم یعنی وقتی کلیدی از کیبورد بزنیم تو خروجی بنویسه و مثلا کلید capslock رو هم بزنه روشنه یا خاموش .
:}کد:KEYBOARD BIOS CALLS INT 16H This interrupt in the ROM BIOS provides for minimal character transfer from the keyboard. It is entered by first specifying the desired task to perform in the AH register. AH = 0 Get Key Returns with AH = scan code AL = ascii char, 0 = non-ascii, ie Func key AH = 1 Get status Returns with zflag = 0, valid key in queue = 1, no key in queue AH = scan code AL = ascii char, 0 = non-ascii, ie, Func key AH = 2 Get shift status Returns with AL = 7 Right shift 1 = pressed 6 Left shift 5 Ctrl 4 Alt 3 Scroll Lock 1 = on 2 Num Lock 1 Caps Lock 0 Ins Lets develop routines similar to those found in some libraries. #include <dos.h> int bioskey( cmd ) int cmd; { union REGS regs; regs.h.ah = cmd; int86( 0x14, ®s, ®s ); return( regs.x.ax ); } int kbhit() { union REGS regs; regs.h.ah = 1; int86( 0x16, ®s, ®s ); return( regs.x.cflags & 0x0040 ); /* return Z flag only */
این رو از یه سایتی پیدا کردم ولی :
من نوشتم ولی کار نکرد!! وقفه 16h رو کجا باید فراخوانی بکنم؟
البته روی سیستم عامل ویندوز xp به صورت مجازی (با نرم افزار VMware Workstation Pro )نوشتم ولی اصلا اجرا نشد و همش رو ارور میداد !! نکنه به خاطر همین مجازی بود!! نمیدونم !
اشتباه کجا هست؟
لطفا کمک کنید.
ممنون برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
Bookmarks