программирование клавиатуры

Тема в разделе "WASM.OS.DEVEL", создана пользователем abcd008, 2 июн 2010.

  1. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    интересно что если сделать все тоже самое, но не выключать эмуляцию(XLAT),
    то клавиши mute, volume + - вырабатывают сканкод нажатия и отпускания, согласно режиму 1 сканкода(c / c+80h).
     
  2. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    короче я пришел к выводу что лучше использовать режим эмуляции, там все кнопки соответствуют таблице
     
  3. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    По-моeму лучшe использовaть нaбор 2 бeз трaнсляции.
     
  4. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    я согласен. но я уже писал выше, что не все клавы стандартные в режиме без трансляции.
    У меня на ноуте в режиме трансляции все нормально, а без трансляции мультимедиа клавиши шлют вообще свои сканкоды, а при отпускании F0+не свой код.
    ВОТ я и пришел к выводу что в режиме трансляции лучше.
     
  5. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Лучшe выясни, почeму тaк происходит. Почeму контроллeр нормaльно трaнслируeт коды отпускaния, a ты этого сдeлaть нe можeшь? Нaвряд ли он нaстолько интeгрировaн с клaвиaтурой, что знaeт о нeстaндaртных кодaх отпускaния.
     
  6. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Софт обычно рaботaeт с мультимeдийными клaвишaми, кaк с кнопкaми, т.e. рeaгируeт только нa нaжaтия, поэтому лучшe провeрь, нe совпaдaют ли коды отпускaния мм клaвиш с кодaми отпускaния др. клaвиш.
     
  7. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    А что это даст? Я ведь хочу знать какая нажата и какая отпущена.
    Ведь если я подстроюсь под свой ноут, не факт что на другом так же будет.
     
  8. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Я не предлагаю под что-либо подстраиваться, а предлагаю разобраться с проблемой. Вот например интересно, какие именно коды отпускания мм клавиш для второго набора выдаются на твоем ноуте. Я допускаю, что коды отпускания мм клавиш выдаются неправильно, но все-таки сомневаюсь в этом. И даже если это так, то хорошо написанный обработчик должен сглаживать эту ситуацию. Коды отпускания играют существенную роль прежде всего для клавиш Shift, Ctrl, Alt. Если коды отпускания мм клавиш на твоем ноуте не совпадают с кодами отпускания этих клавиш, то все не так страшно. Главное, чтобы обработчик не ждал отпускания мм клавиш (с теми же кодами). Софт, работающий с клавиатурой исключительно через системное ПО, скорее всего даже не заметит появления подобного несоответствия, т.к. в подавляющем большинстве случаев выполняет обработку событий только по нажатию клавиш, хотя по идее должен иметь возможность принимать события и по отпусканию клавиш.
     
  9. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    коды моей клавы:
    esc- 76h / f0h 76h
    home -E0h 3Ah / E0h B2h
    mute - E0h 23h / E0h A0h

    по какому принципу их определять?
    в режиме трансляции всенормально
     
  10. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Все правильно, как и прописано в спецификации.
    http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf
     
  11. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    ща почитаю. только на форуме linux читал что от нее давно отказались.

    интересно что коды нажатия ММ клавиш соответствуют , а отпускания соответствуют скан кодам реж трансляции
     
  12. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    посмотрел:
    - причем тут usb to ps2
    - коды которые я привел не соответствуют таблице
     
  13. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    и еще в спецификации написано что винда использует набор 1.
    тоже что и 2 в режиме трансляции.
    так что я был прав, нефиг мудрить, нало как все нормальные люди, с трансляцией и в реж 2
     
  14. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    интересный факт:
    в режиме трансляции и набор 2
    скан коды ММ соответствуют таблице
    А без трансляции в наборе 1
    esc- 01h / 81h
    home -E0h 3Ah / E0h B2h
    mute - E0h 23h / E0h A0h

    хотя по идее они должны быть как при трансляции в наб 2



    и еще у ММ клавиш почему-то нет префикса F0h при отпускании
     
  15. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Возникает вопрос, активировал ли ты набор 2 в первом случае вообще? Покажи, как ты отключал трансляцию и активировал набор 2.
     
  16. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    У тебя почему-то код нажатия мм клавиш из набора 2, а код отпускания из набора 1.
     
  17. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    я про это и писал.
    И режим этот если не включать всеравно по умолчанию.

    я врегистре команд вырубал 6 бит
    и слал клаве f0h - 02h
    при выключенном прерывании, nmi и даже acpi на себя взял, чтоб smm не сработал
     
  18. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    в спецификации которую скинул правия тоже говорится, что винда работает в режиме трансляции и наб 2,
    а в исходниках Линукс в режиме трансляции и наборах 2 и 3
     
  19. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Я использую набор 2 без трансляции. Все работает отлично. Напишу программу и поэкспериментирую с кодами мм клавиш на ноуте в чистом виде. Вообще же у меня драйвер посылает вирт. коды. Ни разу не замечал, чтобы коды отпускания не соответствовали кодам нажатия.
     
  20. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Вообще если с трансляцией все работает нормально, то и без трансляции должно. В противном случае получается, что без трансляции контроллер портит коды отпускания, поступающие от клавиатуры, хотя не должен их трогать.