Теперь посмотрел. Непонятно, почему бит потери данных появляется после выполнения сброса контроллера - это подозрительно.
Вид для печати
На самом деле может быть, что я где-то промахнулся когда на пульте тумблерами щёлкал... Завтра убежусь более точно.
Ещё есть акая информация (она 100%-я уже): при выполнении микропрограммного теста Файлового Регистра (который с адреса 1704), тест на табло останавливается на адресе 1355, т.е. ошибка у нас по адресу 1354 - проверка регистра FR4... Конкретно на какой из регистров со стороны ОШ мапится этот FR4 я пока что не понял. Есть предположение, что "потекла" РТшка - дешифратор файлового регистра... Табличка состояний есть в документации, можно будет восстановить если все плохо...
Итак, мучал сегодня контроллер с самого утра. Есть странные результаты. Начну с попытки прочитать сектор.
1) Выяснилось, что выдать команду 000005 с пульта не получается - регистр адреса ОШ (пробовал как 0, так и 1000 давать) сбрамывается в 0, регистр адреса диска сбрасывается в ноль, в статусах вижу статус накопителя и бегающий адрес сектора. Периодически, как и писал Patron, вижу проскакивающую единичку что прошло совпадение адреса сектора с тем, который нам нужен. При этом регистр ошибок пуст. В регистре CSR вижу только бит 7, что "яживой потрогай меня". Т.е. код команды записанной сбросился, хотя, как я понял, должен был сброситься только бит 0. В памяти ЭВМ - нули. При подаче команды на панели контроллера не вижу никаких вспыхов - программа как выполнялась, так и выполняется. Мб происходит сброс контроллера.
Итого - не работает.
2) Как известно, у СМки по адресу 173046 слоя 0 лежит процедура загрузки с диска DK. Набрал на пульте этот адрес и начал "дрючить" его, в надежде что в какой-то момент контроллер может что-то загрузить. И таки да. Один из десяти раз я услышал хрум в диске, на контроллере всполыхнули лампочки. СМка ушла в останов. Проверил - с 0-го адреса появился бут-блок. Передаю на него управление - ОСТАНОВ. Подёргал его несколько раз - на контроллере дисковода загорелась лампа СТОП (что уже совсем нехорошо), на терминале - BOOT I/O ERROR.
Пару слов про лампу СТОП на контроллере - судя по адресу, на котором произошёл останов, микропрограмма "пошагала" далеко и попала в тест, где благополучно и скукожилась (в тестах используются спец. команды процессора, которые могут привести процессор в СТОП, в нормальном режиме работы эти команды не используются).
Итого - если долго дрючить, сектор таки с горем пополам можно прочитать.
3) Решил разобраться подробнее, что происходит при останове контроллера при микропрограммном тесте Файлового Регистра.
Пару слов про сам "Файловый Регистр": представляет из себя четыре штуки КР1802ИР1. В них "сидят" все регистры контроллера, доступные снаружи. Читаются/пишутся как с ОШ, так и с внутренней шины.
Как ведёт себя тест - если процессор СМ2420 остановлен (горит ОСТАНОВ) и соответственно нет никакой активности на ОШ, тест проходит без каких либо проблем. В случае, если процессор что-то делает (скажем, сидит в эмуляторе пульта), то тест падает на инструкции проверки файлового регистра FR4. При прохождении теста по шагам, выяснил, что периодически портится значение бита 3 в этом регистре (https://photos.app.goo.gl/4H6tLtLUTeT33eVc2), а именно вместо 1 там оказывается при чтении 0. Судя по всему, порча происходит в момент записи в регистр. Т.к. пробовал ставить точку останова за одну инструкцию до того как, в это время процессор СМ2420 работал. На точке останова тормозил СМ2420, продолжал тест контроллера - и происходило падение.
Было (и есть) предположение, что проблема кроется в дешифраторе Файлового Регистра (который разруливает доступ с ОШ к ФР), но также почему-то есть подозрение на Datapath, т.к. сбоит только один бит, и сбоит только одним способом - записывается 0 вместо 1...
Если глянуть схему, у ИРок используется только 8 ячеек (при их ёмкости в 16х4), можно попробовать перекинуть старший разряд и проверить, проблема в памяти, или в управлении ей...
Также непонятно, почему при выполнении команд контроллер умудрялся выполнять левую микропрограмму и улетать "в небеса"... Иногда всё-таки умудрялся прочитывать вполне себе валидные данные... Но это было редко и практически неправда...
Пока что не знаю, что делать дальше... Буду с горя курить схему)))
PS. Виновник вчерашнего локального задымления: https://photos.app.goo.gl/10Q0fFTiPvfMP2o43 Эта паскуда включена до сетевого выключателя, поэтому после выключения кнопкой продолжала гореть и дыметь...
PPS. Т.к. СМка сейчас вполне сносно работает с HX, могу позапускать на ней всякие разные тесты процессора :) Один-два раза в неделю буду там появляться и прогонять скопом пачки тестов :)
А какой номер платы?
Есть такой.
Скрытый текст
Есть описание прошивки- CМ2420/006.01
form некоторое время назад обеспечил меня альфасервером, через который можно СМку в хекнет пробросить)
По поводу глючащего контроллера HDD выяснилось, что запись в регистр CSR проходит через раз. При этом, если процессор СМки читает-пишет консоль, то возникают ложные обращения к контроллеру... Завтра попытаюсь осциллографом потыкаться по корзинке, мб удастся что-то там увидеть...
А, ну если так только.. :) Но можно просто десяток людишек усадить за десяток терминалов на одной машине, и пусть работают.. :)
Удаление в знак протеста против действий MM
RSX-11M-Plus поставил - и вперёд - работай-не хочу :)
Вообще-то, 1802ИР1 дохнет достаточно редко. Напомню, в КГД их пара, в КЦГД - 4 шт. Так вот, НИ РАЗУ не видел КГД/КЦГД, со сдохшими этими м/с.
Или TSX, наверняка найдется больше посетителей, умеющих сделать что-то осмысленное. Эхотажных машинок-то было на пару порядков больше, чем СМ-ок, а они все были с RT-11...
ИР живая, там только половинка используется, я перекинул старший адрес на +5 вместо общего, та же картина. Видно, что процессор вмешивается в регистры контроллера тогда, когда не надо. Буду разбираться. Жаль, что плата-удлинитель в корзину не подошла... Придется только на разъёмах корзины вешать пробы, вглубь залезть не получится.
Да разумеется, т.к. они были с 1802ВВ1 :
https://pic.maxiol.com/thumbs/15261095641.jpg
Мне как то больше приходилось работать на СМ-1600, СМ-1420, недолго на Электронике-100/25, эпизодически (когда работал в конторе, осуществлявшей сервисное обслуживание) трогал Электронику-79 и везде стояла или ставилась RSX-11M-Plus :) В первую очередь из за того, что софт или нужные драйвера был под неё. Во вторую - дистр TSX у меня был старый, новый появился уже после развала Союза..
Блин! Мой склероз меня таки подвёл! Прошу прощения... Но все равно, сколько я переменял всякой радости в КГД/КГЦГД, 1802-е не менял ни разу.
Естественно, это же всё "большие" машинки. А эхотаг у нас "ДВК, УКНЦ", т.е. мелочь. И мелочи этой к концу 80-х было несоизмеримо больше, чем "больших" машинок. И все они с завода шли с каким-то клоном RT-11. А то, что отдельные индивидуумы таки умудрились взгромоздить RSX на ДВК последних выпусков, то это не в счет. Сколько вас таких? Двое, да? :)
Нечего там было мудрить - драйвер нарисовать, да модуль под SAV написать - остальное не тронутое работало.
И кстати. Пробовал я и TSX ставить на Квант. По воспоминаниям - в плане ощущений работала хуже, чем RSX - как только дисковые операции достаточно длительные (типа - копирования файлов с винта на флоп или наоборот) - ощутимые тормоза. Про RSX такого не помню. Хотя, конечно, воспоминания - вещь не надёжная.
Надо будет как-нить собраться и восстановить работоспособность контроллера и винтов - но что-то мне подсказывает - пойду я по пути замены разъёмов :) Вот тогда свежие ощущения появятся :)
Для меня самое главное не нравящееся в RT - файловая система без каталогов (не надо мне рассказывать про LD - он относительно проблему решает).
На томе 32 метра 8 шт. дискет по 800 кбайт - не так уж и плохо...
А если брать экстремальный непроверенный профессионалами LD с парой десятков каталогов - то и совсем неплохо.
ИМХО - вложенные Полноценные каталоги - это задача не для 56 Кбайт всей-при-всей ОЗУ, это скорее для 248 Кбайт - там можно и десяточек вложенных каталогов рассмотреть. А там и фрагментация станет актуальной...
Что то как то ошибочка - под 40 дискет получается. Проблема только в том, что если хранить их в образах - во первых, объём каждой - достаточно мал, во вторых - на хвостах свободного места сколько то теряется
Вот и каталоги вылезли ;)
Для 56 кб полноценные - да, но даже ОДИН уровень вложенности уже много вопросов бы решил. Даже с вариантом - ФС с непрерывными файлами.
И ещё одна полупретензия (полу - потому что не уверен наверняка - надо пошерстить текст USR) - вроде как в USR нет функционала - а верни-ка мне список файлов по маске '*M%Y*.SY*'. Насколько я помню, что то там такое есть в SYSLIB - но это значит, что соответствующий код будет в программе и она становится (до какой то степени) зависящей от версии системы
- - - Добавлено - - -
Я ещё хорошо помню, как мучился - создавая архив всякого разного (в том числе из RSX) на дискетах. Когда дискеты (хорошие) были всё таки редкостью и не сильно дешёвой. Так и пришлось киевских купить - и две копии держать. А у этих киевских был нюанс - сам конверт был слегка гнутым :)
Уж не знаю, что там помешало при производстве (некоторые были почти прямые, некоторые настолько кривые, что с трудом доставались из дисковода) - но информация на них ДОЖИЛА до момента, когда я её снял в образы :) Некоторые правда приходилось читать (на PC) не по одному разу. А ещё прикол - сильно помогала попытка прочитать на родном дисководе (на Кванте) - а уже потом на PC :)
Разобрался с неисправностью в контроллере, из-за которой один бит корраптится в регистрах. Виновата всё-таки КР1802ИР1. Одна из микросхем чистит 3-й бит в первом слове, если на втором порту у нее появляется адрес 'b001. При этом это происходит вне зависимости, есть ли обращение на чтение к ней или нет.
Как выяснил: оказалось, что СМ2420 даёт активность на ОШ только при условии, что биты адреса 15-12 стоят в единице (ну либо ещё и биты 16-17, если включен физический адрес на пульте, если не включен, то процессор их сам выставляет). Дальше выяснилось, что содержимое портится если выставлены биты 3-1 в 'b001, при другой последовательности этих битов нет повреждения, также остальные биты не влияют. Путем всяких манипуляций выяснил, что проблема появляется в 11 бите данных если читать по ОШ, выяснил какая микросхема это, и отрезал от нее 0-й бит адреса со стороны ОШ и убедился что когда он в 1 - есть повреждение ячейки. Так что думаю, что после замены ИРки все будет хорошо.
Всё-таки дешифратор оказался не виноват, с него все сигналы выходят как положено.
Итак, касательно проблемы с контроллером жестких дисков всё как-то немного диковато.
Заменил ИРку, прогоняю тест - дохлая (читаются нули), меняю на другую - вроде взлетели, но теперь упал "адресный тест файла данных", ещё не разбирался, что за он и какая логика у него.
Думаю, ну да ладно - попробую загрузиться хоть как. Опять возникает ощущение, что контроллер не всегда ловит запись 0-го бита в регистр CSR (у него это должно вызывать прерывание). Периодически то выпадаем в СТОП на контроллере в нулевом адресе, то просто ноль реакции. Но иногда контроллер пытался загрузиться, головка на жестком диске где-то дорожек 5 подряд отщёлкивала :) Но в память СМки начиная с 0-го адреса копировалось 177777.
Также к концу дня увидел, что при чтении любого регистра контроллер отдаёт либо значение по 0-му регистру (который DSR), либо просто отдаёт какой-то мусор... И оно то работает, то нет...
Итого, в данный момент видится несколько проблем:
1) Ошибка "адресного теста файла данных" (при этот "информационный тест файла данных" проходит успешно).
2) Не проходит с первого раза запись в CSR[0]
3) Процессор контроллера периодически выпадает в СТОП по 0-му адресу, либо в СТОП по адресу, на который микропрограмма сама по себе никак не должна была перейти.
4) Не всегда считываются корректные данные из регистров.
По 1-й ошибке буду разбираться с логикой теста, по 2-й надо просто лезть с осциллографом и разбираться, по 4-й - аналогично, смотреть почему данные не всегда доходят.
По 3-й ошибке - у котороллера есть диагностический регистр, через который можно попытаться вычитать весь микрокод и сравнить его с тем, что находится в книке - мб поплыли РТ5 и есть смысл их перешить... Нужна будет помощь знающих ассемблер PDP-11 набросать простенькую программу, которая вычитает память микрокода через этот диаг регистр, и сохранит его в файлик...
Но до вычитки надо разобраться с доступом к регистрам.
И ещё последний момент: у меня есть заглушка на ОБЩУЮ ШИНУ с кучей резисторов. Только вчера обратил внимание, что резисторы все эти довольно ощутимо греются... Нормально ли это?
Так работает или работал? Проверять лучше без подключения КНМД на общую шину.
Контроллера. Если лента и дисковод работают нормально то и шина процессора в порядке.
Процессор передаёт адрес через К559ИП1 а контроллер принимает через К559ИП2. Если контроллер использует ПДП, то ставятся на приём и передачу К559ИП3.
Где то так.
Может до этого дело не дойдёт...
Только микропрограммные тесты. Другие тесты я на контроллере и не запускал даже... Не особо даже знаю, где их искать. Есть ТЕДОС, но оно на жестком диске))) А на гибком диске нет модулей для тестирования жесткого... Может быть можно какой образ xxdp для загрузки с hx сделать с тестами, я ещё не вникал... :(
только что прочекали, СМка при включенном контроллере НМД успешно работает с лентой (MT0 даёт стандартное сообщение на английском об отсутствии загрузчика). При этом попросил человека почитать содержимое регистров КНМД, периодически читаются адекватные значения, но иногда по первым трем адресам (177400-177406) читаем содержимое 177400... Короче странно очень, буду разбираться дальше. Ну и "адресный тест файла данных" падает, буду тоже смотреть что там случилось и что это за "файл данных"...
Тесты проходят? Другие тесты тоже автономные?
Для этого отдельная тема есть.
Ну так входные драйверы не мешают шине, а что они сами передают на плату с шины, можно глянуть.
Смотри, это в автономе падает или при работе с процессором. Есть ли тест адреса в автономе?
Я запусках все микропрограммные автономные тесты, не проходит только один, с ним я разбираюсь (раньше он проходил, не проходил другой).
Походу где-то начали подгорать, или ещё что - надо осциллограф снова брать и ехать тыкаться. Благо плата с приёмопередатчиками ОШ - верхняя в корзине, к ней есть досуп.
Поведение в данный момент одинаковое что с процессором, что без него. Т.е. уже он наконец-то не влияет, тест регистрового файла проходит успешно после замены 1802ИР1.
Тест, который падает, по идее тестирует внутренние буферы (их там 2 штуки по 1024х4, по документации обзывается как "файл данных"), и есть два теста его. Один - адресный, другой - тест данных. Предполагаю, что падение этого теста сейчас не имеет ничего общего с проблемами на ОШ и проблемами с доступом к регистрам.... Также, проблема с периодическим вылетом в СТОП мне также кажется немного из другой оперы (хотя тоже есть догадки, кто может подсирать на шину адреса микрокоманды и сваливать контроллер в непотребные адреса)...
Тэкс... Покрутился сегодня с осциллографом, что увидел:
1) Все 5 штук купленных ИР1 - с браком :( Выпуск 99-го года. Три штуки вообще не прописываются, две пишутся-читаются по первому порту со стороны контроллера адекватно, а по другому (который смотрит на ОШ) при записи в один регистр инфа пишется в 4 смежных (как-будто младшие два бита адреса "отгнили" (и ещё одна вообще по ОШ не читается, читаются единички). Посему, заказал 2 штучки ещё с ЧипДипа (мб у них будет постарше возраст чипов, судя по всему поздние - плохие).
Есть вопрос к форумчанам, мб у кого есть ИР1 ранних выпусков на продажу?
2) Продул платы, видимо где-то был мусор металлический и подкорачивал что, после продувки доступ к регистрам стал нормальный.
3) Запись единицы в CSR[0] нормально отлавливается. Микропрограмма останавливается по адресу начала обработки прерывания.
Попробую наваять мб на бейсике хотя бы вычитку микрокода. Надо будет ещё повозиться с распознаванием табличек из книги.
Может быть кто знает импортный (не обязательно пин2пин) аналог КР1802ИР1? Am29705 аналогом ни разу не является...
Похоже 1802 - такой же самопал, как и 1801. По крайней мере, 1802ВВ1 и 1802ВВ2 сделаны специально для реализации МПИ - либо контроллера DMA, либо узла связи ЦП с МПИ. У DEC таких чипов точно не было, другим изготовителям такое просто не нужно.