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