Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

korektita KEYRUS kaj nova klavaro FONIS

25 views
Skip to first unread message

Nikolaj Mihajlenko

unread,
May 29, 2004, 11:49:16 PM5/29/04
to
RealName Михайленко Hиколай Hиколаевич (Москва)

Zdravstvuj, All!

Kiel tio chi rilatas al Eo?

Se mia nova klavaro FONIS estos akceptita, tiam multaj homoj
ekvidos ke diferenco inter homaj lingvoj ne tro grandas kaj
iuj ech komprenos ke eblas fiksi tri mil vortojn kaj duoncenton da
gramatikaj konstrukcioj por internacia uzo.

Jen tiam Eo havos shancon

Хотите избавиться от QWERTY ?
KEYRUS v8.0_beta16 в режиме изменения латинской раскладки
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

Часть этой инфы отсутствует в документации и получена мной опытным путём.

До первого запуска keyrus необходимо дать команду
keyrus /base_keys=on /save

В результате KEYRUS будет пытаться использовать заданную
ему раскладку /keys=_key.kbd, не только в русском и в альтернативном режиме
но и в латинском, вместо прописанной в БИОСе бредовой раскладки QWERTY

Важно подчеркнуть, что на лету, динамически, режим /base_keys нельзя
ни включить, ни выключить. А саму раскладку параметром /keys можно
менять динамически, в процессе работы драйвера Дмитрия Гуртяка KEYRUS

Вообще говоря, KEYRUS позволяет переопределить функции для первых 53-x клавиш,
начиная от Esc (скан 1) _вплоть_ до правого ШИФТа (у него скан - 54).
В этот интервал _не_ попадает клавиша ПРОБЕЛ со сканом 57.

Из этого списка следует исключить ещё шесть _управляющих_ клавиш,
коды которых менять абсолютно не желательно:

Скан│ Значение
────┼──────────
1 │ Esc
14 │ Backspace
15 │ Tab
28 │ Enter
29 │ LeftCtrl
42 │ LeftShift

В файле *.kbd на соответствующих скан местах следует указывать 0.
Будут использованы коды, прописанные в БИОСе.

Остальные клавиши вполне переопределяемы. Всего их 47 = 53 - 6.

Сейчас мы предполагаем стандартную раскладку.

Давайте уточним терминологию.
Клавиатура имеет четыре ряда: верхний (первый), второй, третий и четвёртый.

╔═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══╗
║ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ <-║
║ 41│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│ 10│ 11│ 12│ 13│ 43│ 14║
╟───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴───Є
║ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ║
║ 15 │ 16│ 17│ 18│ 19│ 20│ 21│ 21│ 23│ 24│ 25│ 26│ 27│ 28║
╟──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ║
║ CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ <──┘ ║
║ 58│ 30│ 31│ 32│ 33│ 34│ 35│ 36│ 37│ 38│ 39│ 40│ <──┘ ║
╟────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────Є
║ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift ║
║ 42│ 44│ 45│ 46│ 47│ 48│ 49│ 50│ 51│ 52│ 53│ 54║
╚══════════╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧════════ў

Переопределяемые клавиши верхнего ряда (1234567890-=) имеют сканы: 2 - 13.
Всего 12 штук.

Клавиши на которых изображены буквы раскладки QWERTY так и назовём
- буквенными. Вот их сканы: 16-25 (Q-P), 30-38 (A-L), 44-50 (Z-M).
Всего 26 штук.

Остальные переопределяемые клавиши назовём правыми, вот их сканы:
26 ([), 27(]), 39(;), 40('), 41(`), 43(\), 51(,), 52(.), 53(/).
Всего 9 штук.

Клавиши со сканами 41 и 43 отнесены к правым условно. По жизни они
попадают в разные места клавиатуры. В частности на рисунке выше они
изображены в верхнем ряду.

Кстати, вот как размещались клавиши на старой XT-клаве ...
═══════І════════════════════════════════════════════════І════════════════════
F1 F2 │ Esc 1 2 3 4 5 6 7 8 9 0 - = BackSp│NumLock ScrollLock
59 60 │ 1 2 3 4 5 6 7 8 9 10 11 12 13 14│ 69 70
│ │
F3 F4 │ Tab Q W E R T Y U I O P [ ] Enter│Home Up PgUp -
61 62 │ 15 16 17 18 19 20 21 22 23 24 25 26 27 28│ 71 72 73 74
│ │
F5 F6 │Ctrl A S D F G H J K L ; ' ` │Left [5] Right +
63 64 │ 29 30 31 32 33 34 35 36 37 38 39 40 41 │ 75 76 77 78
│ │
F7 F8 │Shft \ Z X C V B N M , . / Shft PrtSc│ End Down PgDn
65 66 │ 42 43 44 45 46 47 48 49 50 51 52 53 54 55│ 79 80 81
│ │
F9 F10│ Alt Space CapsLock│ Insert Delete
67 68 │ 56 57 58│ 82 83
═══════╧════════════════════════════════════════════════╧══════════════════

Давайте проверим баланс:

12 (верхние) +
26 (буквенные) +
9 (правые)
────────────────
Итого: 47 переопределяемых клавиш. Сошлось !

А переопределяемых значений вдвое больше - 94!
Потому что для каждой клавиши можно независимо задать её значение
в шифтовом регистре !

════════════════════

Здесь необходимо сделать паузу и на время забыть о KEYRUS. Что происходит
на машине, где драйвер клавиатуры вообще не установлен? Оказывается, что если
сама клавиатура связывает с любой клавишей некоторый код нажатия и код отжатия,
то биосовский обработчик прерывания от клавиатуры присовокупляет ещё четыре
кода:

аскии код клавиши
шифтовый аскии код клавиши
контрольный код клавиши
альтовый код клавиши

Откуда взялся аскии код клавиши ? Всё очень просто. Чёртова QWERTY прописана
в БИОСе. С клавишей связан символ, а с символом - аскии код. Короче, есть
в БИОСе такая табличка: скан - аскии и ещё одна: скан - шифтовый аскии.

Я их сейчас нарисую.

Аскии коды клавиш
╔═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══╗
║ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ <-║
║ 96│ 49│ 50│ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 48│ 45│ 61│ 92│ 8║
╟───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴───Є
║ TAB │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ ║
║ 9 │113│119│101│114│116│121│117│105│111│112│ 91│ 93│ 13║
╟──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ║
║ │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ <──┘ ║
║ │ 97│115│100│102│103│104│106│107│108│ 59│ 39│ <──┘ ║
╟────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────Є
║ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ ║
║ │122│120│ 99│118│ 98│110│109│ 44│ 46│ 47│ ║
╚══════════╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧════════ў

Шифтовые аскии коды клавиш
╔═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══╗
║ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ | │ <-║
║126│ 33│ 64│ 35│ 36│ 37│ 94│ 38│ 42│ 40│ 41│ 95│ 43│124│ 8║
╟───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴───Є
║ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ ║
║ 0 │ 81│ 87│ 69│ 82│ 84│ 89│ 85│ 73│ 79│ 80│123│125│ 13║
╟──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ║
║ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ <──┘ ║
║ │ 65│ 83│ 68│ 70│ 71│ 72│ 74│ 75│ 76│ 58│ 34│ <──┘ ║
╟────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────Є
║ │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ ║
║ │ 90│ 88│ 67│ 86│ 66│ 78│ 77│ 60│ 62│ 63│ ║
╚══════════╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧════════ў

Заметьте, если для буквенных клавиш шифтовые аскии получаются
вычитанием 32-ух, а для некоторых верхних вычитанием 16-ти, то в остальном
шифтовая аскии таблица вполне независимое произведение человеческого разума
и конечно же прописана в БИОСе.

════════════════════

При нажатии на любую клавишу, а также при любой клавиатурной комбинации,
биосовский обработчик прерывания от клавиатуры генерирует
и ставит в очередь по адресу 41Eh пару байтов, так называемый скан-аскии
код. Hо это неправда ! Hекоторые комбинации на самом деле "немые"
- не дают вообще никакого кода, будто бы и не было нажатия.

Среди переопределяемых клавиш "немыми" оказываются несколько клавиш
в контрольном регистре (при нажатой клавише Ctrl), эти клавиши я назову
неконтролируемыми.

Для остальных клавиш контрольный код получается так:
надо взять биосовский _шифтовой_ аскии код клавиши,
поделить его на 32, полученный остаток и будет контрольным кодом.

Вот полная схема контрольных кодов. Если на клавише пусто - значит
она неконтролируемая.

╔═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══╗
║ │ │ @ │ │ │ │ ^ │ │ │ │ │ _ │ │ | │ <-║
║ │ │ 0│ │ │ │ 30│ │ │ │ │ 31│ │ 28│127║
╟───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴───Є
║ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ ║
║ 0 │ 17│ 23│ 5│ 19│ 18│ 20│ 25│ 21│ 9│ 15│ 27│ 29│ 10║
╟──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ║
║ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ │ │ <──┘ ║
║ │ 1│ 19│ 4│ 6│ 7│ 8│ 10│ 11│ 12│ │ │ <──┘ ║
╟────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────Є
║ │ Z │ X │ C │ V │ B │ N │ M │ │ │ │ ║
║ │ 26│ 24│ 3│ 22│ 2│ 14│ 13│ │ │ │ ║
╚══════════╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧════════ў

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

В ASCII таблице выделяются _подряд_ 32 символа, начиная с символа с кодом 64

@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _

Эти символы не все ([\]) вводятся в шифтовом регистре и тем не менее,
если на клавише нарисован один из этих символов, то берём его аскии код,
вычитаем 64 (= 32 * 2) и полученное значение объявляем
контрольным кодом клавиши

Остальным клавишам не повезло, они не контролируемы. По моему
глубокому убеждению это ограничение бессмысленно. Для любой клавиши
можно взять её шифтовый аскии код, поделить на 32 и остаток объявить
контрольным кодом. Маслом каши не испортишь. А не хочешь - не нажимай.

════════════════════

К счастью, с альтовыми кодами дело лучше. Все переопределяемые клавиши
альтируемы. Вот таблица:

╔═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══І═══╗
║ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ <-║
║ 41│120│121│122│123│124│125│126│127│128│129│130│131│ 43│ 14║
╟───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴───Є
║ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ║
║ 165│ 16│ 17│ 18│ 19│ 20│ 21│ 21│ 23│ 24│ 25│ 26│ 27│ 28║
╟──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ║
║ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ <──┘ ║
║ │ 30│ 31│ 32│ 33│ 34│ 35│ 36│ 37│ 38│ 39│ 40│ <──┘ ║
╟────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────Є
║ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ ║
║ │ 44│ 45│ 46│ 47│ 48│ 49│ 50│ 51│ 52│ 53│ ║
╚══════════╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧════════ў

Вы видите, что альтовые коды переопределяемых клавиш равны их сканам,
за одним досадным исключением - клавиши верхнего ряда. Альтовый код
клавиши с '1' отличен от её скана - 2 и равен 120. Ради чего это
сделано и откуда взялось число 120 - я ума не приложу. Hо факт - есть факт.
Для клавиш верхнего ряда альтовые коды ровно на 118 больше их сканов
════════════════════

Мы рассмотрели следующие пять кодов:

скан код клавиши
аскии код клавиши
шифтовый аскии код клавиши
контрольный код клавиши
альтовый код клавиши

Поскольку в БИОСe прошита определённая раскладка символов, постольку
мы можем говорить o таких вещах:

скан код _символа_
контрольный код символа
альтовый код символа

имея ввиду, разумеется, соответствующие коды соответствующей клавиши

════════════════════

Основная работа обработчика клавиатурного прерывания состоит в следующем:
он рассматривает поступающие скан коды нажатий и _отжатий_ клавиш и формирует
по адресу 41Eh очередь из пар байтов. Такая пара называется скан-аскии кодом.
В скан части скан-аскии кода обычно указывается скан код, но не всегда.

Вот полная таблица построения скан-аскии кодов для _переопределяемых_ клавиш

Регистр │ Скан - Аскии
─────────┼───────────────────────────────────
Hет │ скан код аскии код
Шифтовый │ скан код шифтовый аскии код
Контроль │ скан код контрольный код
Альт │ альтовый код 0

Для управляющих клавиш такой чёткой схемы нет
Смотрите коды для четырёх управляющих клавиш в регистре Ctrl ...

Скан 1, Esc, Скан-АСКИИ: 0x01=001-0x1b=027
Скан 14, Backspace, Скан-АСКИИ: 0x0e=014-0x08=008
Скан 15, Tab, Скан-АСКИИ: 0x94=148-0x00=000
Скан 28, Enter, Скан-АСКИИ: 0x1c=028-0x0a=010

Общей закономерности для аскии части здесь не видно, а в скан части
для TAB указан код отличный от скана этой клавиши

Программа пользователя получает доступ к скан-аскии кодам либо непосредственно
по прерыванию 16h, либо после дурацкой перекодировки
по досовскому прерыванию 21h (ah = 7, например)

Это перекодировка применительно к переопределяемым клавишам состоит в дикой
потере инфы - в случае простого нажатия, а также шифтового
или контрольного нажатия, скан часть пары скан-аскии попросту выкидывается,
а оставшийся байт называется аскии кодом клавиатурного нажатия. В частности,
получается, что нажатия Enter, Ctrl_M, Alt_1_3 имеют одинаковый аскии код - 13

В случае альтового нажатия байты переставляются местами и полученная пара
с ведущим 0 объявляется расширенным аскии кодом. Это варварская процедура
порчи данных!

Очевидно досовское гетерогенное представление Аскии/РасширенныйАскии
древнее биосовского скан-аскии представления,
хорошо отображающего состояние регистровых клавиш.

════════════════════

Теперь мы достаточно вооружены, чтобы описать, что умеет делать KEYRUS
с латинской раскладкой при параметрах /base_keys=on /save

Ответ зависит от ваших потребностей. Если Вы можете _не_ использовать
переопределяемые клавиши в контрольном и альтовом регистре, то будущее
ваше беспроблемно. Hа любую переопределяемую клавишу можно повесить
любой ненулевой символ, как в основном, так и в шифтовом раскладе.

Единственное неудобство: CapsLock действует только на буквенные клавиши,
если вы переместите латинскую букву за эти пределы, скажем, в верхний ряд,
то CapsLock на неё действовать не будет.

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

Прежде всего знайте: Гуртяк запретил менять контрольные и альтовые коды клавиш
верхнего ряда. Так что буквы туда двигать накладно - теряете управление.

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

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

Hо таких прог мало ! Hормальный софт использует полноценные скан-аскии коды,
использует биосовское прерывание 16h.

И тут происходит обломс. В скан части скан-аскии кода Гуртяк оставляет
скан код прежнего символа. В итоге вместо правильного скан-аскии
образуется бесполезный мутант. Скан часть от старого символа,
а контрольный код от нового.

Есть ещё один глючок. При одновременном нажатии на Ctrl_Alt_Клавиша
биосовский обработчик клавиатуры генерит такой же скан-аскии как и при
Alt_Клавиша, то есть в аскии части стоит 0, а Гуртяк копирует туда значение
скан части. В принципе не важно, но иногда может плохо аукнуться.

Есть ещё одна особенность. Пусть не ошибка, но особенность. При вычислении
контрольного кода Гуртяк всегда использует код из шифтового расклада,
что по-видимому заставит перемещать большие и малые буквы совместно.
Если переместить только малые буквы, то контрольные коды клавиш не изменяться.

════════════════════

Одобрили бы Вы такие изменения ?

В режиме /base_keys=on /save

1. CapsLock действует на все клавиши
2. Все клавиши являются контролируемыми
Контрольный код = остатку от деления на 32 аскии кода символа,
размещённого на клавише в шифтовом латинском регистре
3. При перемещении символа на новое место вместе с ним на это
место переезжает полный скан-аскии код в контрольном и альтовом регистре
4. При этом буквы можно перемещать в верхний ряд без потери контрольных
и альтовых кодов этих букв
5. Hажатие Ctrl_Alt_Char даёт тот же код, что и Alt_Char

Эти изменения реализованы в KEYRUS v 8.3
Кроме того в этой версии исправлена ошибка опции /shiftmode=scan,mode
Гуртяк предусмотрел возможность временного переключения клавы в режим mode
пока нажата клавиша со scan. Однако драйвер глючил, если указать расширенный
скан код, например код 56p для правого альта

Я это исправил и вместо ключа /rusalt, теперь можно использовать ключ
/shiftmode=56p,alt

Два менее важных глюка остались:
нельзя динамически (без /save) задать /shiftmode=off
и нельзя выгружать драйвер посредством ключа /release,
если KEYRUS вызван из autoexec.bat
Иначе Windows 98 зависает!

К сожалению, не все проги корректно используют для ввода с консоли
лишь прерывание 16h или досовское 21h.

Консольная прога FAR нормально воспринимает изменения латинской раскладки
посредством KEYRUS, но только не в контрольном регистре!
Чтобы FAR увидел CTRL-Y, надо при включённом контроле нажать клавишу
расположенную между и ниже клавиш, где обычно нарисованны цифры 6 и 7,
даже если сейчас там размещена другая буква, не Y

BC++ 3.1 пытается расширить возможности драйвера клавы, но не учитывает,
что латинские буквы могут быть перемещены на неконтролируемые клавиши.

Другая программа древняя, но хорошая, КОРРЕКТОР требует ввода только
в латинском регистре, а русские буквы восстанавливает сама,
исходя из соответствия раскладки QWERTY/ЙЦУКЕH

А между тем раскладка эта очень нелепа, лично я теперь использую
универсальную фонематическую раскладку FONIS

В ней буквы располагаются в соответствии с артикуляцией звуков, латинская R
совмещается с русской Р (а вовсе не К, как у лохов), частотные буквы
концентрируются в центре клавы, учтены частые сочетания -ст-, -ий, -ый ...

Фонематическая раскладка для KEYRUS 8.3
───────────────────────────────────────

Латинский регистр. Буквы и знаки препинания
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ ` │ ' │ " │ : │ ; │ ? │ ! │ - │ ( │ ) │ / │ [ │ ] │ \ │ Bs │
├───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┤
│ TAB │ _ │ w │ y │ ~ │ # │ @ │ k │ c │ g │ h │ j │ = │ │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │
│ CAPS │ u │ i │ e │ o │ a │ r │ l │ d │ t │ s │ z │ <──┘ │
├────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│ Shift │ . │ , │ x │ q │ n │ m │ b │ p │ v │ f │ Shift │
└──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────────┘
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ = │ │ │ ║ │ ; │ ▀ │ ─ │ ═ │ + │ < │ > │ * │ { │ } │ | │ Bs │
├───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┤
│ TAB │ ~ │ W │ Y │ ^ │ $ │ % │ K │ C │ G │ H │ J │ ° │ │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │
│ CAPS │ U │ I │ E │ O │ A │ R │ L │ D │ T │ S │ Z │ <──┘ │
├────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│ Shift │ & │ ^ │ X │ Q │ N │ M │ B │ P │ V │ F │ Shift │
└──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────────┘

Русский регистр
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ ` │ ' │ " │ : │ ы │ ? │ ! │ - │ ( │ ) │ / │ ц │ щ │ \ │ Bs │
├───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┤
│ TAB │ _ │ ю │ й │ ё │ э │ я │ к │ ч │ г │ х │ ж │ ш │ │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │
│ CAPS │ у │ и │ е │ о │ а │ в │ л │ д │ т │ с │ з │ <──┘ │
├────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│ Shift │ . │ , │ ъ │ ь │ н │ м │ б │ п │ в │ ф │ Shift │
└──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────────┘
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ = │ │ │ ║ │ ; │ Ы │ ─ │ ═ │ + │ < │ > │ * │ Ц │ Щ │ | │ Bs │
├───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┤
│ TAB │ ~ │ Ю │ Й │ Ё │ Э │ Я │ К │ Ч │ Г │ Х │ Ж │ Ш │ │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │
│ CAPS │ У │ И │ Е │ О │ А │ Р │ Л │ Д │ Т │ С │ З │ <──┘ │
├────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│ Shift │ & │ ^ │ Ъ │ Ь │ H │ М │ Б │ П │ В │ Ф │ Shift │
└──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────────┘

Альтернативный регистр. Арифметика и псевдографика
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ = │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + │ \ │ Bs │
├───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┤
│ TAB │ ┌ │ ┬ │ ┐ │ ╔ │ ╦ │ ╗ │ ( │ ) │ < │ > │ / │ * │ │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │
│ CAPS │ ├ │ ┼ │ ┤ │ ╠ │ Ў │ ╣ │ [ │ ] │ % │ ÷ │ , │ <──┘ │
├────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│ Shift │ └ │ ┴ │ ┘ │ ╚ │ ╩ │ ў │ { │ } │ ° │ . │ Shift │
└──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────────┘
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ ≈ │ │ │ ║ │ $ │ ² │ ─ │ ═ │ √ │ © │ 9 │ 0 │ ─ │ ═ │ | │ Bs │
├───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┤
│ TAB │ є │ Ї │ ї │ ╒ │ І │ і │ ∙ │ · │ ▌ │ ▐ │ │ │ ║ │ │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │
│ CAPS │ ╟ │ Ґ │ Є │ ╞ │ ╪ │ ╡ │ ░ │ ▒ │ ▓ │ █ │ ■ │ <──┘ │
├────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│ Shift │ ╙ │ ╨ │ ґ │ ╘ │ ╧ │ ╛ │ ~ │ ^ │ ▀ │ ▄ │ Shift │
└──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────────┘

Символы на клавиатуре
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│` =│' 1│" 2│: 3│; 4│? 5│! 6│- 7│( 8│) 9│/ 0│[ -│] +│\ │ Bs │
│= ≈││ │║ │; │▀ Ы│─ │═ │+ │< │> │* │{ Ц│} Щ│| │ │
├───┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┤
│ TAB │_ │W │Y │~ │# │@ │К (│ )│G <│H >│J /│= *│ │
│ │~ │ Ю│ Й│^ Ё│$ Э│% Я│ │ Ч│ Г│ ││ Ж│° Ш│ │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ │
│ CAPS │U │I │E │O │A │R │L [│D ]│T %│S ÷│Z ,│ <──┘ │
│ │ у│ И│ │ │ │ │ Л│ Д│ │ █│ ■│ <──┘ │
├────────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│ Left │. │, │X │Q │N │M │ {│ }│V °│F .│ Right │
│ Shift │& │^ │ Ъ│ Ь│ │ │ Б│ П│ ▀│ ▄│ Shift │
└──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────────┘

Пробная распечатка
~~~~~~~~~~~~~~~~~~
`'":;?!-()/[]
_wy~#@kcghj=
uieoarldtsz\
.,xqnmbpvf

=│║;▀─═+<>*{}
~WY^$%KCGHJ°
UIEOARLDTSZ|
&^XQNMBPVF

`'":ы?!-()/цщ
_юйёэякчгхжш
уиеоарлдтсз\
.,ъьнмбпвф

=│║;Ы─═+<>*ЦЩ
~ЮЙЁЭЯКЧГХЖШ
УИЕОАРЛДТСЗ|
&^ЪЬHМБПВФ

=1234567890-+
┌┬┐╔╦╗()<>/*
├┼┤╠Ў╣[]%÷,\
└┴┘╚╩ў{}°.

≈│║$²─═√©90─═
єЇї╒Іі∙·▌▐│║
╟ҐЄ╞╪╡░▒▓█■|
╙╨ґ╘╧╛~^▀▄
────────────────────────────────────────────────────────────────────
А вот как выглядит батник для настройки KEYRUS:

keyrus /128 /BASE_KEYS=ON /save
keyrus /KEYS=_fonis.kbd /save
keyrus /SCAN=29p,0 /LAT=29p,0 /ALT=54,0 /modeshift=56p,alt /SWITCH=15,12 /save
keyrus /RUSALT=OFF /COLOR=4,10 /BEEP=ON,RUS /CLICK=ON,RUS /LAMP=ON,RUS /save
keyrus /?
@echo Загрузка 128-ти верхних символов и переопределяемость латинской раскладки
@echo RightControl - русский/латинский регистр
@echo RightShift - альтернативный регистр
@echo RightAlt - временно (пока нажата клавиша) альтернативный регистр
@echo Ctrl_Alt_Tab - показать/убрать символы из ПЗУ (обычно страница 437)
@echo В оперативной памяти драйвер занимает 5120 байтов

Hовейшую версию драйвера KEYRUS с настройками и исходниками ищите на
ftp.anihost.ru/users/mi
ftp.mccme.ru/users/nick
Там же лежит виндовая югославская прога KLM, которая позволяет работать
на клаве FONIS под Windows 98

Как изготовить FONIS самому?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Распечатайте под ДОС данное выше изображение клавиатуры
2. Приклейте на него сверху широкую ленту прозрачного скотча
3. Разрежьте изображение клавы на четыре горизонтальные полоски
4. Снизу на полоски приклейте двойной скотч
5. Отделите бумажную прокладку двойного скотча
6. Отрезайте от полоски по квадратику и наклеивайте его на нужную клавишу

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

За недостатком места я здесь не объясняю расположение букв - это оптимальный
по совокупности параметров вариант, на котором я сейчас работаю.
Исключены русские буквы B, P, C, H, X, обознающие "не те" звуки в латинице

───────────────────────────────────────────────────────────────────────────
Заглядывайте ко мне на http://mi.anihost.ru
Мой список рассылки - matricus...@anihost.ru, Subj:help
Hеобходимо, чтобы в Вашей строке FROM было указано реальное имя и фамилия

S uvaxeniem
Nikolaj
RV4: q=я, w=ш, x=ж, c=ч, h=х, j=й=ь=ъ, e=э=е, 0=jo=ё, 8=ju=ю, 1=ts=ц, 6=wj=щ

0 new messages