Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Dos7book

.pdf
Скачиваний:
75
Добавлен:
09.02.2015
Размер:
5.1 Mб
Скачать

Глава 5: Избранные драйверы для MS-DOS7

корректировать как обычный неформатированный текстовый файл, например, с помощью текстового редактора EDIT.COM (6.09).

Некоторые или даже все параметры могут быть не представлены в файле MSDOS.SYS, и тогда им будут приписаны значения, принимаемые по умолчанию. В отличие от других системных файлов, файл MSDOS.SYS не копируется программой SYS.COM на новый носитель, а создается заново пустым, и это не мешает операционной системе WINDOWS-95 нормально загружаться. Однако по крайней мере некоторые из принимаемых по умолчанию значений не подойдут, если Вы захотите загружать MS-DOS7 как отдельную операционную систему.

Подходящие значения всех параметров представлены в образце файла MSDOS.SYS, который приведен ниже.

[Paths]

WinDir=C:\WINDOWS

;базовый путь для переменных окружения TMP, TEMP и PATH WinBootDir=C:\WINDOWS

;задание значения переменной окружения WINBOOTDIR HostWinBootDrv=C

;указание на диск, с которого компьютер был загружен [Options]

Logo=0

;скрыть загрузочные сообщения под картинкой (= 1) или нет (= 0) BootMenu=0

;выводить загрузочное меню системы Windows (= 1) или нет (= 0) BootMenuDelay=20

;задержка в секундах до выбора пункта меню по умолчанию BootMenuDefault=1

;номер пункта меню, который должен быть выбран по умолчанию BootKeys=1

;активизировать (= 1) или нет (= 0) при загрузке "горячие клавиши"

;F5, Shift-F5, F6, F8 и Shift-F8, описанные в разделе 1.02 BootDelay=2

;интервал ожидания нажатия "горячих клавиш" (в секундах) BootMulti=0

;не активизировать клавишу F4 (1.02) загрузки прежней версии DOS BootWin=1

;загружать MS-DOS7 и Windows (= 1) или прежнюю версию DOS (= 0) BootSafe=0

;загружать Windows в обычном (= 0) или в безопасном режиме (= 1) BootWarn=0

;не давать предупреждения о загрузке в безопасном режиме

BootGUI=0

;загружать графическую оболочку Windows (= 1) или MS-DOS7 (= 0)

101 –

Глава 5: Избранные драйверы для MS-DOS7

LoadTop=0

;загружать Command.com и Dblspace.bin ниже границы 640 кбайт AutoScan=0

;условия автоматического запуска программы Scandisk.exe:

;– никогда не запускать автоматически (= 0),

;– запускать после каждого сбойного завершения (= 1)

;– запускать при каждой загрузке компьютера (= 2) DBLSpace=0

DRVSpace=0

;не загружать драйверы записи на диск со сжатием "на лету", но если

;загружать, то значение = 1 должно быть только для одного драйвера. Network=0

;загружать (= 1) или не загружать (= 0) поддержку сетевых служб DoubleBuffer=0

;не загружать по умолчанию драйвер Dblbuff.sys (5.06-02) DisableLog=1

;не вести отчет об этапах загрузки WINDOWS в файле Bootlog.txt.

Строки файла MSDOS.SYS считываются интерпретатором, входящим в состав того же файла IO.SYS. Интерпретатор пропускает строки, начинающиеся со знака точки с запятой, и потому они служат для введения комментариев. Конечно, строки комментариев можно из файла исключить, но имеется один аргумент против: для

сохранения совместимости с устаревшими антивирусными программами длина скрытых системных файлов не должна быть меньше 1024 байт. Для многих современных антивирусных программ это ограничение не существенно.

Все значения параметров в показанном образце файла MSDOS.SYS совместимы с вариантами конфигурационных файлов, приведенными в разделах 9.01, 9.04, 9.09 и 9.11. Установки в секции [PATHS] используются только операционной системой WINDOWS; для MS-DOS7 соответствующие значения

переменных окружения все равно приходится переопределять при интерпретации файла AUTOEXEC.BAT. Часть параметров в секции [Options] тоже можно опустить. Однако приведенный полный перечень параметров поможет Вам принять свое решение, надо ли указывать каждый конкретный параметр и какое значение ему следует приписать. Подготовив свою версию файла MSDOS.SYS, не забудьте поместить ее в корневой каталог загрузочного диска и вернуть ей ее "родные"

атрибуты HRS (Hidden, Read-only, System).

В соответствии с подготовленными параметрами из того же файла IO.SYS происходит загрузка ядра MS-DOS7, обслуживающего системные структуры DOS и вызовы базовых функций прерывания INT 21 (они описаны в разделе 8.02).

Последняя задача загрузчика состоит в интерпретации команд конфигурационного файла CONFIG.SYS, согласно которым производится загрузка большинства

– 102 –

Глава 5: Избранные драйверы для MS-DOS7

используемых драйверов. Варианты файла CONFIG.SYS показаны в разделах 9.01-01, 9.04-01 и 9.09-01. При дальнейшем функционировании MS-DOS7 никогда не вызывает файл IO.SYS на исполнение, но его наличие тем не менее требуется для копирования каждый раз, когда нужно сделать загрузочным еще один диск.

Примечание 1: в прежних версиях MS-DOS файл MSDOS.SYS не был текстовым: он содержал ядро DOS и загружался по умолчанию как драйвер.

Примечание 2: в 2001 году была обнаружена ошибка в ядре MS-DOS7: оно неверно реагировало на сбои магнитных дисков с LBA-адресацией. Фирма Microsoft исправила файл ядра IO.SYS и поставляет его в составе SFX-архива 311561usa8.exe, который можно загрузить с сайта http://support.microsoft.com/kb/311561/en-us?spid=6519&sid=global .

Программа WINRAR версии 3.2 (и выше) распаковывает файл

311561usa8.exe как CAB-архив. В нем под прозвищами Winboot.98s

и Winboot.98g спрятаны два варианта файла IO.SYS. Если команда VER (3.32) сообщает версию 4.10.2222, тогда файл IO.SYS нужно получить переименованием Winboot.98s. Если же сообщаемая версия – 4.10.1998, то надо будет переименовать Winboot.98g.

5.01-02 Подмена номера версии DOS: драйвер SETVER.EXE

Эволюция операционных систем осложняется проблемой обеспечения пользования программами, разработанными для их предыдущих версий. Фирма Microsoft решает эту проблему путем подмены реального номера версии MS-DOS требуемым старым номером версии в ответах, которые операционная система дает на запросы программ через прерывание INT 21\AH=30h (8.02-22). Причем такая подмена должна осуществляться избирательно, только для тех программ, совместимость которых точно установлена. SETVER.EXE и есть как раз тот самый драйвер, на который возложена миссия обманывать совместимые программы в отношении действительного номера версии MS-DOS.

При стандартной установке операционных систем Windows-95/98 драйвер SETVER.EXE находится в каталоге \WINDOWS. Если предполагается организовать альтернативную загрузку Windows-95/98 и MS-DOS7, то бывает удобнее в каталоге с драйверами для DOS иметь отдельную копию драйвера

SETVER.EXE. Ее надо загружать из файла CONFIG.SYS командой DEVICE (4.06) или DEVICEHIGH (4.07):

DEVICEHIGH=C:\DOS\DRV\SETVER.EXE

здесь:

C:\DOS\DRV\ – пример пути к файлу SETVER.EXE в отдельном каталоге для драйверов DOS.

– 103 –

Глава 5: Избранные драйверы для MS-DOS7

"Подставной" номер версии DOS будет сообщен в ответе на запрос программы только в том случае, если имя этой программы вместе с должным номером версии заранее внесены в таблицу, содержащуюся в загруженном резидентном модуле драйвера SETVER.EXE. Хотя никаких гарантий такая подстановка не дает, тем не менее большинство старых программ вполне способно работать в MS-DOS7.

Файл SETVER.EXE можно запустить на исполнение из командной строки как обычную программу, например, чтобы вывести на экран краткую справку:

Setver.exe /?

Если файл SETVER.EXE запустить на исполнение из командной строки без параметров, то он воспроизведет на экране таблицу, содержащуюся в его резидентном модуле. Изначально таблица не пуста: ее исходное содержание отражает рекомендации фирмы Microsoft. Чтобы дополнить эту таблицу именем еще одной программы, нужно в командной строке набрать, например:

Setver.exe QBASIC.EXE 6.22

здесь:

QBASIC.EXE – пример имени программы, которую нужно "обмануть". Имя программы должно иметь суффикс *.COM или *.EXE.

6.22пример номера версии DOS, который следует сообщить в ответе на запрос этой программы.

Команда на удаление имени той же программы из встроенной таблицы требует указания параметра /D и выглядит так:

Setver.exe QBASIC.EXE /D

По завершении операций с таблицей SETVER.EXE оставляет одно из следующих значений кода ошибки (3.15-03 и 9.07-03):

0успешное завершение операции

1ошибка в спецификации параметра

2ошибка в имени файла

3недостаточно памяти для исполнения команды

4неверный формат номера версии

5запрошенный файл в таблице не найден

8слишком много параметров в командной строке

9по крайней мере одного параметра в строке не хватает

10ошибка при считывании таблицы с диска

11таблица версий повреждена

13в таблице нет больше места для других файлов

14ошибка при записи обновленной таблицы на диск

Все операции по внесению изменений в таблицу версий заканчиваются записью на диск файла SETVER.EXE, содержащего скорректированную таблицу, но от

– 104 –

Глава 5: Избранные драйверы для MS-DOS7

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

5.02Средства национальной адаптации MS-DOS7

5.02-01 Файл спецификаций COUNTRY.SYS

При стандартной установке операционных систем Windows-95/98 в каталоге \WINDOWS\COMMAND находится файл COUNTRY.SYS со спецификациями национальной адаптации MS-DOS7. Они фактически представляют собой набор таблиц, из которого данные, задаваемые кодом страны, загружаются специальной командой COUNTRY (4.05) в файле CONFIG.SYS:

COUNTRY=007,866,C:\DOS\DRV\COUNTRY.SYS

здесь:

007 – код страны (A.02-2);

866 – номер кодовой страницы (A.02-2), определяющей набор знаков; C:\DOS\DRV\ – пример пути к файлу COUNTRY.SYS, скопированному в

каталог для драйверов DOS.

Когда данные из файла COUNTRY.SYS загружены, они изменяют ряд внутренних настроек DOS, относящихся к специфичным для отдельных стран формам представления времени, дат, денежных единиц, знаков пунктуации,

порядка сортировки и национальных ограничений на использование букв в именах (A.02-5). Последнее обстоятельство имеет особое значение, потому что иначе файлы, в именах которых содержатся знаки национальных алфавитов, могут оказаться недоступными.

5.02-02 Драйвер знакогенератора DISPLAY.SYS

Драйвер DISPLAY.SYS подготавливает буферные области памяти для размещения одной или нескольких национальных кодовых таблиц, которые определяют состав набора знаков и их внешний вид (A.02-2). При стандартной установке операционных систем Windows-95/98 драйвер DISPLAY.SYS находится в каталоге \WINDOWS\COMMAND. Его следует загружать из строки файла

CONFIG.SYS командой DEVICE (4.06) или DEVICEHIGH (4.07):

DEVICE=C:\DOS\DRV\DISPLAY.SYS CON=(EGA,866,2,1)

здесь:

– 105 –

Глава 5: Избранные драйверы для MS-DOS7

C:\DOS\DRV\

пример пути к драйверу DISPLAY.SYS, скопированному в

 

каталог для драйверов DOS.

CON

– (console) – безальтернативная спецификация дисплея как

 

устройства вывода.

EGA

означает, что компьютер оборудован видеоплатой,

 

поддерживающей видеорежимы классов EGA, VGA или SVGA;

 

альтернативы спецификации EGA таковы:

 

 

LCD– портативные компьютеры класса ноутбук с

 

 

жидкокристаллическим дисплеем;

 

 

CGA – устаревшая видеоплата для цветной индикации без

 

 

переключения кодовых страниц;

 

 

MONO – устаревшая видеоплата MDA для монохромной

 

 

индикации, также без переключения кодовых страниц.

 

Если тип видеоплаты не задавать, то драйвер DISPLAY.SYS

 

будет пытаться определить его сам, но риск ошибки при этом

 

возрастет.

866

номер основной кодовой страницы (A.02-2). Кодовые страницы

 

содержатся в файлах EGA.CPI, EGA2.CPI, EGA3.CPI и ISO.CPI,

 

по несколько кодовых страниц в каждом. Позднее программа

 

MODE.COM (6.18) позволит выбрать нужную кодовую страницу

 

и записать ее в буферный участок памяти, подготовленный

 

драйвером DISPLAY.SYS.

2

число буферных участков памяти, которые должны быть

 

подготовлены в дополнение к тому, который выделен для

 

указанной ранее основной кодовой страницы. Разрешено иметь

 

до

3 дополнительных буферных участков памяти для

 

EGA-совместимых видеоплат, до 6 – для VGA-совместимых

 

видеоплат, только одну для варианта LCD, и только 0 – для

 

видеоплат CGA и MDA.

1

число аппаратно поддерживаемых вариантов шрифта для

 

каждой кодовой страницы. Это число можно не указывать

 

вместе с предшествующей запятой. По умолчанию принимается

 

1 для варианта LCD и 2 шрифта для видеоплат EGA и VGA.

Примечание 1: параметры в скобках можно не указывать, оставив только сами скобки, тогда драйвер DISPLAY.SYS примет значения по умолчанию.

Примечание 2: резидентный модуль драйвера DISPLAY.SYS взаимодействует с другими программами через прерывания INT 2F\AX=AD00-AD03h (8.03-26, 8.03-27).

– 106 –

Глава 5: Избранные драйверы для MS-DOS7

5.02-03 Переключатель кодовых страниц NLSFUNC.EXE

Драйвер NLSFUNC.EXE обеспечивает возможность оперативного переключения командой CHCP (3.04) кодовых страниц и других национальных настроек DOS. При стандартной установке операционных систем Windows-95/98 драйвер NLSFUNC.EXE находится в каталоге \WINDOWS\COMMAND. Его можно загружать непосредственно или командой LH (3.17) из командной строки, из файла

AUTOEXEC.BAT, а также командами INSTALL (4.15) или INSTALLHIGH (4.16)

из файла CONFIG.SYS, например:

INSTALLHIGH=C:\DOS\DRV\NLSFUNC.EXE C:\DOS\DRV\COUNTRY.SYS

здесь:

C:\DOS\DRV\ – пример пути к драйверу NLSFUNC.EXE, скопированному в каталог для драйверов DOS.

C:\DOS\DRV\COUNTRY.SYS – пример пути и имени файла, содержащего

спецификации национальных настроек DOS (5.02-01).

Примечание 1: переключение между английской и другой национальной нотацией не требует переключения кодовых страниц: английская нотация имеется в каждой национальной кодовой странице (A.02-02).

Примечание 2: переключение между различными национальными кодовыми страницами также может быть выполнено программой MODE.COM (6.18-03), причем она не является резидентной программой и освобождает память по завершении исполнения.

5.02-04 Драйвер клавиатуры KEYB.COM

При стандартной установке операционных систем Windows-95/98 в каталоге \WINDOWS\COMMAND находится драйвер KEYB.COM, предназначенный для управления раскладками клавиатуры в MS-DOS7. Он может быть загружен из файла AUTOEXEC.BAT непосредственно или с помощью команды LH (3.17), а

также из файла CONFIG.SYS командами INSTALL (4.15) или INSTALLHIGH (4.16), например

INSTALL=C:\DOS\DRV\KEYB.COM UK,850,C:\DOS\DRV\KEYBRD3.SYS /E /ID:168

здесь:

C:\DOS\DRV\ – пример пути к драйверу KEYB.COM, скопированному в каталог для драйверов DOS.

UK – пример двухбуквенного обозначения национальной раскладки клавиатуры (A.02-2).

850 – номер национальной кодовой страницы (A.02-2). Когда номер кодовой страницы указан именно здесь, он не будет изменяться

автоматически при изменении кодовой страницы

– 107 –

Глава 5: Избранные драйверы для MS-DOS7

знакогенератора командой CHCP. Если желательна синхронная смена кодовых страниц знакогенератора и клавиатуры, то здесь номер кодовой страницы указывать не нужно, но обе

окружающие его запятые нужно оставить

(..UK,,C:\DOS\DRV\KEYBRD3.SYS...). C:\DOS\DRV\KEYBRD3.SYS – пример файла, содержащего раскладки

 

клавиатуры, с предшествующим полным путем к нему. Каждый

 

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

 

стран (A.02-2).

 

 

/E

этот

параметр адаптирует раскладку

к

использованию

 

"усовершенствованной" 101/108-клавишной клавиатуры.

/ID:168

идентификатор варианта клавиатуры. Он нужен только для тех

 

стран, в которых используются несколько вариантов раскладки

 

клавиатуры (A.02-2). В большинстве стран используется только

 

одна раскладка, и для них идентификатор

/ID

указывать не

 

нужно.

 

 

 

Когда драйвер KEYB.COM загружен, он активизирует несколько

дополнительных "горячих" клавишных комбинаций:

 

 

CTRL-RightSHIFT

переключение на набор знаков с номерами 128-255,

 

специфичных для установленной национальной кодовой

 

страницы;

 

 

CTRL-LeftSHIFT

переключение на набор знаков с номерами 032-127

цифр, знаков пунктуации и английских букв, одинаковых на всех кодовых страницах;

CTRL-ALT-F1переключение на набор знаков исходной американской кодовой страницы 437;

CTRL-ALT-F2возврат от американской кодовой страницы 437 обратно к загруженной национальной кодовой странице;

CTRL-ALT-F7перевод клавиатуры в режим пишущей машинки, если

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

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

Примечание 1: резидентный модуль драйвера KEYB.COM взаимодействует с другими программами через прерывания INT 2F\AX=AD80h-AD83h (8.03-28, 8.03-30).

– 108 –

Глава 5: Избранные драйверы для MS-DOS7

5.02-05 Комбинированный драйвер KEYRUS.COM

Драйвер KEYRUS.COM, написанный Дмитрием Гуртяком из г. Донецка, – это комбинированный драйвер клавиатуры и знакогенератора. Он особенно популярен среди русских пользователей, потому что поставляется со встроенной 866-й (русской) кодовой страницей и с русской раскладкой клавиатуры. Однако в комплекте к нему приложены дополнительные программы, которые позволяют пользователю самому написать, установить и активизировать любую кодовую страницу и любую раскладку клавиатуры. Драйвер KEYRUS.COM свободно выложен на многих российских сайтах. Последняя версия 8.0b (1994 года)

доступна с сайта автора http://www.gurtjak.skif.net/pages/programs.htm в составе файла архива keyrus8b.zip.

KEYRUS.COM можно загружать из файла CONFIG.SYS командами INSTALL (4.15) или INSTALLHIGH (4.16), а также из командной строки или из файла AUTOEXEC.BAT, непосредственно или командой LH (3.17), например

LH C:\DOS\DRV\KEYRUS.COM

Если принимаемые по умолчанию установки необходимо изменить, то вслед за именем драйвера в командной строке нужно указать необязательные параметры. Таких параметров может быть много, и потому предусмотрена возможность считывания параметров из файла; произвольному имени этого файла в командной строке должен предшествовать знак "@" (эт):

LH C:\DOS\DRV\KEYRUS.COM @OPT_FILE.EXT

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

чтобы

показать принимаемые по умолчанию установки: KEYRUS /?

вывести в файлы встроенные шрифты и раскладки: KEYRUS /FILES

изменить принимаемые по умолчанию установки.

Для изменения принимаемых по умолчанию установок после имени драйвера должна следовать группа параметров, и последним из них должен быть параметр

/SAVE.

KEYRUS.COM состоит из модуля клавиатуры, знакогенераторного модуля и интерфейсного модуля. Каждый модуль принимает свою собственную группу параметров. Если не оговорено иное, во всех приведенных ниже примерах принятие драйвером KEYRUS.COM установки "ON" вместо установки "OFF" (и наоборот) ведет к инверсии получаемого результата. В частности, модуль клавиатуры принимает следующие необязательные параметры:

– 109 –

Глава 5: Избранные драйверы для MS-DOS7

/KEYBOARD=Off

не загружать модуль клавиатуры, а использовать

раскладку, задаваемую системой BIOS.

/BASE_KEYS – разрешить переназначение клавишей (по умолчанию оно

запрещено).

 

/KEYS=filename.ext

загрузить раскладку клавиатуры из указанного

файла. Такие файлы длиной от 212 до 318 байт каждый

создаются программой KEYEDIT, поставляемой вместе с

драйвером. Когда KEYRUS.COM запускается с дополнительным

параметром /SAVE, раскладка клавиатуры не загружается, а вводится в состав файла KEYRUS.COM и затем становится встроенной раскладкой, принимаемой по умолчанию.

/BUFFER=ON – увеличивает длину буфера клавиатуры до 31 знака.

/FAST=ON,10,1

задает темп работы клавиатуры (0 – самый

быстрый, потом 1, 2, 4, 8, 10, 13, 16, 20, 31 – самый медленный)

и задержку от 0 (0,25 с) до 3 (1 с).

/RUSALT=ON – обеспечивает набор знаков [ ] ; ' , . / при удержании

нажатой клавиши ALT тогда, когда активизирована

национальная раскладка клавиатуры.

/BEEP=OFF,rus– запрещает подтверждение нажатия клавиш звуковым сигналом, когда активизирована национальная раскладка клавиатуры (RUS). Вместо RUS можно указывать раскладки

LAT (латинскую) или ALT (псевдографическую).

/CLICK=OFF,rus

запрещает подтверждение щелчком нажатия

клавиш, когда активизирована национальная раскладка клавиатуры (RUS). Вместо RUS можно указывать раскладки LAT (латинскую) или ALT (псевдографическую).

/LAMP=ON,rus – включает световой индикатор ScrollLock, когда активизирована национальная раскладка клавиатуры (RUS). Вместо RUS можно указывать раскладки LAT (латинскую) или ALT (псевдографическую).

/COLOR=0,2 – показывает активную раскладку клавиатуры цветом рамки. Левая цифра (0 = черный) – это код цвета при активизации национальной раскладки клавиатуры (RUS), правая цифра (2 = темно-зеленый)это код цвета при активизации псевдографической раскладки клавиатуры (ALT). Другие допустимые коды цвета приведены в приложении A.10-5.

/ALT=87,4 – установить "горячую клавишу" для переключения к псевдографической раскладке клавиатуры. Смещение 4 и скэн-код 87 соответствуют переключению по нажатию комбинации клавиш CTRL-F11 (примечания 3 и 4). /ALT=OFF означает запрещение доступа к набору знаков псевдографики.

– 110 –

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]