OpenWiki

Cyrhack Keyboard

Edit this page (last edited December 24, 2003)
Palm Notes | Recent Changes | Title Index | User Preferences | Random Page | Help
Руссификатор Cyr Hack поддерживает внешние клавиатуры. Причем поддержка реализована достаточно универсально. Все (все 3 ) клавиатуры, с которыми я сталкивался вполне пристойно руссифицируются. Для поддержки важны три вещи:
  1. Способ проверки активности клавиатуры. Обычно используется выставление фичи. Все определяемые клавиатуры содержатся внутри кода Cyr Hack и не могут быть добавлены пользователем.
  2. Внутренние таблицы драйвера клавиатуры. Иногда их приходится изменять для правильной перекодировки нестандартных символов
  3. Таблица перекодировки клавиш. Она хранится во внешнем языковом модуле и представляет из себя байтовый массив из 128 символов ( char transTbl[128]). При активной внешней клавиатуре и включенном русском регистре все символы из первой половины перекодируются по таблице:
char ch; // входящий символ
if (chMode == RusMode)
{
  if (ch < 128)
  {
    ch = transTbl[ch];
  }
}

Если клавиатура не поддерживается в Cyr Hack, то скорее всего это легко лечится. Во-первых нужно указать ему, что клавиатура подключена. Проще всего это можно сделать имитацией подключения PPK, выставив feature, указывающую на его активность. Здесь лежит программа: http://yahm.palmoid.com/setnrftr.prc , а вот ее исходник.
#include <PalmOS.h>

UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags)
{
  FtrSet('KO01', 0, 0x100001);
  return 0;
}

Известные мне клавиатуры:

Palm Notes | Recent Changes | Title Index | User Preferences | Random Page | Help
Edit this page | View other revisions
Print this page | View XML
Find page by browsing, searching or an index
Edited December 24, 2003 (diff)
Valid XHTML 1.0!Valid CSS!