Lavr wrote:...но тест
from Klaus Dorman - это очень скурпулёзный тест
6502!

Я сам уже несколько подзабыл особенности этого теста, поскольку сам я его тогда совсем не знал,
а
г-н Klaus Dorman помог мне в тот момент и скомпилировал свой тест под ту задачу, котрой
я тогда занимался -
эмулятор 6502 на JS.
Поэтому пришлось разобраться с этим тестом заново и правильный, рабочий вариант находится
в этом архиве:
6502_8.zip
Это файл
6502_0000.bin. Он должен быть загружен с адреса
0000H в ОЗУ тестируемой системы.
Стартовый адрес теста -
800H, вектора прерываний должны указывать на адрес
600H.
ТЕСТ РАБОТАЕТ В ОЗУ И ТОЛЬКО В ОЗУ, ПОСКОЛЬКУ В НЁМ САМОМОДИФИЦИРУЮЩИЙСЯ КОД!
Поэтому мне пришлось применить
простой контроллер ПДП для его загрузки.
В области
ZERO PAGE у теста расположены паттерны для различных проверок, я их сначала некорректно
отрезал, в надежде, что тест возобновляет их сам - это оказалось не так.
Тест не привязан к какой-либо ОС и при ошибке зацикливается в месте ошибки. В чем состоит ошибка
следует смотреть по листингу теста.
Выкладываю здесь также файл листинга с моим прохождением теста для
Proteus модели 6502:
6502_functional_test.txt
Найденные ошибки я помечал как
%%%% -
% иначе не встречается.
Code: Select all
3644 : d0fe > bne * ;failed not equal (non zero)
%%%% > ; CHECKED !!!
К сожалению,
Functional Test for the NMOS 6502 нельзя выполять с произвольной точки вхождения,
каждый раз приходится начинать либо сначала, либо с большого раздела, поскольку тест самомодифицирующийся
и тест использует результаты предыдущих вычислений.
Поэтому для оперативного тестирования аппаратного прохождения отдельных микрокодов ПЗУ микрокоманд
пришлось организовать вот такой "полигон", где исполнение отдельной микрокоманды можно рассмотерь
в пошаговом режиме.
6502_tst.gif
В загруженном выше архиве - это проект:
6502_tst.DSN
You do not have the required permissions to view the files attached to this post.