Иллюстрированный самоучитель по SVGA

Подготовка к работе с манипулятором "мышь". Общее описание драйвера мыши.

Манипулятор "мышь" преобразует свое перемещение в электрические сигналы и посылает их в компьютер. Наибольшее распространение получили электромеханические устройства, у которых датчиком перемещений является металлический шарик. Его вращение разлагается на два направления по осям х и у, преобразуется в электрические сигналы и поступает в компьютер по соединительному кабелю. На верхней части манипулятора расположены две или три кнопки, данные об их состоянии также передаются в компьютер.

Отдельные модели манипуляторов различаются не только по устройству и внешнему оформлению, но и по расположенному в них электронному блоку, формирующему электрические сигналы при перемещении мыши и нажатии на ее кнопки. Кроме того, могут различаться кабели и разъемы, с помощью которых мышь подключается к компьютеру.

Указанные различия не влияют на способы программирования работы с манипулятором. Конкретные особенности устройства управления мышью "спрятаны" в драйвере, который поставляется в комплекте с устройством. Поэтому при покупке вы можете выбирать ту модель манипулятора, которая вам больше нравится, например, по оформлению.


От манипулятора в компьютер поступает первичная информация, которая не пригодна для непосредственного использования в прикладных задачах. Предварительную обработку этой информации выполняет специальная программа – драйвер. При перемещении мыши или при нажатии на одну из ее кнопок возникает аппаратное прерывание, в результате которого приостанавливается выполнение текущего процесса и происходит обращение к драйверу. Он обрабатывает поступившие данные и сохраняет результат в своих внутренних переменных, после чего может быть выполнена специальная прерывающая подпрограмма или завершена работа драйвера и продолжено выполнение приостановленного процесса.

Подчеркнем, драйвер только фиксирует наступление события – нажатие на одну из кнопок или перемещение мыши. Реагировать на само событие должна прикладная задача или одна из компонент операционной системы. Если в данный момент с мышью не работает ни одна задача, то событие останется не востребованным. Поэтому наличие драйвера необходимое, но не достаточное условие для организации взаимодействия с мышью.

Установка драйвера

Драйвер является резидентной, т. е. постоянно находящейся в памяти задачей. В процессе загрузки DOS находит файл, содержащий эту задачу, помещает его содержимое в оперативную память и выполняет первый запуск. При этом драйвер настраивается на дальнейшую работу, после чего продолжается процесс загрузки DOS.

Файл, содержащий драйвер, должен находиться в одном из каталогов жесткого диска. Часто, но не всегда, он имеет имя mouse, а его тип может быть com или sys. Тип влияет только на способ первоначальной установки драйвера и не влияет на дальнейшую работу с ним. Если файл имеет тип com (например, mouse.com), то его полная спецификация (путь поиска, имя и тип файла) указывается в системном файле autoexec.bat. А если он имеет тип sys (например, mouse.sys), то спецификация указывается в файле config.sys.

Обычно при продаже к мыши прилагается дискета, содержащая программу для установки драйвера и текстовый файл (его имя readme, или нечто подобное), с рекомендациями по установке. Чаще всего установка сводится к копированию нужных файлов в один из каталогов жесткого диска и включения имени файла драйвера в autoexec.bat или config.sys.

Если по каким-то причинам у вас есть мышь без установочной дискеты, попытайтесь использовать любой доступный драйвер, скорее всего вам это удастся. Современные модели манипуляторов, как правило, соответствуют стандарту Microsoft Mouse, поэтому обслуживать их могут все драйверы, при разработке которых были учтены требования этого стандарта.

Основные функции драйвера выполняются независимо от вычислительной среды. Поэтому Windows 3Х может использовать установленный в DOS или свой собственный драйвер, загружаемый вместе с системой. Windows 9X являются самостоятельными операционными системами, не зависящими от DOS, поэтому они обязательно загружают драйвер.

Доступ к драйверу

Если драйвер установлен, то при работе в среде DOS адрес его точки входа хранится в векторе ззь. Поэтому для обращения к нему прикладные задачи должны использовать командное прерывание int ззь. Предварительно в регистре ах указывается код запрашиваемой функции, который может изменяться в пределах от о до 24п. Если для выполнения функции нужны входные параметры, то их значения передаются в регистрах общего назначения. В тех же регистрах драйвер возвращает выходные параметры (запрашиваемые данные), если таковые имеются.

Например, для приведения драйвера в первоначальное состояние (сброс или инициализация), в задаче надо выполнить две следующие команды:

mov ах, 0; ах = код запроса, в данном случае 0

int 33h; обращение к драйверу для исполнения запроса.

В результате внутренние переменные драйвера принимают те значения, которые они имели при первоначальной загрузке. Мы еще раз вернемся к рассмотрению данного запроса в следующем разделе.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.