Re: История клавиатуры машины АТ: "технологии firmware" или откр
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 24.10.23 06:02
Оценка: 2 (1) +1 :)
Здравствуйте, grizlyk1, Вы писали:

G>1.

G>Кратко вспомним, что если для ХТ клавиатура это очень простой и надежный интерфейс (не фирмваре), то для машины АТ клавиатура превратилась в настоящего монстра под управлением контроллера интел 8042/8242 с встроенным фирмваре программным обеспечением.

То фирмваре, то не фирмваре... вы уж определитесь.
Сама клавиатура в обоих случаях это процессор (8048) с некоторой периферией и (П)ПЗУ программы. А то, что добавилось аналогичное на стороне компьютера, да, немного усложнило, но вполне управляемо и документированно.
А иначе не получалось, если надо сделать двусторонний интерфейс — надо же как-то на клавиатуре хотя бы лампочками мигать?

И особо-то там "простого и надёжного интерфейса" у XT не было, был COM.

G>Этот же АТ агрегат оказался не полностью совместим с архитектурой ХТ,


Ну так и не требовалось. Совместимость сделана на уровне BIOS.

G> также он управлял сбросом процессора 286 при возврате в реальный режим, и он же управлял линией А20 (этот сброс и это управление еще называют "боль из прошлого").


A20 gate просто надо было куда-то посадить, а у 8042 была свободная нога. Это единственная причина. Была бы свободная нога у контроллера DMA, например — посадили бы туда.
Это проблема не клавиатуры, а рахитектуры (не опечатка) 80286. Почему вы его не ругаете?

G>Интерфейс АТ клавиатуры стал невероятно сложным для программиста, со сложным преобразованием сканкодов


Вполне подъёмно, как оказалось, и с небольшим количеством кода. Сложные случаи типа PrintScreen сам 8042 взял на себя.

А замена кодов была вызвана унификацией с клавиатурами для TN3270, которые использовали так называемый Set 3. Эта история хорошо документирована, например:
http://www.seasip.info/VintagePC/ibmat_kbc.html
https://webdocs.cs.ualberta.ca/~amaral/courses/329/labs/scancodes.html
https://retrocomputing.stackexchange.com/a/18070
https://retrocomputing.stackexchange.com/a/8764
http://www.quadibloc.com/comp/kyb03.htm

G> и обменом данными с клавиатурой и стал несовместим с аппаратурой для ХТ.


А то, что PCI несовместим с ISA, не смущает? Или что сокет для 386 в принципе не способен решать задачи, которые ставит Pentium?

G> Этот интерфейс АТ клавиатуры решал странные и непонятные задачи,


Вполне понятные.

G> но при всем при этом во время работы АТ машины было достаточно просто отключить клавиатуру АТ от разъема, чтобы ее повторное подключение чаще всего потребовало бы перезагрузки системы (BIOS не понимал что произошло переподключение клавиатуры АТ и не выполнял сложную процедуру обмена данными с клавиатурой АТ для переинициализации клавиатуры АТ без чего клавиатура АТ при переподключении не работала совсем).


Её и электрически нельзя было переподключать, зачем тогда программно?
И XTʼшную было нельзя, могло что-то запросто сгореть.
Только начиная с PS/2 стало разрешено переподключать электрически, и то не всегда.
У USB проблем нет, он был изначально под это задуман.

G>Тут полная аналогия с USB, для "скоростного и надежного" firmware интерфейса USB вывести из строя USB клавиатуру часто можно просто включив свет в соседнем помещении


Значит, нарушенный где-то стандарт.
Может, у вас там при включении света лампа за 0.2$ такие наводки даёт, что соседи вообще бутаются.
Не покупайте дешманские продукты.

G>2.

G>Да, клавиатура ХТ была сразу сделана достаточно разумно:
G>- при нажатии кнопки посылается код нажатия;
G>- при отпускании кнопки посылает код отпускания (то же код нажатия с измененным старшим битом);
G>вот и вся настройка.

G>При 7-ми битовом коде кнопки во фрейме передачи данных клавиатуре ХТ доступно до 127 кнопок, реально на клавиатуре ХТ и АТ только 102 кнопки,


Вы даже тут не знаете фактов.
XT — 83 для американского варианта, 84 — для европейского (добавляется клавиша слева от того, где мы обычно видим Z). Для CJK может дополнительно появляться ещё до десятка клавиш.
AT — 101 и 102 соответственно, а CJK бывали и 108 и 112.
С виндовыми клавишами — ещё на 3 больше.
Клавиатура TN3270 — с которой AT строилась на общей базе — около 130 (не помню точной цифры).
А ещё учтите, что часть кодов занята под управление и контроль состояния. Всё, они кончились. Расширители типа E0, E1 становятся неизбежными.

G> так что даже с учетом что часть кнопок это резервные коды, уже исходного 7-ми битового фрейма передачи достаточно до сих пор (в конце 2023 года).


Не достаточно.

G>Кстати клавиатура ХТ не боится рассоединений,


Боится. Именно электрически. Разъём не рассчитан, как USB, на предварительное согласование опорных потенциалов.

G>при усовершенствовании клавиатуры ХТ проблема решается тем, что каждая кнопка с фиксацией при нажатии кнопки заместо одного кода клавиатура отправляет два разных кода нажатия:


Не решается.

G>это потребует занять четыре дополнительных сканкода нажатия из пула в 20 свободных сканкодов, а при переходе на 8-ми битовый код символа (и на девятый бит для индикации нажатия/отпускания) вообще нет проблем.


Где вы найдёте девятый бит в этом интерфейсе?

G>как кажется без настройки плохо, но в реальности в настройках BIOS АТ автоповтор у 99% пользователей всегда включен в фиксированное положение и никогда не регулируется приложением программно.


Я регулирую. 250/30 или 250/36.

G>полезность аппаратного автоповтора вообще сомнительна, ПК и сам может генерировать автоповтор любой кнопки по системному таймеру, получая от клавиатуры только код нажатия и код отпускания.


Да, тут согласен. На USB автоповтор эмулируется программно. В Set 3 автоповтора нет.

G>3.

G>третья известная программно видимая проблема клавиатуры ХТ это отсутствие "кнопки изменения раскладки"

G>даже в конце 2023 года это целая засада переключать раскладку символов, нажимая жуткие комбинации и при этом все время конфликтуя с приложениями которые пытаются использовать такие комбинации в своих целях.


G>при усовершенствовании клавиатуры ХТ проблема решается тем, что добавляются две копки для смены раскладки и на классической ХТ клавиатуре верхний ряд "Fx" надо сдвинуть вправо и на место "F1-F2" поставить две кнопки "S1-S2"


G>смотри рисунок схемы усовершенствования клавиатуры ХТ

G>Image: keyb-S-2.jpg

Жуть.
У меня основная клавиша смены раскладки это CapsLock. И не только у меня, это типовой вариант. Она под левым мизинцем и не надо далеко двигаться.
Многие другие тоже делают лёгкие комбинации типа LCtrl одиночный — Lat, RCtrl — Rus.
А вы придумали что-то тяжёлое для использования.

G>


Пропускаю околополитическую ахинею.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.