Здесь можно скачать актуальные версии Virtual Vector (VV)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Читал здесь, что с игрушкой pillars у всех эмуляторов проблемы. Но не очень понял - из-за чего именно они происходят?
Загорелся я тут недавно идеей написать собственный эмулятор "Вектора-06Ц" (когда-то в юности это был мой первый свой комп). И уже почти сделал это. Под win. Почти все программы работают. Кроме pillars. Не могу найти причину...
Вижу, что в "Virtual Vector" pillars работает. Может народ подскажет - в чём там засада? Куда копать?
Вот тут ответ был, вроде. Особенности работы процессора, которые следует учесть в эмуляторе.
parallelno(10.09.2024)
Может быть у эмуляторов были проблемы 15 лет назад, но мир не стоял на месте. Мы все усердно трудились все эти годы и вот сейчас, в 2024, насколько я знаю, сейчас нет эмуляторов, у которых эта проблема сохранилась
Копать надо в обработку флага дополнительного переноса в инструкции SUB.
Больше игр нет
Так копал уже.
Сделал тест, в котором "SUB C" вычисляется в цикле для всех возможных значений A=0...0xFF и для значений C=0...0x40 с предварительно всеми сброшенными флагами и предварительно всеми установленными. Сохраняя регистр флагов после каждой операции. Запустил этот тест на своём эмуляторе и на VV, сравнил дампы результата - совпадение полное. Может конечно в оставшемся диапазоне C=0x40...0xFF косяк, но как-то маловероятно.
Последний раз редактировалось rst; 09.09.2024 в 17:51.
Я могу предложить две вещи:
1) прогнать на своем процессоре 8080 Exerciser https://github.com/begoon/8080ex1 -- тест брутальный и выявляет любые неточности
2) сравнить свой код с кодом Begoon https://github.com/begoon/i8080-core...r/i8080.c#L172
Больше игр нет
parallelno(10.09.2024), rst(09.09.2024)
Спасибо! Если иначе найти не получится - буду пробовать.
Ещё такой вопрос:
При выполнении "теста CPU" из "Теста устройств" базового набора программ своим эмулятором я вижу значения измеренной производительности:
624тыс.оп и 749тыс.оп. Но вроде как память подсказывает, что на реальном Векторе результаты были: 623тыс.оп и 748тыс.оп.
Т.е. получается - что-то у меня выполняется слишком быстро? По идее - команды не должны, тогда бы разница была гораздо существеннее. Есть подозрение, что у меня установлена неверная длительность входа в прерывание. Я её задал равной длительности команды "RST 7". Но, возможно, нужно больше тактов добавить.
Может кто подсказать по длительности входа в прерывание на реальном "Вектор-06Ц"? (который без доработок, оригинальный Кишинёвский).
Или всё-таки мне память изменяет, и тест на реальном Векторе тоже мог показывать 624/749?
- - - Добавлено - - -
У меня свой. Я его ещё только пишу. Ему всего только месяц от роду.
Пока он ещё очень сырой. Ещё не приступал к эмуляции ВИ53 и вообще звука. Также пока плохо проработано маппированние клавиатуры. Займусь ими когда полностью выгребу все вопроосы по корректной эмуляции команд и работе разных программ.
Осталась одна pillars. Других неработающих больше не нашёл.
Но зато в моём эмуляторе уже более навороченный и удобный (на мой взгляд!) встроенный отладчик, чем в VV. Да простит меня автор VV. Тысяча извинений! Его эмулятор реально крут!.... за исключением встроенного отладчика.
Как более-менее допилю - поделюсь. Если конечно кому интересно.
Последний раз редактировалось rst; 09.09.2024 в 19:03.
ZEman(09.09.2024)
Не зная других деталей трудно подсказать. Вход в прерывание такая же инструкция, как и все остальные. Может быть дело в торможении процессора? У Вектора время каждого машинного цикла округляется вверх до чиста тактов, кратного четырем. За одно прерывание исполняется 59904 такта, 312 строк по 192 такта.
Больше игр нет
rst(09.09.2024)
rst, Pilars использует особенность реализации команды вычитания через сложение, т.е. i8080 на самом деле выполняет не вычитание, а сложение с числом в дополнительном коде и флаг дополнительного переноса при этом получается инвертированый, если сравнивать его с этой же командой SUB на i8086, там этот баг уже пофиксили.
Здесь можно скачать актуальные версии Virtual Vector (VV)
rst, а что у тебя за эмуль, можно ли нам на него глянуть ?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)