


	   Драйвер дисплея и клавиатуры ESKEYB.COM версии 1.5
           ──────────────────────────────────────────────────


        Аналогичных программ существует достаточно много, например:
	UNI... Бунича, KEYRUS Гуртяка и др.  И тем не менее мне
	пришлось разработать еще одну. Не поленитесь прочитать основные
	характеристики и вы поймете почему я это сделал.



	Основные характеристики программы.
        ──────────────────────────────────

	Работает не только на EGA и VGA, но и на LAPTOP-ах.

	Правильная работа в FoxPro(X) 2.0. Все более-менее сложные
	известные мне драйверы работают некорректно в FoxPro(X)2.0 (и
	не только драйверы, но и вообще TSR-ы, (кроме HyperDisk-а)
	использующие горячие клавиши):  при включенном Num-Locke серые
	стрелки иногда ведут себя как цифры.

	Возможность использования 2-х шрифтов О_Д_Н_О_В_Р_Е_М_Е_Н_Н_О
	(512 разных знаков на экране одновременно). Эта возможность
	полезна на компьютерах типа LAPTOP, где недостаточное
	количество цветов можно компенсировать дополнительным шрифтом.

	Удобный набор национальных знаков не входящих в русский и (или)
	английский алфавит на стандартной клавиатуре. Например,
	эстонских, литовских, латышских, украинских и т.д.

	Сжатие шрифтов в памяти в 1.5 - 2 раза.

	Увеличение ширины знаков на 1 точку на адаптерах VGA. ( (c)
	Яковлев М.А. )

	Поддержка ВСЕХ НЕСТАНДАРТНЫХ видеорежимов EGA/VGA, как
	текстовых, так и графических, включающихся через видеофункцию
	00..h (Set Video Mode) и использующих шрифты любой высоты.

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

	Определяемые пользователем экранные шрифты. Можно записать
	шрифты в отдельный файл, отредактировать их каким-нибудь
	редактором (н-р EVAFONT) и сохранить их в теле программы.

	Определяемые пользователем горячие клавиши - переключение
	РУС/ЛАТ и HARD/LOAD (переключение между шрифтами ПЗУ и
	программными).

	Возможность выгрузки из памяти.

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

	В зависимости от конфигурации программа может занимать от 300
	до 12000 байт в резиденте. Например на VGA программа mem /c
	показала 5248 байт. При этом была следующая конфигурация:
	- /ARC1  (сжатие шрифтов)
	- /RF (индикация рамкой, лампой ScrollLock, буквами в правом верхнем
	      углу экрана и потрескиванием)
	- были загружены шрифты 8x16 и 8x8
	- /KBR1 (есть блок клавиатуры)
	- /SCR1 (есть блок экрана)
	- /LAT0 (нет трансляции в режиме LAT)
	- /VGA81 (8x16 вместо 9x16)

	Принцип работы.
        ───────────────

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

	Клавиатура. Клавиатура может работать в четырех режимах: русском
	(RUS), латинском (LAT) и в режимах с загруженными (LOAD) и
	выгруженными (HARD) знаками. Переключаться между ними можно
	нажав сочетание горячих клавиш.

	Таблицу раскладки клавиатуры можно редактировать прилагающейся
	программой ESKKBD.EXE. Раскладка состоит из четырех частей:

	1. Для режима RUS
	2. Для режима LOAD, т.е. если нажата клавиша <~`> и загружены
	пользовательские знаки (например, русско-эстонские)
	3. Для режима HARD, т.е. если нажата клавиша <~`> и
	пользовательские знаки не загружены
	4. И наконец, раскладка для режима LAT. Последняя позволяет
	использовать финскую, немцкую и т.д. клавиатуры и вообще
	отказаться от ДОС-овской программы KEYB.


	Каждая раскладка состоит из четырех таблиц:
	1. таблица для случая, когда не нажаты ни Shift ни SapsLock
	2. Shift
	3. Shift+CapsLock
	4. CapsLock

	Знаки из раскладок 2 и 3 генерируются так:  нажимается и
	отпускается клавиша <`~>, на экране ничего не появляется,
	следующая нажатая клавиша транслируется в соответствии с
	раскладками 2 и 3. Причем трансляция не зависит от состояния
	RUS/LAT.

	Такой способ ввода знаков особенно удобен если в национальном
	алфавите есть несколько букв не входящих в стандартные
	английский или русский алфавиты, т.к. для этого способа не
	нужна специальная клавиатура. Например эстонскую, финскую и
	т.д. букву a с точками наверху можно ввести нажав две клавиши:
	<`~> и a. Украинская i с двумя точками наверху вводится как
	<`~> и i.

	В эстонском алфавите есть буквы a,o,u с точками наверху и o с
	тильдой наверху. Все они есть и в стандартной таблице IBM. Но
	букв s и z с крышкой наверху и буквы O с тильдой в стандарте
	нет. Поэтому их иногда загружают вместе с русскими буквами.
	Используя данный способ трансляции можно получать правильные
	буквы как при загруженных знаках так и при стандартных.


	Дисплей. Эта программа способна поддерживать любые режимы ЕGA,
	VGA и LAPTOP. Кроме того возможна поддержка двух загружаемых
	наборов данных одновременно, т.е. дисплей способен высветить
	одновременно 512 разных знаков. Эта возможность предоставляется
	только зарегистрированным пользователям ESKEYB.



	Полное описание ключей.
        ───────────────────────

	Ключи можно задавать в любой последовательности разделяя или
	нет пробелом.

/U	Выгрузка программы.

/?	Вывод на экран подсказки.

/??	Вывод на экран таблицы скан-кодов клавиатуры, которая
	используется при задании горячих клавиш.

/W	Создать файлы раскладки клавиатуры и шрифтов. Файлы имеют
	следующие имена:
	KB.ESK - раскладка клавиатуры
	xxs-8.ESK - экранный шрифт; здесь xx-высота, s-стиль может
	принимать значения N и B (нормальный и bold).
	Эти файлы можно записать обратно в программу ключами /FN и /FB.

	Файл шрифта - в формате EVAFONT, т.е. 256 символьных описаний
	без заголовков.

/S	Записать ключи в тело программы, чтобы при последующем вызове
	их можно было бы не набирать.

	Следующие три ключа используют такие понятия как стиль. ESKEYB
	позволяет выводить на экран одновременно 2 шрифта или 512
	разных знаков. Выбор шрифта регулируется битом 3 атрибута - это
	бит яркости.

	Таким образом если мы нажмем Ins в Norton Commander, то
	выделенные файлы будут высвечены одним шрифтом, а невыделенные-
	другим. Эта возможность полезна на компьютерах типа LAPTOP,
	где недостаточное количество цветов можно компенсировать
	дополнительным шрифтом.

/FN<file>
        Загружает файл со шрифтом пользователя или раскладку
	клавиатуры. Имя  файла  не  имеет значения, главное  чтобы была
	корректной его длина. Заготовки  для своих фонтов  можно
	"вытащить" из ESKEYB с помощью ключа /W. Допускается *.
	Загруженный шрифт трактуется как "нормальный". Допустимые длины
	файлов: раскладка=864, шрифт 8xN=N*256.


/FB<file>
	То же самое что и /FN, только загруженный шрифт рассматривается
	как "жирный". Допустим только в коммерческой версии программы.

/Ix	Задает начальный режим программы.
	x=0: HARD/LOAD    RUS/LAT     x=1: HARD/LOAD    RUS/LAT
		  ====        ===          ====             ===

	x=2: HARD/LOAD    RUS/LAT     x=3: HARD/LOAD    RUS/LAT
		  ====    ===              ====         ===

	RUS/LAT означает переключение между русской и латинской
	раскладками клавиатуры, а HARD/LOAD переключение между шрифтом
	ПЗУ и программным.
	Таким образом команда /I2 означает загруженный шрифт и русскую
	раскладку.

/Rx	Индикация режимов программы.
	x - 16ричное число. Возможные значения:
	1 - в режиме RUS появляется рамка
	2 - режимы HARD/LOAD и RUS/LAT индицируются в правом верхнем углу
	    экрана  буквами H/L и R/' '
	4 - в режиме RUS на клавиатуре горит лампа ScrollLock
	8 - в режиме RUS при нажатии клавиши потрескивают

	Допустимы любые комбинации этих чисел. Например 9=8+1 -
	потрескивание и рамка, а=8+2 - потрескивание и буквы в углу
	экрана.

/Kxx[r]
	С помощю этого ключа можно задавать клавиши для переключения
	RUS/LAT. xx означает код клавиши (скан-код). Таблицу этих кодов
	можно вывести на экран командой /??. Необязательный параметр "r"
	означает, что клавиша находится справа на расширенной
	клавиатуре, например правый Ctrl, Enter, Alt.

	В зависимости от количества клавиш можно указывать от одного до
	трех ключей.

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


/Bxx[r]
	С помощю этого ключа можно задавать клавиши для переключения
	HARD/LOAD, т.е. для переключения между загруженным шрифтом и
	шрифтом из ПЗУ. xx означает код клавиши (скан-код), таблицу
	этих кодов можно вывести на экран ключем /??. Необязательный
	параметр "r" означает, что клавиша находится справа на
	расширенной клавиатуре, например правый Ctrl, Enter, Alt.

	В зависимости от количества клавиш можно указывать от одного до
	трех ключей.

/F<height>:{b|n}:{0|1|2|3}
	Манипулирует шрифтами. <height>-высота шрифта. {b|n} - "bold"
	или "normal". Цифры означают следующее:
	0 - если в командной строке есть ключ /S, то шрифт будет удален
	    из программы на диске, если ключа /S нет, то никаких
	    действий не производится
	1 - не включать данный шрифт в резидентную часть программы
	2 - фонт будет включен в резидент только в том случае, если в
	    момент загрузки драйвера используются символы этой высоты.
	    Исключение составляет шрифт 8x8, который включается даже
	    если в момент загрузки он не используется.
	3 - фонт будет включен

	Если фонт отключен, символы не будут поддерживаться в режимах,
	которые используют матрицу данной высоты, зато будет
	сэкономлена память. Обычно достаточно включать шрифт 8x8 и
	один из фонтов 8x14 на EGA, 8x16 на VGA, 8x19 на LAPTOP-е.

/Hx	Позволяет использовать шрифты, загруженные в момент запуска
	программы.  x=1:  в резидентную часть включаются шрифты из
	ПЗУ, x=0:  собственные шрифты.  Если в командной строке есть
	ключ /S, собственные шрифты не затираются в программе на диске,
	туда записывается только значение ключа и на каждой машине
	загружаются шрифты из собственного ПЗУ.

	Этот ключ удобно использовать вместе с /W - чтобы вытащить
	шрифт из ПЗУ в файл.

/SCRx
	x=0: не поддерживать дисплей - только драйвер клавиатуры. В
	этом режиме используется только около 1.5 Кбайт памяти.
	x=1: поддерживать дисплей


/KBRx	x=1: включать в резидент клавиатурный блок.
	x=0: не включать в резидент клавиатурный блок. Экономится 1-2К
	памяти.

/VGA8x	x=1: вместо 9x16 использовать 8x16 - это расширяет знак на 1
	точку и убирает вертикальные полосы в строках, составленных из
	знаков: ░░░░ ▒▒▒▒ ▓▓▓▓.
	x=0: не менять ширину знаков.
	При реализации этой возможности использовалась программа М.А.
	Яковлева, опубликованная в Софтпанораме.

/ARCx - сжимает в 1.5-2 раза шрифты и драйвер занимает меньше памяти.
	Естественно, в графическом режиме загруженных знаков уже 
	не будет, т.к. BIOS хочет указатель на распакованный шрифт.

/LATx - позволяет транслировать введенные знаки и в латинском режиме.


───────────────────────────────────────────────────────────────────────
	Есть две версии программы: коммерческая и свободная. Отличаются
	они тем, что свободная не поддерживает два шрифта одновременно.

	Вы можете свободно пользоваться некоммерческой версией и
	распространять ее.
	Условия следующие
		  - вы не должны изменять код программы, текстовые
		    сообщения в ней и текст документации.
                  - запрещено коммерческое распространение  программы.
                    Но это не исключает контракта с автором программы
                    для ее коммерческого использования.

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

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


	Адрес:          EE3600 Эстония, г. Пярну ул. Май 23 кв. 32
			телефон (01444) 21 633
			Баженов Юрий Евгеньевич
───────────────────────────────────────────────────────────────────────

