User Tag List

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

Тема: Баг формата SZX

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

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

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    В смысле зависит от префикса? Зачем что-то предсказывать?
    Если ты выбрал любой префикс, то все, что дальше по любому зависит от этого префикса, не важно, сколько раз он повторится, и останавливать выполнение, пока команда не закончится, нельзя.
    Если нельзя, тогда эмулятор должен зависать в мёртвом бесконечном цикле, если память заполнена префиксами.
    Тут одно из двух - либо можно и тогда ничего зависать не будет, либо нельзя и прийдется зависать по дизайну.

    Понятно, что зависание программы это однозначно неправильное поведение.
    Поэтому поведение "останавливать выполнение, пока команда не закончится, нельзя" - это однозначный баг эмулятора.

    Спектакулятор так не делает, вместо этого он использует костыль с вышеописанным так называемым "инвалидным префиксом" под которым подразумевается, что если если процессор переключился в префиксный режим, но далее следует еще один префикс, то первый префикс можно проигнорировать путём предсказания что после загрузки SZX процессор выполнит еще один префикс и снова перейдет в режим префикса. Но это костыль, такое прогнозирование с потерей информации о префиксе нельзя назвать корректным поведением.

    Далеко не факт, что если спектакулятор прочитал из памяти по адресу PC префикс, то после сохранения/загрузки снэпшота, при выполении M1 цикла именно этот префикс по этому адресу и прочитается. Вполне может произойти переключение страниц памяти, например в ПЗУ TRDOS или в гейт другого устройства. И тогда так называемый "инвалидный префикс" внезапно станет далеко не инвалидным, а самым нормальным, но будет уже поздно, т.к. в снэпшоте информация о текущем режиме префикса не сохранена и процессор выполнит некорректную инструкцию, т.к. режим префикса в снэпшоте не был сохранен.
    Последний раз редактировалось ZXMAK; 14.11.2024 в 13:11.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

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

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

Похожие темы

  1. Баг в W1793 (1818ВГ93).
    от xolod в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 18
    Последнее: 19.03.2019, 14:18
  2. Баг в depacker от hrust1.3?
    от moroz1999 в разделе Программирование
    Ответов: 65
    Последнее: 17.04.2014, 10:39
  3. [Atari]баг игры NINJA?
    от denpopov в разделе Atari
    Ответов: 13
    Последнее: 16.03.2014, 07:20
  4. BUG in SZX snapshots ???
    от VELESOFT в разделе Эмуляторы
    Ответов: 1
    Последнее: 12.09.2009, 13:28

Ваши права

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