26 Отредактировано Prol (28-11-2020 21:07)

Re: Попытка восстановления АГАТ-7

Еще в инверторах разное число транзисторов и сами транзисторы разные

27

Re: Попытка восстановления АГАТ-7

Три транзистора вместо двух в hot-части ?

Были отличия между типами транзисторов и на лэмзе: в ранних кт630, в поздних кт815.
http://deka.agatcomp.ru/er/agat/Images/new_power.shtml
А уж силовой чередовали кт840-кт838 похоже, по принципу "что есть на складе".

В любом случае блоки очень похожи, так что очень многое из черно-бело-синей схемы полезно.
Особенно выверт с трансформаторной обратной связью в петле регулирования напряжения.
Где такое ещё встретишь :)

28

Re: Попытка восстановления АГАТ-7

Voldemar0 пишет:

Особенно выверт с трансформаторной обратной связью в петле регулирования напряжения.
Где такое ещё встретишь :)

На безрыбье и трансформатор - оптрон :)
Кстати, еще в блоке питания "Корвета" обратная связь через трансформатор. Думаю, что на момент проектирования блока особенно и выбирать было не из чего. Вроде как самый ранний оптрон с подходящим напряжением изоляции АОТ101, но я не уверен, что он тогда был широко доступен.

29 Отредактировано Prol (30-11-2020 01:03)

Re: Попытка восстановления АГАТ-7

Voldemar0 пишет:

Три транзистора вместо двух в hot-части ?

Да, я их имел в виду.

Voldemar0 пишет:

Где такое ещё встретишь :)

Я помню мне в то время принесли с одного НИИ импортный оптрон и пару фотодиодов, Так они и провалялись, поскольку не понятно было, что это и куда можно применить, все популярные схемы были в лучшем случае с фоторезисторами и "фототранзисторами" типа П-16 со спиленными крышками.

30 Отредактировано Voldemar0 (01-12-2020 10:16)

Re: Попытка восстановления АГАТ-7

Могла быть недоступность оптронов, но ещё могла быть их низкая надёжность. Трансы хорошо научились делать, было понятно как дрессировать намотчиков, где провод с хорошим лаком есть и т.д.

А с оптронами могли быть косяки. Где-то читал, что ранние советские светодиодные знакосинтезирующие индики страдали низкой надёжностью. Никогда бы не подумал - но недавно на помойке нашел старый калькулятор, как раз с лупами и мелкими светодиодными сегментами - и вот оно - часть сегментов светиться только если куда-то прижать....

Хотя я пару лет назад собрал несколько часиков на КИПЦО - всё отлично, работают все 4x7x4 сегментов. Причем в разных режимах - температуры плавают, редкое включение, постоянное включение (много суток подряд)..........

31 Отредактировано Prol (05-12-2020 23:07)

Re: Попытка восстановления АГАТ-7

Прошил тестовую ПЗУ с помощью Arduino Mega. Поставил на панельку, лишние ноги подключил. Проверить к сожалению не на чем, придется слепо верить, что нигде не накосячил.

Spoiler
//Отладочная прошивка http://agatcomp.ru/agat/Hardware/useful/debug_repair.shtml
uint8_t b[] = {
  0xd8, 0x8d, 0x82, 0xc7, 0xa2, 0x00, 0x8a, 0x95, 0x00, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 
  0x20, 0xc0, 0xa2, 0x00, 0x8a, 0x9d, 0x01, 0x01, 0xe8, 0xd0, 0xf9, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 
  0xc0, 0xa2, 0x00, 0x8a, 0x9d, 0x02, 0x02, 0xe8, 0xd0, 0xf9, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 
  0xa2, 0x00, 0x8a, 0x9d, 0x03, 0x03, 0xe8, 0xd0, 0xf9, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 
  0x00, 0x8a, 0x9d, 0x04, 0x04, 0xe8, 0xd0, 0xf9, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 
  0x8a, 0x9d, 0x05, 0x05, 0xe8, 0xd0, 0xf9, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8a, 
  0x9d, 0x06, 0x06, 0xe8, 0xd0, 0xf9, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8a, 0x9d, 
  0x07, 0x07, 0xe8, 0xd0, 0xf9, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x00, 0xe8, 
  0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x01, 0xe8, 0xd0, 0xfb, 0x8d, 
  0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x02, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 
  0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x04, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 
  0x00, 0xa5, 0x08, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x10, 
  0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x20, 0xe8, 0xd0, 0xfb, 
  0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x40, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 
  0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xa5, 0x80, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 
  0xa2, 0x00, 0xad, 0x00, 0x01, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 
  0xad, 0x00, 0x02, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xad, 0x00, 
  0x04, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xad, 0x00, 0x08, 0xe8, 
  0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xad, 0x00, 0x10, 0xe8, 0xd0, 0xfa, 
  0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xad, 0x00, 0x20, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 
  0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0xad, 0x00, 0x40, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 
  0x20, 0xc0, 0xa2, 0x00, 0xad, 0x00, 0x80, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 
  0xa2, 0x00, 0x85, 0x00, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x85, 
  0x01, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x85, 0x02, 0xe8, 0xd0, 
  0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x85, 0x04, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 
  0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x85, 0x08, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 
  0xc0, 0xa2, 0x00, 0x85, 0x10, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 
  0x85, 0x20, 0xe8, 0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x85, 0x40, 0xe8, 
  0xd0, 0xfb, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x85, 0x80, 0xe8, 0xd0, 0xfb, 0x8d, 
  0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8d, 0x00, 0x01, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 
  0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8d, 0x00, 0x02, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 
  0xc0, 0xa2, 0x00, 0x8d, 0x00, 0x04, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 
  0x00, 0x8d, 0x00, 0x08, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8d, 
  0x00, 0x10, 0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8d, 0x00, 0x20, 
  0xe8, 0xd0, 0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8d, 0x00, 0x40, 0xe8, 0xd0, 
  0xfa, 0x8d, 0x30, 0xc0, 0x8d, 0x20, 0xc0, 0xa2, 0x00, 0x8d, 0x00, 0x80, 0xe8, 0xd0, 0xfa, 0x8d, 
  0x30, 0xc0, 0x8d, 0x20, 0xc0, 0x4c, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8
};

#define TRUE 1
#define FALSE 0
//распиновка и управление для m2764a  питание 12В подается вручную на 1 вывод микросхемы, перед программированием и снимается при проверке и чтении
/* Data pins */
#define dataB0 41 //11
#define dataB1 40 //12
#define dataB2 39 //13
#define dataB3 22 //15
#define dataB4 23 //16
#define dataB5 24 //17
#define dataB6 25 //18
#define dataB7 26 //19

/* Address pins */
#define A0 42 //10
#define A1 43 //9
#define A2 44 //8
#define A3 45 //7
#define A4 46 //6
#define A5 47 //5
#define A6 48 //4
#define A7 49 //3
#define A8 32 //25
#define A9 31 //24
#define A10 28 //21
#define A11 30 //23
#define A12 50 //2


/* Chip control */
#define chipEnable 27 //20
#define outputEnable 29 //22
#define PGM 34 //27
//#define programVoltageEnable 37 //1

typedef enum mode {
  WRITE,
  READ,
  STANDBY,
  VERIFY
} Modes;


void write_mode (void);
void read_mode (void);
void standby_mode (void);

void set_address (uint16_t address);
uint8_t get_data (void);
void set_data (uint8_t data);

uint8_t read_byte (uint16_t address);
void write_byte (uint16_t address, uint8_t data);

//void program_voltage_set (bool state);

Modes mode = STANDBY;
uint8_t log_enable = TRUE;
uint16_t start_address = 0x0000;
uint16_t end_address = 0x0800;//0x2000

void message(const char* mes){
  if (log_enable)
    Serial.println(mes);
}

void setup() {
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  pinMode(A3, OUTPUT);
  pinMode(A4, OUTPUT);
  pinMode(A5, OUTPUT);
  pinMode(A6, OUTPUT);
  pinMode(A7, OUTPUT);
  pinMode(A8, OUTPUT);
  pinMode(A9, OUTPUT);
  pinMode(A10, OUTPUT);
  pinMode(A11, OUTPUT);
  pinMode(A12, OUTPUT);
  
  // Chip control
  pinMode(chipEnable, OUTPUT); 
  pinMode(outputEnable, OUTPUT); 
  pinMode(PGM, OUTPUT); 
  pinMode(programVoltageEnable, OUTPUT); 
  digitalWrite(chipEnable, LOW);
  digitalWrite(outputEnable, HIGH);
  digitalWrite(PGM, LOW);
  digitalWrite(programVoltageEnable, LOW);
   
  Serial.begin(115200);
  standby_mode();

}

void loop() {
  switch (mode) {
    case READ:
      read_mode();      
      for (uint16_t adr = start_address; adr < end_address; adr++) {
        uint8_t data = read_byte(adr);
        Serial.write(&data, sizeof(data));
      }
      standby_mode();
      break;
    case WRITE:
      write_mode();
      for (uint16_t adr = start_address; adr < end_address; adr ++) {
        write_byte(adr, b[adr]);
      }  
      message("Write success.");
      standby_mode();
      break;
     case VERIFY:
      read_mode();      
      for (uint16_t adr = start_address; adr < end_address; adr++) {
        uint8_t data = read_byte(adr);
        if (data!=b[adr]) Serial.write(&data, sizeof(data));
      }
      message("Verify complete.");
      standby_mode();
      break; 
     case STANDBY:
      message("r - считать, w - записать, v - проверить, l - log (вкл/выкл)");
      while (Serial.available()) Serial.read();
      do {} while (Serial.available() == 0);
      char incomingByte = Serial.read();
      while (Serial.available()) Serial.read();
      switch (incomingByte) {
        case 'r': mode = READ; break;
        case 'v': mode = VERIFY; break;
        case 'w': mode = WRITE; break;
        case 'l': log_enable = !log_enable; break;
      }
  }
}

void read_mode (void) {
  message("Чтение");
  pinMode(dataB0, INPUT_PULLUP);
  pinMode(dataB1, INPUT_PULLUP);
  pinMode(dataB2, INPUT_PULLUP);
  pinMode(dataB3, INPUT_PULLUP);
  pinMode(dataB4, INPUT_PULLUP);
  pinMode(dataB5, INPUT_PULLUP);
  pinMode(dataB6, INPUT_PULLUP);
  pinMode(dataB7, INPUT_PULLUP);
  digitalWrite(PGM, HIGH);
  digitalWrite(chipEnable, LOW);
  digitalWrite(outputEnable, LOW);
}

void write_mode (void) {
  message("Запись");
  pinMode(dataB0, OUTPUT);
  pinMode(dataB1, OUTPUT);
  pinMode(dataB2, OUTPUT);
  pinMode(dataB3, OUTPUT);
  pinMode(dataB4, OUTPUT);
  pinMode(dataB5, OUTPUT);
  pinMode(dataB6, OUTPUT);
  pinMode(dataB7, OUTPUT);
  //program_voltage_set(true);
  digitalWrite(chipEnable, LOW);
}

void standby_mode (void) {
  digitalWrite(chipEnable, HIGH);
  mode = STANDBY;
}

void set_address (uint16_t address) {
  digitalWrite(A0, (address & 0x1)!=0); 
  digitalWrite(A1, (address & 0x2)!=0);
  digitalWrite(A2, (address & 0x4)!=0);
  digitalWrite(A3, (address & 0x8)!=0);
  digitalWrite(A4, (address & 0x10)!=0);
  digitalWrite(A5, (address & 0x20)!=0);
  digitalWrite(A6, (address & 0x40)!=0);
  digitalWrite(A7, (address & 0x80)!=0);
  digitalWrite(A8, (address & 0x100)!=0);
  digitalWrite(A9, (address & 0x200)!=0);
  digitalWrite(A10, (address & 0x400)!=0);
  digitalWrite(A11, (address & 0x800)!=0);
  digitalWrite(A12, (address & 0x1000)!=0);
}

uint8_t get_data (void) {
  uint8_t data = 0;
  data |= digitalRead(dataB0) << 0;
  data |= digitalRead(dataB1) << 1;
  data |= digitalRead(dataB2) << 2;
  data |= digitalRead(dataB3) << 3;
  data |= digitalRead(dataB4) << 4;
  data |= digitalRead(dataB5) << 5;
  data |= digitalRead(dataB6) << 6;
  data |= digitalRead(dataB7) << 7;
  return data;
}

void set_data (uint8_t data) {
  digitalWrite(dataB0, (data & (1 << 0)));
  digitalWrite(dataB1, (data & (1 << 1)));
  digitalWrite(dataB2, (data & (1 << 2)));
  digitalWrite(dataB3, (data & (1 << 3)));
  digitalWrite(dataB4, (data & (1 << 4)));
  digitalWrite(dataB5, (data & (1 << 5)));
  digitalWrite(dataB6, (data & (1 << 6)));
  digitalWrite(dataB7, (data & (1 << 7)));
}

uint8_t read_byte (uint16_t address) {
  set_address(address);
  return get_data();
}

void write_byte (uint16_t address, uint8_t data) {
  set_address(address);
  set_data(data);
  Serial.write(data);
  digitalWrite(outputEnable, HIGH);  
  digitalWrite(PGM, LOW);
  delay(30);
  digitalWrite(PGM, HIGH);
   
}

После запуска тестовой прошивки в нужный текстовый режим не переключается. Выпаял регистр управления, установил на выводах 0x82. Вручную режимы переключаются. Имею следующий результат: https://cloud.mail.ru/public/54V1/5MvGyYRu2
Остались вопросы: Какую страницу использует тестовая прошивка? Как запустить ее на эмуляторе? Что можно сказать по видео?

32

Re: Попытка восстановления АГАТ-7

Prol пишет:

Имею следующий результат

Судя по видео, что-то не получилось при прошивке ПЗУ. Видно, что меняется только область стека, то есть процессор, похоже, выполняет какой-то мусор вместо инструкций. Он периодически ловит $00 (команда BRK) и пишет три байта в стек. Когда указатель стека доходит до $100, все снова начинает писаться в $1FF.

Тестовая прошивка не использует вызовов процедур и не хранит никаких рабочих данных в памяти, поэтому она будет работать даже на очень убитой плате. Для нее необходимо только, чтобы процессор мог читать ПЗУ.


Prol пишет:

Какую страницу использует тестовая прошивка?

Нулевую страницу, режим Т64.


Prol пишет:

Как запустить ее на эмуляторе?

В виндовом эмуляторе надо нажать Change, в списке Devices дважды кликнуть напротив (ROM) и указать файл прошивки.

33 Отредактировано Prol (10-12-2020 15:09)

Re: Попытка восстановления АГАТ-7

Дело было не в бобине.. Запитал ПЗУ от 0В, вот и получил нули. Перекинул на 5В и тестовая прошивка ожила https://cloud.mail.ru/public/2skR/3enQxXKW4 Оказывается это были не полоски, а отсутствие кадровой синхронизации и будь я чуть внимательнее, мог бы и раньше это заметить. Смотрю КСИ, а его нет. По цепочке дошел до СчY(Д52), она-то(или он) и оказались битыми. Заменил на К155ИЕ7 и картинка стала напоминать эмулятор, с точностью до знакогенератора.

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=806&amp;download=1

Со второй процессорной платой выходили задвоенные символы, решилось перевтыканием АП16 на шине данных(надо будет их все заменить на всякий случай, никак не доберусь до магазина).
Поставил ПЗУ с сисмоном и наконец-то увидел надпись ** АГАТ **(вернее догадался, что это она)

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=807&amp;download=1

и приглашение сисмона, которое заполнялось знаками Ъ. https://cloud.mail.ru/public/2wcs/2f7pxnRva
Со второй генплатой выдало https://cloud.mail.ru/public/p4my/353CrWvak (сброс останавливает вывод)
Остались вопросы: Без клавиатуры так и должно заполняться "Ъ" или это неисправность? Съехавшее вверх изображение - проблема монитора? Настроек в самом мониторе(телевизоре) не нашел. Что можно диагностировать по 2 видео?

Post's attachments

Attachment icon DSC_1108.JPG 350.56 kb, 691 downloads since 2020-12-06 

Attachment icon DSC_1114.JPG 186.34 kb, 671 downloads since 2020-12-06 

34 Отредактировано AlexBel (07-12-2020 07:01)

Re: Попытка восстановления АГАТ-7

Без клавиатуры никаких символов не должно вводиться в командную строку. Код символа "Ъ" - 0xFF, т.е. из клавиатурного порта постоянно читается этот код. Старший бит установлен и "Монитор" считает, что кнопка нажата. Нужно искать неисправность в схеме клавиатурного интерфейса. Если родной клавиатуры нет, лучше сразу сделать адаптер с PS/2.
Я не помню, есть ли подтяжка к +5В на шине данных, но, если есть, возможно, клавиатурный порт не выбирается вообще, а с шины читается 0xFF, так как все линии подтянуты к "1". Т.е. возможно, проблема не с самим клавиатурным портом, а со схемой его выбора.
Насчёт сдвига изображения вверх - есть такое. У меня, на ЖК-телевизоре, изображение, хоть и приклеено к самому верху, но полностью видно, вот недавно снятое видео: http://forum.agatcomp.ru//viewtopic.php?pid=4257#p4257

Prol пишет:

Настроек в самом мониторе(телевизоре) не нашел.

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

35

Re: Попытка восстановления АГАТ-7

AlexBel пишет:

Так в телевизоре или мониторе?

На этикетке написано телевизор, но я бы его назвал дисплейным МФУ:) Буду искать сервисные коды.

36

Re: Попытка восстановления АГАТ-7

Prol пишет:
AlexBel пишет:

Так в телевизоре или мониторе?

На этикетке написано телевизор, но я бы его назвал дисплейным МФУ:) Буду искать сервисные коды.

С этим нужно быть очень осторожным, можно вообще уложить аппарат.

37

Re: Попытка восстановления АГАТ-7

Не жалко. Как монитор он работает отвратительно, как телевизор не используется, да еще и видео-вход кривой, как оказалось. В интернете также жалуются на невозможность центровки. Хотя надо будет еще RGB проверить.

38

Re: Попытка восстановления АГАТ-7

По поводу клавиатуры - да, скорее всего порт просто не выбирается, надо смотреть D1, D2, D7. Еще может быть средний уровень на ноге 10 D85, тогда будет случайная запись в D89, D90.

По поводу второго видео - мне кажется, на плате есть битые микросхемы ОЗУ. Коды символов в строке должны увеличиваться строго на 1 (кроме перехода 255 -> 1). А тут скачки между кириллицей, латиницей и цифрами. Скорее всего, какие-то разряды сбойные.

39 Отредактировано Prol (10-12-2020 12:30)

Re: Попытка восстановления АГАТ-7

avivanov76 пишет:

По поводу клавиатуры - да, скорее всего порт просто не выбирается, надо смотреть D1, D2, D7. Еще может быть средний уровень на ноге 10 D85, тогда будет случайная запись в D89, D90.

На 10 ноге Д85 был постоянный 0, но что странно, при перерезании ноги к триггеру с обеих сторон появлялась 1. Начал с триггера, поскольку он у меня был, но не угадал, неисправным оказался регистр. Пришлось выпаять со 2 платы, панельки у меня закончились и поэтому временно она переходит в разряд доноров, как и вторая процессорная, поскольку опять начала глючить, а я переключаюсь на клавиатуру, монитор.

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=809&amp;download=1

Post's attachments

Attachment icon DSC_1122.JPG 36.47 kb, 611 downloads since 2020-12-10 

40

Re: Попытка восстановления АГАТ-7

Пришли запчасти на блок питания, все впаял, включил через лампу - светится. Но при этом слегка гудит, то есть какая-то генерация есть. На выходе есть 1.5 и 3.5 В, транзисторы холодные. Повысил мощность лампы, сгорел предохранитель. Случайно задел накопительный конденсатор, а он теплый. Второй не нагрелся. Заменил оба на 150 мкФ 400 В, лампочка погасла, блок заработал. Греющийся конденсатор имел 100 мкф, 0.8 Om ESR, 6% vloss, холодный 58 мкФ, 1.8 Ом ESR, и 1.3 % vloss.
R15 поставил 47 Ом.

41

Re: Попытка восстановления АГАТ-7

Да, если на электролитический конденсатор лет десять-двадцать не подавалось напряжение, то оксидный слой начинает делаться тоньше. В результате во-первых, растет емкость, а во-вторых, сопротивление изоляции между обкладками падает. У хорошо полежавшего конденсатора ток утечки может быть в амперах.

На самом деле, если провести формовку, то есть пропускать через конденсатор определенный ток (через резистор конечно), то через некоторое время оксидный слой восстановится. Собственно, формовка - это часть процесса изготовления нового конденсатора.

Но это так, если вдруг очень захочется сохранить оригинальный конденсатор :)

42 Отредактировано Prol (15-12-2020 02:36)

Re: Попытка восстановления АГАТ-7

30 лет не подавалось. Но у второго конденсатора слой остался толстым:) Хотя они немного разные, у одного пимпочка залита черным, у второго(пострадавшего от времени) белым. Попробую восстановить интереса ради.

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=784&amp;download=1

43 Отредактировано Prol (23-12-2020 23:50)

Re: Попытка восстановления АГАТ-7

Победил вторую процессорную плату тотальной прозвонкой. Было обнаружено замыкание 3 и 5 выводов Д14. Под панелькой оказался микроскопический шарик припоя. При этом тест из ПЗУ подозрений не вызывал. Приобрел телевизор Электроника Ц-401, продавец говорил, что он рабочий, но оказалось не совсем. Экран темный, накал есть. Попробую его починить и переделать в монитор, параллельно планирую собрать эмулятор 140 диска. Из arduino pro mini сделал минимальный транслятор для PS/2 клавиатуры, пока хватает, потом соберу нормальный или допишу этот, если будет оригинальная клавиатура для образца.

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=815&amp;download=1

Spoiler
#include <PS2Keyboard.h>

#define PS_DATA 6      //DATA
#define PS_CLK  2      //CLK  INT0
#define AGAT_GKL  3    //Гкл 6   INT1
#define AGAT_DATA 4    //Дкл 4
#define AGAT_RESET 5   //Сброс 5
#define AGAT_RL 7      //Р/Л 7
#define AGAT_ANS 8     //Ответ (резерв)

volatile uint8_t bitp = 0;
volatile uint8_t asym;
PS2Keyboard keyboard;
const PROGMEM PS2Keymap_t PS2Keymap_AGAT = {
  // without shift
  // 0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
  {
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3B,0x00, //0
  0x00,0x00,0x00,0x00,0x00,0x51,0x31,0x00,0x00,0x00,0x5A,0x53,0x41,0x57,0x32,0x00, //1
  0x00,0x43,0x58,0x44,0x45,0x34,0x33,0x00,0x00,0x20,0x56,0x46,0x54,0x52,0x35,0x00, //2
  0x00,0x4E,0x42,0x48,0x47,0x59,0x36,0x00,0x00,0x00,0x4D,0x4A,0x55,0x37,0x38,0x00, //3
  0x00,0x2C,0x4B,0x49,0x4F,0x30,0x39,0x00,0x00,0x2E,0x2F,0x4C,0x3B,0x50,0x2D,0x00, //4
  0x00,0x00,0x27,0x00,0x5B,0x3D,0x00,0x00,0x00,0x00,0x0D,0x5D,0x00,0x5C,0x00,0x00, //5
  0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x1D,0x00,0x13,0x10,0x00,0x00,0x00, //6
  0x01,0x02,0x1E,0x14,0x1C,0x11,0x1B,0x00,0x00,0x00,0x1F,0x00,0x00,0x12,0x00,0x00, //7
  0x00,0x00,0x00,0x00 },
  // with shift
  {
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //1
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //2
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //3
  0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x3A,0x00,0x00,0x00, //4
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //5
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //6
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //7
  0x00,0x00,0x00,0x00 }, 0x00
};

void setup() {
  pinMode(AGAT_RL, OUTPUT);
  pinMode(AGAT_DATA, OUTPUT);
  pinMode(AGAT_RESET, OUTPUT);
  pinMode(AGAT_GKL, INPUT_PULLUP);
  pinMode(AGAT_ANS, INPUT_PULLUP);
  digitalWrite(AGAT_RL,HIGH); //LAT
  digitalWrite(AGAT_DATA, HIGH);
  digitalWrite(AGAT_RESET, LOW); delay(500); digitalWrite(AGAT_RESET, HIGH); //Сброс
  attachInterrupt(1, agat_beat, RISING);  
  keyboard.begin(PS_DATA, PS_CLK, PS2Keymap_AGAT);  
}

void loop() {
  if( keyboard.available() ) {
    char c=keyboard.read();
    c=keydecode(c);
    if (c and !bitp) {
      asym=c;
      bitp=0b10000000;//?while(bitp);  
    }
  }
}

uint8_t keydecode(int pscode) {
  switch (pscode) {
    case PS2_ESC: digitalWrite(AGAT_RESET, LOW); delay(500); digitalWrite(AGAT_RESET, HIGH); return(0);
    case PS2_LEFTARROW: return(0x08);
    case PS2_RIGHTARROW: return(0x15);
    case PS2_UPARROW: return(0x19);
    case PS2_DOWNARROW: return(0x1A);  
    case 0x14: digitalWrite(AGAT_RL, LOW); return(0);  //Ctrl - рус
    case 0x11: digitalWrite(AGAT_RL, HIGH); return(0); //Alt - lat 
  }
  return(pscode);
}

void agat_beat(){
  if (bitp) {
    digitalWrite(AGAT_DATA, asym & bitp);
    bitp >>= 1;
  } else digitalWrite(AGAT_DATA, HIGH);
}
Post's attachments

Attachment icon DSC_1118.JPG 504.68 kb, 569 downloads since 2020-12-21 

44 Отредактировано Prol (24-12-2020 00:59)

Re: Попытка восстановления АГАТ-7

Заработала 2 генплата. Спасибо avivanov76 за тесты. Исходными текстами не поделитесь? Хотелось бы более осознано подходить к тестированию(хотя не факт, что это когда-нибудь еще понадобится). Битый мультиплексор Д13 давал следующую картину:
https://cloud.mail.ru/public/yEAy/9dhSxGZ6D
Записал в ППЗУ два семерочных знакогенератора, переключение перемычкой. Выводы РТ18 не совпадают с выводами РФ2 и тем более не совпадают с выводами 2764 поэтому от пауков все равно избавиться не удалось, но зато теперь можно переключать кодовые страницы. Завести на программный переключатель и развести бардак с кодировками:)

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=816&amp;download=1

Post's attachments

Attachment icon DSC_1132.JPG 267.37 kb, 522 downloads since 2020-12-23 

45

Re: Попытка восстановления АГАТ-7

Prol пишет:

Исходными текстами не поделитесь?

Не вопрос. Только тест памяти - это скорее рабочий прототип, он не дописан. Никаких особых премудростей там нет. Есть 37 разных 2-байтовых шаблонов плюс один шаблон, который генерируется "по месту". Память заполняется шаблоном, а потом ее содержимое с шаблоном сравнивается.
В тестах "бегущий 0/1" проверяется только тот разряд, в который производится запись. В остальных тестах проверяются все разряды.

Post's attachments

Attachment icon RamTest.asm 12.67 kb, 168 downloads since 2020-12-24 

46 Отредактировано Prol (16-01-2021 21:03)

Re: Попытка восстановления АГАТ-7

Прошло ровно 2 месяца с начала ремонта и можно сказать, что программа минимум выполнена.

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=842&amp;download=1

Спасибо всем кто помог в этом!

P. S. Но тему закрывать пока рано, появилась 3 дохлая генплата, не работает один комплект памяти, есть задача по подключению 840 дисковода, мониторная, принтерная, клавиатурная..

Post's attachments

Attachment icon DSC_1174.JPG 115.86 kb, 471 downloads since 2021-01-16 

47 Отредактировано Prol (17-01-2021 23:01)

Re: Попытка восстановления АГАТ-7

Итак, она звалась генплатой №3, с кодовым именем "Татьяна"..

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=843&amp;download=1

При ремонте ДК были заменены Д50, Д59 и глючный кварц.
Появился устойчивый растр с мусором. Потом следом за ними отправились в помойку мертвые Д12-14, а заодно и Д15 за компанию. Графический тест проходит нормально, но в конце пишет что-то не то, что задумал автор теста, но поскольку верхнюю строчку видно не полностью, сказать что там не представляется возможным, идем в текстовый тест. В тесте со шрифтами имеем следующую картину. Да, там так и написано "ЖОПЫ". Эх, Татьяна..

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=844&amp;download=1

В ответ вспоминается раскладка клавиатуры Правца. Запускаем sysmon, появляются 3 звездочки, есть реакция на клавиатуру, но адекватной ее назвать сложно.

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=845&amp;download=1

Есть мысли?

З. Ы. Задолбался перепаивать перемычки, привел в порядок процессорную плату.

Spoiler

http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=846&amp;download=1

Post's attachments

Attachment icon DSC_1181.JPG 728.39 kb, 424 downloads since 2021-01-17 

Attachment icon DSC_1182.JPG 324.76 kb, 432 downloads since 2021-01-17 

Attachment icon DSC_1183.JPG 795.46 kb, 408 downloads since 2021-01-17 

Attachment icon DSC_1184.JPG 424.63 kb, 432 downloads since 2021-01-17 

48 Отредактировано avivanov76 (18-01-2021 02:37)

Re: Попытка восстановления АГАТ-7

Ух ты! Синие разъемы!
И процессорная плата зачетная.

Мысли есть. Во-первых, стоило и Д11 сменить, все эти "ПЯПЯТУТУ" и "ОПОПСТСТ" говорят о "слипшихся" адресах и дохлом мультиплексоре.

Во-вторых, графический тест делался так, чтобы и при неисправном ДК можно было оценить, что там с памятью. Поэтому он выдает гудки разной высоты. Если гудок 1000 Гц (такой выдает Монитор при включении питания), значит, проверка очередного шага теста прошла нормально. Если гудок 500 Гц (низкого тона), то проверка не прошла. Если хватит терпения эти гудки пересчитать, то можно определить номер дохлого бита.

49

Re: Попытка восстановления АГАТ-7

Это я ошибся, не Д15, а Д11 в помойку ушла, все адресные. Звуки утром проверю, спят все.

50

Re: Попытка восстановления АГАТ-7

Всего 38 звуков, 16 и 36 низкие.