User Tag List

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

Тема: Вектор-06Ц: Эмуляция

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

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

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    812
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rst Посмотреть сообщение
    Так копал уже.
    Сделал тест, в котором "SUB C" вычисляется в цикле для всех возможных значений A=0...0xFF и для значений C=0...0x40 с предварительно всеми сброшенными флагами и предварительно всеми установленными. Сохраняя регистр флагов после каждой операции. Запустил этот тест на своём эмуляторе и на VV, сравнил дампы результата - совпадение полное. Может конечно в оставшемся диапазоне C=0x40...0xFF косяк, но как-то маловероятно.
    Я могу предложить две вещи:
    1) прогнать на своем процессоре 8080 Exerciser https://github.com/begoon/8080ex1 -- тест брутальный и выявляет любые неточности
    2) сравнить свой код с кодом Begoon https://github.com/begoon/i8080-core...r/i8080.c#L172
    Больше игр нет

    Эти 2 пользователя(ей) поблагодарили svofski за это полезное сообщение:

    parallelno(10.09.2024), rst(09.09.2024)

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

  3. #2

    Регистрация
    09.09.2024
    Адрес
    г. Рига, Латвия
    Сообщений
    51
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Я могу предложить две вещи:
    1) прогнать на своем процессоре 8080 Exerciser https://github.com/begoon/8080ex1 -- тест брутальный и выявляет любые неточности
    2) сравнить свой код с кодом Begoon https://github.com/begoon/i8080-core...r/i8080.c#L172
    Спасибо! Если иначе найти не получится - буду пробовать.

    Ещё такой вопрос:
    При выполнении "теста CPU" из "Теста устройств" базового набора программ своим эмулятором я вижу значения измеренной производительности:
    624тыс.оп и 749тыс.оп. Но вроде как память подсказывает, что на реальном Векторе результаты были: 623тыс.оп и 748тыс.оп.
    Т.е. получается - что-то у меня выполняется слишком быстро? По идее - команды не должны, тогда бы разница была гораздо существеннее. Есть подозрение, что у меня установлена неверная длительность входа в прерывание. Я её задал равной длительности команды "RST 7". Но, возможно, нужно больше тактов добавить.
    Может кто подсказать по длительности входа в прерывание на реальном "Вектор-06Ц"? (который без доработок, оригинальный Кишинёвский).

    Или всё-таки мне память изменяет, и тест на реальном Векторе тоже мог показывать 624/749?

    - - - Добавлено - - -

    Цитата Сообщение от ZEman Посмотреть сообщение
    rst, а что у тебя за эмуль, можно ли нам на него глянуть ?
    У меня свой. Я его ещё только пишу. Ему всего только месяц от роду.
    Пока он ещё очень сырой. Ещё не приступал к эмуляции ВИ53 и вообще звука. Также пока плохо проработано маппированние клавиатуры. Займусь ими когда полностью выгребу все вопроосы по корректной эмуляции команд и работе разных программ.
    Осталась одна pillars. Других неработающих больше не нашёл.

    Но зато в моём эмуляторе уже более навороченный и удобный (на мой взгляд!) встроенный отладчик, чем в VV. Да простит меня автор VV. Тысяча извинений! Его эмулятор реально крут!.... за исключением встроенного отладчика.

    Как более-менее допилю - поделюсь. Если конечно кому интересно.
    Последний раз редактировалось rst; 09.09.2024 в 19:03.

    Этот пользователь поблагодарил rst за это полезное сообщение:

    ZEman(09.09.2024)

  4. #3

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    812
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rst Посмотреть сообщение
    Т.е. получается - что-то у меня выполняется слишком быстро? По идее - команды не должны, тогда бы разница была гораздо существеннее. Есть подозрение, что у меня установлена неверная длительность входа в прерывание. Я её задал равной длительности команды "RST 7". Но, возможно, нужно больше тактов добавить.
    Может кто подсказать по длительности входа в прерывание на реальном "Вектор-06Ц"? (который без доработок, оригинальный Кишинёвский).
    Не зная других деталей трудно подсказать. Вход в прерывание такая же инструкция, как и все остальные. Может быть дело в торможении процессора? У Вектора время каждого машинного цикла округляется вверх до чиста тактов, кратного четырем. За одно прерывание исполняется 59904 такта, 312 строк по 192 такта.
    Больше игр нет

    Этот пользователь поблагодарил svofski за это полезное сообщение:

    rst(09.09.2024)

  5. #4

    Регистрация
    09.09.2024
    Адрес
    г. Рига, Латвия
    Сообщений
    51
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Не зная других деталей трудно подсказать. Вход в прерывание такая же инструкция, как и все остальные. Может быть дело в торможении процессора? У Вектора время каждого машинного цикла округляется вверх до чиста тактов, кратного четырем. За одно прерывание исполняется 59904 такта, 312 строк по 192 такта.
    Оп! А здесь можно подробнее? Почему 59904, а не 3e6/50=60000 ? Процессор останавливается сигналом прерывания на 96 тактов?
    Наверное это можно почерпнуть из схемы, но.... долго разбираться. Поэтому буду благодарен за пояснения.

    PS: Если так, то всё понятно: (96/6e4+1)*748 = ~749тыс.оп; и (96/6e4+1)*623 = ~624 тыс.оп
    Как раз получаются мои показания. Спасибо!
    Последний раз редактировалось rst; 09.09.2024 в 19:55.

  6. #5

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    812
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rst Посмотреть сообщение
    Почему 59904, а не 3e6/50=60000 ? Процессор останавливается сигналом прерывания на 96 тактов?
    Процессор не останавливается. Частота кадров у Вектора не совсем 50Гц, но мы это предпочитаем игнорировать. А цифры получаются просто из числа строк и их длительности -- маленькая погрешность в пользу упрощения схемотехники.
    Больше игр нет

  7. #6

    Регистрация
    05.08.2008
    Адрес
    Магнитогорск
    Сообщений
    988
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    45 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    rst, Pilars использует особенность реализации команды вычитания через сложение, т.е. i8080 на самом деле выполняет не вычитание, а сложение с числом в дополнительном коде и флаг дополнительного переноса при этом получается инвертированый, если сравнивать его с этой же командой SUB на i8086, там этот баг уже пофиксили.
    Здесь можно скачать актуальные версии Virtual Vector (VV)

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

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

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

Похожие темы

  1. Вектор-06Ц: Общие вопросы
    от CityAceE в разделе Вектор
    Ответов: 867
    Последнее: 17.10.2025, 18:38
  2. Ответов: 9
    Последнее: 18.04.2009, 21:21
  3. Вектор-06Ц
    от AlexBel в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 20.12.2007, 08:23
  4. IM2, вектор прерывания
    от Jukov в разделе Программирование
    Ответов: 18
    Последнее: 20.09.2006, 09:32

Ваши права

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