Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2011, 21:31   #1
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию Работа с клавиатурой

Здравствуйте, пишу код для работы с клавиатурой и немогу понять с какой стороны подступится, наскоко я понял контроллер клавиатуры может выдавать 3 таблицы скан кодов, но на сайтах пишут что обычно их никто не трогает а работают с кодами которые выдаёт чипсет он то и преобразует скан коды в стандартную таблицу, в результате имеем на порту 60 реакцию системного контролера на контролер клавиатуры, нужна ли обработка ошибок паритета и интервалов передачи данных или это также делает чипсет, или всё же никто этим не занимается и на порту стоят скан коды контроллера клавиатуры а прерывания.... помогите я запутался ппц
PS всётаки не чипсет а контроллер ps/2 хотя может он и внутри чипсета....

Последний раз редактировалось Debris; 01.11.2011 в 22:30.
Debris вне форума Ответить с цитированием
Старый 02.11.2011, 04:03   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Debris
Сам-то понял ЧТО написал? Я вот нет, думаю что я не один такой. Внятно объясни в чем проблема, покажи куски программы, и помни, что за тебя никто твою работу делать не будет
Mikl___ вне форума Ответить с цитированием
Старый 02.11.2011, 18:00   #3
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию

Да вроде всё понятно написал.... Нужно работать с клавиатурой без ос через порты, читая порт 60 данных клавиатуры, нужно знать это сканкоды контроллера клавиатуры?(XT, AT и расширенной AT) или коды с учётом нажатых клавиш?( капса шифта с аски кодом). Регистр состояния контроллера клавиатуры содержит флаги передачи данных ( были ошибки или нет ), так как клавиатура подключается через контроллер PS/2 нужно писать обработчик ошибок или это делает контроллер PS/2?
А если ещё проще при работе а защищённом режиме на голом железе нажимая на клавишу по каким таблицам мне искать код соответствия клавиши?, а также узнать максимальное количество возможных комбинаций?.
Debris вне форума Ответить с цитированием
Старый 02.11.2011, 18:27   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
А если ещё проще при работе а защищённом режиме на голом железе нажимая на клавишу по каким таблицам мне искать код соответствия клавиши?, а также узнать максимальное количество возможных комбинаций?.
почитайте Владимира Кулакова - Программирование на аппаратном уровне.
раздел про клаву, и все поймете.(там еще и примеры)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2011, 20:36   #5
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию

Спасибо почитал, значит я получаю код по таблце PS/2 контроллера, но на второй вопрос ответа нет, написано что обработка данных соддержит только чтение буфера системного контроллера и зажигания светодиодов клавиатуры, а про необходмость обработки флагов 64 порта состояния, а именно:
5 - бита признака ошибки тайм-аута передачи
6 - бита признака ошибки тайм-аута приёма
7 - бита признака ошибки паритета
Там ни слова, должен драйвер их обрабатывать?, или подразумевается что устройство некритично не нажалась буква и хрен с ней...

Вылезла ещё 1 проблема, немогу понять какую дать контроллеру команду для принятия 2 скан кода:
алгоритм такой (32 раз, PM. без прерываний)
1читаю в цикле порт 64, жду как установится флаг буфера
2 читаю скан код по 60 порту
3 нужно в 64 порт записать готовность прёма 2 сканкода, какая это команда?, никак не могу найти

С последним разобрался- после чтения скан кода контроллер автоматически снимает бит признака данных в 64 порту

Последний раз редактировалось Stilet; 05.11.2011 в 11:41.
Debris вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с клавиатурой DalBor9 Паскаль, Turbo Pascal, PascalABC.NET 3 13.10.2011 14:45
Работа с клавиатурой! FartNick Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 11.10.2010 17:20
работа с клавиатурой progN Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 30.04.2010 17:22
Работа с клавиатурой в С++ Matr1x C++ Builder 5 27.01.2010 22:56
Работа с клавиатурой АлексейМк Общие вопросы C/C++ 1 05.08.2009 01:27