а какие инструкции он тестит?
а какие инструкции он тестит?
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Пока-что только те, которые влияют на MEMPTR по тому документу, что натестировали когда-то с подачи boo-boo, сделанные и несделанные условные джампы/реты/коллы,но с неполным пока-что покрытием,плюс некоторые, которые не влияют, но могли бы влиять. И ожидаемые результаты тоже выставлены по этому документу. Ваш ZXMAK2 проходит пока-что. Еще некоторые проходят. Но некоторые не проходят. В планах сделать полноценные тесты, поскольку известные тесты, увы, не выявляют нарушений, которые выявляются моими неполными тестами. И мне нужны были подтверждения, что на реальном железе все четко.
Вообще, алгоритм затачивался изначально, чтобы просто выяснить, какой MEMPTR после выполнения инструкции. Я им проверяю реальный процессор, подключенный к микроконтроллеру. А тут в тестах более толстая, но быстрая версия. Возможно, еще надо будет как-то адаптировать это именно под тесты.
Под ВМ1 дополнительную логику намеренно не делал, чтобы увидеть то, что увидел. Выдаваемые результаты подтверждают, что все с тестами на реалах хорошо, если не считать эту внезапную единицу в старшем байте регистра для LD (BC|DE),A. Очень интересный случай. Возможно, стоило после первого же фэйла скип теста убрать, чтобы увидеть детальные результаты для каждого варианта. Нужно будет это поподробнее изучить.
- - - Добавлено - - -
Так там ноль ожидаем. А тут пришла единица. Конечно посмотрю, мог ли я как-то накосячить. Но... где?! Пока-что не представляю.
Последний раз редактировалось cafedead; 15.05.2025 в 11:43.
ZjoyKiLer(06.05.2025)
Это я не знаю. Меня больше интересует, как это в поведении должно выглядеть, если спамить разными адресами, предыдущими значениями MEMPTR, и разными значениями регистра A... Кто-то писал в Интернетах, что не получил ожидаемые нули во флагах после такой инструкции на ВМ1. Может быть, на ВМ1 в старшем байте MEMPTR после этой инструкции должно получаться что-то более сложное, нежели ноль.
Ну или я все же где-то накосячил. Но вроде не накосячил. Если приходит в MEMPTR #0176, то оно и вычисляет #0176, а если приходит #0076, то и вычисляет #0076, и сюрпризов не происходит. Значит там в старшем байте регистра MEMPTR процессора ВМ1 реально единица после инструкции LD (DE),A по какой-то причине. В A #ED при этом. Надо спамить разными значениями, и смотреть, что получится.
![]()
Последний раз редактировалось cafedead; 05.04.2025 в 17:43.
ZjoyKiLer(06.05.2025)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)