User Tag List

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

Тема: Эмулятор Специалиста - EmuStudio

Древовидный режим

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    barsik, на клавиатуре PC знак @ нажимается с шифтом, а на клавиатуре Специалиста - без. При нажатии Shift на клавиатуре PC в эмулятор передается это нажатие. Если потом нажимается "2" (@), то нужно сначала передать в эмулятор отжатие шифта, а уж потом саму "@".
    Это пояснило о чём речь.

    Т.е речь идёт не о лобовой эмуляции кнопок, а о "химии", чтобы совпадали надписи на клавишах. При лобовой эмуляции кнопок таких проблем нет. И как упомянуто выше, я проблему соответствия надписей решал со стороны 8-ми разрядки, а не со стороны PC. Да и проблема несоответствия надписей важна только для текстовых редакторов, а их всего несколько.

    Клавиша <НР> ROM-BIOS-ом вообще отдельно не контроллируется (а только при нажатиях клавиш на основном поле). Но есть драйвер отдельно контроллирующий <НР>, где на саму эту клавишу возложена функция смены режима клавиатуры (аналогично русификаторам на PC). Но всё-равно этот нюанс не проблема, т.к лишь приведёт при вводе '@' к смене режима клавиатуры.

    Цитата Сообщение от Titus Посмотреть сообщение
    Клавиши 'TAB' на классическом Специалисте вообще нет.
    В оригинальном журнальном Специалисте клавиш <F1>...<F5>, <АР2>, <СТР>, <ТАБ> не было, что делало невозможным использование системных программ от РК86. Потому вскоре Зверков, опубликовал улучшенную версию "загрузчика" в которой были изменены коды клавиш. Клавишу <ТАБ> Зверков добавил в неиспользуемом узле матрицы. А клавишу <Control> Зверков программно ввести не смог, т.к тут нужны апп.доработки.

    В журнале МК 03.1987 стр.37 другие названия клавиш, т.к это для волковского загрузчика, который с тех пор никто не использует. У меня клавиши верхнего ряда называются F1...F9, NOINV, INV, СТР, АР2. И клавиша <ТАБ> на моей клавиатуре тоже есть и как и положено она возвращет код 9.

    Хотя п/п-мы ввода C337, C803, C81B вводят, но п/п-ммы вывода C037 и C809 не обслуживают код TAB. Вот здесь я недавно положил редактор, в котором всякий может убедиться, что клавиша <TAB> существует и работает. В данном редакторе шаг табуляции не 8, а 4, но так принято на 8-ми разрядках, потому что удобнее для ассемблера.

    Цитата Сообщение от Titus Посмотреть сообщение
    Приведу образный пример, как это все работает.
    Этот образный пример вообще ничего не поясняет.

    В моём MSDOS эмуляторе ОРИОНА эмуляция матрицы делается так. Перехватываются Z80-команды чтения портов ППА-клавиатуры. Надо перехватывать не только команду LD A,(mem_port), но и LD A,(RR), а для РК86 и IN A,(io_port).

    Как только программа читает порт ППА, то смотрится, во-первых, в какой режим запрограммирован ППА, затем смотрится, что за байт записан в другой порт ППА. И если читаемый порт настроен на ввод, другой порт на вывод и в другом порту есть "бегущий 0" по какому-то разряду, то смотрится нажата ли клавиша на PC. И если есть нажатая PC-клавиша и она расположена на матрице эмулируемой клавиатуры по той линии где есть "бегущий ноль", то по таблице берётся возвращаемый код, иначе FF. Эмулируются и двойные нажатия.

    Точно также работают и контроллеры PS/2 клавиатуры на Atmega от vinxru.

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

    Вы, похоже, собираетесь проверять нелегальную работу с клавиатурой, когда на порты выдаётся не 0, а сочетание нулей и единиц и нажимаются сразу две клавиши, что приводит к замыканию ППА-выхода с нулём на ППА-выход с единицей (т.к диодов нет).

    Но зачем это надо? Нет программ занимающихся вредительством, да и сжечь ППА не получится, его разработали не идиоты. Кроме того это делать бессмысленно, т.к у всех разные резисторы привязки, отчего на разных машинах будут разные результаты.
    Последний раз редактировалось barsik; 08.03.2018 в 06:04.

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

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

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

Похожие темы

  1. Эмулятор УКНЦ - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 1198
    Последнее: 07.05.2025, 13:34
  2. EmuStudio-ZX
    от Titus в разделе Эмуляторы
    Ответов: 726
    Последнее: 16.03.2025, 19:38
  3. Эмулятор ТИА-МЦ-1 EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 107
    Последнее: 20.09.2024, 21:03
  4. Эмулятор Союз-Неон ПК-11/16 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 335
    Последнее: 01.04.2024, 11:33
  5. Эмулятор МС-0515 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 143
    Последнее: 09.02.2023, 10:44

Ваши права

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