1

Тема: Агат-9 - проблемы с прохождением теста Лисина

Продолжаю свою тему с ремонтом Агата, начатую на zx-pk.ru (https://zx-pk.ru/threads/32322-agat-9-p … taury.html). Запустил контроллер дисковода, ИКП и Бейсик грузятся, также поменял одну МС ОЗУ, однако в тесте Лисина видятся следующие проблемы:
1) Ошибки управления 66. Как я понимаю, это узел Language Card - был заменен D54, проверены D3 и D8, при обращении теста по адресам C0Bx сигналы есть. Да и никак не пойму логику сбоя, отличия то в одном, то в нескольких битах на ШД.
Ошибки такого вида:

Spoiler

https://i.ibb.co/B6wph2p/IMG-7392.jpg
https://i.ibb.co/Fww1s7v/IMG-7394.jpg

2) Также текст иногда может зависнуть со странным результатом или упасть в BRK, а иногда вообще обнаружить расхождения во всех МС памяти. Данное поведение нестабильно, иногда зависает сразу, иногда через пару минут, но тест до конца никогда не доходит:

Spoiler

https://i.ibb.co/sK3bgzR/IMG-7393.jpg
https://i.ibb.co/Dkjcnzt/IMG-7395.jpg

Подскажите, в каком направлении стоит ковырять? Возможно, неправильно выбирается ОЗУ, или просто оно сбоит и портит программу, или дело в регистрах на его выходе, раз портится ШД при проверке LC? Или как вариант, проблемы эти вообще не связаны.

2 Отредактировано Voldemar0 (18-11-2020 15:59)

Re: Агат-9 - проблемы с прохождением теста Лисина

Я бы начал копать в сторону регистра управления LC.
Лисин говорит, что там ошибки управления, значит надо открыть мануал на лисина и посмотреть всё, что там этот тест говориться (тем более там всего пара абзацев будет).

И потом, когда тест нашел эти ошибки, залезть в сисмон и попробовать их повторить: записывать в эти регистры то же , что лисин и читать. Прямо не выключая комп, сбросить лисина и дальше самому рулить (вроде он по УПР-E завершается или УПР-СБР... Не помню, но тоже в мануале описано).
Только сперва скопировать сисмон в LC, иначе есть риск переключить режим его работы в RAM и комп просто повиснет, если в RAM будет мусор.

А дальше смотреть схему компа и усиленно соображать. Там каждый бит при чтении формируется разными микрухами. Соответственно, изучать сигналы на них:
1) нет ли подвисшего посередине уровня - т.е. не 0 не 1, а что-то между.
2) насколько стабильно читается регистр, если в него ничего не писать.

Потому что от этого регистра зависит почти всё, но - с другой стороны - он строится на SRAM, так что или работает или нет. В отличие от DRAM, которая капризная и может слегка работать, чуть-чуть работать, почти всегда работать или даже просто работать - её глюки сложнее диагностировать, но на регистры управления контроллером ОЗУ это не влияет.

3

Re: Агат-9 - проблемы с прохождением теста Лисина

Исходя из ТО на Агат и тест, контроль режимов LC в тесте выполняется через чтение по адресам C08(0, 1, 2, 3), завязанного на D3, D8, D54, при этом состояние триггера D8 просто выкидывается на ШД, где и проверяется тестом на соответствие записанной. Фактическим переключением уже рулит РТ18. Поэтому я и прошел все микрухи и они, похоже, работают. Попробую изучить ШД, может D47, D48 на ШД гадят, нарушая чтение данных с ОЗУ и области портов. И если будут еще какие идеи или советы по поводу моей теории, рад буду выслушать.

4

Re: Агат-9 - проблемы с прохождением теста Лисина

Смотрите на сообщения теста:
- пишется $A5, читается $24
- пишется $A6, читается $26
- пишется $95, читается $14
- пишется $96, читается $16

Значимые здесь биты D3, D1, D0. Видно, что D0 все время равен 0 (читаются только четные значения). Я так понял D54, D8 рабочие, значит смотрим инвертор D16.6.

5

Re: Агат-9 - проблемы с прохождением теста Лисина

D16.6 я тоже проверял, инвертирует на отлично. Попробую ТМ9 протестировать по-внимательнее, больше нет идей, может не защелкивает, движуха на выходе правда похожа на правдоподобную.

6

Re: Агат-9 - проблемы с прохождением теста Лисина

В мониторе можно ввести C082:0. Машина при этом повиснет, но 2-я нога D8 должна перейти в высокий уровень.
Есть еще идея посмотреть вывод 8 D53. После включения там должен быть 0. Если нет, то Language Card будет работать в режиме Apple и не факт, что Лисин это переваривает.

7 Отредактировано slammy (19-11-2020 16:22)

Re: Агат-9 - проблемы с прохождением теста Лисина

Спасибо всем за советы! Ремонт потихоньку сдвигается с места.
При записи в С082 2-я нога действительно переходит в 1. Правда не 2, а 10, оказывается у меня другая распиновка ТМ9 на плате. Вывод 8 D53 висит в нуле, все в порядке. Решил во второй раз поменять КП11, поставил 1533 серию, и поведение изменилось, теперь ошибки вида "пишется 85, читается 05", таким образом с D0 теперь в порядке. Однако не могу понять, зачем тест пишет и другие биты, когда значимые 0, 1, 3 и при обращении к КП11 регистр выставляет на ШД только их?
----
Хмм, а на этом разряде как раз D101 висит, проверю заодно ее и дешифратор.

8 Отредактировано Voldemar0 (19-11-2020 20:03)

Re: Агат-9 - проблемы с прохождением теста Лисина

Обмен на шине - 8 бит, меньше нельзя записать. Да, собственно, и не важно что туда писать.

Я так думаю, вы не совсем правильно понимаете его действия:

  66 C08B=55(DF)               

Это означает, что он сделал запись по адресу C08B числа 8B, но прочитал затем из этого регистра 55.
Число в скобках можно вообще не смотреть, он его с потолка берёт (Или это результат какого-то преобразования -- не копался, но может быть это описано в инструкции. Скорее всего - это стандартная процедура его сообщения об ошибке, которая приучена всегда выводить что нибудь в скобках).

Причем после этой записи 8B должно читаться из всех регистров C080-C08F.
Что пишется в эти регистры - не важно, важен только адрес в который происходит запись.
Сама процедура записи/чтения этих регистров выглядит так:

1E2D -   18 .. ..   "."     CLC   
1E2E -   65 D4 ..   "еT"    ADC   D4
1E30 -   A8 .. ..   "("     TAY           - поэтому в ячейку всегда записывается её же младший разряд адреса
1E31 -   85 EB ..   ".К"    STA   EB         - сохраняем записанное значение в EB
1E33 -   99 00 C0   "..@"   STA   C000, Y  - это запись ячейки C081, C082, C083, C08B
1E36 -   B9 00 C0   "9.@"   LDA   C000, Y   - это чтение
1E39 -   48 .. ..   "h"     PHA   
1E3A -   A5 F1 ..   "%Я"    LDA   F1
1E3C -   D0 08 ..   "P."    BNE   1E46
1E3E -   68 .. ..   "х"     PLA   
1E3F -   48 .. ..   "h"     PHA   
1E40 -   29 F4 ..   ".Т"    AND   #F4   вытаскиваем все незначащие биты и объединяем с образцом
1E42 -   05 EB ..   ".К"    ORA   EB
1E44 -   85 EB ..   ".К"    STA   EB
1E46 -   68 .. ..   "х"     PLA   
1E47 -   85 EA ..   ".Й"    STA   EA   сохраняем, вероятно, для возможного сообщения об ошибке
1E49 -   C5 EB ..   "EК"    CMP   EB   сравниваем с образцом
1E4B -   F0 23 ..   "Пё"    BEQ   1E70   ок
1E4D -   8A .. ..   "."     TXA   сообщаем об ошибке
1E4E -   48 .. ..   "h"     PHA   
1E4F -   A5 D4 ..   "%T"    LDA   D4
1E51 -   09 01 ..   ".."    ORA   #01
1E53 -   AA .. ..   "*"     TAX   
1E54 -   9D 00 C0   "..@"   STA   C000, X          тут , вероятно, восстановление состояния LC после теста
1E57 -   A9 66 ..   ")ф"    LDA   #66
1E59 -   20 86 17   "..."   JSR   1786
1E5C -   68 .. ..   "х"     PLA   
1E5D -   AA .. ..   "*"     TAX   
1E5E -   99 00 C0   "..@"   STA   C000, Y
1E61 -   60 .. ..   "ю"     RTS   

Т.е. при записи в 81, 82, 83 и 8B вы должны прочитать те же значения.
Из сисмона это не повторить, скорее всего он попытается вас "спасти" от опасной операции,
но можно написать прогу:

*300:8D 81 C0 AD 80 C0 0
*300G

0308-   A=81 .....

Теперь 301:82
300G
0308-   A=82 .....

И также 83 и 8B
Смотреть нужно только на те биты, которые выдаёт мультиплексор D54: D0, D1, D3.
Остальные могут быть мусором, хотя, скорее всего, там будут биты от последнего байта, проходящего на шине перед запросом (из-за паразитной ёмкости шины).

9

Re: Агат-9 - проблемы с прохождением теста Лисина

Voldemar0 пишет:

Я так думаю, вы не совсем правильно понимаете его действия:

Ну, в инструкции написано так:

При несоответствии выдается сообщение об ошибке типа 66. Формат сообщения следующий:
тип ошибки;
адрес обращения для переключения режима работы псевдоПЗУ;
прочитанная информация;
эталонная информация.

В документацию веры конечно мало, поэтому я посмотрел, что там выводится в процедуре по адресу $1786.
Там есть отдельная проверка на код ошибки $66:

CODE_1831
        LDA    #$06
        STA    ZP_24
        LDA    ZP_DD
        JSR    SUB_FDCB
        JSR    SUB_1ED8
        LDA    ZP_DD ; здесь сохраненная копия регистра А
        CMP    #$66 ; проверка
        BNE    CODE_1850
        LDY    #$C0
        LDX    ZP_D1
        JSR    SUB_F920
        JSR    SUB_19B6
        JMP    CODE_1875

А процедура SUB_19B6 собственно и выводит "=<прочитанный байт>(<записанный байт>)" из ячеек $EA, $EB:

SUB_19B6
        LDY    ZP_EA
        LDX    ZP_EB

SUB_19BA
        LDA    #$BD ; '='

SUB_19BC
        JSR    SUB_FDF0
        TYA
        JSR    SUB_FDCB
        LDA    #$A8 ; '('
        JSR    SUB_FDF0
        TXA
        JSR    SUB_FDCB
        LDA    #$A9 ; ')'
        JMP    SUB_FDF0

То есть, у Лисина все честно. И тут действительно проблема в том, что читается 0 в 7-м бите. Хотя перед этим по шине проходит байт $C0. Так что лишний раз проверить D101 и D19.4 стоит.

10 Отредактировано slammy (20-11-2020 01:23)

Re: Агат-9 - проблемы с прохождением теста Лисина

Еще немного поковырял Агат. При запуске программы

*300:8D 81 C0 AD 80 C0 0
*300G

выдается A=01, при друих значениях, записываемых в C081, компьютер зависает, видимо отключается ПЗУ с сисмоном. Кстати, в эмуляторе читается F1 и поведение с зависанием схожее.
Подключил осциллограф к плате. Желтым цветом обозначен сигнал на в.15 КП11, синим - D7. Судя по всему, на ШД уровни сильно просажены, но 0 в момент чтения из регистра висит стабильно.
https://i.ibb.co/C94VTQL/DS1-Z-Quick-Print17.png
Вот так выглядит входной сигнал на КП11 в случае, когда триггер его устанавливает в 1 и происходит передача на ШД.
https://i.ibb.co/YRq7wwW/DS1-Z-Quick-Print18.png
Что может происходить с уровнями на шине? ~3 вольта это совсем мало.

11 Отредактировано avivanov76 (20-11-2020 01:48)

Re: Агат-9 - проблемы с прохождением теста Лисина

Да, на шине данных что-то странное. И уровни хилые и выбросы подозрительные.
Тут либо регистры D47, D48 какие-то дохлые и не могут обеспечить нормальный высокий уровень, либо кто-то притягивает уровень к нулю.

Кстати, есть смысл посмотреть, не открыты ли D22, D23. У них нагрузочная способность маленькая, поэтому D47, D48 их могут "пересилить",  а вот D54 уже нет.

Если D4 попытается открыться сразу в обе стороны, то тоже может получиться странное.

Надо посмотреть, такое происходит на шине данных только с D7, или с другими разрядами то же самое. Ну и стоит проверить микросхемы на нагрев.

12 Отредактировано Voldemar0 (20-11-2020 10:23)

Re: Агат-9 - проблемы с прохождением теста Лисина

Лисина есть несколько версий, кто знает что там отличается, мож мы о разных версиях говорим...
Ладно, не важно, надо смотреть что с шиной.

На эмуль можно не обращать внимания: виснуть при переключении LC он должен - это логично, а по несуществующим битам можно возвращать что угодно. В реале там играют паразитные ёмкости на шине, так что в сисмоне, обычно, возвращается Cx. Кстати, можно попробовать:
посмотри, что у тебя читается в диапазоне:
*C200.C6FF
Там должны идти возвращаться значения C2, C3, C4...C6 (если плат расширения нет).
Если какой-то буфер не отключается от шины - возможно, вылезет что-то другое.

Можно попробовать проц тормознуть сигналом !RDY (на землю коротнуть) и R/!W вниз прижать, чтобы ОЗУ адрес FFFF не пыталось выдать на ШД. Вся система залипнет и тогда посмотреть, какой уровень будет на ША и ШД. Должен выйти куда-то на середину. И потом попробовать через миллиамперметр потыкать его к плюсу и земле. Вдруг что -то интересное вылезет ?

13

Re: Агат-9 - проблемы с прохождением теста Лисина

Спасибо всем за консультации, чую вместе мы быстро расколим этот Агат.
С утра выдалась свободная минутка, посмотрел подробнее на ШД, Часть разрядов выглядит нормально, часть - с просадками, если бы это были группы D0-D3, D4-D7, то можно было бы подозревать D22, D23, тем более на в.15 сигналы есть, значит в Z-состояние они переходят. На в.1 D47, D48 тоже есть движение. D4 была поменяна.
Попробую поменять D22, D23, если не поможет, буду пробовать вариант с остановкой проца. Если бы какая-то микросхема сажала шину на 0, то все уровни были бы примерно одинаковы, но на осцилограммах видны пики нормального уровня.

14

Re: Агат-9 - проблемы с прохождением теста Лисина

А есть на шине подтягивающие резисторы? Если есть, то есть смысл их проверить прибором. Возможно, часть линий данных не подтягивается.

15 Отредактировано slammy (21-11-2020 01:28)

Re: Агат-9 - проблемы с прохождением теста Лисина

Перепаял обе ИР22, результат пока нулевой. Тормознул проц, как предлагали, по итогу на всех ногах средний уровень, ток прозвонки на землю около 0,1 мА, при разрешении чтения - около 15 мА, Видимо дело не в мс на шине, а в схеме их управления. Попробую сравнить фазы импульсов чтения из ОЗУ и управления направлением передачи ВА86.
---
Всё, починил! Была неисправна D1.4, что активировало м/с D22, D23 на выдачу данных на шину по каждому запросу чтения. При торможении процессора и включении чтения этого не было видно, т.к. читалось FF, при включении записи - тоже, т.к. выводы переводились в Z-состояние, а динамику я всегда смотрел при переборе страниц и наличие импульсов не показалось мне странным. Хотя конечно, мог и раньше заметить, не пришлось бы 3 лишние мс перепаивать. Спасибо всем за участие, надеюсь, ремонт на этом завершен.
---
А нет не завершен, информация в ОЗУ продолжает портиться, но уже меньше, и на в.14 РУ5 присутствует шум амплитудой 1 вольт. Попробую напаять побольше блокировочников.

16

Re: Агат-9 - проблемы с прохождением теста Лисина

slammy пишет:

информация в ОЗУ продолжает портиться, но уже меньше, и на в.14 РУ5 присутствует шум амплитудой 1 вольт. Попробую напаять побольше блокировочников.

Меньше - это насколько часто? Хоть один проход теста до конца доходит?
Вообще, стоит начать с проверки RAS, CAS (лучше одновременно их смотреть, чтобы относительное положение было видно) и WE.
Если сбои частые, то одними блокировочниками это вряд ли вылечится.

17 Отредактировано slammy (21-11-2020 15:30)

Re: Агат-9 - проблемы с прохождением теста Лисина

Да, зависает спустя проходов 15. Сейчас подкинул одну из двух замененных мс ОЗУ, на которые ругался тест до этого, уже 20 проход и пока работает. Осталось разобраться, почему при заходе в Apple Basic зависает с мусором, похожим на крест на экране. Да и вообще, странный у меня Агат, на плате мегабайтного КНГМД все ПЗУшки читались как FF, на МП  мелкая логика вылетает, на плате клавиатуры вообще ТМ2 была дохлая. И много ИД7 мертвых. Ходя досталась она мне в состоянии "из сырого гаража", оба дисковода поросли коррозией и кто-то ковырялся в БП, так что скорее всего на плату больше 5 вольт прилетело.
Если вручную переключить ДК в режим эпл адресом C050 (в эмуляторе появляется классическая шахматка):
https://i.ibb.co/thgMpTh/IMG-7398.jpg
При запуске эпл бейсика:
https://i.ibb.co/qyFvckg/IMG-7399.jpg

18

Re: Агат-9 - проблемы с прохождением теста Лисина

А что вот этот тест показывает: http://forum.agatcomp.ru//viewtopic.php?pid=571#p571
И вот этот: http://forum.agatcomp.ru//viewtopic.php?pid=2404#p2404

19

Re: Агат-9 - проблемы с прохождением теста Лисина

https://i.ibb.co/rGtvDvK/IMG-7401.jpg
https://i.ibb.co/qyFvckg/IMG-7399.jpg
Походу дела не работает только текстовый режим.
И еще на всех режимах иногда выскакивают помехи на строках, видео прилагаю:
https://youtu.be/Pk_BOXq7KiY

20

Re: Агат-9 - проблемы с прохождением теста Лисина

Вторая картинка вроде та же самая, что в посте #17.
Выглядит так, что вместо текстового режима включается HGR. Надо в мониторе обратиться по адресу C051 и посмотреть, что на 4 ноге D55 появляется высокий уровень и он доходит до 4 ноги D60. Если доходит, то возможно слетела прошивка D85.

21 Отредактировано slammy (21-11-2020 20:19)

Re: Агат-9 - проблемы с прохождением теста Лисина

avivanov76 пишет:

Вторая картинка вроде та же самая, что в посте #17.
Выглядит так, что вместо текстового режима включается HGR. Надо в мониторе обратиться по адресу C051 и посмотреть, что на 4 ноге D55 появляется высокий уровень и он доходит до 4 ноги D60. Если доходит, то возможно слетела прошивка D85.

Попадание в точку! D55 мертва. После замены текстовый режим стал включаться.
Тесты ОЗУ проходят почти всегда идеально, но иногда оба банка валятся в ошибку, видимо что-то с таймингами, но поймать ошибку непросто. Попробую поиграть к блокировочниками и напряжением питания. Как раз штатная плата бп заменена на Meanwell, от греха подальше.

Кстати, насколько сложно найти дисковод ЕС 5088, заместо сгнившего? Видел много ЕС 5323, по механике очень похож, но он вроде двухголовочный. Интересно, реально с моего пересадить плату, вроде по разъемам управления приводом диска выглядят очень похоже?

И еще раз, спасибо всем за помощь, чую давно бы всю плату перелопатил без ваших советов.

22 Отредактировано Voldemar0 (22-11-2020 20:23)

Re: Агат-9 - проблемы с прохождением теста Лисина

У 5088 и совместимых с ним есть важное отличие от 5323 и ему подобных: немного разная полоса пропускания сигналов снизу. Данные на обеих флопах пишутся с минимальным периодом 4 мкс, но максимальный период у 5088 12 мкс, а у 5323 - 8 мкс. Была где-то на форуме тема о том, можно ли прочитать диск, записанный на 5088, используя 5323 - выяснилось, что иногда да, иногда - нет - зависит от конкретной модели и, возможно, экземпляра флопа.

Могут и другие проблемы вылезти: управление движением бошек разное, особенности предкомпенсации записи тоже отличаются.

Да и, собсно, смысла большого нет: большая часть софта Агата или не привязана к формату или делалась под 5323 (более обще называемого "840ка" или "узкий" или "верхний"), так что просто контроллер 840ки используйте вместе с PC-совместимыми флопами и будет всё ок.

5088 - это наследник sa-400, который Стив Возняк для Disk][ адаптировал, всеми силами снижая себестоимость и сложность конструкции. Модель дисковода в натуральную величину.
В дальнейшем выпускались его клоны более-менее адекватной конструкции: там и электроника покомпактнее и другие косяки поправлены, но конкретно 5088 - это болгарский вариант шугарта,
увлекательный как мопед Карпаты.

А 840ка - обычный MFM-дисковод, есть много совместимых моделей, как СССРских, так и импортных, с датчиком положения головки, с двумя сторонами, с нормальным стабилизатором скорости флопа, с прямым приводом без пассиков........

---

> Попробую поиграть к блокировочниками и напряжением питания.

И ещё температурой. Можно на микрухи памяти капать ацетон, например, для охлаждения.
Вообще, когда лисин пробегает много проходов, а потом вдруг скандалит - это самое мрачное в ремонте агата. Обращайте внимание на адреса, по которым будут сбои. На младший байт адреса и значение записываемого/читаемого байта. Мало ли, вдруг там будут постоянно 00 или FF.
Если стабильно глюки в одной и той же микре - это было бы самое простое.
А вот если начинают сыпаться ошибки на границе страниц - мрак. Обрати внимание: сзади на плате есть два силовых провода прям от разъёма питания к какой-то ВА86, кажется. Там вроде даже не то дроссель, не то блокировочник... По всякому бывает, но общая идея в том, что разрабам пришлось тащить эти провода отдельно, и резать дороги , которые изначально были на плате. Это заводской патч, но просто интересно в каком он у тебя состоянии и как конкретно устроен.

23

Re: Агат-9 - проблемы с прохождением теста Лисина

PS
> Кстати, насколько сложно найти дисковод ЕС 5088, заместо сгнившего?

А почему уверенность, что он сгнивший ?
Какие проверки проводились ?

24 Отредактировано slammy (23-11-2020 23:20)

Re: Агат-9 - проблемы с прохождением теста Лисина

Voldemar0 пишет:

> Кстати, насколько сложно найти дисковод ЕС 5088, заместо сгнившего?

А почему уверенность, что он сгнивший ?
Какие проверки проводились ?

Весь алюминий в характерной коррозии, винты все в ржавчине, плата сама вся в окислах, но двигатели проворачиваются. Верхнему 5,25 еще больше досталось, там вся механика заклинила, к счастью такие дисководы не редкость и я взял запасной. Мне 5088 нужен для того чтобы аутентично дырку в корпусе заткнуть по большому счету, так что и в таком состоянии подойдет, если нет возможности починить малыми силами.

Voldemar0 пишет:

А вот если начинают сыпаться ошибки на границе страниц - мрак. Обрати внимание: сзади на плате есть два силовых провода прям от разъёма питания к какой-то ВА86, кажется. Там вроде даже не то дроссель, не то блокировочник... По всякому бывает, но общая идея в том, что разрабам пришлось тащить эти провода отдельно, и резать дороги , которые изначально были на плате. Это заводской патч, но просто интересно в каком он у тебя состоянии и как конкретно устроен.

У меня вообще провода к ВА86 никакие не подходят, так было с завода. Напаял вчера на КП12 блокировочники, поведение не изменилось. При этом у меня две панельки под ОЗУ и перетасовывая в них мс можно менять время, через которое информация в ОЗУ распадается, видимо Агат работает на грани фола, чуть тайминги уходят и всё. Попробую сегодня посмотреть что с питанием на ВА86 просиходит и на RAS/CAS РУ5х.

---
Желтый - RAS
Синий - CAS
https://i.ibb.co/HdXJtfZ/DS1-Z-Quick-Print32.png
Желтый - WE
Синий - CAS
https://i.ibb.co/whcQFKg/DS1-Z-Quick-Print38.png
---
Накинул конденсатор на ВА86, пока результат положительный, ну или хотя бы динамика. А как организована доработка питания "по заводу"? Перерезаны дорожки и пущены провода напрямую к разъему питания?