User Tag List

Показано с 1 по 10 из 1199

Тема: Орион-2010. Hard & Soft

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    В данном случае эмулятору нужно зацепиться за что-то в эмулируемой модели, чтобы в каждый момент времени понимать что от него ожидает ПО, запущенное в Орионе.

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

    Я не понимаю почему "нужно знать, включил пользователь в Орионовском ПО русскую раскладку или латинскую". Это должен помнить эмулятор: производил ли переключение регистра пользователь на PS/2 и в зависимости от этого (флаговая ячейка) при следующем вводе символа сделать взаимные соединения выводов порта согласно соответствующей таблицы.

    Вполне возможно, что эмулятор построен по другому алгоритму и мои рассуждения не подходят. Хотя логика работы должна быть такая, потому что такая логика работы в железке.
    Последний раз редактировалось pvlad; 28.06.2010 в 16:52.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Это должен помнить эмулятор: производил ли переключение регистра пользователь на PS/2 и в зависимости от этого (флаговая ячейка) при следующем вводе символа сделать взаимные соединения выводов порта согласно соответствующей таблицы.
    Если нажать подряд верхний ряд буквенных клавиш, то в зависимости от состояния драйвера клавиатуры, а также раскладки клавиш в эмуляторе, мы получим одну из следующих строк:
    1А) QWERTY
    1Б) ЯВЕРТЫ
    2А) JCUKEN
    2Б) ЙЦУКЕН
    Причём 1 или 2 определяется флагом в эмуляторе, а А или Б - флагом в драйвере. В идеале хотелось бы иметь только сочетания 1 А и 2 Б, но также как и pvlad не понимает, почему это сложно сделать, я в свою очередь не понимаю, как можно синхронизовать флаги в эмуляторе и в драйвере, чтобы были только сочетания 1 А и 2 Б.

  4. #3

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    ...причём 1 или 2 определяется флагом в эмуляторе, а А или Б - флагом в драйвере.
    В идеале хотелось бы иметь только сочетания 1 А и 2 Б, но также как и pvlad не понимает, почему это сложно сделать, я в свою очередь не понимаю, как можно синхронизовать флаги в эмуляторе и в драйвере, чтобы были только сочетания 1 А и 2 Б.
    Мне тоже хочется иметь 1А и 2Б! Более того, ТОЛЬКО! Потому что остальное не имеет смысла на PS/2-клавиатуре. Все остальное - онанизм, как выражался Сергей!
    Так вот, флаг в драйвере (Монитора, к примеру) появляется Святым Духом? Разве этот флаг появляется не после манипуляций на клавиатуре (читай: эмулятора!)? Тогда что мешает его также запоминать параллельно в флаговой ячейке эмулятора и на основании этой информации принимать решение о кодовой таблице? Этот флаг в драйвере сам по себе не изменяется, а только с клавиатуры при очередном переключении. Тогда что не понял pvlad?
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  5. #4

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Тогда что мешает его также запоминать параллельно в флаговой ячейке эмулятора и на основании этой информации принимать решение о кодовой таблице?
    Допустим мы имеем строго определённое сочетание клавиш для переключения РУС/ЛАТ и эмулятор запоминает нажатие на эти клавиши. А где гарантия, что в момент нажатия на эти клавиши в эмулируемом компьютере выполнялся драйвер клавиатуры и он аналогично обработал это нажатие? То есть, что оба флага переключились синхронно? В какой-то мере это могло было бы быть решено введением прерываний по нажатию/отпусканию клавиш, но и прерывания могут оказаться запрещёнными. В результате, всё равно потребуется "ручное" переключение раскладки в эмуляторе через пользовательский интерфейс, чтобы устранить несинхронность флагов.

  6. #5

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Допустим мы имеем строго определённое сочетание клавиш для переключения РУС/ЛАТ и эмулятор запоминает нажатие на эти клавиши. А где гарантия, что в момент нажатия на эти клавиши в эмулируемом компьютере выполнялся драйвер клавиатуры и он аналогично обработал это нажатие? То есть, что оба флага переключились синхронно?
    Да, примерно это я и имею в виду, но все намного хуже (см. выше - еще наложатся двойные и одинарные нажатия для одинаковых смыслу действий, но в разных средах ПО).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  7. #6

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    ... но все намного хуже...
    Сергей! Я понял, в чем ты меня не понимаешь. Это я виноват, что не сообразил сказать главное:
    Мне наплевать на те полтора десятка всяких драйверов, которых настрогали на Орион-128! Пусть они обслуживаются так, как ты их обслуживаешь - это нормально!
    Я веду разговор об Орионе-2010, об новом Мониторе, о новой клавиатуре и, естественно, абсолютно совместимом Эмуляторе-2010. Считаю, что достаточно будет, если на новом Мониторе будут работать только "правильные" старые программы. Не нужно пытаться воспроизвести все грехи старого Ориона-128. Это глупо! Для "неправильных" - можно подгрузить нужный старый Монитор и утолить любопытство.
    Но, чтобы избавиться от старых проблем, необходимо новую клавиатуру делать через прерывания от PS/2. Подробности и выгоды я высказывал ранее.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  8. #7

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Но, чтобы избавиться от старых проблем, необходимо новую клавиатуру делать через прерывания от PS/2. Подробности и выгоды я высказывал ранее.
    А, это сделаем. Будет работать параллельно: и старая фанерка для порта F400h..F403h (а также In/OUT 18h..1Bh) и клавиатура на прерываниях Ориона-2010 для порта F766 (In/OUT 4Eh) - как это и есть в Орион2010. Кстати, если орионовский драйвер этой схемы все равно писать заново, то удобные раскладки просто напишутся с нуля, ничего подстраивать не надо.
    Давайте вспоминать детали. Чтобы это эмулировать, нужно воспроизвести какие коды возвращает релизация новых функций клавиатуры PS/2 на ПЛИС и как отрабатывают прерывания. Где-то раньше это упоминалось, но что вышло в итоге - я не знаю. Евгений, поможешь?
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. #8

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Я не понимаю почему "нужно знать, включил пользователь в Орионовском ПО русскую раскладку или латинскую". Это должен помнить эмулятор: производил ли переключение регистра пользователь на PS/2 и в зависимости от этого (флаговая ячейка) при следующем вводе символа сделать взаимные соединения выводов порта согласно соответствующей таблицы.

    Вполне возможно, что эмулятор построен по другому алгоритму и мои рассуждения не подходят. Хотя логика работы должна быть такая, потому что такая логика работы в железке.
    Здесь должен быть смайлик: диззик застрелился.

    Простейшая модель ситуации:
    - включили питание, попали в ORDOS. Дефолтный драйвер KOI7, рус-лат переключается одинарным нажатием на кнопку Рус-Лат. Shitf тоже переключает рус-лат. (А еще в Ордос есть 8-битные драйвера cp866 и KOI8 чего и как они переключают и какой кнопкой - Х.З., но явно что-то есть "особое", отличия, ведь сочетаний управления для 8-битного драйвера вдвое больше, чем для 7-битного).
    .
    - Затем запустили BOOT$ и попали в CP/M. Там драйвер переключает рус-лат ДВОЙНЫМ нажатием на кнопку Рус-Лат (одинарное нажатие - аналог CAPS). А shift НЕ переключает Рус-Лат - он делает то что и должен: строчные/заглавные.

    Как должна вести себя фанерка? По косвенным прокачивать, что пользователь в CP/M или в ORDOS? Так и в CP/M драйверов клавиатуры/экрана еще больше чем в Ордос - порядка десятка. Это я описал только тот драйвер, что сам использую, а про другие я без понятия как там рус-лат отработает (но подозреваю, что авторы драйверов сочиняли как попало).
    Последний раз редактировалось Error404; 28.06.2010 в 18:30.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  10. #9

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Затем запустили BOOT$ и попали в CP/M.
    Точно, а там драйвер плевать хотел, что в эмуляторе у нас сейчас русская раскладка и инициализировал свой флаг "английским"

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 22
    Последнее: 06.10.2008, 14:17
  2. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 1
    Последнее: 22.08.2008, 08:56
  3. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 2
    Последнее: 21.08.2008, 13:31
  4. soft dt
    от roxx в разделе Софт
    Ответов: 4
    Последнее: 30.01.2008, 18:41

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •