Dos7book
.pdfГлава 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 –