С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
например в тесте выше, который заполняет всю память префиксом. Вариант с предварительной проверкой префиксов наперед чреват тем, что память может внезапно измениться, например при попадании в окно 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
до сохранения процессор с взведенным флагом префикса. После загрузки это состояние не сохраняется и процессор будет выполнять инструкцию как обычную не префиксную.
при выполнении все модули уже эмулятора изменили состояние, увидев чтение из памяти, изменение такта и состояние процессора. Откатить всё проблематично - чтото обязательно сломается, причем оно может сломаться практически каждый раз раз при остановке, если эмулятор будет каждый раз при остановке откатывать выполнение.
Возможно спектакулятор так и делает, в нем невозможно нормально отлаживать мультиколор, т.к. каждый раз при загрузке снэпшота или останове чтото с тактами сбивается и отображаемый такт не соответствует тому, который на самом деле обрабатывается. Пока код работает - все правильно выполняется, как только останавливаешь, сохраняешь снэпшот и восстанавливаешь, то тайминги сбиваются - такты показывает одни, ведет себя по другому, вобщем начинаются глюки с таймингами. Я вначале долго не мог понять что за глюки - визуально по тактам вроде все ок, а тайминги сбиваются. Потом понял, что чтото ломается в состоянии процессора при остановке и сохранении снэпшота.
Последний раз редактировалось 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
ну при чём тут ФЛАГ, да еще такой, которого внешние устройства не видят?
я спросил, с чего бы ГЕЙТУ сработать в одном случае и не сработать в другом?
при совершенно одинаковых вводных-то
ну так прошлое состояние придержи - еще раз, нет тут никакой проблемы, помимо лени
или делай только шаг только одного проца для проверки перед сохранением снапа
- - - Добавлено - - -
и да, если у тебя функция выборки сама изменяет состояние других модулей, это неправильно
перепиши, раздели на разные функции - выборка отдельно, последствия отдельно
- - - Добавлено - - -
иными словами, функция выборки должна быть повторяема любое кол-во раз для данного состояния и не изменять само состояние
Прихожу без разрешения, сею смерть и разрушение...
если об этом речь, то срабатывать гейту при отладочном чтении памяти как-то неправильно. Т.е. пока не выполнишь операцию точно не узнаешь, сработает он или нет. Полноценное чтение может например добавить лишнюю задержку для contended модели.
- - - Добавлено - - -
у меня две функции выборки - одна для полноценного выполнения с учетом всех переключений и задержек, вторая - просто читает память при текущем состоянии, ничего не меняя - она используется в отладчике. Таким образом в отладчике можно смотреть текущее состояние, редактировать память и т.д., не боясь, что это повлияет на тайминги или состояние схемы.
Последний раз редактировалось 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
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)