Инициализация мыши
На входе: AX = 0000h.
На выходе: AX = состояние мыши:
0000h - драйвер мыши или мышь не установлены; FFFFh - драйвер и мышь установлены;
BX = количество клавиш у мыши:
2 - две клавиши; 0 - больше или меньше, чем две; 3 - мышь системы Mouse Systems (имеет три клавиши).
Эта функция выполняет аппаратный сброс оборудования мыши и программную установку драйвера мыши в начальное состояние. С помощью функции 21h можно выполнить установку драйвера в исходное состояние, не выполняя аппаратного сброса мыши.
При установке в исходное состояние для программ, работающих в текстовом режиме, выполняются следующие действия:
Мы подготовили функцию для инициализации мыши из программы, составленной на языке Си:
/** *.Name ms_init *.Title Инициализация мыши * *.Descr Эта функция выполняет аппаратный сброс мыши, * устанавливает в начальные значения внутренние * переменные ее драйвера. Дополнительно определяется * количество клавиш мыши. * *.Proto int ms_init(int *nbottoms) * *.Params int *nbottoms - указатель на переменную * типа int, в которую будет записано количество * клавиш, имеющихся в мыши. * *.Return 0 - плата или драйвер не установлены; * -1 - плата установлена, инициализация * выполнена успешно; * * В переменную nbottoms записывается количество * клавиш мыши: * * 2 - две клавиши; * 0 - больше или меньше, чем две; * 3 - мышь системы Mouse Systems, три клавиши. * *.Sample ms_sampl1.c **/
#include <dos.h> #include <conio.h>
union REGS reg;
int ms_init(int *nbottoms) {
reg.x.ax = 0; int86(0x33,®,®);
*nbottoms = reg.x.bx; return reg.x.ax;
}