Плюс к ним дополнительно SUB, SBB, CMP, ORA, ANA, XRA.
Этот момент работает нормально, когда разбирался я тоже заметил как поздно результат пишется. Это у них pipelinе такой - пока выбираем следующую команду, ALU отрабатывает всю свою длинную цепь переноса из целых 8 бит (для 1973 года - нормально, без сарказма) и наконец успевает выработать правильный результат. Хоть транзисторы и были медленные тогда, но принципы не меняются. Цепь переноса в ALU построена интересно - четные биты нормальные, а во нечетные инвертированные, такая вот самая быстрая физическая реализация в NOR/NAND логике, подозреваю что современные сумматоры тоже похоже устроены.
Я думаю что, по-крайней мере, ADD, SUB, ORA, XRA, ANA, CMP дают верные результаты (значения аккумулятора как минимум), иначе экзорцист не работал бы - он сам использует эти инструкции для работы. Вероятнее проблема в ADC/SBB или в формировании какого-либо второстепенного флажка типа AC или P. Одну ошибку в формировании AC я уже вчера исправил (в архиве исправленная версия), но не помогло.
Да, спасибо за тест, но пока не хочу разбираться там с цветами и выводом. Я думаю чуть-чуть модифицировать уже портированный тест экзорциста - изолировать под одной логической инструкции и прогнать его на эталонной машине и получить верные значения CRC32 для этих изолированных тестов.
Может у кого-от есть под рукой такая эталонная машина с живым 8080/580 и он согласится прогнать мой модифицированный экзорцист. Или кто посоветует эмулятор в котором экзорцист нормально проходит?





. Цепь переноса в ALU построена интересно - четные биты нормальные, а во нечетные инвертированные, такая вот самая быстрая физическая реализация в NOR/NAND логике, подозреваю что современные сумматоры тоже похоже устроены.
Ответить с цитированием