User Tag List

Страница 13 из 14 ПерваяПервая ... 91011121314 ПоследняяПоследняя
Показано с 121 по 130 из 131

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

  1. #121

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  3. #122

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

    По умолчанию

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

    Например имеем последовательность DD DD 00. Прцессор выполнил первый префикс DD, затем эмулятор остановили и сохранили снэпшот, затем при загрузке при чтении следующего DD сработал гейт и вместо DD прочиталось 21. Однако состояние предыдущего префикса потеряно при сохранении в SZX.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  4. #123

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Например имеем последовательность DD DD 00. Прцессор выполнил первый префикс DD, затем эмулятор остановили и сохранили снэпшот, затем при загрузке при чтении следующего DD сработал гейт
    1) с чего бы ему сработать после загрузки, но не сработать после сохранения точно так же?
    2) ну, считай, что не выполнял первый тот DD, всё равно он равносилен нопу, откатить можно
    Прихожу без разрешения, сею смерть и разрушение...

  5. #124

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    1) с чего бы ему сработать после загрузки, но не сработать после сохранения точно так же?
    до сохранения процессор с взведенным флагом префикса. После загрузки это состояние не сохраняется и процессор будет выполнять инструкцию как обычную не префиксную.

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

    Возможно спектакулятор так и делает, в нем невозможно нормально отлаживать мультиколор, т.к. каждый раз при загрузке снэпшота или останове чтото с тактами сбивается и отображаемый такт не соответствует тому, который на самом деле обрабатывается. Пока код работает - все правильно выполняется, как только останавливаешь, сохраняешь снэпшот и восстанавливаешь, то тайминги сбиваются - такты показывает одни, ведет себя по другому, вобщем начинаются глюки с таймингами. Я вначале долго не мог понять что за глюки - визуально по тактам вроде все ок, а тайминги сбиваются. Потом понял, что чтото ломается в состоянии процессора при остановке и сохранении снэпшота.
    Последний раз редактировалось ZXMAK; 27.12.2024 в 21:45.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  6. #125

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    до сохранения процессор с взведенным флагом префикса. После загрузки это состояние не сохраняется и процессор будет выполнять инструкцию как обычную не префиксную.
    ну при чём тут ФЛАГ, да еще такой, которого внешние устройства не видят?
    я спросил, с чего бы ГЕЙТУ сработать в одном случае и не сработать в другом?
    при совершенно одинаковых вводных-то

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

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

    и да, если у тебя функция выборки сама изменяет состояние других модулей, это неправильно
    перепиши, раздели на разные функции - выборка отдельно, последствия отдельно

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

    иными словами, функция выборки должна быть повторяема любое кол-во раз для данного состояния и не изменять само состояние
    Прихожу без разрешения, сею смерть и разрушение...

  7. #126

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    ну при чём тут ФЛАГ, да еще такой, которого внешние устройства не видят?
    я спросил, с чего бы ГЕЙТУ сработать в одном случае и не сработать в другом?
    при совершенно одинаковых вводных-то
    если об этом речь, то срабатывать гейту при отладочном чтении памяти как-то неправильно. Т.е. пока не выполнишь операцию точно не узнаешь, сработает он или нет. Полноценное чтение может например добавить лишнюю задержку для contended модели.

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

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    и да, если у тебя функция выборки сама изменяет состояние других модулей, это неправильно
    перепиши, раздели на разные функции - выборка отдельно, последствия отдельно

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

  8. #127

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    у меня две функции выборки - одна для полноценного выполнения с учетом всех переключений и задержек, вторая - просто читает память при текущем состоянии,
    для предсказания значимости префикса задержки тебе не нужны, а переключения - предсказуемы (ДОЛЖНЫ быть, если нет - время задуматься о перепроектировании модели)
    Прихожу без разрешения, сею смерть и разрушение...

  9. #128

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    для предсказания значимости префикса задержки тебе не нужны, а переключения - предсказуемы (ДОЛЖНЫ быть, если нет - время задуматься о перепроектировании модели)
    для этого прийдется связать код логики процессора и конкретных устройств, а именно в том и был смысл со сменными модулями чтобы этого не делать, чтобы можно было на лету сменить одну ULA на другую, подключить убрать устройство и код продолжил спокойно работать.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #129

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #130

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    чтобы хотя бы некоторые действия отвязать от изменения состояния
    они и не связаны. Есть два метода для чтения памяти - один не влияет на состояние, второй влияет также как при обращении к памяти в железе.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Страница 13 из 14 ПерваяПервая ... 91011121314 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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