Сообщение от
pvlad
Как я понимаю, эмулятор через PS/2 эмулирует всего-лишь "фанерку" с кнопками (а не программу ввода символов - она в Мониторе), которая подключается к мнимому ВВ55 (F4xx)? Это значит, что "фанерка" является ведущей - какие кнопки нажмут (пользователь), так ПО и запляшет! Тогда, спрашивается, зачем "фанерке" знать, что от нее ждут? Что нажмет пользователь, ту комбинацию взаимно замкнутых выводов "фанерка" и выдаст! Если мои рассуждения верны, то утверждение в первом предложении цитаты не верно.
Поэтому, что мешает иметь программные флаги в эмуляторе, регистрирующие была ли нажата Shift или РУС/ЛАТ (не важно какая клавиша на PS/2 определяет переключение регистра - можно сделать Alt+Shift!), в блоке эмуляции клавиатуры эмулятора? Ведь Монитору, драйверу КБ важно единственное: какие сигналы на выводах порта! А это определяет эмулятор по нажатию кнопок на PS/2.
Я не знаю программ, которые сами переключают регистры в Орионе и эмулятору надо бы было отслеживать эти переключения (по светодиоду, к примеру). Эти действия производит только пользователь, нажимая кнопки на "фанерке", тобышь эмуляторе.
Я не понимаю почему "нужно знать, включил пользователь в Орионовском ПО русскую раскладку или латинскую". Это должен помнить эмулятор: производил ли переключение регистра пользователь на PS/2 и в зависимости от этого (флаговая ячейка) при следующем вводе символа сделать взаимные соединения выводов порта согласно соответствующей таблицы.
Вполне возможно, что эмулятор построен по другому алгоритму и мои рассуждения не подходят. Хотя логика работы должна быть такая, потому что такая логика работы в железке.