С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
это о чем ?
речь то собственно шла про то что есть ряд эмуляторов на которых результаты работы экзорциста совпадают с результатами на железе
причем в тестах экзорциса в осоновмом принимали участие авторы эмуляторов.
т.е. экзорцист тут можно сравнивать с эмуляторами (вполне орпеделёнными).
про что вы - я не понял вообще.
---------- Post added at 18:35 ---------- Previous post was at 18:27 ----------
просто если вы не в курсе, не стоит и писать ....
http://www.idb.me.uk/sunhillow/8080.html
из 13 результатов с реала там
1 (и первый с реала) - Alexander Timoshenko
9 штук - Alexander Demin (автор того кора что я указал выше)
оба имеют прямое отношение к эмуляторам.
Есть множество примеров, когда для прохождение тестов авторы эмуляторов ставили специальные хаки внутри эмулятора. Вот о чем речь. Если конкретно в данном случае я не прав - я буду только рад. Однако, финальный тест я бы все же прогнал на реальном железе либо опирался на результаты уже прогнанного теста на реальном железе. Ибо повторюсь: мы делаем не эмулятор процессора 580ВМ80А (пусть даже и точный), мы делаем его клон и он должен полностью соответствовать железному оригиналу, чтобы его можно было просто заменять в плате и не иметь потом при этом каких-то последствий.
Я про это и говорю.
Авторы этих эмуляторов потратили много времени на то чтобы они проходили этот тест
и вылизали всё,
без хаков.
именно по этой причине они и принимали активное участие в общении с автором теста и его оптимизации (Ivagor)
Заодно - посмотрите КАК работает этот тест.
использование эмулятора тут даст приличную экономию времени.
Не больше чем нормально подготовленый оригинал. У меня Специалист с поддержкой SD карты, время на запуск - чисто копирование на карту. И, кстати, почему "экзорцист" когда "эксесайзер" (Exerciser)?
PS В догонку про оверлап. Помимо записи результата ALU от предыдущей операции в цикле М1 следующей добавлю еще и вот что. При срабатывании условного перехода, команды возврата или обычного джампа, значение нового адреса заносится в РС как WZ+1 в машинном цикле М1 следующей команды, причем на ША выставляется значение WZ. В то время как PCHL выполняет копирование HL в PC нормально в 4м-5м такте исполнения.
Это учтено/получилось в схеме?
Последний раз редактировалось HardWareMan; 11.08.2014 в 20:34.
Потому что позволяет "изгонять мелких бесов" - баги. Главное что все и так прекрасно понимают о какой программе идет речь.
Эмулятор реально экономит время, все тесты на эмуляторе у меня выполняются секунд 10, а на DE0 где 25МГц эффективная частота ядра i8080 классический (ускоренный - он у меня глючит, где-то накосячил при переносе) около 20 минут.
В-общем, разбил я тест ALU на 8 подтестов add, adc, sub, sbi, ana, ora, xra, cmp и оказалось что только ana выполняется неверно. Как и предполагалось - неверно выставлялся второстепенный флажок AC. В документации часто пишут, что при выполнении ana флаг AC принимает неопределенное значение. А по факту - это перенос от суммы третьих разрядов аккумулятора и второго операнда и еще одной единички, или, другими словами просто or третьих разрядов операндов.
Было:
psw_ac <= c[3] & ~id_xra & ~id_ora & ~id_rxc;А должно быть:
psw_ac <= (c[3] & ~id_xra & ~id_ora & ~id_rxc) | (id_ana & (x[3] | r[3]));
Конечно. Более того, там на ША много чего еше левого выставляется - все 16-тиразрядные инкременты/декременты эпизодически на ША выскакивают, в том числе при INX/DCX. Схема так устроена - входной аргумент для +/-1 у нее с буфера адреса берется.
PS. Пока писал пост - все тесты завершились успешно. Разберусь где я ошибся в ускоренном варианте экзорциста и буду тестировать HOLD, HLT, READY и прерывания.
Последний раз редактировалось Vslav; 11.08.2014 в 22:19.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)