4.1. Общее описание

      ДОС  содержит  резидентные  драйверы  для  всех стандартных

 устрийств  ПЭВМ.  Кроме  того,  существует возможность создавать

 новые драйверы для  тех же или новых устройств  и загружать их в

 оперативную память. Загружаемые драйверы могут быть стандартными

 (входящими  в   дистрибутивный  состав  ДОС)   -  это  ANSI.SYS,

 VDISK.SYS. DRIVER.SYS, DISPLAY.SYS  и PRINTER.SYS (последние два

 - только  в   ДОС  3.3),  либо   написанными  пользователем  для

 установления связи ДОС с нестандартным оборудованием ПЭВМ.

 

      Загружаемый драйвер -  это программа специального  формата,

 помещаемая в  память во  время загрузки  ДОС. Файл  загружаемого

 драйвера  должен  быть  двоичным  файлом, аналогичном COM-файлу.

 Типичная последовательность создания  драйвера из его  исходного

 текста такова:

 

      MASM  driver                   Получение объектного модуля

                                     driver.obj

      LINK  driver                   Получение загрузочного модуля

                                     driver.exe

      EXE2BIN driver.exe driver.sys  Преобразование в двоичный

                                     файл driver.sys

 

      Отличие  драйвера  от  COM-файла  в  том,  что его текст не

 должен содержать в начале директиву ORG 100h.

 

      Для загрузки драйвера в  память нужно включить в CONFIG.SYS

 строку

 

      DEVICE=файл_драйвера

 

      По этой команде драйвер будет загружен в память и включен в

 связный  список драйверов,  уже находящихся  в памяти.  При этом

 драйвер ДОС,  обслуживающий устройство с тем  же именем (если он

 есть),   исключается   из   списка,  т. е.  загружаемый  драйвер

 устройства  имеет  преимущество  перед  резидентным  драйвером и

 драйверами для того же устройства, загруженными прежде него.

 

      Не  существует документированного  способа получения адреса

 первого драйвера в списке.  Недокументированный способ состоит в

 следующем.  Во  всех  версиях  ДОС  головным  в  списке является

 драйвер нуль-устройства, расположенный  в IBMDOS.COM. Поэтому мы

 должны:

 

      -  получить  базовый  адрес  сегмента  IBMDOS  (например, с

 помощью фн 52h);

      - найти в этом сегменте строку 'NUL     ';

      - начало  этой  строки минус 0Ah содержит двоичное   слово,

 указывающее на следующий драйвер (см. след. пункт).

 

 

Вы находитесь в разделе: 
Также вам будет интересно:

Добавить коментарий