OSDev
http://osdev.su/

Клавиатура: зачем нужен scancode set 2???
http://osdev.su/viewtopic.php?f=5&t=590
Страница 1 из 2

Автор:  suslik [ 22 июн 2012, 18:08 ]
Заголовок сообщения:  Клавиатура: зачем нужен scancode set 2???

Меня очень давно мучает вопрос: зачем был введён scancode set 2 - чтобы транслировать его снова в scancode set 1??? :evil: Извините за такой вопрос - ну не могу я так...

Автор:  suslik [ 22 июн 2012, 18:10 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

Я просмотрел все источники в Сети, но так и не нашёл какого-либо объяснения. Только то, что с выходом нового IBM PC AT появился scancode set 2. А зачем - непонятно.

Автор:  grindars [ 22 июн 2012, 18:15 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

Он намного более упорядочен, чем набор 1. Трансляция предназначена для обратной совместимости: чтобы ОС, поддерживающие только первый набор, могли работать с клавиатурами, которые поддерживают только второй. На практике смысла в ней нет - все клавиатуры поддерживают первый набор и так.

Лучшее описание из всех, что я видел. Вы его, вероятно, уже видели и так, но остальным пригодится.

Автор:  suslik [ 22 июн 2012, 18:34 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

Что-то я не очень ухватил идею с упорядоченностью. Я её не вижу: http://www.computer-engineering.org/ps2 ... odes2.html

Автор:  suslik [ 22 июн 2012, 18:44 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

У меня есть сомнения правильно ли я понимаю функции контроллера 8042 на материнке. А именно: так как протокол обмена с контроллером клавиатуры 8048 последовательный, то нужно чтобы кто-то его реализовывал (сдвиговый регистр, контроль чётности, посыл команды ПОВТОРИТЬ если чётность не совпала). Ну не процессор же в самом деле?! Верно? А вот насчёт необходимости scancode set 2 остались БОЛЬШИЕ сомнения. Я верю, что должно быть логичное и простое объяснение.

Автор:  grindars [ 22 июн 2012, 19:07 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

Не даблпостите, пожалуйста.

8042 делает именно то, что вы перечислили, плюс выполняет некоторые побочные функции (вроде сброса или управления разрешением линии A20). Простое и логичное объяснение кривизне ПК-шного железа? Такого не бывает :). Точно вам скажет зачем нужен был Set 2 только тот инженер IBM, что его придумал. Какой-либо серьезной причины использовать конкретный набор нет.

Автор:  phantom-84 [ 22 июн 2012, 21:49 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

suslik писал(а):
Меня очень давно мучает вопрос: зачем был введён scancode set 2 - чтобы транслировать его снова в scancode set 1???
А зачем вообще периодически отказываются от старого? Чтобы не жить в каменном веке. Кстати, я не использую "аппаратную" трансляцию, т.е. в виртуальные коды транслирую непосредственно из набора 2.

Автор:  suslik [ 22 июн 2012, 22:49 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

Будьте так добры, поясните, чем set 2 лучше set1? Я, например, никакой разницы не вижу. Даже set2 в некотором роде хуже, поскольку при отпускании генерятся целых 2 байта, а не один.

Автор:  SII [ 22 июн 2012, 22:52 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

Не ищите "лучше" или "хуже" -- это далеко не всегда имеется, а уж на ПК в особенности. Например, в основу первого ИБМовского ПК был положен не лучший, а худший из имевшихся тогда 16-разрядных микропроцессоров...

Автор:  phantom-84 [ 23 июн 2012, 00:00 ]
Заголовок сообщения:  Re: Клавиатура: зачем нужен scancode set 2???

suslik писал(а):
Будьте так добры, поясните, чем set 2 лучше set1? Я, например, никакой разницы не вижу. Даже set2 в некотором роде хуже, поскольку при отпускании генерятся целых 2 байта, а не один.
Он лучше тем, что это родной набор для современных клавиатур. Не уловил, чем конкретно тебя не устраивает префикс отпускания. Кстати, именно благодаря использованию префикса отпускания, коды нажатия в наборе 2 можно кодировать последовательно. В наборе 1 отклики клавиатуры и доп. префиксы не позволяют это сделать, например, отклик 0FAh автоматически делает бессмысленным использование кода нажатия 7Ah.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/