Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с прерываниями для мыши

14K
10 сентября 2006 года
Tugodum
13 / / 10.09.2006
Разработать обработчик прерывания таймера, который через 1 минуту после своей установки маскирует (блокирует) прерывания от "мыши" и еще через 1 минуту размаскирует (деблокирует) прерывания "мыши". Указание: при разработке использовать вектор пользовательского прерывания таймера 1Ch и порт 21h масок контроллера прерываний 8259А. Подскажите, на чем как лучше сделать?
339
11 сентября 2006 года
verybadbug
619 / / 12.09.2005
pascal, cpp, asm
8.9K
17 сентября 2006 года
Kap
77 / / 10.09.2006
На с++, конечно. обрабатывать прерывания мыши можно так:

Код:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
struct SMouse
{
int Show(void)
{
    regs.r_ax = 0x01;
    intr(0x33, &regs);
    return 0;
}
int Hide(void)
{
    regs.r_ax = 0x02;
    intr(0x33, &regs);
    return 0;
}
int Update(void)
{
    regs.r_ax=0x03;
    intr(0x33, &regs);
    button=regs.r_bx & 0x0f;
    x=regs.r_cx >> 2 +1;
    y=regs.r_dx >> 2 +1;
    return 0;
}
struct REGPACK regs;
int button, x, y;
};
 
int main(void){
int flag;
clrscr();
struct SMouse mouse;
mouse.Show();
gotoxy(10,10);
printf("button");
flag=0;
do{
mouse.Update();
gotoxy(1,1);
printf("X=%d Y=%d\n B=%d",mouse.x,mouse.y,mouse.button);
if( (mouse.x>=9 && mouse.x<=16 && mouse.y==9 && mouse.button==1)){
flag=1;
gotoxy(10,11);
printf("Ok!!!");
}
}while(flag!=1);
gotoxy(11,10);
mouse.Hide();
getch();
}


с таймером- вообще элементарно.

[COLOR=red][ code ] [ /code ][/COLOR]
41K
04 декабря 2008 года
hoyeva
3 / / 21.10.2008
а на ассемблере как?
если можно, скиньте на [email]hoyevan@mail.ru[/email]:(
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог