Программа, представленная ниже, демонстрирует применение функций поддержки "мыши" высокого уровня. вы можете сразу ввести ее в ваш компьютер и попробовать ее в деле.
/* Интерфейс с "мышью" Microsoft/IBM */
#include "dos.h"
#define NOT_MOVED 0
#define RIGHT 1
#define LEFT 2
#define UP 3
#define DOWN 4
void mouse_position(), mode(), goto_xy(), mouse_motion();
void cursor_on(), cursor_off(), mouse_reset();
main(argc, argv)
int argc;
char *argv[];
char deltax, deltay, x, y;
if(argc!=2)
printf(" Используйте формат: mouser <видеорежим> ");
exit(1);
mode(atoi(argv[1]));
mouse_reset(); /* инициализация "мыши" */
cursor_on(); /* "включение" курсора */
do
goto_xy(0, 0);
if(leftb_presed()) printf("Левая клавиша");
if(rightb_pressed())
printf("Правая клавиша");
mouse_position(&x, &y);
printf("%d %d - ", x, y);
/* Отображение местоположения "мыши" */
mouse_motion(&deltax, &deltay);
if(deltax || deltay)
printf("Перемещение");
switch(deltax)
case NOT_MOVED: break;
case RIGHT: printf("Вправо");
break;
case LEFT: printf("Влево");
break;
switch(deltay)
case NOT_MOVED: break;
case UP: printf("Вверх");
break;
case DOWN: printf("Вниз");
break;
/* Цикл выполняется пока обе клавиши нажаты одновременно */
while(!(leftb_pressed() && rightb_pressed()));
mode(3);
/* Установка видеорежима */
void mode(mode_code)
int mode_code;
union REGS r;
r.h.ah=2; /* функция адресации курсора */
r.h.dl = y; /* координаты столбца */
r.h.dh = x; /* координаты строки */
r.h.bh = 0; /* видеостраница */
int86(0x10, &r, &r);
/**********************************************************/
/* Функции, обеспечивающие интерфейс с "мышью" */