
Увы, родные исходники Exerciser написаны под ассебмлер M80 для CP/M, и там используется какой-то изощренный синтаксис для макросов, когда любой параметр макроса может сам раскрываться в переменное количество подпараметров. Я так и не нашел ассемблера для Windows/Linux/Mac, чем это можно собрать. В итоге я форкнул проект в 8080ex1, чтобы он компилировался в AS. Изменения чисто косметические для совместимости с AS. В процессе сборки новых из исходников бинарь автоматически сравниваться с оригинальным бинарем на полное совпадение.
Далее, надо было запустить это на РК. Изначально Exerciser заточен под BDOS. Я снова форкнул 8080ex1 в rk86-ex1, где дописал необходимое. Мои изменения эмулируют два вызова BDOS, попутно переводя выводимые буквы в верхний регистр. Также производится логгирование экранного вывода в память с адреса 4000. Последнее нужно, так как вывод теста полностью не влезает на экран РК и скроллируется. После окончения теста сохраненный вывод можно распечатать повторно, используя РУС/ЛАТ для паузы. Также из команда EI заменена на NOP, чтобы не пищало всю дорогу (на результаты это не влияет), и начальное положение стека установлено на 5000 (а не через "LHLD 6, SPHL").
Тест на моем РК с частотой 2MHz занимает около 3 часов.
Для ленивых можно взять готовый бинарь rk86ex1.bin.
Запускать через "G100". Когда тест закончится и выйдет в Монитор, можно повторно распечатать результаты через "G80".
Вот скрины моего "прогона":


Несовпадений два:
Code: Select all
ALUOP NN: EXPECTED: 9E922F9E, FOUND: 7799EA9D
Code: Select all
ALUOP <B,C,D,E,H,L,M,A>: EXPECTED CF762C86, FOUND: B3491C2A
Ну и чтобы два раза не вставать, создатель этого новодела РК написал грамотную программку mac2rk для заливки бинарей в РК под видом магнитофона. Знаю, что такие программы уже есть, но эта чисто под Mac (хотя, может и под Linux соберется).
UPDATE: Судя по всему процессор, который стоит у меня в РК, является клоном от AMD и называется 9080A. Товарищ Славинский сказал, что отличия в моих тестах выглядят немного странно, и могут быть следствием ошибок при портировании, хотя мой бинарь совпадает с оригинальным один в один. Есть мысль купить на ebay еще один i8080 (там они еще есть долларов по 20 на штуку) для тестирования.