Посидели вчера вместе, выкопали три проблемы:
1) Явно видно, что то, что ЦП пишет в память, понимается ДК неверно.
Причем, скорее всего, и ЦП в итоге читает из памяти не то, что записывает.
Строго работает только первых 16 байт ОЗУ - там реальность совпадает с ожиданиями.
Дальше начинается чехарда: нам удавалось прогнать тест ОЗУ почти по 8 Кб почти без ошибок,
Но бывало и так, что ошибка возникала буквально внутри участка в 5 байт. Больше 8 Кб без ошибок не тестируются.
Данные "прыгают" из одной области в другую: т.е. запись в один регион может быть прочитана из другого. Осталось твёрдое ощущение, что проблема в адресных линиях: возможно, замыкание A5 или выше с чем -то ещё. Коммутаторы почти все меняные.
2) Аппаратный отладчик сильно помогает, но на этой конкретной материнке он тоже подглючивает, причем странно: как будто проблемы в сигналах синхро. Например, он легко ловит ЦП по breakpoint ША, но простой пошаговый проход ему не всегда даётся - он может зависнуть, а может сразу остановить ЦП до выполнения первого же такта. Пока сложно сказать: это неисправность платы или он не работает на этой версии плат.
Также отладочная прошивка сразу уходит в глюки если отладчик вставлен. Если его убрать - она работает внешне правильно.
Но я провёл такой опыт: очистил память, потом выдернул отладчик из слота, дёрнул РЕСЕТ и позволил отладочной прошивке заполнить видео. Затем обратно воткнул отладчик и обнаружил примерно на адресах 23xx часть заполненной видеопамяти. Именно часть, т.е. какие-то отдельные блоки размером 16 байт - они чередовались с байтом, который был заполнителем при очистке.
3) Одна из микросхем D6 - 2716 оказалась с сюрпризом: она нормально читается программатором,
но в агатовской плате ведёт себя странно: выдаёт на все линии данных единички с уровнем 3.5 в.
И ничего другого я от неё не увидел.
Тестировали так: на отладчике поставили брейкпоинт FFFC ( вектор сброса ), отловили проц в этом месте, а потом, на остановленном проце, вдвоём, на три раза, прошлись по этой микрухе осцилографом. На неё приходят все сигналы, адрес, но на выходах - только единицы.
Потом делаем шаг к FFFD, опять всё перепроверяем - опять единицы. Делаем ешё шаг : ЦП уходит на адрес FFFF.
Втыкаем другую микруху: всё отлично, всё работает.
Ставим микру непонятную на программатор: она читается.
Опять возвращаемся к тесту: замораживаем всё на FFFC, беру резистор 560 ом, цепляю между выходом микры и общим: напряжение проваливается примерно до 1.1 вольта.
Так и не поняли: то ли микра настолько слаботочная, то ли она вообще в Z-state висит.....
Может быть дело в линии 21 - она у рф2/рф5 должна быть на High, но, может быть, были версии 2716, которым тут нужна Low ?
Управление буфером ШД проверили: там всё правильно. Да и, наверное, если бы он был активен, то резистор 560 ом для него бы не был существенной нагрузкой.