Доброе время суток! У меня небольшой вопрос – как узнать через какой порт программировать клавиатуру? Знаю, что есть два порта: 0x60 и 0x64 – но 0x64 для новейших клавиатур. Как узнать можно ли программировать клаву через 0x64 или нет? (программно)
AntiB Фактически есть два варианта: либо клавиатура -- PS/2, и тогда она программируется через порты 60 и 64 (это же стандартные порты, и отказаться от них нельзя), либо клавиатура -- USB, и тогда, чтобы до неё добраться, надо реализовать свою поддержку USB, а это весьма геморройно (хотя, есно, и вполне возможно). Ну а спецификации микросхем своей мамы раздобыть в любом случае не будет лишним
AntiB Есть два контроллера AT и XT. XT - очень старый стандарт и на него можно забить. Контроллер AT используется в PS/2 машине. SII USB поддерживает эмуляцию PS/2 клавы и мыши. Можно использовать все тежи порты.
небольшой вопрос, на ноуте поприбивал сделать следующие: Код (Text): mov al, 0xed out 0x64, al mov cx, 0x2000 delay: loop delay mov al, 0x04 out 0x64, al не сработало - это включение capslock-а, а вот если вместо 0x64 поставить 0x60 - то всё гуд - почему? неужели XT (имхо, они, кажется, вымерли - а ноут новой)
Не хочу сказать глупость, но мне кажется, что порт 0х60 -- СОМ-клавиатура, 0х64 -- PS/2. Но могу и ошибиться. И получается, что на ноуте СОМ стоит?
0x64 - порт для записи команд, 0x60 - порт для записи данных. COM-мыши управляются вообще через COM-порты (0x1Fx,0x3Fx).
AntiB Все абракадабра с клавиатурой в неумении правильно читать мануал. Существует ДВА устройства - контроллер клавиатуры (64h) и процессор клавиатуры (60h). Более того существует входной и выходной буфер клавиатуры. В зависимости от того что программируешь, такой порт и используешь. Теперь in al,64h ; чтение регистра состояния контроллера клавиатуры mov al,0ADh ; запретить ввод данных out 64h,al in al,60h ; получены данные от клавиатуры mov al,0AEh ; разрешить ввод данных out 64h,al кстати поэтому Mika0x65 Это полная глупость.
PROFi Там ещё одна проблема: хотя клавиатура -- самое что ни на есть распространённое устройство для ПК, документирована она весьма хаотично. Поэтому лично я не удивляюсь, что у людей регулярно в голове возникает каша по поводу прямой работы с оным устройством -- сам через это прошёл
SII PROFi diamond есть у вас хорошие доки по клаве, а то те, что у меня - не очень, если да - то дайте ссылку на доки. Заранее очень благодарен
AntiB Не лучше дезассемблируй BIOS там INT9 обработка. Вот тебе будет и код и паузы и т.д. Все остальное весьма сумбурно. Еще раз держи в голове - ДВА устройства (разных).
AntiB Вообще никаких нету, кроме Кулакова. А самому писать влом (да и опять-таки, это будет лишь то, что я сам знаю). PROFi Это может быть завязано на конкретный контроллер клавы... Хотя для ознакомления можно и заняться подобным
PROFi А что, Вы берётесь со 100% уверенностью утверждать, что абсолютно все контроллеры клавиатуры абсолютно идентичны, и поэтому их программирование также ничем не отличается? Вы случаем не Билл Гейтс, что располагаете подобной информацией?