Code: Select all
  Интерфейс для работы с мышью:
  Взаимодействие с драйвером мыши осуществляется при помощи инструкции RST 30h.
В зависимости от конкретной функции, в качестве входных и выходных параметров
используются различные регистры, при этом номер функции задается в регистре C.
  Любые перемещения мыши и нажатие на клавиши воспринимает специальная программа
драйвер мыши. Каждое нажатие и отпускание клавиш или перемещение мыши вызывает
прерывание. Программа, обслуживающая это прерывание, читает пакет данных от мыши
и перемещает курсор мыши в зависимости от полученных данных.
 00h (00) INITIALIZATION      (Инициализация драйвера мыши)
входные данные:
  C - 00h
выходные данные:
  A - драйвер не установлен, если CF=1
  A - успешная инициализация, драйвер установлен, если CF=0
 Функция производит начальную инициализацию драйвера мыши. При возвращении флага
переноса драйвер не установлен.
 01h (01) SHOW MOUSE CURSOR     (Вывести курсор мыши на экран)
входные данные:
  C - 01h
выходные данные:
  A - код ошибки, если CF=1
  Функция выводит на экран курсор мыши и отслеживает все перемещения курсора и
перерисовывает его.
 02h (02) HIDE MOUSE CURSOR     (Убрать курсор мыши с экрана)
входные данные:
  C - 02h
выходные данные:
  A - код ошибки, если CF=1
  Функция стирает курсор мыши с экрана, но драйвер продолжает отслеживание
перемещения мыши и нажатие на кнопки.
 03h (03) READ MOUSE STATE     (Чтение состояния мыши)
входные данные:
  C - 03h
выходные данные:
  A - код ошибки, если CF=1
  A - состояние кнопок
      D0 - левая
      D1 - правая
 HL - x-координата
 DE - y-координата
  Функция возвращает текущие координаты курсора мыши и состояние ее кнопок.
Координаты возвращаются в точках и для текстовых режимов необходимо их делить
на восемь для получения координат в знакоместах.
 04h (04) GOTO MOUSE CURSOR     (Установка координат курсора мыши)
входные данные:
  C - 04h
 HL - x-координата
 DE - y-координата
выходные данные:
  A - код ошибки, если CF=1
  Установка координат курсора мыши. Функция перемещает курсор мыши в заданные
координаты.
 07h (07) VERT. BOUNDS     (Задание вертикальных границ перемещения курсора)
входные данные:
  C - 07h
 HL - y-минимальная
 DE - y-максимальная
выходные данные:
  A - код ошибки, если CF=1
  Функция задает верхнюю минимальную и нижнюю максимальную координаты в которых
может перемещаться курсор мыши по вертикали.
 08h (08) HORZ. BOUNDS     (Задание горизонтальных границ перемещения курсора)
входные данные:
  C - 08h
 HL - x-минимальная
 DE - x-максимальная
выходные данные:
  A - код ошибки, если CF=1
  Функция задает левую минимальную и правую максимальную координаты в которых
может перемещаться курсор мыши по горизонтали.
 09h (09) LOAD CURSOR     (Загрузка изображения курсора мыши)
входные данные:
  C - 09h
  B = 0
 IX - изображение курсора
  H - высота курсора
  L - ширина курсора
  D - Y активная точка
  E - X активная точка
выходные данные:
  A - код ошибки, если CF=1
  Функция загружает новое изображение курсора мыши в драйвер и задать активную
точку изображения.
 0Ah (10) CURSOR TEXT MODES     (Установка курсора мыши в текстовом режиме)
входные данные:
  C - 0Ah
  B = 0
  H - AND SIMBOL MASK
  L - XOR SIMBOL MASK
  D - AND ATTRIBUT MASK
  E - XOR ATTRIBUT MASK
выходные данные:
  A - код ошибки, если CF=1
  функция устанавливает символ и атрибут курсора мыши для текстового режима.
 0Bh (11) RETURN CURSOR     (Получение изображения курсора мыши)
входные данные:
  C - 0Bh
 IX - буфер для изображения курсора
выходные данные:
  A - код ошибки, если CF=1
  H - высота курсора
  L - ширина курсора
  D - Y активная точка
  E - X активная точка
  Функция возвращает изображение курсора мыши из драйвера.
 0Eh (14) GET SENSETIVE     (Чтение чувствительности мыши)
входные данные:
  C - 0Eh
выходные данные:
  A - код ошибки, если CF=1
  H - чувствительность по вертикали
  L - чувствительность по горизонтали
  Функция возвращает значения чувствительности перемещения мыши по вертикали и
горизонтали.
 0Fh (15) SET SENSETIVE     (Установка чувствительности мыши)
входные данные:
  C - 0Fh
  H - чувствительность по вертикали
  L - чувствительность по горизонтали
выходные данные:
  A - код ошибки, если CF=1
  Функция устанавливает значения чувствительности перемещения мыши по вертикали
и горизонтали.
 80h (128) MOUSE HARDWARE INTERRUPT  (Обработчик аппаратного прерывания от мыши)
входные данные:
  C - 80h
выходные данные:
  A - код ошибки, если CF=1
  По приходу прерывания от мыши вызывается данная функция драйвера. В случае
когда требуется работа подпрограммы при запрещенных прерываниях, используйте
данную функцию, для избежания потерь пакетов данных от мыши.
 81h (129) CHANGE VIDEO MODE        (Информирование о смене режима экрана)
входные данные:
  C - 81h
  A - режим экрана
выходные данные:
  A - код ошибки, если CF=1
  Функция информирует драйвер мыши об изменении режима экрана. Номера режимов
соответствуют функции установка режима экрана.
 83h (131) MOUSE REFRESH         (Принудительная перерисовка курсора)
входные данные:
  C - 83h
выходные данные:
  A - код ошибки, если CF=1
  Функция перерисовывает изображение курсора мыши на экране не дожидаясь
очередного прерывания.
 коды ошибок от драйвера мыши:
	0 - нет ошибок
	1 - неизвестная функция
	2 - зарезервирована
	3 - курсор уже на экране
	4 - курсор отсутствует на экране
	5 - изображение курсора слишком велико
				