PDA

Просмотр полной версии : УКНЦ: Ошибка ПЗУ №4



Arix
02.04.2019, 19:52
УКНЦ после включения пишет:

Стартовый тест
------------------
Ошибка ПЗУ №4.

Об этом же гласит наклейка на корпусе. Машинка была продана мне как некондиция.
Что это означает - "ошибка четвёртого ПЗУ" или "ошибка номер четыре"?

Фото: https://yadi.sk/d/-0GyY1kAMW80Dw

Симптомы: при нажатии СБРОС или СТОП нормально открывается меню, нормально работают установки (по клавише УСТ). Я втыкаю контроллер, пытаюсь загрузиться с жесткого диска. Появляется строка про какого-то Олега, и на этом всё останавливается. Попытка загрузки с дискеты: дисковод начинает рычать головками и затем глохнет, никаких сообщений нет. Попытка загрузиться с магнитофона. На рабочей УКНЦ курсор в левом верхнем углу горит неподвижно, потом появляется сообщение "Found <имя файла>", программа грузится и запускается. На этой же УКНЦ при выборе в меню "7 - магнитофон" курсор всё время мигает, на сигнал с магнитофона никак не реагирует. Попытка загрузки с С2 тоже была неудачной.
При тестировании идёт по одной ошибке при каждом проходе.

Как можно видеть, ПЗУ DS3 двухэтажное. Оно вышло из строя и на него навесили новое? Может ли это быть причиной ошибки? Если разобрать эту этажерку и впаять нормально верхнюю микросхему?

Hunta
02.04.2019, 20:10
Рискну предположить, что ПЗУ N4 - это 208. Или 205.
206 таким способом похоже починили

- - - Добавлено - - -

Посмотрел. Скорее всего 208

Arix
02.04.2019, 22:56
А что означают эти числа - 208, 205 и т.д.? Я смотрю, они и в каталогах идут с этими числами. Это уже с готовыми прошивками?

Если ПЗУ выдаёт ошибку, это только менять его?

MM
03.04.2019, 00:20
Если ПЗУ выдаёт ошибку, это только менять его?
Да.
А еще можно запустить с пульта программу подсчета к/с ПЗУ на адресах 100000, 120000, 140000, 160000-176777, если пульт работает.
При этом понадобятся к/с оригиналов для сравнения.

Arix
04.04.2019, 19:30
Пульт, вроде, работает. Только вот, научиться бы им пользоваться, не только адреса вводить.
Я что-то не пойму, как эти ПЗУ работают. DS1-3 соединены полностью параллельно, включая выводы CS. Как же осуществляется выбор конкретной микросхемы для чтения из неё? Данные читаются сразу с трёх? Так там же каша будет.
Для сравнения я посмотрел схему "Суры", там 8 ПЗУшек, так у них CS не оюъединены, там всё понятно.

MM
04.04.2019, 20:09
как эти ПЗУ работают.
Молча :v2_dizzy_stupid:

Реально в каждой ПЗУ есть встроенные декодер сектора адресов - 000000-017777, 020000-037777, 040000-057777, 060000-077777, 100000-117777, 120000-137777, 140000-157777, 160000-177777 ( 8 ). В УКНЦ выборка ПЗУ ограничивается адресами 100000-176777 одной из БМК, т.к. адреса 177000-177777 предназначены для регистров.
То ПЗУ, которое отключается ( см. ТО ) - оно на адресе 100000-117777, остальные - фиксированные.

Могу написать коротенькую программку для подсчета к/с, правильные к/с можно посмотреть в эмуляторе УКНЦ, если такой есть, или в таблицах к/с для программаторов 1801РР1.

- - - Добавлено - - -

https://pic.maxiol.com/thumbs/1554397369.531452689..jpg (https://pic.maxiol.com/?v=1554397369.531452689..jpg)
Набирать в ОЗУ ПП с 001000 адреса, потом запустить с 1000 адреса. Программа дополнит табличку с 1040 адреса к/с указанных секторов АП.
Для считывания к/с провести листинг ОЗУ с адреса 1040, по адресам 1044, 1052, 1060, 1066 будут к/с БИС ПЗУ. Крайняя ПЗУ считается до адреса 176777 включительно, и в таблицах для программаторов 1801РР1 для этого дампа могут быть др. к/с, подсчитанные до адреса 177777 ( такая особенность программаторов ).

Arix
07.04.2019, 16:00
Чтобы запустить программу, нужно, находясь на адресе 1000, нажать ИСП? Сделал на рабочей УКНЦ. По адресам 1044, 1052, 1060, 1066 у меня нули.

MM
07.04.2019, 16:12
По адресам...
Признаком полного выполнения программы будет наличие "000001" в адресе 1054.
Программа должна выполняться в ОЗУ ПП ( не ЦП ).
Какой адрес останова программы ?
Есть ли уровень 0в. на 23 выв. всех ПЗУ УКНЦ ?

Обычно для запуска набирают 1000G - но с УКНЦ особых дел не имел порядка 30 лет, может и как-то по другому надо запускать.
Может, сначала на эмуле УКНЦ собрать правильные к/с ?

Arix
07.04.2019, 17:36
Программа должна выполняться в ОЗУ ПП ( не ЦП ).
Ага! Нашёл, как это сделать. Но всё равно по этим адресам нули.

Какой адрес останова программы ?
077204


Признаком полного выполнения программы будет наличие "000001" в адресе 1054.
У меня там 140000, это вводилось при вводе программы, оно и осталось.


Есть ли уровень 0в. на 23 выв. всех ПЗУ УКНЦ ?
Я пока проверяю это на рабочей УКНЦ, мне неохота её вскрывать.
В эмуляторе всё то же самое. Может, я что-то всё-таки неправильно делаю?

MM
07.04.2019, 17:48
1054
Извиняюсь, в адресе 1034. Туда "000001" пересылается по завершению программы.
В слотах расширения УКНЦ при запуске программы не должно быть устройств.

Arix
07.04.2019, 18:33
B 1034 - ноль.


В слотах расширения УКНЦ при запуске программы не должно быть устройств.
Ну как же без них? :) Вытащил, ничего не изменилось.

Всё ли я правильно делаю?

1. Включаю УКНЦ, нажимаю УСТ, УПР+@.
2. 1000 ->
Начинаю вводить программу, ввожу число, нажимаю стрелку вниз. И так до адреса 1066, в него заносится 7000. Дальше одни нули, ничего вводить не требуется.
Неочищение экрана при этом - нормально? В эмуляторе так же.
3. Нажимаю Ввод, попадаю на собаку.
4. Ввожу: 1000 ИСП.
У меня сообщение:
*** СТОП ***
077204 / 000000

Далее смотрю адреса 1034, 1044..., там везде нули.

MM
07.04.2019, 20:17
А что в регистрах при останове ?
Можно попытаться изменить программу :
В 1002 = 1046
В 1006 = 3

Arix
19.05.2019, 20:25
Изменил - ничего не изменилось. :) Как посмотреть регистры? Я что-то не разобрался.

hobot
20.05.2019, 03:18
Как посмотреть регистры?
в обычной отладке (пункт 6) R и стрелку вправо

Arix
20.05.2019, 21:01
Я не успеваю посмотреть регистры. Нажимаю R ->, на доли секунды появляется табличка и тут же исчезает, открывается Установка режимов. Сейчас попробую заснять на видео, потом посмотреть стоп-кадр.

https://i.ibb.co/xs1Tp1J/1.jpg (https://ibb.co/PYcH7cw)

RS=000010.

Это пока всё на рабочей УКНЦ.

UPD: На неисправной то же самое.

hobot
21.05.2019, 21:31
- нажмите <УПР>+@ или <ГРАФ>+<ИСП>.

Теперь мы находимся в "царстве теней" - мониторе ПП. Экран здесь не
такой просторный, как в мониторе ЦП. Поэтому совет страдающим клаустрофобией
- не задерживайтесь здесь подолгу! Из этого отладчика можно и не выбраться.
Иногда случается находить в ОЗУ ПП останки тех, кто так и не смог выйти из
лабиринтов монитора ПП. Именно их духи, мне кажется, время от времени и
подвешивают машины.

Arix
21.05.2019, 21:59
:)
hobot, у меня сейчас как раз эта книжка и открыта.
Я начинаю кое-что понимать. Все эти непонятные цифры - это команды ассемблера. например, 0127хх - MOV, хх - регистр. В следующей ячейке - число, которое заносится в этот регистр. Я пишу:
40000 12701
40002 777777

Запускаю: 40000 ИСП, смотрю регистры. И у меня в регистре R1 cемёрки.
Набирал программки из этой книги. Там, где меняются цвета, курсор и т.п.
У меня сейчас стоят рядом две УКНЦ, рабочая и неисправная. Я на обоих набираю одинаковые программки. Обе реагируют одинаково, т.е. пульт работает нормально. Или при этом ПЗУ не используется?
У меня возникла крамольная мысль: просто пролистать всё содержимое ПЗУ (120000 - 177000) на обоих компах одновременно, искать, где будут различия. Попробовал, жму обеими руками стрелки вниз и сравниваю. Однако, это долго.
Где бы посмотреть все ассемблерные коды? Так и разобраться, что в этой программе подсчета к/с не так.

MM
21.05.2019, 22:08
Где бы посмотреть все ассемблерные коды?
В "Руководстве ситемного программиста БК0010", в паспорте и ТО МС1201.0х ( лучше .02 ), в ТО М1801ВМ2 - оно Большое, но там подробно все объясняется.

Например , для ЦП 012737 100 177566 - вывести "@" на терминал.

Arix
22.05.2019, 21:57
Нашёл!
167570/ 070116.
На исправной машине и в эмуляторе - 170116.

После выключения и включения по этому адресу она выдаёт то 070116, то 030116. Есть ещё нестабильный адрес - 173474. Там должно быть 070077, а неисправная УКНЦ выдает то правильное число, то 030077.

MM
23.05.2019, 06:27
а неисправная УКНЦ выдает то правильное число, то 030077.
Бит 040000 нестабилен ( АД14 ). 160000-177000 - 208 ПЗУ.

Arix
23.05.2019, 21:19
Бит 040000 нестабилен
То есть, микросхема неисправна?


160000-177000 - 208 ПЗУ.
Да, я как раз её и проверял вручную. На двух УКНЦ пролистывал адреса из этого диапазона.

Я сейчас изучаю ассемблер. Разбираюсь на примере вашей программы для подсчета к/с. Однако, это интересно! У меня возникло заблуждение со способом адресации "2 - регистр содержит адрес операнда...". 1010/ 012002 - я-то думал, что операция выполняется с адресом операнда (в данном случае 1040), а оказывается, не с самим адресом, а с операндом, находящимся по этому адресу - 100000 (начало ПЗУ1). Проверил на УКНЦ - так и есть. Если бы было 010002, тогда бы операция выполнилась с самим адресом, хранящимся в R0, точнее, с числом, обозначающим его. Теперь всё стало на свои места. Разбираюсь дальше.

MM
23.05.2019, 21:39
микросхема неисправна?
Да, под замену.
*
Немного комментов к тесту программы подстчета к/с.
1000 : 012700 001040 - записать в R0 проца число 1040 ( т.е. адрес начала таблицы параметров )
1004 : 012701 000004 - записать в R1 число 4
1010 : 012002 - переписать из ячейки с адресом, находящимя в R0 значение в R2 проца. После команды R0 увеличится на 2 ( автоинкремент ).
1012 : 012003 - переписать из ячейки с адресом, находящимся в R0 значение в R3 проца.После команды R0 увеличится на 2 ( автоинкремент ).
1014 : 005004 - очистить R4 проца.
1016 : 062204 - команда сложения , берется значение по адресу, который находится в R2, и складывается в R4 проца, разультат - в R4. После команды R2 увеличится на 2 ( автоинкремент ).
1020 : 005504 - магическое число, имеющее отношение к R4.
1022 : 077303 - команда циклов SOB. Выполняет вычитание единицы из R3 и если он не стал равен нулю, передает управление на 3 слова назад, включая свой адрес - т.е. на 1016.
1024 : 010420 - пересылка R4 в адрес ячейки, содержащейся в R0 проца.После команды R0 увеличится на 2 ( автоинкремент ). Т.е. готовая к/с пересылается в таблицу обратно.
1026 : 077110 - команда SOB. Выполняет вычитание единицы из R1 и если он не стал равен нулю, передает управление на 10 слов назад, т.е. на 1010
1030 : 012727 000001 000000 - пересылка данных из следующей ячеки в следующую ячейку - т.е. число "000001" скопируется в адрес 1034. Используется как индикатор прохода программы в этом месте.

Arix
23.05.2019, 22:15
Спасибо за комментарии! У меня получается примерно то же самое. :) Дошёл до 1024. Пока не смог разобраться с "магическим числом" PSW. Не сразу понял, как работает SOB. Но всё же разобрался и в данной программе правильно рассчитал, куда происходит переход, у меня тоже получилось 1016.

И вот, нашёл причину неработы программы. Если запускать её с адреса 1000, даже если программы ещё нет, останов происходит в 77204, в регистрах ерунда. А если запустить её с 1002 и выше, то останов происходит правильно - на ближайшей пустой ячейке. Если программы ещё нет, а я запускаю с 1002, останов на 1004. В эмуляторе то же самое. Сдвинуть всю программу на одну ячейку? То есть, начать её с 1002? Тгда и таблицу параметров, я так понимаю, надо двигать.

MM
23.05.2019, 23:09
Сдвинуть всю программу на одну ячейку?
Да, т.к. АП ПП - типа потусторонней реальности, там может портится ячейка 1000 ( 8 ), без видимых причин :v2_dizzy_ghost:
Лучше тогда попробовать начать набор программы с 1002 ( = 012700 ) адреса, табличку оставить на 1040 адресе. Запускать с 1002 адреса.

Arix
23.05.2019, 23:51
табличку оставить на 1040 адресе.
Гаснет экран и всё. И на реале и в эмуляторе.

Я сделал табличку с адреса 1050 - сработало! Ура!
К/с в эмуляторе и на исправном реале совпали. 63160, 133314, 162125, 44331.
На проблемном реале ещё не пробовал, у него блок питания сгорел. Я перед экспериментами поменял в нём БП с 42 В на 220. Теперь родной БП на 42 В не могу найти, куда я его положил, уже всё перевернул вверх дном. :) Есть запасной на 42 В, но он глючит, трещит, вырубается. Теперь уже завтра буду пробовать.

AFZ
24.05.2019, 07:34
Если что, в Сети есть замечательная книжка - М.Сингер. Мини-эвм PDP-11: программирование на языке ассемблера и организация машины. Я, конечно, учился не по ней, ее тогда еще не было, но когда я ее купил, то первой мыслью было: "Эх, её бы, да лет на 5 раньше..."

Arix
24.05.2019, 12:11
Итак, на неисправной УКНЦ в ПЗУ 4 контрольная сумма - 44330 вместо 44331. В ПЗУ 1-3 КС совпадают. Всего-то на единичку, а сколько проблем! :) Теперь надо сужать диапазон поиска для локализации дефекта. Может, есть ещё неисправная ячейка, которуя я пропустил.

hobot
24.05.2019, 14:15
Если что, в Сети есть замечательная книжка - М.Сингер. Мини-эвм PDP-11: программирование на языке ассемблера и организация машины.
http://hobot.pdp-11.ru/BIBLIOTEKA/Singer/

Hunta
24.05.2019, 14:32
Если что, в Сети есть замечательная книжка - М.Сингер. Мини-эвм PDP-11
Особенно прикольно, когда он в начале книги рассказывает, как начать работать под DOS-11, а потом резко переходит уходит в RT. Ну хорошо хоть про макросы и условную трансляцию рассказал

Arix
25.05.2019, 23:02
Наконец-то я нашёл родной блок питания, который изначально стоял в этом компьютере. С ним ошибку ПЗУ не выдаёт! Однако, загрузка всё равно не идёт. И теперь у ПЗУ4 контрольная сумма правильная, а у ПЗУ2 стала неправильной - 65673 вместо 133314. При этом при тестировании никаких ошибок нет, а раньше было. Я ждал три прохода, всё нормально. А ведь второе ПЗУ - это как раз этажерка. Как бы, всё стало логично. Цепляю обратно прежний БП на 42 В - снова ошибка ПЗУ 4. Померил напряжения. Родной БП выдает под нагрузкой 4,7 В, а другой - 5,09 В. Я запитал её от лабораторного блока питания. Так и есть, при напряжении выше 5,05 В уже начинает через раз выдавать ошибку ПЗУ 4, выше 5,1 - всегда. Может, при некотором напряжении всё будет работать? Буду проверять завтра.

Arix
26.05.2019, 09:17
Всё оказалось не так просто. Я поймал напряжение, при котором нет ошибок ПЗУ и контрольные суммы правильные. Например, 4.75 В. На счет 5,1 В было неправильно, я мерил на выводах блока питания, оказалось, что на проводах много падает. Теперь я померил на контактах питания на плате. Но загрузка всё равно не идёт. Обращение к дисководу происходит, чтение, вроде бы, начинается, а потом всё замирает. С жесткого диска - только появляется строка про Олега, диск никак не реагирует.
Вставил другую дискету, с текстовым редактором Editor, о котором я недавно спрашивал, вылетает в СТОП. 5430/012646.

hobot
26.05.2019, 10:01
Обращение к дисководу происходит
а как ведут себя контроллеры на т.н. рабочей плате? уточните

Arix
26.05.2019, 11:21
На рабочей плате контроллеры и дисководы работают нормально. Это уже, как бы, подразумевается, что я экспериментирую с исправной периферией. И сейчас вернул всё на место, рабочая УКНЦ грузится и работает.
Вот, ещё симптомы. Проблема с блоками питания, от которых питается неисправная УКНЦа. На настоящий момент есть три БП, один на 220 В с +5, +12 и -12 В на выходе, и два на 42 В только с +5 В на выходе. На 220 - сгорел. Осталось два на 42 В. Так вот, один из них при включении УКНЦы сильно верещал, даже отрубался. Потом, видимо, с прогревом, переставал пищать и работал нормально. Сейчас он, видимо, "отформовался", работает стабильно. Но в момент включения компьютера оба "кряхтят", после появления меню пищат. Если водить пальцем по выводам микросхемы на верхней плате БП, писк либо прекращается, либо превращается в верещание, хрип, это смотря в каком месте прикоснуться. Подключал два БП на 42 В, с обоими одинаково. В рабочей УКНЦ её БП не пищит, никогда не издает никаких звуков. Но эти блоки я к ней не подключал, неохота её вскрывать. Как говорится, работает - не трогай. А теперь я поочередно нагрузил эти блоки питания на автолампочку. При 5 В она потребляет 2,2 А, примерно столько же, сколько и УКНЦ. Так вот, с лампочкой эти БП ведут себя совершенно нормально, не издают никаких звуков, на прикосновение пальцем к микросхеме никак не реагируют. Есть ещё матплата от УКНЦ с неизвестной рабочестью, она без процессоров и ПЗУ (пустые панельки). В таком виде она потребляет 1,5 А, блоки питания с ней тоже ведут себя нормально, не пищат, щекотки не боятся.

MM
26.05.2019, 11:49
Если ШИМ БП слышно - надо менять бачки.
А в ключевых БП типа БПС6-1 - всё равно будет небольшой "шелест" за счет звука дросселей и ключевого транзистора 2Т827.
*
В нормально запущенной УКНЦ есть пики тока по питанию с частотой кадров и строк видеовывода - примерно 0.3 а. размах.