Драйвер кириллицы для клавиатуры и экрана CLARUS
Версия 1.9, декабрь 2005 г.

Разработал Ярослав Чеботарёв, http://slavic.pp.ru

Программа рассчитана на работу с клавиатурой PC/AT и видеоадаптерами VGA или EGA. Её можно использовать в Windows 95/98 и 2000/XP, где она заменяет встроенную поддержку кириллицы в MS-DOS режиме на полном экране и работает значительно устойчивее встроенного драйвера. Вот её основные возможности:

Переключение режимов "кириллица" — "латиница" выполняется нажатием и отпусканием правой или левой клавиши Ctrl (собственные функции Ctrl сохраняются). Режим "кириллица" отображается зелёной рамкой вокруг основного поля экрана. В монохромных видеорежимах отображение кириллицы автоматически переключается на индикатор "Scroll Lock". Если при смене видеорежима цвет рамки был сброшен, он восстанавливается нажатием любой клавиши Shift. При фиксации верхнего регистра клавишей "Caps Lock" в режиме кириллицы не происходит смены регистра для цифровых клавиш, а также для скобок, -, =, \ в случае, если они не были переопределены. Для перехода в верхний регистр следует использовать клавиши "Shift" — так же, как работает верхний ряд в стандартном латинском режиме.

Список файлов

В исходном виде все файлы находятся в архиве CLARUS.ZIP. Для использования драйвера распакуйте содержимое архива в один из каталогов жёсткого диска. Для загрузочной дискеты с DOS достаточно записать только основную программу.

CLARUS.COM — основная программа
CLAR_FNT.ZIP — дополнительные шрифты
CLARUS.TXT — документация в формате DOS 866
clarus.htm — документация в HTML-формате 1251
console.reg — исправление цветов для Windows 2000/XP
CLSA.COM — инициализация текущего видеорежима

Параметры командной строки

Программу можно загружать через CONFIG.SYS как драйвер DOS:

device=[путь к драйверу]CLARUS.COM [параметры] [файл шрифтов]

либо как обычную резидентную программу в файле AUTOEXEC.BAT или в командной строке DOS:

CLARUS [параметры] [файл шрифтов]

Для загрузки программы в область выше 640 Кб (если установлен драйвер EMM386 или аналогичный) используйте команды devicehigh= в CONFIG.SYS или lh в AUTOEXEC.BAT.

Список параметров командной строки:

/0.../8 — задать цвет рамки экрана в режиме "кириллица", по умолчанию — зелёный (2);

/s — всегда использовать индикатор "Scroll Lock" на клавиатуре для информации о режиме "кириллица" (рамка при этом не высвечивается);

/q — исключить вывод на экран сообщение о загрузке, сообщения об ошибках этот параметр не отменяет;

/u — выгрузить из памяти резидентную часть драйвера, если он был загружен как COM-файл в командной строке DOS.

/s:# — запись шрифта в теневое ОЗУ (shadow), тип доступа: a — определить автоматически, m или ram — для ОЗУ обычного типа (не теневого), контроллер — указать тип теневого ОЗУ (см. ниже); разделитель ':' не обязателен;

Установка параметров клавиатуры — выполняется, если задан хотя бы один из двух следующих параметров:

1...4 — установить время задержки в секундах до начала автоповтора: 1=0,25, 2=0,5 (по умолчанию), 3=0,75, 4=1;

5...30 — установить скорость автоповтора, символов в секунду, по умолчанию 20.

Параметры только для начальной загрузки драйвера:

/l — использовать левую клавишу Ctrl вместо правой (в основном для портативных клавиатур);

// — не переопределять клавишу "/" в режиме "кириллица" (оставить "/" и "?");

/d!@#.. — переопределить символы в режиме "кириллица" для верхнего регистра клавиш 1234567890, список может содержать 10 символов без пробелов, по умолчанию устанавливаются символы !"/*:,.;? раскладки 443;

/a-_... — задать альтернативную (для режима "кириллица") раскладку 4 знаковых клавиш -=`\ (см. ниже);

/c — переключить в режим "кириллица" при загрузке;

/x — не загружать драйвер экрана (действует только при отсутствии параметра /s:#);

/w — задать раскладку клавиатуры, аналогичную русской версии Windows.

Параметры /цвет и /s могут использоваться для управления резидентной частью драйвера и применяются по желанию (они взаимоисключающие и не должны быть заданы совместно). Параметры быстродействия на резидентную часть не влияют и могут использоваться по мере необходимости. Повторная запись шрифта в теневое ОЗУ (или область VBIOS) возможна, если экранная часть драйвера не была установлена резидентно, т.е. если при начальной загрузке был использован один из параметров /s:# или /x.

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

Пример: программа CLARUS расположена в каталоге c:\tools\sys, кириллица отображается зелёной рамкой, следует задать параметры быстродействия клавиатуры 0,5 с и 20 символов/с и отключить сообщение о запуске:

device=c:\tools\sys\clarus.com 2 20 /q

В портативной машине строка может быть такой:

device=c:\tools\sys\clarus.com /s /l

Установка драйвера в Windows 2000/XP

Поскольку Windows на NT-платформе не использует DOS при начальной загрузке, подключить драйвер можно только в текущем сеансе MS-DOS. В Windows 2000 и XP есть 2 файла конфигурации, которые играют примерно ту же роль, что аналогичные файлы в DOS — это CONFIG.NT и AUTOEXEC.NT. Находятся они в каталоге %systemroot%\system32. Как и в Windows 9x, драйвер CLARUS можно загружать двумя способами — через CONFIG и AUTOEXEC. Обратите внимание, что загрузить шрифты в теневое ОЗУ ключом /s:a в Windows 2000/XP нельзя. Рекомендуется добавить строку вызова драйвера CLARUS в конец одного из конфигурационных файлов, куда система помещает DOS-совместимые драйвера. Пример для AUTOEXEC.NT:

c:\windows\sys\clarus 2 20 /q

Обычно при запуске DOS-приложения Windows загружает свой клавиатурный драйвер KB16.COM (аналог KEYB.COM), независимо от того, указан он в конфигурационных файлах или нет. Чтобы исключить загрузку этого клавиатурного драйвера, удалите или переименуйте файл KB16.COM. Тогда переключать клавиатуру в DOS-режиме (и на полном экране, и в окне) будет только драйвер CLARUS.

Все NT-платформенные Windows имеют недостаток, который сказывается на внешнем виде DOS-приложений: палитра и размеры курсора не соответствуют стандартным для IBM PC (обычные цвета по сравнению с яркими выглядят чрезмерно тусклыми, а курсор слишком крупный). Устранить это драйверами из конфигурационных файлов невозможно — DOS-экран включается только после загрузки и обработки всех драйверов. Наиболее эффективное решение проблемы с палитрой — восстановить стандартную палитру системной консоли с помощью файла console.reg, который входит в комплект программы. Работая в Windows, найдите console.reg в списке файлов и добавьте его содержимое в Registry двойным щелчком мыши. Настройки задаются для текущего пользователя, поэтому при первом входе нового пользователя в систему операцию нужно будет повторить. Восстановить стандартный курсор в полноэкранном режиме поможет программа CLSA.COM, прилагаемая к драйверу. Вместо прямого вызова DOS-программы создайте BAT-файл из двух строк: в первой вызывается CLSA.COM, а во второй — ваша программа. CLSA.COM обновит текущий видеорежим и установит обычный размер курсора. После этого запускается основная программа.

Установка драйвера в Windows 95/98

При инсталляции Windows рекомендуется исключить загрузку всех резидентных программ, кроме тех, без которых машина теряет функциональность (драйвер CD-ROM и т.п.), в том числе и данного драйвера. Чтобы исключить вызов какого-либо драйвера, поcтавьте "rem " в начале строки. Иначе при первом запуске Windows получите сообщение об ошибке (оно не приводит к сбою инсталляции).

Если Windows уже установлена, удалите из файла AUTOEXEC.BAT команды MODE CON и KEYB, загружающие кириллицу. Необходимо оставить драйвер DISPLAY.SYS. Это вызвано тем, что он восстанавливает адреса видеофункций, которые при загрузке переключаются на модуль IO.SYS. CLARUS следует загружать после загрузки драйвера DISPLAY.SYS, иначе он может не запуститься и выведет сообщение об ошибке (в некоторых случаях возможно зависание системы). Если CLARUS загружается в файле AUTOEXEC.BAT, то место строки вызова не играет принципиальной роли. Пример загрузки драйвера в CONFIG.SYS:

device=c:\windows\command\display.sys con=(ega,,1)
device=c:\windows\sys\clarus.com

Иногда конфигурация Windows позволяет запустить драйвер без DISPLAY.SYS, но это требует отдельной проверки. Если устанавливать драйвер через AUTOEXEC.BAT, то все указанные трудности исключаются.

Дополнительные настройки

Настройка раскладки клавиатуры

Расположение клавиш в режиме "кириллица" отвечает раскладке 443 (стандарт IBM для России) с небольшими изменениями в верхнем регистре некоторых цифровых клавиш. В целом раскладка соответствуют распространённому варианту знаков для кириллицы на клавиатурах, которые поставлялись в Россию начиная с 1990-х годов. В настоящее время клавиатуры с раскладкой 443 встречаются редко, гораздо чаще можно встретить клавиатуру с раскладкой, принятой в русской версии Windows. Для настройки на эту раскладку достаточно добавить ключ /w в строке параметров. (Автор хотел бы заметить, что с точки зрения эргономики раскладка Windows уступает раскладке 443, а общий стандарт на клавиатуры не принят до сих пор.)

Если ваша клавиатура имеет другую раскладку, то порядок символов для режима "кириллица" следует задать в строке параметров драйвера. Для настройки драйвера служит параметр /a, который даёт возможность изменить символы нижнего и верхнего регистра клавиш -=`\. В строке параметров для каждой клавиши следует указать символ вначале нижнего, затем верхнего регистра, всего после /a можно задать от 1 до 8 знаков без пробелов. Обратите внимание, что символ "|" не может использоваться в строке параметров, поскольку он выполняет в DOS собственную функцию.

Запись шрифтов в BIOS видеоадаптера

Внимание: не используйте при работе в Windows!
Если задать параметра /s:#, драйвер попытается записать шрифты в память видеоадаптера вместо его собственных таблиц. Программная поддержка видеофункций не будет загружена, что сохранит около 10 Кбайт памяти. Это возможно на многих машинах с процессором 386 и выше, если содержимое постоянной памяти (ПЗУ) видеоадаптера для увеличения быстродействия переписывается в теневое ОЗУ (shadow RAM), управление которым доступно через Advanced Setup. Предварительно (при параметре /s:a) происходит проверка доступа к теневому ОЗУ. Тогда при запуске драйвер выводит сообщение:

Тест теневого ОЗУ: ...

вместо ... выводится марка контроллера (chipset), которая соответствует системной плате вашей машины. Если теневое ОЗУ не установлено или определить способ доступа к нему не удалось, выдаётся сообщение об ошибке, поддержка видеофункций устанавливается резидентно, и загрузка операционной системы продолжается.

Поддерживаются контроллеры:

Параметр # intelviaopti
Системный контроллер Triton FX/VX/HX/TX/BX/LX...82C480OPTi
Параметр # opti498umcaliumc491sissis496
Системный контроллер 82C49882C481ALI82C49185C47185C496

Примечание: для контроллеров различных типов регистры управления могут совпадать.

Перед проверкой теневого ОЗУ драйвер определяет, возможна ли непосредственная запись в область видео-BIOS. Если возможна, или если в строке вызова был указан указан параметр /s:m, драйвер попытается записать шрифты вместо шрифтов видео-BIOS. Это имеет смысл в случаях, когда ОЗУ, куда переписана видео-BIOS, не защищено от записи, или снятие защиты доступно через Setup.

К сожалению, из-за отсутствия стандартов на управление теневой памятью обращение к регистрам, которые в данной конкретной плате могут выполнять совершенно другие функции, способно привести к полной остановке машины. Рекомендуется все эксперименты с теневой памятью вести при загрузке драйвера вручную, а строку в CONFIG или AUTOEXEC включать только после отладки. Если произошло зависание машины, запомните марку контроллера, которая привела к сбою и попробуйте указать тип доступа вручную — тогда тест теневого ОЗУ выполняться не будет.

О настройках Setup'а. Установка запрета video shadow может привести к зависанию машины в момент переключения на несуществующую память. Установка внешнего кеша (external cache) на область video BIOS не рекомендуется, так как это может привести к сбоям при записи знакогенератора. Если Advanced Setup вашей машины позволяет отключать cache для области C000-C7FF, то это следует сделать. Если Setup вашей машины сбросился (при сбое или разрядке батарейки), не забудьте восстановить режимы работы Shadow RAM и Cache.

О файле шрифтов

Файл шрифтов включает 3 таблицы по 256 символов формата 8x8, 8x14 и 8x16 и должен иметь длину 9728 байт. Имя файла может быть любым, кроме одной или двух цифр подряд без расширения (это параметры клавиатуры). В комплекте драйвера приложены следующие шрифтовые файлы:

Файл Кодовая таблица Примечание
vega866.fnt DOS CP 866 (Rus) аналог таблицы в драйвере
vega866h.fnt то же увеличенная высота символов
vega437.fnt DOS CP 437 (US) нормальная высота символов
vega437h.fnt то же увеличенная высота символов

Поиск файла осуществляется в текущем каталоге или по пути, указанному в командной строке, а затем, если файл не найден или полный путь не указан — в каталоге драйвера CLARUS. При отсутствии файла, неправильном размере или другой ошибке выдаётся сообщение, и работа продолжается со встроенным шрифтом.

Об истории и изменениях в программе

CLARUS продолжает линию драйверов KEY-ALT и VEGA, которые разрабатывались с 1991 г. Он был написан в 1995 году, объединив наиболее часто используемые функции обоих драйверов с сохранением большинства параметров командной строки. Название происходит от латинского словосочетания "claviatura russiana".

В версии 1.1 добавлена загрузка шрифтового файла.

В версии 1.2 при проверке теневого ОЗУ вместо номера выводится марка контроллера. Добавлена поддержка для плат SiS. В параметре /s# можно задать марку контроллера. Параметр /m исключён, вместо него используется /sm. Изменён формат параметров быстродействия клавиатуры — время и скорость вместо условных чисел.

В версии 1.3 из резидентной части экранного драйвера исключён сброс кеша процессора Pentium (происходило зависание при загрузке Windows). Добавлена поддержка для плат Siemens (PCD4).

В версии 1.4 исправлены ошибки в обработке строки параметров при загрузке в CONFIG.SYS, для параметра /s# введён необязательный разделитель /s:#, сделана коррекция контрольной суммы VBIOS. Добавлена поддержка для плат Triton (Zappa, Endeavour). В таблице типов контроллеров дана марка основного контроллера — её можно найти в описании системной платы.

В версии 1.5 исключена практически не используемая раскладка псевдографических символов. "Caps Lock" действует только на клавиши, которым назначены буквы алфавита. Параметры марок OPTi498 и UMC491 названы по номеру системного контроллера.

В версию 1.6 включена проверка работы в ОС Windows 95. Если запуск происходит в тот момент, когда видеофункции переключены на модуль реального режима IO.SYS, русский шрифт не загружается и драйвер прекращает работу (без этой проверки попытка загрузить шрифт вызывала зависание видеосистемы). Доработана загрузка шрифта в знакогенератор для видеоадаптера ET6000.

В версии 1.7 запрос адреса 9-точечных шрифтов возвращает указатель на 0, так как все шрифты в драйвере 8-точечные (в некоторых режимах выводились 9-точечные символы из таблицы видеоадаптера). При загрузке драйвера в MS-DOS сессии под Windows 9x исключена инструкция wbinvd, которую Windows считает привилегированной операцией (было невозможно вызвать "clarus /?"). Исправлено освобождение блока памяти PSP при выгрузке драйвера.

В версии 1.8 исправлены проблемы совместимости с Windows NT (2000, XP), исключён параметр /n.

В версии 1.9 добавлен параметр /w, задающий раскладку клавиатуры, используемую в русской версии Windows. Улучшена встроенная подсказка, обновлена документация, в комплект включен файл console.reg для исправления цветов в DOS-режиме Windows 2000/XP.

Сообщения об ошибках

CGA and MDA are not supported (CGA и MDA не поддерживаются)
Сообщение выдаётся, если тест видеоадаптера не определил наличие EGA или VGA, а также в случае, когда видеоадаптер (EGA или VGA) работает в режиме эмуляции CGA — загрузка русского шрифта невозможна.

CLARUS cannot be used in current configuration,
you must load the driver DISPLAY.SYS before it

(CLARUS не может использоваться в текущей конфигурации, вы должны загрузить драйвер DISPLAY.SYS перед ним) Как правило, сообщение выводится при работе в Windows 95, если драйвер DISPLAY.SYS загружается после драйвера CLARUS или отсутствует. Измените очерёдность загрузки в файле CONFIG.SYS.

Драйвер как device не может быть выгружен
Выгрузка из памяти возможна только, если драйвер был загружен в командной строке DOS или в файле AUTOEXEC.BAT. Исключите загрузку драйвера в файле CONFIG.SYS.

Драйвер не был загружен резидентно
Сообщение появляется при вызове драйвера с параметром /u, если резидентная часть не была установлена.

Для выгрузки драйвера удалите резидентные программы
Сообщение выводится, если программы, установленные после драйвера, переустановили векторы прерывания 09h или 10h. Вам следует выгрузить сначала эти программы, а затем драйвер.

Не найден файл ...
Неверный размер файла ...
Ошибка чтения файла ...

Все сообщения относятся к загрузке шрифтового файла, заданного в строке параметров. Файл должен находиться в текущем каталоге или в каталоге драйвера и иметь длину 9728 (2600h) байт.

Ошибка определения адреса VBIOS
Сообщение означает, что драйвер не обнаружил дескриптор видео-BIOS там, где размещены экранные шрифты. Вероятно, работает другой резидентный драйвер экрана или в вашей машине нестандартный видеоадаптер. Поддержка экрана загружается резидентно.

Ошибка при записи шрифта в ... — неверный адрес таблицы
Вместо ... может стоять "теневое ОЗУ" или "область VBIOS". Сообщение появляется, если адрес шрифта, полученный через функцию 1130h прерывания 10h, не совпадает с видео-BIOS (C000 или E000) — например, загружен какой-либо резидентный драйвер экрана.

Ошибка при записи шрифта в ... — память недоступна
Сообщение появляется при ошибке сравнения исходного шрифта с его копией после записи. Драйвер не смог разрешить запись в теневое ОЗУ — вероятно, был неправильно определён тип доступа. Попробуйте указать другие типы вручную.

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

Тест теневого ОЗУ: ... — выключено
Проверьте Setup вашей машины. Размер и начальный адрес включенной теневой памяти должен соответствовать размеру BIOS видеоадаптера: как правило, для EGA 16K (0400), для VGA 32K (0800), начальный адрес обычно C000.

Тип теневого ОЗУ неизвестен
Тест не смог определить регистры управления теневым ОЗУ. Скорее всего, работа с аппаратными средствами вашей машины ещё не реализована в драйвере. Тем не менее, поддержка видеоадаптера устанавливается резидентно, как без параметра /s:a.

Экранная часть драйвера не загружена
При вызове драйвера было задано имя шрифтового файла без параметра /s:#, а в резидентной части драйвера поддержка экрана не установлена. Следовательно, новый шрифт некуда загружать. Добавьте /s:# при вызове драйвера либо исключите этот параметр из строки начальной загрузки.


<< Software