Клавиатура

Тема в разделе "WASM.OS.DEVEL", создана пользователем AntiB, 26 ноя 2007.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время суток!
    У меня небольшой вопрос – как узнать через какой порт программировать клавиатуру?
    Знаю, что есть два порта: 0x60 и 0x64 – но 0x64 для новейших клавиатур. Как узнать можно ли программировать клаву через 0x64 или нет? (программно)
     
  2. 10110111

    10110111 New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    319
    Адрес:
    Санкт-Петербург
    Попробуй поискать спецификацию своего SuperIO чипа.
     
  3. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    AntiB

    Фактически есть два варианта: либо клавиатура -- PS/2, и тогда она программируется через порты 60 и 64 (это же стандартные порты, и отказаться от них нельзя), либо клавиатура -- USB, и тогда, чтобы до неё добраться, надо реализовать свою поддержку USB, а это весьма геморройно (хотя, есно, и вполне возможно).

    Ну а спецификации микросхем своей мамы раздобыть в любом случае не будет лишним :)
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    AntiB
    Есть два контроллера AT и XT.
    XT - очень старый стандарт и на него можно забить.
    Контроллер AT используется в PS/2 машине.

    SII
    USB поддерживает эмуляцию PS/2 клавы и мыши. Можно использовать все тежи порты.
     
  5. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Pavia
    Как-то натыкался на отсутствие такой эмуляции ;)
     
  6. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Всём большое спасибо!!!
     
  7. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    небольшой вопрос, на ноуте поприбивал сделать следующие:
    Код (Text):
    1. mov al, 0xed
    2. out 0x64, al
    3. mov cx, 0x2000
    4. delay:
    5. loop delay
    6. mov al, 0x04
    7. out 0x64, al
    не сработало - это включение capslock-а, а вот если вместо 0x64 поставить 0x60 - то всё гуд - почему? неужели XT (имхо, они, кажется, вымерли - а ноут новой)
     
  8. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Не хочу сказать глупость, но мне кажется, что порт 0х60 -- СОМ-клавиатура, 0х64 -- PS/2. Но могу и ошибиться. И получается, что на ноуте СОМ стоит?
     
  9. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Mika0x65
    сомнительно, хотя всё может быть :)
     
  10. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    0x64 - порт для записи команд, 0x60 - порт для записи данных. COM-мыши управляются вообще через COM-порты (0x1Fx,0x3Fx).
     
  11. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    AntiB

    Все абракадабра с клавиатурой в неумении правильно читать мануал. Существует ДВА устройства - контроллер клавиатуры (64h) и процессор клавиатуры (60h). Более того существует входной и выходной буфер клавиатуры. В зависимости от того что программируешь, такой порт и используешь.
    Теперь
    in al,64h ; чтение регистра состояния контроллера клавиатуры


    mov al,0ADh ; запретить ввод данных
    out 64h,al

    in al,60h ; получены данные от клавиатуры


    mov al,0AEh ; разрешить ввод данных
    out 64h,al

    кстати поэтому
    Mika0x65
    Это полная глупость.
     
  12. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    PROFi
    Там ещё одна проблема: хотя клавиатура -- самое что ни на есть распространённое устройство для ПК, документирована она весьма хаотично. Поэтому лично я не удивляюсь, что у людей регулярно в голове возникает каша по поводу прямой работы с оным устройством -- сам через это прошёл :)
     
  13. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    SII
    PROFi
    diamond
    есть у вас хорошие доки по клаве, а то те, что у меня - не очень, если да - то дайте ссылку на доки. Заранее очень благодарен
     
  14. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    AntiB

    Не лучше дезассемблируй BIOS там INT9 обработка. Вот тебе будет и код и паузы и т.д. Все остальное весьма сумбурно. Еще раз держи в голове - ДВА устройства (разных).
     
  15. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    PROFi
    понял, спасибо!
     
  16. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    http://wiki.osdev.ru/index.php/%D0%9A%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B0
     
  17. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    AntiB
    Вообще никаких нету, кроме Кулакова. А самому писать влом (да и опять-таки, это будет лишь то, что я сам знаю).

    PROFi
    Это может быть завязано на конкретный контроллер клавы... Хотя для ознакомления можно и заняться подобным :)
     
  18. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    SII

    на конкретный - значит никогда не дезассемблировал BIOS если так утверждаешь.
     
  19. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    PROFi

    А что, Вы берётесь со 100% уверенностью утверждать, что абсолютно все контроллеры клавиатуры абсолютно идентичны, и поэтому их программирование также ничем не отличается? Вы случаем не Билл Гейтс, что располагаете подобной информацией? ;)
     
  20. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    SII

    99%, даже USB эмулируется на порты 60 и 64