Ну так сделайте краткий тест ДОЗУ ПП силами ОЭВМ !
ИМХО - 95%, что там баг.
( адреса 000000 - 077776 )
Вид для печати
Да пока вроде нормально. Перекачался пультовый отладчик в ОЗУ ЦП, возврат из подпрограммы произошел нормально. Начался подсчет контрольной суммы ПЗУ. Подсчет идет с конца к началу. Соответственно сначала 208-я, потом 207-я, 206-я и 205-я. В логе ещё подсчет 208-й не окончился.
вот следующий лог: https://cloud.mail.ru/public/XizD/54JTGziEV
- - - Добавлено - - -
Был такой, я отрезал, думал, что захватил не правильно
Пропустил 3 блока по 41кБ https://cloud.mail.ru/public/3MeL/5CigGoqFW
- - - Добавлено - - -
Завтра попробую подключить DCLO и ACLO от ЦП к микроконтроллеру и попробую по управлять, даст Бог - заведется! :)
Похоже так и есть: https://cloud.mail.ru/public/2YxB/y2RhggpwN
ЦП запускается без проблем, вначале экран очищается, но потом становится полосатым, ни какого другого изображения кроме полос нет.
Выпаял я D24 (031) поведение УКНЦ не поменялось.. так что ПЛМка дохлая. Кстати, попробовал как ведет себя УКНЦ без запуска ЦП и с запуском, с запуском она все-таки очищает экран, но потом он опять становится в полоску (см видео).
Попробовал посадить ру5 вторым этажом поверх запаянных, если одеть все правильно, то ни каких изменений не происходит, так что похоже и память жива (та которая запаяна), та память что у меня в панельках стоит и работает с ПП проверена на другом компе.
В общем, мысли опять закончились..
Стал разбираться с режимом ДМА на УКНЦ, ставлю низкий DMR, жду в ответ DMG, получаю и отпускаю DMR, а SACK прижимаю к 0, УКНЦ шину мне отдал.
Дальше пытаюсь сделать следующее: ставлю на шине адрес, прижимаю к 0 SYNC, жду чуть-чуть, прижимаю к 0 RE и одновременно освобождаю шину, жду в ответ RPLY... но его нет, ЧЯДНТ?
Да, адрес выставил 208 ПЗУ 160000.
Сначала лучше SACK сделать активным, а потом DMR отпустить. После отпускания DMR, процессор должен отпустить DMG. Шиной можно пользоваться.
Выставляем адрес на шине в инверсном виде, делаем активным SYNC. Ждём чуть-чуть, снимаем адрес с шины (выставляем все единицы, инверсный ноль). Выставляем DIN, ждём RPLY около 50 мс. Если RPLY не пришёл, то адрес не отозвался. Если пришёл RPLY, то читаем данные. После этого снимаем DIN, устройство должно снять RPLY, снимаем SYNC. Адресный обмен завершился.
Разъёмы XS1 и XS2 расположены за буфером. По ту сторону буфера ПЗУ и контроллер ОЗУ. По эту -031 (клавиатура, программируемый таймер, регистр 0177716), разъёмы XS1 и XS2, а также каналы обмена на 1801ВП1-120.
Можно попытаться прочесть регистры каналов обмена. Это регистры 177060, 177062, 177064, 177066, 177070, 177072, 177074, 177076, 177100, 177101, 177102, 177103.
Если регистры каналов обмена будут отвечать, то можно припаять обратно -031 и попробовать прочесть регистр 177716. Если по эту сторону буфера всё читается, то может быть проблема с буфером или его схемой управления.
Alex_K, xolod - https://ibb.co/RpZhcRH
:)
Удалось прочесть ПЗУ по адресу 160000?
Ну можно сделать что-то по аналогии с пультовым монитором на УКНЦ, читать и записывать ячейки памяти.
А в -031 регистр 177716 прочесть не пробовали?
У 1801ВП1-120 есть одна особенность - дешифрация старшей части адреса делается в контроллере ОЗУ и адресного пространства (D10), а младшей части адреса уже в самой 1801ВП1-120 (D18). При подаче адреса 177060 на шину на выводе 51 CS D10 должен появиться низкий уровень, который поступает на вход 26 CSP D18.
А так можно попробовать подать на шину адреса 177777, это должны быть нули на выводах V и W буфера, эти нули должны транслироваться на выводы AD буфера.
Отловил гору глюков, теперь ПЗУ 208 читается так:
Скрытый текст
C0E0 8000 98E0 8001 8AEB 8001 42F7 B8E0
7487 5A88 5A88 B8E0 B8E0 B8E0 B8E0 B8E0
EC8F 569E 729E 7C9E 069F A89E 089F A09E
0A9F 0C9F 0E9F 109F 129F B8E0 149F 169F
B8E0 B8E0 B8E0 B8E0 B8E0 B8E0 B8E0 B8E0
B8E0 B8E0 B8E0 B8E0 B8E0 B8E0 B8E0 B8E0
B8E0 B8E0 B8E0 B8E0 B8E0 B8E0 B8E0 B8E0
ACF8 4EFB B4FB B8E0 A0E0 8001 A8E0 8001
FF15 97E7 2C15 1701 FF15 A1E7 2415 7E01
FF15 AFE7 1C15 7A01 FF15 97E7 1415 6E01
FF15 D9E7 0C15 7201 FF15 C7E7 0415 6E01
FF15 DEE7 FC14 6A01 8700 9EE2 B0E0 8001
C417 B0F5 000A 0611 3581 DF35 1000 CEFF
0403 C017 0000 0103 4800 DF15 2000 CEFF
1F0A C615 DF15 2570 08FE 1F1D 2200 0CFE
1F0A CEFF C015 4000 017E DF15 0080 CEFF
[свернуть]
Вывод в хекс и как выводит его хексредактор.
Но после исправления ошибок 177060 так и не читается.
А есть смысл проверять КР1801ВП1-055 если ПЗУ прочиталось без ошибок?
А если подавать 177777, надо ли делать SYNC низким?
Проверил низкие на входе - низкие на выходе.
Еще проверил так, подал адрес 0х5555, это чередующиеся 0 и 1 на входе, получил тоже самое на выходе.
- - - Добавлено - - -
Проверил еще раз, да все это происходит, но адрес 177060 все равно не отвечает.
- - - Добавлено - - -
Воткнул свой тестер в рабочую УКНЦ, тоже не ответила на 177060.
Прочитал кусок памяти с 0 адреса, на рабочей и не рабочей память заполнена по разному кроме 1го слова.
Я вот что-то подумал а BS7 нормально формируется при захвате шины?..
Да. Просто обычно он в нуле (то есть обращение не к странице в/в). Но если вдруг мастер будет писать в страницу в/в - он ОБЯЗАН выставить единицу.
И вообще - BS7 - это ЕДИНСТВЕННЫЙ ЗАКОННЫЙ способ понять - идёт обращение к странице в/в или нет.
Который будет работать на всех трёх вариантах шины при выключенном или включенном ДП (если обращение идёт от проца)
- - - Добавлено - - -
Там нестандартное деление адресного пространства, но по правильному - мастер устройство ДОЛЖНО формировать BS7
- - - Добавлено - - -
Поправка - обычно он в нуле, если работает ПДП. Если работает проц, то естественно он не обязательно будет в нуле
K1BS. Да это он.
ZPilot, а между выдачей адреса на шину и подачей сигнала SYNC есть пауза? Также после подачи SYNC тоже надо небольшую паузу до снятия адреса.
- - - Добавлено - - -
ZPilot, забудьте вы про этот сигнал. Я уже сказал, что устройства на шине ПП на плате его не используют.
А так этот сигнал говорит о том, что адресуется страница ввода-вывода. Для ЦП это диапазон 160000-177777 в режиме USER, а для ПП - 177000-177777. Данный сигнал для внешних устройств позволяет сделать легче дешифратор адреса.
Когда работает ПП на K1BS есть сигнал, когда я получаю ДМА доступ, K1BS у меня высокого уровня.
в/в - ввод/вывод
Если следовать привычному делению, то страница в/в - это последние 8 кбайт полного адресного пространства.
Адресное пространство PDP - это или 16 бит или 18 бит или 22 бита
16 бит - 000000-177777, страница в/в - 160000-177777
18 бит - 000000-777777, страница в/в - 760000-777777
22 бита - 00000000-17777777, страница в/в - 17760000-17777777
Регистры любых устройств традиционно располагаются в ней, соответственно ниже неё - сколько то памяти.
Что бы упростить дешифраторы обращения к регистрам устройства в/в - используется сигнал BS7, а дешифратор при этом смотрит только на младшие 13 бит (условный диапазон - 00000-17777)
С платы процессора (или с микросхемы процессора) традиционно должен выдаваться этот сигнал.
Но если используется нестандартное деление пространства, тогда эта схема летит - как в УК-НЦ. И тогда устройство должно самостоятельно дешифровать полный адрес - в случае УК-НЦ - 16 бит.
Скорее всего, в УК-НЦ обращение к регистрам будет работать вне зависимости от сигнала BS7