KEYRUS V7
Найпоширеніший і найзручнішийрусифікатор дляDOS. В архіві найповніша і остання версія, з документацією та засобом для редагування шрифтів. Великі можливості: можна вантажити будь-який графічний шрифт 8x8, 8x14, 8x16; задавати будь-які клавіші для перемикання, змінювати розкладку клавіатури; використовувати NumPad для псевдографіки або інших символів. Індикація розкладки може виконуватися кольором бордюру екрана, звуком при натисканні клавіш/перемикання, світлодіодами на клавіатурі. Призначаються клавіші перемикання шрифту та розкладки клавіатури. ФайлKeyrus.com, що запускається, після конфігурації можна переносити і користуватися з усіма налаштуваннями, які перепрошуються всередині одного файлу. Є підтримкаукраїнської клавіатури та шрифтів
Програма-драйвер складається з трьох блоків - клавіатури, підтримки дисплея та інтерфейсу. Перший основний блок обробляє клавіатуру, другий блок забезпечує коректне відображення символів на екрані, третій виконує інші другорядні функції (інтерфейс з програмами користувача, динамічна зміна параметрів та ін.)
Насамперед, щоб уникнути непорозумінь, визначимося - на яких комп'ютерах працює ця програма. Блоки клавіатури та інтерфейсу нечутливі до типу комп'ютера (якщо звичайно IBM сумісний комп'ютер). Блок підтримки дисплея повноцінно працює на EGA/VGA На MCGA, Hercules+, ЄС-1840.KEYRUS був спочатку задуманий як драйвер-русифікатор, але в поточній версії його можна налаштувати на будь-яку клавіатуру користувача та на будь-якийнаціональний шрифт (за умови, що символів у цій мові не більше 256) Програма легко налаштовується на будь-якийсмак користувача. Поточна версія підтримує більше 30 різних ключів, за допомогою яких можна скласти безліч варіантів конфігурації на будь-який смак. Залежно від конфігурації, драйвер займає від 300 байт до 11 кілобайт.
Наберіться, будь ласка, терпіння і прочитайте короткий перелік всього, що вміє програма KEYRUS.
Можна вимкнути при завантаженні блоки клавіатури або екрана, і таким чином використовувати KEYRUS тільки як драйвер дисплея або тільки як драйвер клавіатури. Окремі шрифти можна вимкнути. Наприклад, якщо я не працюю в режимі 80x50 і мені не потрібні українські літери у графіку, навіщо мені пам'ятати шрифт 8x8. Достатньо ввести ключ 8x8=off і ми заощадимо 1К пам'яті.
Докладніше дивись опис ключів /8x8, /8x14, /8x16. Для того, щоб не набирати щоразу при запуску всі ключі, достатньо набрати їх один раз і в кінці командного рядка додати /SAVE - ваша конфігурація стане тепер за замовчуванням. Поточну конфігурацію можна переглянути, набравши KEYRUS /?
Деякі параметри можна змінювати, не завантажуючи драйвер із пам'яті. Конкретніше дивись опис ключів. Драйвер можна вивантажувати з пам'яті за допомогою ключа /RELEASE або програмою RELEASE.
При використанні драйвера без проблем набираються такі символи, як українське "р" та ін. До таких програм входить і відомий Norton Commander.
Наприкінці цієї документації є додаток, в якому описано, як змінити сам NC, щоб він розумів цю букву. Для тих, хтотурбується що екран його дисплея буде вигоряти з часом (це дійсно має місце на деяких моніторах) пропонується ключ /blank, який забезпечуватиме гасіння екрана на комп'ютері, якщо на ньому ніхто не працює.
Драйвер працює на адаптерах EGA/VGA, але може працювати на інших. Так, наприклад, на CGA можна підтримувати українську клавіатуру та графічні режими: keyrus /128 чудово замінює програму graphtabl. Можна керувати роботою драйвера зі своєї програми.
Наведений перелік можливостей драйвера далеко не сповнений, він лише дає загальне уявлення про програму.
Невеликий додаток для програмістів
У KeyRus'і мною використано низку оригінальних алгоритмів, які не зустрічалися мені раніше. Можливо, це буде цікаво розробникам аналогічних програм.
1. Якщо включений режим /compress, весь фонт у тілі драйвера при запуску упаковується (відсотків на 40) і при завантаженні в знакогенератор використовується процедура, яка звертаючись до EGA/VGA через порти безпосередньо розпаковує фонт прямо в пам'ять знакогенератора. Зрозуміло у цьому режимі підтримується графічний режим, т.к. BIOS вимагає вказівник на невпакований шрифт.
2. Як відомо, існує багато варіантів SuperVGA і на них немає загального стандарту. Так, один VGA використовує додаткові режими 50 - 56, інший - 4f і так далі. Цій версіїKEYRUS це абсолютно байдуже. Я використовую наступний алгоритм визначення режиму (тільки для VGA):
mov dx,3ceh in al,dx; Читаємо індексний регістр mov ah,al mov al,6 out dx,al;Використовуємо регістр Graphic6 inc dx in al,dx; читаємо цей регістр dec dx ; test al,1; якщо біт 0=0, це текстовий режим mov al,ah out dx,al; Відновлюємо індексний регістр je @@TextMode @@GraphicMode: . @@TextMode: . Після того, як ми визначили тип режиму, можна дізнатися: byte 0040:0063 = 0b4h для монохромного, =0d4h для кольорового режиму word 0040:0085 = число ліній в одному символі byte 0040: 0084 = число рядків на екрані мінус 1 word 0040:004A = число колонок на екрані Таким чином, ми маємо повну інформацію і номер режиму нам не цікавий.