PDA

Просмотр полной версии : УКНЦ отсутствие микросхемы



Страницы : 1 [2]

ZPilot
27.02.2020, 15:17
Пока в ПП всё нормально не запустилось, ЦП запускать бесполезно. Весь ввод-вывод идёт через ПП.
Похоже так и есть: https://cloud.mail.ru/public/2YxB/y2RhggpwN
ЦП запускается без проблем, вначале экран очищается, но потом становится полосатым, ни какого другого изображения кроме полос нет.

ZPilot
27.02.2020, 21:13
Выпаял я D24 (031) поведение УКНЦ не поменялось.. так что ПЛМка дохлая. Кстати, попробовал как ведет себя УКНЦ без запуска ЦП и с запуском, с запуском она все-таки очищает экран, но потом он опять становится в полоску (см видео).
Попробовал посадить ру5 вторым этажом поверх запаянных, если одеть все правильно, то ни каких изменений не происходит, так что похоже и память жива (та которая запаяна), та память что у меня в панельках стоит и работает с ПП проверена на другом компе.
В общем, мысли опять закончились..

ZPilot
28.02.2020, 23:21
Стал разбираться с режимом ДМА на УКНЦ, ставлю низкий DMR, жду в ответ DMG, получаю и отпускаю DMR, а SACK прижимаю к 0, УКНЦ шину мне отдал.
Дальше пытаюсь сделать следующее: ставлю на шине адрес, прижимаю к 0 SYNC, жду чуть-чуть, прижимаю к 0 RE и одновременно освобождаю шину, жду в ответ RPLY... но его нет, ЧЯДНТ?
Да, адрес выставил 208 ПЗУ 160000.

Alex_K
28.02.2020, 23:44
Стал разбираться с режимом ДМА на УКНЦ, ставлю низкий 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. Если по эту сторону буфера всё читается, то может быть проблема с буфером или его схемой управления.

ZPilot
29.02.2020, 12:22
Сначала лучше SACK сделать активным, а потом DMR отпустить. После отпускания DMR, процессор должен отпустить DMG. Шиной можно пользоваться.
Попробую сделать так, а то в моем варианте ПП не отпустил DMG, он так низким.



снимаем адрес с шины (выставляем все единицы, инверсный ноль)
Это я считаю ОЗУ с адреса 0000?

Alex_K
29.02.2020, 12:36
снимаем адрес с шины (выставляем все единицы, инверсный ноль)

Это я считаю ОЗУ с адреса 0000?
Нет, это снимается адрес с шины, подготовка к чтению. Т.к. шина инверсная, то электрически надо установить все единицы перед чтением.

ZPilot
29.02.2020, 16:46
Alex_K, xolod - https://ibb.co/RpZhcRH
:)

Alex_K
29.02.2020, 16:55
Удалось прочесть ПЗУ по адресу 160000?

ZPilot
29.02.2020, 17:03
Удалось прочесть ПЗУ по адресу 160000?
Ага :)

Alex_K
29.02.2020, 17:07
Ну можно сделать что-то по аналогии с пультовым монитором на УКНЦ, читать и записывать ячейки памяти.
А в -031 регистр 177716 прочесть не пробовали?

ZPilot
29.02.2020, 17:14
А в -031 регистр 177716 прочесть не пробовали?
Нет пока, я же ее выпаял (это не проблема, верну обратно), просто мне только что удалось прочесть из ПЗУ. Вот и поделился радостью.
Кстати, а вы давали список регистров, я могу попытаться прочесть из них, но я не знаю, что должно от туда прочитаться.

Alex_K
29.02.2020, 17:33
Кстати, а вы давали список регистров, я могу попытаться прочесть из них, но я не знаю, что должно от туда прочитаться.
Это регистры каналов связи ПП и ЦП, а также параллельный порт. Т.к. ещё ничего не инициализировано, то прочитаться может что угодно. Но в регистре состояния приёмников должны стоять биты готовности.

ZPilot
29.02.2020, 17:41
Но в регистре состояния приёмников должны стоять биты готовности.
Попробовал прочитать вот этот: 177060 (FE30) вообще ответа не получил, зависло все на ожидании ответа по RPLY
Попробовал еще вот эти 177060, 177103 - тоже не ответили

Alex_K
29.02.2020, 18:10
Попробовал прочитать вот этот: 177060 (FE30) вообще ответа не получил, зависло все на ожидании ответа по RPLY
У 1801ВП1-120 есть одна особенность - дешифрация старшей части адреса делается в контроллере ОЗУ и адресного пространства (D10), а младшей части адреса уже в самой 1801ВП1-120 (D18). При подаче адреса 177060 на шину на выводе 51 CS D10 должен появиться низкий уровень, который поступает на вход 26 CSP D18.

А так можно попробовать подать на шину адреса 177777, это должны быть нули на выводах V и W буфера, эти нули должны транслироваться на выводы AD буфера.

ZPilot
29.02.2020, 18:32
выводе 51 CS D10 должен появиться низкий уровень, который поступает на вход 26 CSP D18
Низкого нет не там, ни там..



177777, это должны быть нули на выводах V и W буфера, эти нули должны транслироваться на выводы AD буфера.
Это на КР1801ВП1-055?

Alex_K
29.02.2020, 18:38
Это на КР1801ВП1-055?
Да

ZPilot
29.02.2020, 19:40
Отловил гору глюков, теперь ПЗУ 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 на шину на выводе 51 CS D10 должен появиться низкий уровень, который поступает на вход 26 CSP D18.
Проверил еще раз, да все это происходит, но адрес 177060 все равно не отвечает.

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

Воткнул свой тестер в рабочую УКНЦ, тоже не ответила на 177060.
Прочитал кусок памяти с 0 адреса, на рабочей и не рабочей память заполнена по разному кроме 1го слова.

xolod
29.02.2020, 20:25
Я вот что-то подумал а BS7 нормально формируется при захвате шины?..

ZPilot
29.02.2020, 20:32
BS7 нормально формируется при захвате шины
Что есть BS7?

Alex_K
29.02.2020, 20:34
Я вот что-то подумал а BS7 нормально формируется при захвате шины?..
Данный сигнал для устройств на магистрали ПП на плате не используется.

Hunta
29.02.2020, 20:38
Я вот что-то подумал а BS7 нормально формируется при захвате шины?..
Да. Просто обычно он в нуле (то есть обращение не к странице в/в). Но если вдруг мастер будет писать в страницу в/в - он ОБЯЗАН выставить единицу.
И вообще - BS7 - это ЕДИНСТВЕННЫЙ ЗАКОННЫЙ способ понять - идёт обращение к странице в/в или нет.
Который будет работать на всех трёх вариантах шины при выключенном или включенном ДП (если обращение идёт от проца)

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


Данный сигнал для устройств на магистрали ПП на плате не используется.
Там нестандартное деление адресного пространства, но по правильному - мастер устройство ДОЛЖНО формировать BS7

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

Поправка - обычно он в нуле, если работает ПДП. Если работает проц, то естественно он не обязательно будет в нуле

ZPilot
29.02.2020, 20:38
Данный сигнал для устройств на магистрали ПП на плате не используется.
Это вот этот сигнал - K1BS?
По идее я же на шине ПП и сижу..

xolod
29.02.2020, 20:44
K1BS. Да это он.

ZPilot
29.02.2020, 20:52
странице в/в
И регистры 177060, 177062, 177064, 177066, 177070, 177072, 177074, 177076, 177100, 177101, 177102, 177103 - это одного поля ягоды? Те без правильно сформированного сигнала K1BS я получить данные от них не смогу? или В/в имеется в виду 55 порт?

Alex_K
29.02.2020, 20:57
ZPilot, а между выдачей адреса на шину и подачей сигнала SYNC есть пауза? Также после подачи SYNC тоже надо небольшую паузу до снятия адреса.

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


Те без правильно сформированного сигнала K1BS я получить данные от них не смогу?
ZPilot, забудьте вы про этот сигнал. Я уже сказал, что устройства на шине ПП на плате его не используют.
А так этот сигнал говорит о том, что адресуется страница ввода-вывода. Для ЦП это диапазон 160000-177777 в режиме USER, а для ПП - 177000-177777. Данный сигнал для внешних устройств позволяет сделать легче дешифратор адреса.

ZPilot
29.02.2020, 20:58
Когда работает ПП на K1BS есть сигнал, когда я получаю ДМА доступ, K1BS у меня высокого уровня.

Hunta
29.02.2020, 21:01
В/в имеется в виду 55 порт?
в/в - ввод/вывод


Те без правильно сформированного сигнала 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

Alex_K
29.02.2020, 21:01
Когда работает ПП на K1BS есть сигнал, когда я получаю ДМА доступ, K1BS у меня высокого уровня.
Данный сигнал формирует контроллер ОЗУ и адресного пространства D10, вывод 52. В низком уровне он будет когда на шине будет адрес в диапазоне 177000-177777.

Hunta
29.02.2020, 21:02
Когда работает ПП на K1BS есть сигнал,
Насколько я помню, ВМ2 выдаёт этот сигнал, так то он будет по любому

ZPilot
29.02.2020, 21:02
между выдачей адреса на шину и подачей сигнала SYNC есть пауза
Около 10-15 тактов процессора СТМки на частоте 80МГц, я думаю около 20-50 нС

Hunta
29.02.2020, 21:02
Данный сигнал формирует контроллер ОЗУ и адресного пространства D10, вывод 52
Если он генерируется - то кто то его использует?

Alex_K
29.02.2020, 21:05
Около 10-15 тактов процессора СТМки на частоте 80МГц, я думаю около 20-50 нС
Маловато будет, не все устройства успеют. Желательней около 200 нс.

ZPilot
29.02.2020, 21:06
Также после подачи SYNC
Пауза сделана побольше.

Alex_K
29.02.2020, 21:09
Насколько я помню, ВМ2 выдаёт этот сигнал, так то он будет по любому
ВМ2 это не ВМ3. ВМ2 данный сигнал не выдаёт, это отдано на откуп логике на материнке. А вот ВМ3, да, сам этот сигнал выдает, зависит от режима работы 22 бит, 18 бит, 16 бит адреса.

Если он генерируется - то кто то его использует?
А использовать его должны устройства, которые вставляются в разъёмы XS1 и XS2.

ZPilot
29.02.2020, 21:09
Маловато будет, не все устройства успеют. Желательней около 200 нс.
Еще бы сообразить как это сделать.. я не познал еще дзен в СТМках.. тут надо такты считать.. а найти толковую информацию по АРМ (о тактах) я пока не смог.


Попробую паузы увеличить..
Паузы сделаны так:

"mov r1,#9 \n"
"delay_addr: \n" //wait 9 cycle
"sub r1,#1 \n"
"cmp r1,#0x0 \n"
"bhi delay_addr \n"

Hunta
29.02.2020, 21:11
А вот ВМ3, да, сам этот сигнал выдает, зависит от режима работы 22 бит, 18 бит, 16 бит адреса.
Не зависит. Способ генерации (сколько бит брать) - да, зависит, но сам сигнал выдаётся независимо от того, какой режим работы

ZPilot
29.02.2020, 21:16
Маловато будет, не все устройства успеют. Желательней около 200 нс.
Да!!! Вы правы, мало было! Сделал чуть побольше, с 177060, считалось 173400 (F700)

Hunta
29.02.2020, 21:18
ВМ2 данный сигнал не выдаёт, это отдано на откуп логике на материнке.
Да, Вы правы, ни ВМ1 ни ВМ2 не генерируют. Ну, у меня под рукой в основном что то на ВМ3, так что в памяти не отложилось

Alex_K
29.02.2020, 21:33
Да!!! Вы правы, мало было! Сделал чуть побольше, с 177060, считалось 173400 (F700)
Точнее 0F7, в восьмеричном 0367. Это приёмник канала К0, это то что в регистре после включения питания.

ZPilot
29.02.2020, 21:36
Точнее 0F7,
Да, у меня одна функция читает данные, а я делал реверс байтов, чтоб легче было сравнивать прошивку ПЗУ и то что считывает "тестер" :)

Запаять обратно 1515хм1-031?

Alex_K
29.02.2020, 21:44
Запаять обратно 1515хм1-031?
Можно попробовать. Там легче в том плане, что и -031 и разъём XS1 стоят по одну сторону буфера, да и дешифрация адреса в -031 полная.
Регистры -031 для чтения: 177700, 177702, 177704, 177710, 177714, 177716.

ZPilot
29.02.2020, 22:00
Регистры -031 для чтения
Я тут попробовал те регистры, что вы давали:

Input address
Address: 177062:FE32 Read data=13400:1700
Input address
Address: 177064:FE34 Read data=173400:F700
Input address
Address: 177066:FE36 Read data=0:0000
Input address
Address: 177070:FE38 Read data=0:0000
Input address
Address: 177072:FE3A Read data=0:0000
Input address
Address: 177074:FE3C Read data=0:0000
Input address
Address: 177076:FE3E Read data=14000:1800
Input address
Address: 177100:FE40 Read data=0:0000
Input address
Address: 177101:FE41 Read data=0:0000
Input address
Address: 177102:FE42 Read data=0:0000
Input address
Address: 177103:FE43 Read data=0:0000

Alex_K
29.02.2020, 22:11
177060, 177062, 177064 - регистры приёмников каналов К0, К1, К2. Всякий мусор после включения питания.
177066 - регистр статуса приёмников. Стоит ноль, не установлены биты готовности и разрешения прерывания.
177070, 177072, 177074 - регистры источников каналов К0, К1. 177074 - резерв. Считывается всегда ноль.
177076 - регистр статуса источников. Значение 0x18, восьмеричное 030. Стоит готовность каналов К0 и К1.
177100, 177101, 177102, 177103 - регистры параллельного порта.

ZPilot
29.02.2020, 22:31
Запаял я 031 - не отвечает, вообще. Запаяна хорошо, проверил.

Alex_K
29.02.2020, 22:45
Запаял я 031 - не отвечает, вообще. Запаяна хорошо, проверил.
А обрыва в дорожках адреса-данных, SYNC, DIN, RPLY нет? Если нет, то печально. Достать такую же или заменить на аналог 1515ХМ2-001.

ZPilot
29.02.2020, 22:48
А обрыва в дорожках адреса-данных, SYNC, DIN, RPLY нет?
Да вроде нет, но проверю завтра отдельно эти линии.. но на сегодня уже хватит!!
Да, если получится, попробую сделать запись в ячейку..

xolod
29.02.2020, 22:59
Ну если запись будет, то основа для тетстера Qbus будет готова!

MM
29.02.2020, 23:37
не отвечает, вообще
Тактовая частота есть ? Сигнал INIT, DCLO в каком состоянии ?

AFZ
01.03.2020, 08:48
Еще бы сообразить как это сделать.. я не познал еще дзен в СТМках.. тут надо такты считать.. а найти толковую информацию по АРМ (о тактах) я пока не смог.Сложно это - там ведь конвейер. Один раз оно выполнится так, второй - по-другому. Иногда удается воспользоваться таймером SysTick. Подробности в документе PM0214.

ZPilot
01.03.2020, 13:08
Иногда удается воспользоваться таймером SysTick
Увы, времени на "левые" операции там просто не остается, в некоторых местах думаешь какие инструкции на ассемблере лучше использовать, чтоб быстрее ответить в шину (правда это касается эмулятора, а не "тестера")
Честно говоря, все эти игрища с эмуляторами или тестерами надо делать на Verilog-е, но их 5-вольтовых практически не осталось (я не имею ввиду остатки от старых выпусков).

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


Ну если запись будет, то основа для тетстера Qbus будет готова!
Принцип такой же как и у чтения? ADDR->SYNC->WE->DATA->REPLY->WE+SYNC?

Alex_K
01.03.2020, 13:18
Принцип такой же как и у чтения? ADDR->SYNC->WE->DATA->REPLY->WE+SYNC?
Выставляем адрес, небольшая пауза, устанавливаем SYNC, небольшая пауза.
Выставляем данные на шину, небольшая пауза.
При байтовой записи выставляем WTBT, выставляем DOUT.
Ждём прихода RPLY.
Если RPLY не пришёл, то запись не прошла.
Снимаем DOUT, устройство должно снять RPLY, снимаем SYNC.

Если производилась байтовая запись, то для чётных адресов записываемый байт расположен в младшем байте, для нечётных - в старшем. Неиспользуемый байт у ВМ2 содержит нули.

Hunta
01.03.2020, 13:20
но их 5-вольтовых практически не осталось
http://www.kpxx.ru/dnepr/MICB/V0.0/
Название не сильно видно, придётся поверить на слово - EP2C8AQ208
Вполне себе работает в стандартной 5-ти вольтовой QBus

ZPilot
01.03.2020, 13:25
F3 - имеется,

NIT, DCLO
в высоком, при нажатии Ресет сбрасываются в 0 и восстанавливаются до высокого


SYNC, DIN, RPLY
SYNC - есть, DIN - есть, RPLY - есть, но это не обязательно от 031, кстати, я его отпаивал и подключал ногу к осциллографу, сигнала от него не было (ножка была подтянута к 5В через 3КОм резистор).

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


EP2C8AQ208
А разве Cyclone II еще выпускают?

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


http://www.kpxx.ru/dnepr/MICB/V0.0/
Эх.. какая красота!!!

Hunta
01.03.2020, 13:27
Эх.. какая красота!!!
Когда я допилю Ethernet - станет ещё красивей.


А разве Cyclone II еще выпускают?
Честно говоря - не знаю (хотя китайцы вполне себе продают), но я про другое - этот кристалл - 3.3 В
Вот ещё пример, только уже 4-ого циклона:

http://www.kpxx.ru/dnepr/MS1201/V3.0/

ZPilot
01.03.2020, 13:30
производилась байтовая запись,
Спасибо! Буду пробовать!

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


я про другое - этот кристалл - 3.3 В
Да, но там какая-то странная оговорка, что-то типа, выводы к 5В толерантны, но при определенных условиях и 10 страниц условий русским по английскому, что-то про cmos и ttl

Titus
01.03.2020, 13:31
Сложно это - там ведь конвейер.
Если речь идет о Cortex'ах младших моделей - M0, M3 и даже M4, то число тактов высчитывается весьма несложно.

Кроме того, всегда можно посчитать, сколько тактов занял тот или иной фрагмент кода, замерив значение счетчика тактов перед фрагментом и после.

Если речь идет о недостаточной задержке, то ставим лишние nop'ы, пока задержка не станет достаточной, и не паримся)

Hunta
01.03.2020, 13:33
Да, но там какая-то странная оговорка, что-то типа, выводы к 5В толерантны,
Насколько я знаю, внутри платы все 3.3 в, только на входе с шины и на выходе на шину - 5 В. Так что если она каким то боком и толерантна к 5 в (на вход, я так понимаю, но на выходе у неё все равно 3.3 в), то на плате это никак не используется. Всё делают шинники

Alex_K
01.03.2020, 13:34
По поводу байтовой записи - устройство должно её поддерживать. ОЗУ поддерживает, вопросов нет. А вот внешние устройства на странице ввода-вывода могут и не поддерживать. Когда поддержки нет, то устройство записывает целое слово (все 16 бит), процессор ВМ2 в неиспользуемом байте выставляет нули. А если выставить целое слово, то оно и запишется.

ZPilot
01.03.2020, 13:47
Вот ещё пример, только уже 4-ого циклона
Блин, стоимость и производительность этих чипов такая, что на них можно современными Core I9 рулить, например делать мосты. Та СТМка, на которой делаю тестер, с легкостью эмулирует Z80 и всю логику Спектрума, вплоть до АТМ Турбо..

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


Если речь идет о недостаточной задержке, то ставим лишние nop'ы, пока задержка не станет достаточной, и не паримся)
я почти так и сделал, только циклом. :)

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


но на выходе у неё все равно 3.3
Для старой "советской" логики 3.3В достаточно. Тут главное не пожечь современный чип.

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


http://www.kpxx.ru/dnepr/MS1201/V3.0/
Вот вырасту большой, тоже смогу так делать!!! :) :) :)

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


Выставляем адрес, небольшая пауза, устанавливаем SYNC, небольшая пауза.
Выставляем данные на шину, небольшая пауза.
При байтовой записи выставляем WTBT, выставляем DOUT.
А точно такой порядок? Может DOUT а потом данные?

Hunta
01.03.2020, 13:53
Блин, стоимость
На ali именно этот кристалл - что то около 2500
Да, практически на ошибся
https://aliexpress.ru/item/32914254661.html


производительность этих чипов такая
Что 1801ВМ3 легко заменить на синтезированный аналог с 100 МГц тактовой


Для старой "советской" логики
Я не ориентируюсь на старую советскую логику - качество, да и частенько количество сильно страдает.

Как уже писал - "современный FPGA заменяет вам мешок микросхем и паяльник". Контроллер для CF карт для своего Кванта я бы рисовал и делал бы (с моими текущими знаниями электроники и самое главное - ассортимента микросхем).. ну с полгода как минимум. И постоянно гадал - ошибка на плате или в драйвере. Не совсем с нуля (хотя сейчас могу и с нуля) - но контроллер из схемного варианта в VHDL переделал и допилил до почти рабочего состояния (как оказалось, был ещё один косячок, вычислен (без осциллографа и ЛА) и пофиксен примерно месяца через полтора) недели за две.

Ну а качество современной электроники такое, что я забуду про ремонт этих плат, скорее всего - до конца жизни :) Меня вовсе не улыбает включить Квант и каждый раз думать - включится или нет.

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


Вот вырасту большой, тоже смогу так делать!!!
Такое я не сделаю, если только специально не переключусь на электронику, но как бы не совсем интересно. Но если мне дадут такую игрушку, то сделать прошивку для FPGA я уже смогу. И не прошло и двух лет, как мне в руки попала dev плата с пятым циклоном. Правда, существенный рывок произошёл это осенью, до этого больше был метод научного тыка. Но теперь у меня циклон уже не вещь в себе, а вполне себе работает с чем то, что было выпущено задолго до него. Например - в корзине стандартный Квант-овксий контроллер флопов MY

Alex_K
01.03.2020, 13:54
А точно такой порядок? Может DOUT а потом данные?
По фронту DOUT устройства обычно записывают данные в свои регистры, так что данные надо выставить заранее, чтобы со всеми задержками дошли до устройства.

Hunta
01.03.2020, 13:54
Может DOUT а потом данные?
DOUT - это сигнал, что данные для записи уже на шине и стабильны.
Примерно как RPLY при DIN - сначала данные, потом RPLY

Alex_K
01.03.2020, 13:56
Забыл ещё в описании, что при снятии DOUT, WTBT, также надо снять и данные.

ZPilot
01.03.2020, 14:03
Alex_K, Xolod
00000,0x55AA
Address: 0:0000 Read data=125125:AA55
AA55 0800 8B0C 0800 850C 0800 850C 0800

:)

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

Попробовал записать 0x55AA в 177716 - не ответил.

xolod
01.03.2020, 14:09
Честно говоря, все эти игрища с эмуляторами или тестерами надо делать на Verilog-е, но их 5-вольтовых практически не осталось (я не имею ввиду остатки от старых выпусков).

Есть предложение как это сделать по взрослому. ;-)
Берем за основу замечательный проект https://github.com/hoglet67/AtomBusMon/
Это In-Circuit Emulation CPU Z80, 6502 и 6809 на Veriloge. Добавляем туда реверс 1801ВМ2 уважаемога Vslav https://github.com/1801BM1/cpu11/tree/master/vm2
Делаем дизасемблер PDP-11 на Arv.
И ремонтруем УКНЦ, КЦНД, 1201.02

ZPilot
01.03.2020, 14:29
Попытался записать блок памяти с 0 адреса данными 0х55АА вот что прочиталось потом:

AA55 AA55 AA55 8A15 AA55 AA55 AA55 AA55
AA55 8A15 AA55 AA55 AA55 AA55 AA55 AA55
AA55 AA55 AA55 8A55 AA55 AA55 AA55 AA55
AA55 AA55 AA55 AA55 AA55 AA55 8A15 AA55
AA55 AA55 AA55 AA55 8A15 AA55 AA55 AA55
AA55 AA55 8A15 AA55 AA55 AA55 8A15 AA55
AA55 AA55 AA55 AA55 8A15 AA55 AA55 AA55
AA55 AA55 AA55 AA55 AA55 AA55 AA55 AA55
AA55 AA55 AA55 AA55 AA55 AA55 AA55 AA55
AA55 AA55 AA55 AA55 AA55 AA55 AA55 8A15
AA55 AA55 AA55 AA55 AA55 AA55 AA55 AA55
AA55 AA55 AA55 AA55 AA55 AA55 AA55 8A15
AA55 AA55 AA55 AA55 AA55 AA55 AA55 AA55
AA55 AA55 AA55 AA55 AA55 AA55 AA55 AA55
AA55 8A15 AA55 AA55 AA55 AA55 0015 AA55
AA55 0215 AA55 AA55 AA55 8A15 AA55 AA55


и экран почему то изменился..

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


Есть предложение как это сделать по взрослому. ;-)
Это конечно по взрослому.. но.. (хотел написать из анекдота про красную полосу) зачем тогда ремонтировать УКНЦ? Добавляем ХДМАй и все.. УКНЦ готова!

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


Выставляем данные на шину, небольшая пауза.
А когда снимать данные с шины?

Alex_K
01.03.2020, 14:33
Попытался записать блок памяти с 0 адреса данными 0х55АА вот что прочиталось потом:
Само ОЗУ в магистрали ПП восьмибитное и контроллер записывает слово в два приёма. Выпадают биты 5 и 6.

Hunta
01.03.2020, 14:34
Как только с шины прилетит RPLY

Alex_K
01.03.2020, 14:35
и экран почему то изменился..
А это потому что изменили ячейку с адресом 0270. С неё начинается описание таблицы видеострок.

xolod
01.03.2020, 14:36
Это конечно по взрослому.. но.. (хотел написать из анекдота про красную полосу) зачем тогда ремонтировать УКНЦ? Добавляем ХДМАй и все.. УКНЦ готова!
Ну нет. Это только CPU.
А так конечно, вот уважаемый Titus, отреверсит оставшийся 1515ХМ1 когда Vslav их за decapед и отснимет. И тогда можно на MIST/MISTer сворганить ядро УКНЦ!

ZPilot
01.03.2020, 14:46
Поправил тайминги на чтение, теперь считывает точно то что записано.. видимо действительно ПЗУ быстрее РАМ, тк из ПЗУ читалось без ошибок.

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


Как только с шины прилетит RPLY
Спасибо, переделал, снимал после снятия DOUT.

Alex_K
01.03.2020, 14:47
Поправил тайминги на чтение, теперь считывает точно то что записано.. видимо действительно ПЗУ быстрее РАМ, тк из ПЗУ читалось без ошибок.
Как я ранее писал, ОЗУ на ПП восьмибитное. Там слово читается контроллером в два приёма, потому RPLY приходит значительно позже. Но ещё до выставления RPLY контроллер ОЗУ выставляет на шину буферный регистр, сначала в нём появляется младший байт, потом старший.

Кстати можно очистить начало ОЗУ (записать нули) до ячейки 0300, теоретически экран должен погаснуть.

ZPilot
01.03.2020, 14:48
отреверсит оставшийся 1515ХМ1
Вы слишком сильно хотите точности копии, а можно просто порты и архитектуру эмулировать..

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


Кстати можно очистить начало ОЗУ (записать нули) до ячейки 0300, теоретически экран должен погаснуть.
Классная мысль!!

Hunta
01.03.2020, 14:51
Спасибо, переделал, снимал после снятия DOUT.
Ну логика там (после подтверждения захвата шины) примерно такая
- Выставили адрес
- Адрес устаканился
- Выставили SYNC
- Подождали энное время
- Выставили данные
- Данные устаканились
- Выставили DOUT
- Запустили таймер (сколько он по времени - надо смотреть спецификацию QBus)
- Ждем или ответа RPLY или истечения таймера
-- если прилетел RPLY
--- снимаем данные, снимаем DOUT
--- снимает SYNС
-- если таймер истек - на шине такого адреса нет
- если цикл на шине закончился - снимаем SACK

ZPilot
01.03.2020, 14:54
Нет, не очистился, стал вот таким: https://cloud.mail.ru/public/4wEN/2zoJbUFGh
Блин, почему-то мейл фото вертикально воткнул.

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


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

Hunta
01.03.2020, 14:57
Пока не делаю, вечно жду ответа
Думаю, в тестере, да ещё и на этапе отладке оного - вполне допустимо
А вот мне в FPGA нужно будет делать :D

ZPilot
01.03.2020, 14:58
до ячейки 0300
Это в восьмеричной? Я в восьмеричной сделал.

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


А вот мне в FPGA нужно будет делать
У вас все настолько привязано к железу, что без этого ни куда!
Хотя я до сих пор в шоке, что СТМка успевает за железом на шине, те она реально успевает реагировать на такты ВМ2

Hunta
01.03.2020, 14:59
Это в восьмеричной?

Что то мне память царапает, что если перед числом ноль - оно считается записанным в восьмеричной нотации, если 0x (ну это уж точно) - то в шестнадцатиричной.
В MACRO-11 (по умолчанию) - восьмеричное, если после числа точка, то десятичное. Но есть такая директива .RADIX, которая позволяет поменять основание счисления.

Alex_K
01.03.2020, 15:01
Нет, не очистился, стал вот таким: https://cloud.mail.ru/public/4wEN/2zoJbUFGh
Блин, почему-то мейл фото вертикально воткнул.
Ну стал однородным, так как ещё считываются данные с ОЗУ ЦП при выводе изображения, по идее и его чистить надо. Да и грузить регистры отображения и цвета в видеоконтроллер.

Можно сделать более сложную задачу - записать в ОЗУ ЦП и ПП, но делается это через регистры адреса и данных.

Цикл от адрес 0 до 0277
Записать адрес в регистр 177010
Записать 0 в 177012
Записать 0 в 177014
Конец цикла.

Hunta
01.03.2020, 15:01
У вас все настолько привязано к железу, что без этого ни куда!
Даже когда развлекался на dev плате без выхода на pdp-шное железо - всё равно нужно было делать, иначе устройство могло легко уйти в себя...


Хотя я до сих пор в шоке, что СТМка успевает за железом на шине, те она реально успевает реагировать на такты ВМ2
Разница в скорострельности...

ZPilot
01.03.2020, 15:08
что если перед числом ноль - оно считается записанным в восьмеричной нотации
Хоть УКНЦ и аппарат моей юности, но УКНЦ-подобное совсем прошло боком, так что о восьмеричной системе я только слышал..

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


Разница в скорострельности...
да там не такая и большая разница, ВМ2 ПП работает на 4МГЦ, СТМка моя на 80.. для эмулятора у меня была разогнана до 120 МГц, вообще она и на 160 работает, но уже УАРТ глючит.
Разница в 20 раз - это совсем мало.. от 3 до 10 команд на асме.

Titus
01.03.2020, 15:11
Вы слишком сильно хотите точности копии, а можно просто порты и архитектуру эмулировать..
Это вам не спектрум с его простотой. УКНЦ по всяким нюансам в разы сложнее. Если сэмулировать в общих чертах, то получится что-то УКНЦ-подобное, но никак не УКНЦ.

Hunta
01.03.2020, 15:13
так что о восьмеричной системе я только слышал..
Поля операндов в команде завязаны на трехбитные поля, так что в восьмеричной записи после некоторого количества опыта команды и операнды декодируются в уме влёт. Ни при десятичной, ни при шестнадцатеричной такое не прокатит... Шестнадцатеричное (точнее перевод в десятичное или двоичное в диапазоне B-D) до сих пор на пальцах

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


Разница в 20 раз - это совсем мало.. от 3 до 10 команд на асме.
Это приличная разница. Грубо - считает ли программа минуту или 10 (даже 5) - заметишь хорошо :)

ZPilot
01.03.2020, 15:17
Кстати можно очистить начало ОЗУ (записать нули) до ячейки 0300, теоретически экран должен погаснуть.
Нули не очистили, а вот FF очистили, экран стал черным.

Hunta
01.03.2020, 15:19
Нули не очистили, а вот FF очистили, экран стал черным.
Ноль выставлялся инвертированным?

ZPilot
01.03.2020, 15:26
Это приличная разница. Грубо - считает ли программа минуту или 10 (даже 5) - заметишь хорошо
Это когда у тебя расчеты, а когда у тебя операция 1+5 и записать в ячейку с адресом 0х10000000, вот только она привязана к ноге GPIO и выполняется с частотой 4 МГц - это вообще не разница!!! Тупо не успеешь сделать что-нибудь еще.

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


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

"mvn r1,%[data] \n" //set data
"strh r1,[%[portc],ODR] \n"


mvn это mov сразу с инверсией, а ODR - что положили, то и на выходе, те 1 - высокий, 0 - низкий

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

Как только отдал ДМА в памяти стало:

FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00
FFFF FF00 FFFF FF00 FFFF FF00 FFFF FF00

Hunta
01.03.2020, 15:31
Вот странно это... Я перед записью адреса и данных инвертирую биты, тк у УКНЦ инверсная шина..
Тогда ок


Нули не очистили, а вот FF очистили, экран стал черным.
Нули и FF - это данные ДО ИНВЕРТИРОВАНИЯ при отдаче на шину или это данные, которые УЖЕ ИНВЕРТИРОВАНЫ и полетели в шину?


Как только отдал ДМА в памяти стало:
Рефреш памяти не работает? Кстати, всякого рода шахматка и полосы тоже на это будут намекать
Попробуйте что нибудь записать, подождать долго, а потом прочитать записанное. Если рефреш не работает, то после задержки (даже без снятия ПДП) прочитается другое

ZPilot
01.03.2020, 15:39
Нули и FF - это данные ДО ИНВЕРТИРОВАНИЯ
Чтоб не путаться я называю данные так как мы привыкли, те для нас 0 это 0, для УКНЦ это высокий уровень, так что да "данные ДО ИНВЕРТИРОВАНИЯ"

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


Попробуйте что нибудь записать, подождать долго
Получил ДМА, записал FF в экранную область, ждал больше минуты считал, считались FF. Как только отдаю ДМА, а потом забираю вновь, читаю а там вместо FFFF уже FF00.

Hunta
01.03.2020, 15:43
так что да "данные ДО ИНВЕРТИРОВАНИЯ"
Хотя нет.. Если данные инвертируются при передаче на шину УК-НЦ, то FF на шину полетит как 0, но с точки зрения данных для в ячейку запишется FF, то есть как если бы я написал MOV #377, @#0. И аналогично, хотим записать 0, при передачи на шину он инвертируется, то есть на шину полетит FF, но с точки зрения логики, это как если бы я написал CLR @#0 .... Если только при записи в память контроллер их не инвертирует ещё раз. Как, например, при записи на CF на шину выставилось FF, но записать надо 0, иначе потом на писюке я и прочитаю FF, поэтому контроллер CF данные ещё раз инвертирует...

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


Получил ДМА, записал FF в экранную область, ждал больше минуты считал, считались FF. Как только отдаю ДМА, а потом забираю вновь, читаю а там вместо FFFF уже FF00
Занимательно.. Но мыслей нет. А если не записать не FF, а скажем DBE7?

ZPilot
01.03.2020, 16:02
А если не записать не FF, а скажем DBE7
Странно... DBE7 и осталось :( я даже комп включил-выключил, вдруг это была случайность..

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


А если не записать не FF, а скажем DBE7
Меняю на 0000 или на FFFF, опять картина с изменениями...

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

Все.. я понял... с 0000 тоже нет изменений, только с FFFF

Alex_K
01.03.2020, 16:03
Получил ДМА, записал FF в экранную область, ждал больше минуты считал, считались FF. Как только отдаю ДМА, а потом забираю вновь, читаю а там вместо FFFF уже FF00.
Как только отдаёте ДМА, то процессор начинает работать дальше, сложно сказать, чего он там выполняет. Можно перед захватом шины его остановить с помощью DCLO, т.е. подать ноль и снять. При этом ACLO трогать не надо. Вот только не уверен, будет ли на остановленном процессоре работать захват шины.

ZPilot
01.03.2020, 16:07
Похоже, что 0000 очищает экран, но не область "атрибутов экрана" (если такая есть у УКНЦ).

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


о процессор начинает работать дальше, сложно сказать, чего он там выполняет
Согласен

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

А вот по идее, если не писать ни чего в область видеобуфера, а просто его считать, что должно быть там при исправном ПП, но не запущенном ЦП? Черный экран, те 0?

Hunta
01.03.2020, 16:07
Странно... DBE7 и осталось я даже комп включил-выключил, вдруг это была случайность..
Ишо интересней...
Лана, я пока из потока сознания выпадаю, у меня там в VHDL самое "интересное" началось, надо аккуратно сигналы объединить, голова будет крепко занята

ZPilot
01.03.2020, 16:15
Попробовал вот такой эксперимент, забираю ДМА, пишу в видеобуфер А5А5, отдаю дма, нажимаю Сброс, забираю дма, читаю из видеобуфера А5А5! Те он не очищается, а после сброса должен был!

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

Эх.. а чего он будет очищаться, если у меня 031 дохлая и он в ошибку сваливается?! :(

Alex_K
01.03.2020, 16:37
Это не видеобуфер, это ОЗУ. В УКНЦ структура видеопамяти довольно сложная и располагаться она может в разных местах и не обязательно последовательно. От того как таблицу описания видеострок запрограммируют.

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

Можете записать 0x9090, должен быть такой же эффект как и на 0xFFFF.

ZPilot
02.03.2020, 00:06
В общем ситуация с моим УКНЦ такая: без работы 031 очищаться экран не будет когда мы записываем туда 0, может потому что ТРАП4, может еще почему, Я сейчас совместил тестер и "эмуль" 031, после отрабатывания эмулятора и получения ДМА заливка в область с о000 по о300 нулями окрашивает экран черным и остается таким после выхода из режима ДМА.
Что дальше делать со своею бедою я не знаю..
Можно ли залить из режима ДМА в облать памяти ЦП то что заливает ПП при старте? Или как-то проверить, что он залил?

Alex_K
02.03.2020, 00:11
Что дальше делать со своею бедою я не знаю..
Надо искать 1515ХМ1-031 или 1515ХМ2-001.

Можно ли залить из режима ДМА в облать памяти ЦП то что заливает ПП при старте? Или как-то проверить, что он залил?
Залить-то можно, только толку от этого не будет. Ведь для ввода-вывода на экран используются программы ПП, ЦП с ним общается по каналам связи в 1801ВП1-120.

ZPilot
02.03.2020, 10:33
Надо искать 1515ХМ1-031 или 1515ХМ2-001
А есть ли смысл в этом? Получается, что с эмулятором программа из ПЗУ проходит дальше, но все равно не работает.. Alex_K, вы как-то здесь писали порты 031, может мне их всех эмулировать? Вдруг в ТРАП4 ПП где-то еще сваливается?

Alex_K
02.03.2020, 10:54
А есть ли смысл в этом? Получается, что с эмулятором программа из ПЗУ проходит дальше, но все равно не работает.. Alex_K, вы как-то здесь писали порты 031, может мне их всех эмулировать? Вдруг в ТРАП4 ПП где-то еще сваливается?
В -031 портов много. Ведь это контроллер клавиатуры (регистры 177700, 177702, 177704), программируемый таймер (регистры 177710, 177712, 177714), системный регистр управления 177716. Есть тема по реверс-инжинирингу БМК 1515ХМ1/2 для УКНЦ - https://zx-pk.ru/threads/30964-revers-inzhiniring-bmk-1515khm1-2.html. Там собственно разобрали работу 1515ХМ2-001 - это немного улучшенная версия 1515ХМ1-031, по выводам и программно полностью совместимая, с уменьшенным количеством глюков в программируемом таймере. Схема есть, возможно где-то и будут мелкие ошибки, так что сделать можно.

ZPilot
02.03.2020, 11:05
Alex_K, это специально для вас :) https://cloud.mail.ru/public/cP4h/5sQvgyiT7

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

Извиняюсь конечно, за столь не качественное видео

Alex_K
02.03.2020, 11:10
Alex_K, это специально для вас :) https://cloud.mail.ru/public/cP4h/5sQvgyiT7
Прошла инициализация драйвера текстового терминала. Ну если прошла, то в системное ОЗУ ЦП по идее уже закачан пультовый монитор, можно запустить ЦП. Регистры клавиатуры и программируемого таймера можно эмулировать только чтобы отвечали на чтение и запись.

ZPilot
02.03.2020, 11:16
Регистры клавиатуры и программируемого таймера можно эмулировать только чтобы отвечали на чтение и запись
У меня весь диапазон с 177700 по 177716 только отвечает RPLY, кроме 177716, который управляет ACLO и DCLO, ЦП запущен, на шине есть сигналы, но моргает только курсор. Больше ничего на экране нет.

Alex_K
02.03.2020, 11:22
А в какой момент запускается ЦП?

ZPilot
02.03.2020, 11:27
А в какой момент запускается ЦП?
Как положено, на о40 сигналы в низ, на 0 DCLO вверх, на о100000 ACLO вверх.

Alex_K
02.03.2020, 11:37
Как положено, на о40 сигналы в низ, на 0 DCLO вверх, на о100000 ACLO вверх.
Да, пультовый монитор уже должен перекачаться в системное ОЗУ ЦП. Также вероятен сбой памяти в магистрали ЦП.
ZPilot, вы как-то хотели проверить, что закачалось в ОЗУ ЦП. Содержимое можно перекачать по такому алгоритму:

FOR ADDR=070000 TO 077777
0177010 := ADDR
VALUE := 0177014
NEXT ADDR

Т.е. пробежаться по адресам системного ОЗУ ЦП от 070000 до 077777. Регистр 0177010 является регистром адреса, после записи в него в регистре 0177014 появляется значение соответствующей ячейки ОЗУ ЦП.

ZPilot
02.03.2020, 11:50
ы как-то хотели проверить, что закачалось в ОЗУ
Да, сделаю обязательно, но для этого нужно немного модифицировать мой "тестер-эмулятор", у меня он сейчас только в режиме эмуляции работает, надо добавить физическую кнопку для выхода в режим тестера. Плюс, я сделал что весь диапазон с 177700 по 177717, те 16 адресов отвечают, надо сделать, чтоб отвечали только те, что вы написали.

ZPilot
02.03.2020, 15:57
Как то так: https://cloud.mail.ru/public/2oU7/4EfkNfD4F

Alex_K
02.03.2020, 16:25
Понятно. Если -031 выпаяли, то сигналы запроса вектора прерывания до 1801ВП1-120 могут не доходить.
Просто если инициализация прошла нормально, то при инициализации текстового терминала в буфер ложится код 014, который очищает экран, тогда очищенный экран должен быть весь синий. Да и СТОП мог произойти как в ЦП, так и в ПП.

ZPilot
02.03.2020, 16:57
Если -031 выпаяли,
Запаял обратно для проверки. Он 100% не рабочий!
Я думаю, что эмулятор отвечает не правильно на какой-то из регистров и ЦП думает, что идет загрузка, скажем из сетевой карты или еще из чего, вот эта надпись появилась случайно, после того как я не правильно сделал программу и СТМ отвечал на запросы к 031 не правильно.. Видимо в очередной раз проскочил СТОП из регистра клавиатуры.

Alex_K
02.03.2020, 17:03
Если выпаивать -031, то на плате надо соединить выводы 31 (IAKI) и 30 (IAKO), иначе не будут проходить запросы вектора прерывания к 1801ВП1-120.

ZPilot
02.03.2020, 17:26
Если выпаивать -031, то на плате надо соединить выводы 31 (IAKI) и 30 (IAKO), иначе не будут проходить запросы вектора прерывания к 1801ВП1-120.
О!! Спасибо, сейчас попробую их замкнуть, тк моя 031 дохлая совсем.

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

После закоротки 30 и 31 вот (перезалил): https://cloud.mail.ru/public/yUnb/4xxD24SYX

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

Кстати, у меня зеленый фон и на полностью рабочей УКНЦ, может я конечно RGB перепутал?

Alex_K
02.03.2020, 17:33
Кстати, у меня зеленый фон и на полностью рабочей УКНЦ, может я конечно RGB перепутал?
Да, символ с кодом 014 в буфер ложится, ставится индикатор вызова, но указатель буфера не сдвигается. Потому экран зеленоватым и остаётся. А зеленоватый он потому, что запаяна перемычка SyncOnGreen, т.е. синхросигнал подмешивается в зелёный цвет.

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


После закоротки 30 и 31 вот (перезалил): https://cloud.mail.ru/public/yUnb/4xxD24SYX
Есть старт в ЦП. Если вытащить сетевой адаптер, то при включении выскочит на загрузочное меню.

ZPilot
02.03.2020, 17:48
Если вытащить сетевой адаптер, то при включении выскочит на загрузочное меню.
А он и не подключен! :)


А зеленоватый он потому, что запаяна перемычка SyncOnGreen,
Что за перемычка и можно ли ее отключить?

Alex_K
02.03.2020, 17:51
А он и не подключен!
А почему тогда на экране "ЗАГРУЗКА ИЗ СЕТИ"? Действительно при начальном старте она выводится, но если СА отсутствует, то выполняется СТОП. А при первом стопе вылазит загрузочное меню.

ZPilot
02.03.2020, 17:59
А почему тогда на экране "ЗАГРУЗКА ИЗ СЕТИ"?
Честно говоря, мне тоже интересно..
.. глюки?

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

А на каком порту сидит сетевуха?

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

С перемычками разобрался, пока не горит.

Alex_K
02.03.2020, 18:11
С перемычками разобрался, пока не горит.
Снять S1 и S3, запаять S2.

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

По поводу что висит надпись "ЗАГРУЗКА ИЗ СЕТИ". Это в пультовый монитор ЦП не пришёл сигнал, что клавиатура переведена из системного режима в пользовательский и что с ЦП снят сигнал HALT.
ZPilot, у вас ещё вероятно не эмулируется ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ. Для сброса сигнала HALT используется команда BIC #20,@#177716. Т.к. регистр 177716 сначала надо прочесть, а потом записать, то на шине будут не два цикла ЧТЕНИЕ и ЗАПИСЬ, а один ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ. Т.е. после чтения регистра сигнал SYNC не снимается, а на шину данных выставляются записываемые данные и сигнал DOUT. Т.е. в данном случае адрес нужно выставить один раз.

ZPilot
02.03.2020, 18:21
Снять S1 и S3, запаять S2.
Сделал, теперь экран черный, а не зеленый.

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


у вас ещё вероятно не эмулируется ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ
У меня пока вообще нет ответа от эмулятора 031, только высокий уровень на шине и низкий на RPLY.

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


ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ
А как определить, что это именно Ч-М-З, а не отдельно чтение, а отдельно запись?

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


регистр 177716 сначала надо прочесть,
и что он долже считать из регистра?

Alex_K
02.03.2020, 18:22
А как определить, что это именно Ч-М-З, а не отдельно чтение, а отдельно запись?
После чтения сигнал SYNC не снимается и через некоторое время выставляется DOUT.

ZPilot
02.03.2020, 18:25
И как снять этот HALT?

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


осле чтения сигнал SYNC не снимается и через некоторое время выставляется DOUT.
Те, SYNC addr DIN datain DOUT dataout DIN_DOUT_H SYNC_H?

Alex_K
02.03.2020, 18:29
и что он долже считать из регистра?
То чего в нём ранее установили при записи. Т.е. для запуска и работы ЦП при эмуляции этого регистра надо запоминать как минимум три бита - 15 (ACLO), 5 (DCLO), 4 (HALT).

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


Те, SYNC addr DIN datain DOUT dataout DIN_DOUT_H SYNC_H?
addr SYNC_L DIN_L datain RPLY_L DIN_H RPLY_H ... dataout DOUT_L RPLY_L DOUT_H RPLY_H SYNC_H

ZPilot
02.03.2020, 18:36
запоминать как минимум три бита - 15 (ACLO), 5 (DCLO), 4 (HALT).
да это не проблема. А как физически снять HALT?

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


RPLY_H ... dataout DOUT_L
А вот тут проблема, я могу выставить на шине datauot, а укнц возьмет и поднимет SYNC вместо опускания DOUT, коллизия будет или там есть время до следующей операции и я успею освободить шину?

Alex_K
02.03.2020, 18:54
А вот тут проблема, я могу выставить на шине datauot, а укнц возьмет и поднимет SYNC вместо опускания DOUT, коллизия будет или там есть время до следующей операции и я успею освободить шину?
Вообще-то dataout и DOUT выставляет процессор.

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

Я как-то делал описание 1801ВМ2, тут (https://zx-pk.ru/attachment.php?attachmentid=29838&d=1318165329). Там есть и описание циклов шины.

ZPilot
02.03.2020, 19:51
Alex_K, вы как-то перечисляли порты 031: 177700, 177702, 177704, 177710, 177714, 177716, точно портов больше нет? Дело в том, что я нашел ошибку у себя, забыл поставить безусловный переход после проверки ..16 адреса, когда я исправил эту ошибку, перестала выводится сообщение о загрузки из сети, вообще экран стал черным, хотя я вижу, что сброс проходит. С ошибкой откликался еще порт: 177717, а так же все номера с 00 по 16

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

177712 - вот этот порт: Очистить счетчик прогр. таймера

Alex_K
02.03.2020, 19:54
Да, я перечислял порты, которые откликаются на чтение.
А полный список - 177700, 177702, 177704, 177710, 177712, 177714, 177716. При этом при проверке не должен учитываться младший разряд адреса AD00. Т.е. 177701, тоже самое, что 177700.

ZPilot
02.03.2020, 20:03
177712 - после того как я его вписал в список откликающихся, надпись с загрузкой появилась опять.
Я тут нашел дебаг ПЗУ, попробую ответить нажатой кнопкой СТОП.

Alex_K
02.03.2020, 20:30
Надо делать поддержку операции ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ.


116664$:BIC #20,@#177716 ; Снять сигнал HALT в ЦП
MOV #70046,@#177010 ; Сброс ключа продолжения в области ОЗУ ЦП
CLR @#177014
RETURN

При исполнении команды BIC #20,@#177716 у вас при записи происходит TRAP4, ну и соответственно пультовый отладчик в ЦП ждёт сброса ключа, а ждать он его будет вечно.


; П/п снятия в ЦП сигнала HALT
161236$:MOV R0,-(SP)
MOV R1,-(SP)
MOV R4,-(SP)
MOV @#172660$,R4 ; R4 = начальный адрес ОЗУ пультового отладчика
INC 44(R4) ; Установить ключ продолжения
JSR R4,163006$ ; Снять сигнал HALT в ЦП
.WORD 163501$
161262$:TST 44(R4) ; Ключ продолжения сброшен ?
BNE 161262$ ; Нет
MOV (SP)+,R4
MOV (SP)+,R1
MOV (SP)+,R0
RETURN

ZPilot
02.03.2020, 22:16
Alex_K, я тут совсем запутался, когда надо снимать RPLY?

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


При исполнении команды BIC #20,@#177716 у вас при записи происходит TRAP4,
А почему ТРАП4? я же отвечаю ему RPLY, а отвечаю я точно, потому как RPLY у меня прижимается к 0 при любом обращении в облать портов 031, а снимается он при SYNC_H

Alex_K
02.03.2020, 22:17
Alex_K, я тут совсем запутался, когда надо снимать RPLY?
В каком случае?

AFZ
02.03.2020, 22:18
Alex_K, я тут совсем запутался, когда надо снимать RPLY?Вот здесь (https://forum.maxiol.com/index.php?showtopic=5512&pid=53981&st=0&#entry53981), на стр 30-35 все разрисовано подробно.

Alex_K
02.03.2020, 22:19
А почему ТРАП4? я же отвечаю ему RPLY
В данной команде на шине цикл ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ. На чтение вы отвечаете RPLY, а на запись нет.

В описании процессора есть диаграммы.

AFZ
02.03.2020, 22:20
я тут совсем запутался, когда надо снимать RPLY?В смысле, в моём любимом документе 3.858.362 ТО

ZPilot
02.03.2020, 22:43
В смысле, в моём любимом документе 3.858.362 ТО
Не.. в своей голове.. ваши диаграммы и Алекса очень даже помогают..

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


данной команде на шине цикл ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ. На чтение вы отвечаете RPLY, а на запись нет.
Да, увидел, поднять надо RPLY после Ввода и опустить еще раз после Вывода

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

Эххх.. всю малину мне поломали... https://cloud.mail.ru/public/ouug/35upksSYz

AFZ
02.03.2020, 22:49
Пардон, вовремя не увидел этого сообщения.


Увы, времени на "левые" операции там просто не остается, в некоторых местах думаешь какие инструкции на ассемблере лучше использовать, чтоб быстрее ответить в шинуВообще-то, единственное сильно критичное по времени место для абонента МПИ - это принять адрес. Процессор выставляет адрес и через 75-150 нс выдает сигнал SYNC. Если "прозевать" фронт этого SYNC'а, транзакция по шине потеряна. А дальше можно не особо торопиться, процессор будет ждать RPLY порядка 5-10 мкс и только после этого трапнется по таймауту. За это время на STM32 можно успеть сделать очень много.

Alex_K
02.03.2020, 22:51
Эххх.. всю малину мне поломали... https://cloud.mail.ru/public/ouug/35upksSYz
Ну вот, теперь в регистр источника канала К0 0177070 можно позаписывать коды клавиш КОИ-8. Записать 55 десятичное, выберется пункт 7 тестирование. После послать код 13 (Enter) и запустить тест.

ZPilot
02.03.2020, 22:56
в регистр источника канала К0 0177070 можно позаписывать коды клавиш КОИ-8.
Там же вроде не 1 порт

TSTB @#177700 ; Клавиша нажата ?
BPL 130670$ ; Нет
CMP #4,@#177702 ; Это "СТОП" ?
BNE 130670$ ; Нет
MOV 23332,SP
MOV #377,R0 ; R0 = нажата клавиша "СТОП"
MTPS #200 ; Запретить прерывания

Titus
02.03.2020, 22:57
Альтернативное название темы в скобках можно указать - хардварный эмулятор хм1-031)

Alex_K
02.03.2020, 22:59
Там же вроде не 1 порт
Через порты 177700 и 177702, которые входят в БМК -031, передаются скэн-коды нажатия и отжатия клавиш. А драйвер клавиатуры в ПЗУ переделывает их в коды КОИ-8 и передаёт по каналу К0 в ЦП.

AFZ
02.03.2020, 23:01
Да, увидел, поднять надо RPLY после Ввода и опустить еще раз после ВыводаТам же оно четко взаимоувязано: получил ВВОД, выставил данные на шину, выставил (опустил) RPLY, ждешь, когда ВВОД поднимется. Поднялся, убираешь RPLY ждешь двух сигналов сразу: может прилететь ВЫВОД или сняться SYNC. Снялся SYNC - идешь ждать нового, прилетел ВЫВОД - принимаешь данные, отвечаешь RPLY , ждешь, когда снимется ВЫВОД и т.д. Я в былые времена ждал не двух, а трех сигналов сразу - низкого на ВВОДе, низкого на ВЫВОДе и высокого на SYNC'е. То есть, взбредет в голову процессору сделать два ВВОДа подряд в одном цикле шины, т.е. "ВВОД-ПАУЗА-ВВОД" - на здоровье, обслужим. :-)

ZPilot
02.03.2020, 23:03
ардварный эмулятор хм1-031
Софтверный же :) на микроконтроллере же.. просто программа..

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


ждешт, когда ВВОД поднимется
в этот момент может подняться SYNC.. ну вот не успела СТМка, хотя мысль очень здравая!

Alex_K
02.03.2020, 23:04
Софтверный же на микроконтроллере же.. просто программа..
А микроконтроллер аппаратный. Программно-аппаратный комплекс!!!

AFZ
02.03.2020, 23:14
в этот момент может подняться SYNC.. ну вот не успела СТМка, хотя мысль очень здравая!Не может. Пока ВВОД не поднимется, ты не должен поднимать RPLY, а пока не поднимется RPLY, процессор не поднимет SYNC.

ZPilot
02.03.2020, 23:18
теперь в регистр источника канала К0 0177070 можно позаписывать
Кстати, это же совсем не тривиальная задача, вернее она тривиальная из ДМА УКНЦ, но будет ли она работать после выхода из ДМА?

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


Пока ВВОД не поднимется, ты не должен поднимать RPLY, а пока не поднимется RPLY, процессор не поднимет SYNC.
Елки!! Да это все упрощает, можно гору лишних проверок убрать.. А то я постоянно жду прилетевший из не откуда высокий SYNC

AFZ
02.03.2020, 23:20
Я там пропустил пр RPLY, сейчас подправил (выделено-подчеркнуто)

Alex_K
02.03.2020, 23:23
Кстати, это же совсем не тривиальная задача, вернее она тривиальная из ДМА УКНЦ, но будет ли она работать после выхода из ДМА?
После выхода из ДМА ПП продолжит работать дальше.
Только ваша программа должна переключаться из эмулятора -031 в тестер. Записали в регистр, вышли из ДМА, дальше эмулируем -031.

ZPilot
03.03.2020, 12:27
Не может. Пока ВВОД не поднимется, ты не должен поднимать RPLY, а пока не поднимется RPLY, процессор не поднимет SYNC.
А может процессор поднять SYNC вместо опускания ВВОДа или ВЫВОДа? Те ADDR->SYNC_L->задержка->SYNC_H.

Alex_K
03.03.2020, 12:32
А может процессор поднять SYNC вместо опускания ВВОДа или ВЫВОДа? Те ADDR->SYNC_L->задержка->SYNC_H.
Да вроде не может. Нет таких циклов обмена на шине.

Hunta
03.03.2020, 12:51
А может процессор поднять SYNC вместо опускания ВВОДа или ВЫВОДа?
Технически может. Но по идее это будет означать ошибку в процессоре :)

ZPilot
03.03.2020, 12:51
Да вроде не может. Нет таких циклов обмена на шине.
Тогда я могу упростить циклы, тк я постоянно проверяю SYNC_H, не сказать бы, что это сильно влияло на работу, но вот цикл чтение-модификация-запись уже с большим трудом успевает. Вернее даже так, из-за того, что все впритык по времени, мне приходится поднимать RPLY уже после того как процессор поднял SYNC, а это не правильно.

ZPilot
03.03.2020, 18:14
Непонятная мне ситуация с получением/возвратом ДМА, делаю сброс, УКНЦ перегружается и входит в стартовое меню, вижу мигающий курсор. Ввожу УКНЦ в режим ДМА, ни чего не делаю, отключаю ДМА. На ШДА вижу, что обмен данными идет (на осциллографе), но курсор на экране мигать перестал. Скорее всего комп подвис. Запись байта в режиме ДМА 0x37 по адресу о177070 (0xFE38) ни чего на экране не изменила. Если УКНЦ перегрузить, она перегружается и работает, это говорить, что эмулятор 1515хм1 работает. В чем может быть проблема?

Alex_K
03.03.2020, 18:21
Ввожу УКНЦ в режим ДМА, ни чего не делаю, отключаю ДМА. На ШДА вижу, что обмен данными идет (на осциллографе), но курсор на экране мигать перестал. Скорее всего комп подвис.
А при снятии сигнала SACK все остальные сигналы также снимаются, в том числе и шина адреса-данных?

ZPilot
03.03.2020, 18:26
А при снятии сигнала SACK все остальные сигналы также снимаются, в том числе и шина адреса-данных?
В общем, ситуация не много не такая, если войти в ДМА и выйти, то процентов на 90, что УКНЦ продолжит работать, в 10% ШДА и все сигналы остаются в высоком уровне при снятии SACK, связано с нерабочей 031 и проводами тестера.
Но вот после чтения или записи в ДМА - УКНЦ зависает всегда, даже если обмен, после выхода из ДМА, на шинах присутствует.

Alex_K
03.03.2020, 18:31
А как долго в режиме ДМА вы держите процессор?

ZPilot
03.03.2020, 18:44
А как долго в режиме ДМА вы держите процессор?
ну.. нажал кнопку на плате СТМ - вошел на УКНЦ в ДМА, нажал на клавиатуре циферку с выбором записи или чтения (уже на компе, общаемся через уарт), получил ответ, нажал кнопку выхода.. ну пусть будет секунд 20

Alex_K
03.03.2020, 19:05
ну.. нажал кнопку на плате СТМ - вошел на УКНЦ в ДМА, нажал на клавиатуре циферку с выбором записи или чтения (уже на компе, общаемся через уарт), получил ответ, нажал кнопку выхода.. ну пусть будет секунд 20
Возможно это долго. Уточнение по входу в режим ДМА из описания процессора 1801ВМ2. Для получения запроса устройство выставляет сигнал DMR. При получении сигнала DMGO устройство, запросившее прямой доступ, должно сначала выставить сигнал SACK и затем снять DMR. Рекомендуется снимать сигнал DMR по снятию сигнала DMGO.

ZPilot
03.03.2020, 19:11
выставить сигнал SACK и затем снять DMR
Я так и делаю.
А не могу я записью или чтением изменять какие-то регистры процессора, что он потом стартует не правильно?
Ведь если войти в ДМА, подождать немного ни чего не делая, а потом выйти, то УКНЦ продолжает работать нормально.

Alex_K
03.03.2020, 19:23
А не могу я записью или чтением изменять какие-то регистры процессора, что он потом стартует не правильно?
Нет, не можете. Из режима ДМА регистры процессора не доступны.
Про снятие DMR есть уточнение, что снимать его желательно по снятию сигнала DMGO.

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


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

ZPilot
03.03.2020, 20:01
ро снятие DMR есть уточнение, что снимать его желательно по снятию сигнала DMGO.
Делаю вот так:

"mov r1,#(DMR<<16) \n"
"str r1,[%[portb],BSRR] \n"

"wait_l_dmg: \n"
"ldr r1,[%[portb],IDR] \n"
"and r1,#(DMG) \n"
"cmp r1,#(DMG) \n"
"beq wait_l_dmg \n"

"mov r1,#(SACK<<16) \n"
"str r1,[%[portb],BSRR] \n"
"mov r1,#(DMR) \n"
"str r1,[%[portb],BSRR] \n"



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


ДМА переводите в неактивный высокий уровень
Да, и вроде бы ни про кого не забыл.
Выводы еще и open drain

AFZ
03.03.2020, 21:28
Вернее даже так, из-за того, что все впритык по времени, мне приходится поднимать RPLY уже после того как процессор поднял SYNC, а это не правильно. Странно это. Процессор обязан дождаться, когда абонент МПИ снимет RPLY и только после этого поднимать SYNC. Более того, это реальный способ завесить МПИ - если на ВВОД или ВЫВОД абонент не ответит RPLU, процессор, отсчитав тайм-аут, трапнется по 4-му вектору, а если абонент ответил, но не снял свой RPLY после того, как процессор снял свой ВВОД или ВЫВОД, он будет ждать, пока RPLY не снимется. Наблюдал не раз, ставя брекпоинт на какую-то из команд между выдачей и снятием RPLY. STM-ка вылетает в отладку, я что-то разглядываю в ее портах и регистрах, ЦП тихо ждет. При этом может испортиться содержимое динамической памяти; полсекунды оно как-то держится, а дальше - не факт.

ZPilot
05.03.2020, 19:43
Странно это. Процессор обязан дождаться, когда абонент МПИ снимет RPLY и только после этого поднимать SYNC
Наверное потому, что я слишком долго отвечаю на сигнал Ввод или Вывод? Дело в том, что мне надо проверить какой из 7 портов у хм1-031 вызван, а только потом подтянуть к земле RPLY, если вызвать сразу после определения, что обращаются к хм1-031, то для ПП у 031 появится еще 9 портов.

Alex_K
05.03.2020, 19:56
ZPilot, а подвисает у вас после ДМА, если производилось чтение или запись?

ZPilot
06.03.2020, 02:05
подвисает у вас после ДМА, если производилось чтение или запись
Нет, подвисала у меня в эмуляторе, тк там надо очень быстро отвечать на сигнал ВВОД/ВЫВОД опусканием RPLY, а приходится делать проверку номера порта:

cbz r5,em_write_031_man_00 @177700
cmp r5,#0x2 @177702
beq em_write_031_man_02
cmp r5,#0x4 @177704
beq em_write_031_man_04
cmp r5,#0x8 @177710
beq em_write_031_man_08
cmp r5,#0xA @177712
beq em_write_031_man_0A
cmp r5,#0xC @177714
beq em_write_031_man_0C
cmp r5,#0xE @177716
beq em_write_031_man_0E


Я кстати, разобрался, теперь не подвисает.

Господа-товарищи, хочу продолжить эмулятор, сделать опрос клавиатуры, но.. Поставил я ловушки на 177700 и 177702 порты и что я увидел? А ни чего! Те ПП ни разу (если не считать инициализации) к ним не обратился, что из этого получается? А получается, что 031 посылает сигнал прерывания с вектором в котором указан адрес драйвера клавиатуры, так? Если так, подскажите, это сигнал K1VIRQ или нужен еще какой сигнал?

Alex_K
06.03.2020, 10:43
Поставил я ловушки на 177700 и 177702 порты и что я увидел? А ни чего! Те ПП ни разу (если не считать инициализации) к ним не обратился, что из этого получается? А получается, что 031 посылает сигнал прерывания с вектором в котором указан адрес драйвера клавиатуры, так? Если так, подскажите, это сигнал K1VIRQ или нужен еще какой сигнал?
Всё правильно понимаете. Контроллер клавиатуры переводится в режим работы по прерываниям, а далее его обслуживает уже подпрограмма обработки прерываний.
Кроме VIRQ используются ещё IAKI(IAKO), DIN, RPLY.

ZPilot
06.03.2020, 21:01
Контроллер клавиатуры переводится в режим работы по прерываниям,
Те инициатором прерывания является 031?

А еще можно на русский перевести название сигналов: ТПР, ППР и СИП (требование прерывания,предоставление прерывания, синхросигнал пассивного устройства)
Да, еще маленький вопрос, адрес вектора клавиатуры о60? Выставляется как адрес на ШДА?

Alex_K
06.03.2020, 21:18
Те инициатором прерывания является 031?
Естественно. Нажимается клавиша, её код запоминается в регистре (если быть точнее, то замораживается счётчик), в регистре состояния по этому поводу устанавливается флаг готовности. И когда установлен флаг готовности и разрешения прерывания, то -031 и выдаёт запрос. Потом процессор инициирует запрос вектора прерывания, и как до -031 по приоритетной цепочке дойдёт запрос, то -031 выставляет адрес вектора прерывания.

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


А еще можно на русский перевести название сигналов: ТПР, ППР и СИП (требование прерывания,предоставление прерывания, синхросигнал пассивного устройства)
Точнее на английский:
ТПР = VIRQ
ППР = IAKI/IAKO
СИП = RPLY

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


Да, еще маленький вопрос, адрес вектора клавиатуры о60? Выставляется как адрес на ШДА?
Адрес вектора клавиатуры 0300. Да, выставляется на шину, смотрите соответствующий цикл обмена.

ZPilot
06.03.2020, 21:24
Спасибо!

ZPilot
07.03.2020, 12:11
Друзья, извиняюсь за "левый" вопрос, а есть у кого регистрация на Полигоне призраков?

Hunta
07.03.2020, 12:12
а есть у кого регистрация на Полигоне призраков?
Так там вроде регистрация свободная?

ZPilot
07.03.2020, 12:16
Так там вроде регистрация свободная?
Да, но либо я тутплю.. либо я туплю.. но ответить на контрольный вопрос я не могу, сколько бы не старался.
Просто нашел там в продаже 1515хм2-1

Hunta
07.03.2020, 12:26
Стерто, что бы не светить правильный ответ :)

ZPilot
07.03.2020, 12:40
?
Так са микэт! :) Все-таки я туплю!

Hunta
07.03.2020, 12:42
Так са микэт
Э? :)

ZPilot
07.03.2020, 12:45
Э?
Преогромнейши благодарю, сударь! :)

Hunta
07.03.2020, 12:50
Преогромнейши благодарю, сударь
Да ерунда. С таким и сам сталкивался - всё таки логика у людей может (и будет) отличаться. Кто то попадёт на ту же логику, что и автор, кто то нет :)
В том сообщении сотру, что бы в поисковиках не светить :)

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

Кстати, в вашем цитировании - лучше, наверное, то же :)

ZPilot
07.03.2020, 12:56
Кстати, в вашем цитировании - лучше, наверное, то же
Да, конечно

ZPilot
13.03.2020, 16:40
Друзья-товарищи, хочу выразить преогромнейшую благодарность в оказании помощи при починке моего многострадального УКНЦ. В начале я грешил на резисторные сборки ( начитавшись интернета :) ), потом на ПЗУ, память, но в голове постоянно ерзала мысль, что вот все живо, не хватает, чего-то совсем малюсенького. :) Так и вышло, этим малюсеньким оказалась БМК 1515хм1-031, после ее частичной эмуляции, а потом и замены, УКНЦ ожила!!! Еще раз - огромное спасибо за помощь!!!

Hunta
13.03.2020, 17:03
УКНЦ ожила
Удачи с игрушкой :)

ZPilot
19.03.2020, 00:30
Удачи с игрушкой
Не успел я нарадоваться отремонтированной УКНЦешкой, как мне позвонил друг. Сказал, что с его УКНЦ проблемы, стал смотреть. Симптомы - короновирус синий экран, моргающий курсор, иногда, после кучки сбросов, может появиться надпись о загрузки из сети, хотя сетевой платы нет. На ШДА ЦП сигналы присутствуют, но ЦП должен быть в ХАЛЬТ, но ХАЛЬТ в высоком. Короче, после длительных поисков, 1801ВП1-120 (Д18) вывод 41 (K1VIRQ) лежит в 0. Греем паяльником только эту ногу и сигнал потихонечку переходит в высокий и после этого, пока не остыл, УКНЦ работает, даже тесты проходит, сигналы K1VIRQ тоже после этого присутствуют. Как-то так! Вдруг кому пригодится.

SuperMax
19.03.2020, 10:06
Не успел я нарадоваться отремонтированной УКНЦешкой, как мне позвонил друг. Сказал, что с его УКНЦ проблемы, стал смотреть. Симптомы - короновирус синий экран, моргающий курсор, иногда, после кучки сбросов, может появиться надпись о загрузки из сети, хотя сетевой платы нет. На ШДА ЦП сигналы присутствуют, но ЦП должен быть в ХАЛЬТ, но ХАЛЬТ в высоком. Короче, после длительных поисков, 1801ВП1-120 (Д18) вывод 41 (K1VIRQ) лежит в 0. Греем паяльником только эту ногу и сигнал потихонечку переходит в высокий и после этого, пока не остыл, УКНЦ работает, даже тесты проходит, сигналы K1VIRQ тоже после этого присутствуют. Как-то так! Вдруг кому пригодится.

попробуйте прогреть паяльником центр микросхемы, в диаметре 1см
затем после прогрева в течении 10секунд - резкое охлаждение спиртом микросхему + обдув. (испаряющийся спирт заберет много тепла).
и так 3-4 раза. да, все это делается на выключенной машине.

ps: что важно, если оживет, то надолго. я так лечил 037е и прочие микросхемы с нарушением контакта на кристалле.

ZPilot
23.03.2020, 16:18
попробуйте прогреть паяльником
Спасибо за совет, но к тому моменту, что я прочитал ваше сообщение, я ее уже выпаял и заказал новую. Пришла, поменял, работает. Но все равно - огромное спасибо!!! Учту на будущее!!

hobot
23.03.2020, 17:40
Пришла, поменял, работает. Но все равно - огромное спасибо!!! Учту на будущее!! так получается у нас всё таки +1 пользователь реала? завелась машинка?

parsec
23.03.2020, 21:10
Не подскажут ли многоуважаемые гуру, как ведёт себя видеоконтроллер 036, 136 при включении/отсутствии инициализации? Иначе, будет ли растр, если нет ПЗУ? Долго лежала УКНЦ, вместо ПЗУ панельки, потом нашлись и ЭСПЗУ. Ардуиной были выяснены адреса и микросхемы расставлены в панельки. Осциллографом виден старт ПП, ЦП, транзакции между видеоконтроллером, но никаких синхроимпульсов в сторону видео не наблюдается. Неверная, предположительно, установка приводит к отсутствию старта ЦП. Есть сомнения и по содержимому ПЗУ, вообще неизвестно что эта за устройство было. По признакам плата квант. Установлена в железный корпус, с разъёмами. Может это какой то промышленный контроллер на базе УКНЦ и там вообще своя прошивка. Чтобы дальше копать, хотелось бы узнать, будут ли идти синхроимпульсы с видеоконтроллера?

Alex_K
23.03.2020, 21:57
Не подскажут ли многоуважаемые гуру, как ведёт себя видеоконтроллер 036, 136 при включении/отсутствии инициализации? Иначе, будет ли растр, если нет ПЗУ?
Растр должен быть, видеоконтроллер работает независимо. При включении питания он инициализируется по входу MO (вывод 56). Сначала на этом входе при включении питания низкий уровень, потом переходит в высокий. На входах CLC1 и CLC2 (выводы 60 и 61) должен быть синхросигнал частотой 6,25 МГц.

hobot
23.03.2020, 22:34
Установлена в железный корпус, с разъёмами. Может это какой то промышленный контроллер на базе УКНЦ и там вообще своя прошивка. Чтобы дальше копать,
а есть ли возможность качественное фото сделать этого скажем так "узла" )))

parsec
24.03.2020, 18:39
Alex_K, спасибо. Видео вообще никаких импульсов. Уже и ноги выходные приподнимал - какие-то наводки еле, еле пробиваются. Засомневался потом, что выходы ОК, не подтягивал. Странно, что вроде ещё буфера стоят, с чего выходам выбить? RQ, CC0, CC1 -какие-то пачки летят, читал что должны. На полигоне призраков купил комплект микросхем, надеюсь перепаять.

hobot, https://yadi.sk/d/9UZpIn9TRsvgDA вот это чудо. Фотографировал на "тапок". Могу сделать лучшего качества.

hobot
24.03.2020, 19:25
parsec, что за карта расширения и интерфейс (похож на ком-порт) и главное - как управляется без клавиатуры?
что подключается через эту карту?

parsec
24.03.2020, 19:32
Ничего про это не знаю :(. Сам хотел спросить. Я думал, сначала, что она может через последовательный порт грузится, так через кабель вообще ничего в порт не упало.

Hunta
24.03.2020, 19:34
Корпус, да и блок питания, напоминает терминал Зелакс-Секунду
http://tis.kz/temp/zelax/003.jpg

parsec
24.03.2020, 19:49
Hunta, очень похоже, спасибо.

Hunta
24.03.2020, 19:56
Да не за что.
Собственно, Зелакс-Секунда - это хорошо отпрепарированно-переделенная УК-НЦ.
Но стоит плата именно от УК-НЦ, вот только с клавиатурой непонятки
И за что отвечает XM2-001 - не помню, но думаю - знатоки подскажут и можно будет предположить, что она там делает.

Arseny
24.03.2020, 21:16
И за что отвечает XM2-001 - не помню, но думаю - знатоки подскажут и можно будет предположить, что она там делает.
Дык, за клавиатуру и отвечает. XM1-031 -> XM2-001. Скорее всего там обычная XT (или AT) клава подключается. Вроде тут писали, что если прошивку переделать, то и на обычную УКНЦ так можно. А тут точно прошивка своя - переделанная.

Hunta
24.03.2020, 22:50
корее всего там обычная XT (или AT) клава подключается.
Ну, в Зелакс-секунде как раз XT и использовалась. Вроде :) Я так и не нашёл пока - не могу подтвердить наверняка :)

ZPilot
26.03.2020, 21:09
так получается у нас всё таки +1 пользователь реала? завелась машинка?
Да, завелась. У моего товарища она с контроллером ФДД и Готеком к нему.

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


И за что отвечает XM2-001 - не помню,
Попадалась на просторах интернета, когда я искал в свою УКНЦ 1515хм1-031, вроде была плата джойстика, но мне кажется это не принципиально, подключить можно было, наверное, и ХТ клаву.

hobot
27.03.2020, 03:09
Да, завелась. У моего товарища она с контроллером ФДД и Готеком к нему.
тогда ему прямая ссылка в оглавление сайта - архива! И почему он не форуме, ваш приятель? ;-)

ZPilot
29.03.2020, 12:25
И почему он не форуме
Вы не поверите, но это он на форуме, а не я! Я просто его электронная копия :) На самом деле, я просто не смог здесь зарегистрироваться, вот он дал мне возможность общаться с Вами, а я починил его УКНЦ. :)

parsec
11.04.2020, 14:48
Занялся этим (https://zx-pk.ru/threads/29614-uknts-otsutstvie-mikroskhemy.html?p=1053192&viewfull=1#post1053192), тем более что комплект, заказанный на полигоне призраков, давно пришёл. На всякий случай проверил буфер ЛН1, потыкал +/- по выходу 1515ХМ1-136, выход ЛН1 переключается. Перепаял 1515ХМ1-136. Подсоединял к LED Samsung'у, нет сигнала ни через AV, ни через скарт. Достал старый ЭЛТ, картинку отображает. Появился растр, при включении экран очищается, а дальше тишина. Буду продолжать изыскания. Начал уже в себе сомневаться, а был ли битый видео контроллер? Без косяков запаять с первого раза не получилось, всё спешка от радости, недостаточно загнул ножки, выползли дальше за площадки. Местами маска слезла. На месте ноги подгибать пытался - выглядит жутковато. Замыкания устранил, запустил, осциллограммы появились. Пайка не понравилась, снял, подогнул ножки получше, одну контактную площадку слизало. Проводянкой под чип восстановил, Пропаял получше - канифоли мало не бывает. На старом виеоконтроллере не такие осциллограммы были, всё-таки старый, по видимому, дохлый. Добавил фото на https://yadi.sk/d/9UZpIn9TRsvgDA.

ZPilot
12.04.2020, 21:11
Занялся этим,
646 растворитель + кисточка - приводят плату в "заводской вид"! Всегда мою, потому как от долгого хранения в неподходящем месте могла покрыться чем угодно.
А так полосы похожи не те, что были у меня, не стартовал ЦПУ из-за неисправной ХМ1-031 (у вас ХМ2). Проверьте если жизнь у ЦПУ (Д3), например на выводах 2-9, 32-39.
Да, по идее, включать можно без платки джойстиков в колодке.

Hunta
12.04.2020, 21:13
646 растворитель + кисточка - приводят плату в "заводской вид"!
В значительном количестве случаев хватает воды, жидкого мыла и душа :)

ZPilot
12.04.2020, 21:16
В значительном количестве случаев хватает воды, жидкого мыла и душа
Не-не-не... растворитель забористей :) Плюс растворяет флюсы/канифоли

Hunta
12.04.2020, 21:20
Плюс растворяет флюсы/канифоли
Плюс может растворить чего то лишнее. Предпочитаю удалять не удалившееся на первом этапе точечным ударом :) Обычно хватает изопропанола :)

ZPilot
12.04.2020, 21:24
Плюс может растворить чего то лишнее.
На моей памяти "лишнее" это отмывшийся оттиск заводского штампа поставленный обычной Радугой на белом керамическом корпусе ВМ2, каюсь.. Все остальное на плате по идее не поддается 646.. если конечно не мыть в корпусе.

Hunta
12.04.2020, 21:26
по идее не поддается 646
Ключевое слово - по идее. В общем, я не рискую :)

ZPilot
12.04.2020, 23:17
В общем, я не рискую
ну как говорится: на вкус и цвет все фломастеры.. я вот воды побаиваюсь, она может попасть в межслойку и наделать беды больше чем было.

parsec
04.01.2022, 20:34
Дык, за клавиатуру и отвечает. XM1-031 -> XM2-001. Скорее всего там обычная XT (или AT) клава подключается. Вроде тут писали, что если прошивку переделать, то и на обычную УКНЦ так можно. А тут точно прошивка своя - переделанная.

На выходных решил заняться с этой машинкой. Давно ардуинкой считал ID микросхем ПЗУ, хотел сделать программатор, но.... Товарищ дал покататься не сочтите за рекламу (https://stm32-base.org/boards/STM32F407ZGT6-STM32F4XX). Собрал micropython, залил, поигрался. СТМки толерантны к 5 вольтам, на ней сделал читалку (https://disk.yandex.ru/i/dLtuFMWnZ6pL7A). Вычитал содержимое, проинвертировал, пересортировал - из-за особенностей интерфейса. Прошивки от УКНЦ отличаются. Слил в одну, подсунул в emulyator-uknts-emustudio (https://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html) - эмулятор завёлся. На экране отобразилось (https://disk.yandex.ru/i/HF1dNf5zIHRoTg), зелёные часики шли, по F8 (https://disk.yandex.ru/i/Y1K2VXSZJn5MCA). Заработало в комбинации прошивок 1230. Все микросхемы поставил в обратном порядке на плату: результат (https://disk.yandex.ru/i/O3V4-RjYUXFN_g). Все файлы здесь (https://disk.yandex.ru/d/9UZpIn9TRsvgDA).

Hunta
04.01.2022, 20:52
Похоже на эмуляцию фрязинского терминала 15ИЭ-00-013

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

Значит, не Зелакс-секунда :)

parsec
04.01.2022, 20:58
Вообще ни разу не видел как это всё работает :(. Было любопытство, теперь вот что с этим со всем делать? Информации маловато, техника для наших мест экзотическая. А дальше - больше. Буду гуглить по ключевым словам.

Hunta
04.01.2022, 21:08
Если его переделали в терминал, то единственный способ как то задействовать - это подцепить к компу а-ля PDP-11 (или какому ещё, работающему с терминалами) по последовательному каналу. Но есть проблемы - у фрязинского клава малость другая.. :)

parsec
04.01.2022, 21:23
У меня вообще никакой клавы к нему нет :( Здесь писали о XT. Что вообще на этой плате расширения стоит? К каким интерфесам его присоединить можно? По прошивкам БМК вообще тёмный лес.

Hunta
04.01.2022, 21:31
По Зелакс-Секунде от продавца была инфа, что да - XT-шная. Судя по разъёму (крайний левый, если смотреть сзади) - тоже похоже на то. Ну и крайний правый (рядом с блоком питания) - почти наверняка RS232

parsec
04.01.2022, 21:33
А в каких режимах и как стартует эта коробка? Кроме отображения на экране, ещё что-либо можно от неё получить, в условиях когда полный нуб?

Hunta
04.01.2022, 21:38
А в каких режимах и как стартует эта коробка? Кроме отображения на экране, ещё что-либо можно от неё получить, в условиях когда полный нуб?
Технически, если её подцепить по серийнику к чему нибудь (по идее - можно даже к PC), что может через него что то отправлять-получать, то с ней можно пообщаться, по крайне мере, на вывод. Но боюсь, что если

полный нуб?
то почитать чего то всё таки придётся :)

parsec
04.01.2022, 21:44
Технически, если её подцепить по серийнику к чему нибудь (по идее - можно даже к PC), что может через него что то отправлять-получать, то с ней можно пообщаться, по крайне мере, на вывод. Но боюсь, что если

то почитать чего то всё таки придётся :)
Гуглил порядочно. Функционально не представляю что эта коробка из себя представляет. Если по компьютеру более менее понятно, то по терминалам на базе этого компьютера - вообще ничего. Мощи в ней (коробке) много, что её просто не юзают?

Hunta
04.01.2022, 21:55
Если вкратце, терминал - это клавиатура, монитор и нечто, что умеет с клавиатуры нажатые символы отправлять в некую линию (в нашем случае RS232), и принятые по другой линии (тоже RS232 в нашем случае) красиво (или не очень) отображать на мониторе, достаточно часто - в алфавитно-цифровом режиме (то есть сколько то строк, сколько то столбцов и только цифро-буквы). Частенько эти терминалы некоторые символы (или их комбинации) воспринимать как команды, а не отображать их. Типа - перейти в начало строки, перейти на следующую строку, очистить все с экрана и т.д.

Titus
04.01.2022, 22:00
Слил в одну, подсунул в emulyator-uknts-emustudio - эмулятор завёлся. На экране отобразилось, зелёные часики шли, по F8. Заработало в комбинации прошивок 1230. Все микросхемы поставил в обратном порядке на плату: результат. Все файлы здесь

Стоп-стоп.
То, что на экране эмулятора - это эмуляция, как правильно сказал Hunta, фрязинского терминала. В нее можно переключиться принудительно по клавише F9, или же если программа записывает что-то в регистры, которые эмулятор считает принадлежащими ДВК, поэтому и переключается в режим ДВК. По клавише F8 можно переключиться в режим КСМ (тоже ДВК), а по F7 в режим УКНЦ, а по F6 в режим КЦГД.
Так что эти режимы не имеют отношения к УКНЦ, а появляются лишь потому, что эмулятор гибридный (смесь хорька, барсука и штопора - УКНЦ, ДВК, Э-85 и прочих).

parsec
04.01.2022, 22:09
Вот вот. Это я как раз и представляю, только вот получается на такой двухпроцессорной машине стрельба из пушки по воробьям?

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


Стоп-стоп.
То, что на экране эмулятора - это эмуляция, как правильно сказал Hunta, фрязинского терминала. В нее можно переключиться принудительно по клавише F9, или же если программа записывает что-то в регистры, которые эмулятор считает принадлежащими ДВК, поэтому и переключается в режим ДВК. По клавише F8 можно переключиться в режим КСМ (тоже ДВК), а по F7 в режим УКНЦ, а по F6 в режим КЦГД.
Так что эти режимы не имеют отношения к УКНЦ, а появляются лишь потому, что эмулятор гибридный (смесь хорька, барсука и штопора - УКНЦ, ДВК, Э-85 и прочих).

Я, к сожалению, не сильно понимаю в этом. У меня была машина, работоспособность которой была под вопросом. Опозналась как УКНЦ, а здесь же мне подсказали о Зелакс секунда. прошивки там другие. Считав их и подсунув в рабочую машину (эмулятор), я убедился что какая то реакция на байт-код есть. В неправильной комбинации прошивок результат другой. Здесь же я интересовался признаками работоспособности видеоконтроллера. После его замены на мониторе ещё не было ничего, что я бы посчитал осмысленным. А вот после того, как я убедился что дампы ПЗУ что-то содержат, выставил их правильно. На мониторе появилось "СТАРТОВЫЙ ТЕСТ НЕ ЗАПУЩЕН ЦП". Может там и ещё что-то не работает, но вот что и как проверить?

Alex_K
04.01.2022, 22:49
Все файлы здесь.
В файле прошивок по адресам 0120000-0137777 и 0140000-0157777 одинаковое содержимое, наверное скопировали одну микросхему два раза. Содержимое с адреса 0160000 правильное, присутствуют вектора прерываний HALT-режима. Там же говорится и о терминале Зелакс-секунда. Адреса 0100000-0117777 скорее всего стоят не на своём месте.

parsec
04.01.2022, 23:10
В файле прошивок по адресам 0120000-0137777 и 0140000-0157777 одинаковое содержимое, наверное скопировали одну микросхему два раза. Содержимое с адреса 0160000 правильное, присутствуют вектора прерываний HALT-режима. Там же говорится и о терминале Зелакс-секунда. Адреса 0100000-0117777 скорее всего стоят не на своём месте.

Не силён в несколько непривычной восьмеричной системе, но вроде ничего не путаю. Все образы слил в один, чтобы запустить в эмуляторе. Порядок именно такой, проверил ещё раз. На всякий случай https://disk.yandex.ru/d/9UZpIn9TRsvgDA положил образы считанные (rom_0-3.bin) и конвертированные (rom_0-3.dat). Цифры 0-3 это id микросхем, когда по AD13-AD15 отвечали по RPLY.

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

Установка в панельки слева направо микросхем ID 0,1,2,3. Для эмулятора слил в порядке 1230. ID 0 подсоединена к ПП, 123 к ЦП. Надписи карандашом на фотографии - это рудименты, достались по наследству.

Alex_K
04.01.2022, 23:17
На всякий случай https://disk.yandex.ru/d/9UZpIn9TRsvgDA положил образы считанные (rom_0-3.bin) и конвертированные (rom_0-3.dat).
rom_0 - адреса 0160000-0177777.
rom_1 - адреса 0140000-0157777.
rom_2 - адреса 0120000-0137777.
А вот содержимое rom_3 полностью идентично содержимому rom_2. Возможно считали два раза одну и ту же микросхему.

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


Для эмулятора слил в порядке 1230. ID 0 подсоединена к ПП, 123 к ЦП.
Для эмулятора надо в порядке 3210. И все они сидят на шине ПП, только микросхему 3 можно программно отключить, а остальные нет.

Radon17
04.01.2022, 23:20
О каком 013-м терминале вообще речь??
На скриншоте эмулятор EmuStudio. Это ОН эмулирует кучу всего, в т.ч. 013, КЦГД, КГД и пр.
Подкиньте лучше к UKNCBTL. Исходники открытые, можно собрать тупо поменяв файлы прошивок.

А вообще у меня к самодельным читалкам отношение скептическое. Советую перечитать программатором Sterh ST-011. Такой есть у меня и многих форумчан, можете прислать микросхемы почтой с возвратом.

parsec
04.01.2022, 23:34
rom_0 - адреса 0160000-0177777.
rom_1 - адреса 0140000-0157777.
rom_2 - адреса 0120000-0137777.
А вот содержимое rom_3 полностью идентично содержимому rom_2. Возможно считали два раза одну и ту же микросхему.

Виноват, ошибочка вышла. Но не при считывании, а при конвертации. 2-3 сохранились одинаково. rom.dat перезалил.


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


Для эмулятора надо в порядке 3210. И все они сидят на шине ПП, только микросхему 3 можно программно отключить, а остальные нет.

Слитый образ сейчас проверю.

Alex_K
04.01.2022, 23:36
А вообще у меня к самодельным читалкам отношение скептическое. Советую перечитать программатором Sterh ST-011. Такой есть у меня и многих форумчан, можете прислать микросхемы почтой с возвратом.
Качество чтения можно проверить по содержимому файлов. В файле rom_0 есть 16-битные контрольные суммы ПЗУ - 0x1DF8 - rom_3, 0x1DFA - rom_2, 0x1DFC - rom_1, 0x1DFE - rom_0. Для rom_0 КС считается только для адресов 0x0000-0x1DFD. КС считается словами по 16 бит с прибавлением бита переноса. Сама п/п проверки КС из ПЗУ оригинальной УКНЦ:

; Подпрограмма теста ПЗУ ПП
160410$:MOV #4,R5 ; R5 = число банков ПЗУ
MOV #176776,R1 ; R1 = конечный адрес ПЗУ
MOV #7377,R2 ; R2 = число слов последнего банка ПЗУ
CLR R0 ; Очистка признака ошибок
160426$:ASL R0 ; Освободить правый бит
CLR R3
160432$:ADD -(R1),R3 ; Вычисление контрольной суммы
ADC R3
SOB R2,160432$
ASL R5
CMP <176770$-2>(R5),R3 ; Сравнение с записанной в ПЗУ
BEQ 160452$ ; Совпадает
INC R0 ; Установить правый бит
160452$:ASR R5
MOV #10000,R2 ; R2 = число слов в 1,2 и 3 банках ПЗУ
SOB R5,160426$
RETURN

parsec
04.01.2022, 23:39
В общем для эмулятора оказалось по барабану: 3210 или 1230. По схеме 123 или 321 сидят на одной шине, а 0 отдельно, потому, наверное, работает.

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


О каком 013-м терминале вообще речь??
На скриншоте эмулятор EmuStudio. Это ОН эмулирует кучу всего, в т.ч. 013, КЦГД, КГД и пр.
Подкиньте лучше к UKNCBTL. Исходники открытые, можно собрать тупо поменяв файлы прошивок.

А вообще у меня к самодельным читалкам отношение скептическое. Советую перечитать программатором Sterh ST-011. Такой есть у меня и многих форумчан, можете прислать микросхемы почтой с возвратом.

Так его собирать же надо.... А вот в этом эмуляторе биос отдельно лежит. За предложение спасибо, если ничего не выйдет - то да.

Hunta
04.01.2022, 23:39
Фотографии моего шайтан-дивайса http://www.KpXX.Ru/Зелакс-Секунда
И содержимое его пзу http://www.KpXX.Ru/Зелакс-Секунда/ROM

parsec
04.01.2022, 23:41
Качество чтения можно проверить по содержимому файлов. В файле rom_0 есть 16-битные контрольные суммы ПЗУ - 0x1DF8 - rom_3, 0x1DFA - rom_2, 0x1DFC - rom_1, 0x1DFE - rom_0. Для rom_0 КС считается только для адресов 0x0000-0x1DFD. КС считается словами по 16 бит с прибавлением бита переноса. Сама п/п проверки КС из ПЗУ оригинальной УКНЦ:


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

Hunta
04.01.2022, 23:42
Что бы можно было скачать - файлы переименовал, но теперь из-за кэширования они ещё не видны. Можно скачать, добавив к адресу имена M1.bin, M2.bin и M.bin :)

parsec
04.01.2022, 23:43
Фотографии моего шайтан-дивайса http://www.KpXX.Ru/Зелакс-Секунда
И содержимое его пзу http://www.KpXX.Ru/Зелакс-Секунда/ROM
Видел, как же :). Только у меня не эмулятор ПЗУ. Сейчас проверю по содержимому.

А rom'ки то недоступны :(

Скачал!

Hunta
04.01.2022, 23:47
А rom'ки то недоступны
Я написал - как можно скачать


Только у меня не эмулятор ПЗУ
Там не эмулятор, там обычные ПЗУ плюс интерфейс для общения по QBUS

parsec
04.01.2022, 23:57
Я написал - как можно скачать

Спасибо, просто сообщение позже пришло. Справился :)

А содержимое ПЗУ отличается... Кто-то похачил мои, но с учётом предистории это возможно.... Она и стартует по-другому.



Там не эмулятор, там обычные ПЗУ плюс интерфейс для общения по QBUS
Да, виноват, выразился не совсем корректно :), но в рамках https://zx-pk.ru/threads/28907-apparatnyj-emulyator-radio-86rk-na-esp8266.html и https://zx-pk.ru/threads/30072-emulyator-bk-0011m-na-esp8266.html

Alex_K
05.01.2022, 00:37
В общем для эмулятора оказалось по барабану: 3210 или 1230.
Для эмулятора это не по барабану, должно быть 3210. На UKNCBTL запускается, но ошибка ПЗУ 3, это который rom_1.

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


А содержимое ПЗУ отличается... Кто-то похачил мои, но с учётом предистории это возможно.... Она и стартует по-другому.
parsec, у вас версия 3.04, у Hunta версия 4.2. В версии 4.2 все контрольные суммы ПЗУ в норме, но никакого вывода на экран нету.

parsec
05.01.2022, 07:30
Для эмулятора это не по барабану, должно быть 3210. На UKNCBTL запускается, но ошибка ПЗУ 3, это который rom_1.

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


parsec, у вас версия 3.04, у Hunta версия 4.2. В версии 4.2 все контрольные суммы ПЗУ в норме, но никакого вывода на экран нету.

Точно, не по барабану. Запутался сам и всех чуть не запутал. Rom ID, я так понял, - это то, на какие значения AD13-AD15 микросхема выставила RPLY. Перебирал я их последовательно от 0 до 7. Шина инверсная, соответственно: 3 - это 011, в инверсии даёт 1_00X, 2 - 010, инверсия 1_01X, 1 - 001, инверсия 1_10X, 0 - 000, инверсия 1_11X.

В файле прошивок по адресам 0120000-0137777 и 0140000-0157777 одинаковое содержимое, наверное скопировали одну микросхему два раза. Содержимое с адреса 0160000 правильное, присутствуют вектора прерываний HALT-режима. Там же говорится и о терминале Зелакс-секунда. Адреса 0100000-0117777 скорее всего стоят не на своём месте.
Собственно вот адресная карта из этого и вырисовывается. Надо попробовать собрать UKNCBTL (https://zx-pk.ru/threads/6257-emulyator-uknts-ukncbtl.html).

По F7 в emustudio (https://disk.yandex.ru/i/9ARijpDt6HISIA)

Попробовал собрать UKNCBTL (https://zx-pk.ru/threads/6257-emulyator-uknts-ukncbtl.html). 13 студии нет, собирал в 10. Оказалось что можно было не собирать, достаточно подкинуть файл uknc_rom.bin, и он подцепится как биос. Вот получилось (https://disk.yandex.ru/i/oie9SHcsR2GnDg).

Alex_K
05.01.2022, 10:47
На UKNCBTL запускается, но ошибка ПЗУ 3, это который rom_1.

Вот получилось.
parsec, убедительная просьба, попробуйте перечитать rom_1. По фото на реальной машине у вас этой ошибки нет, но зато есть другая. Даже судя по виду экрана, что-то с ОЗУ ЦП.

parsec
05.01.2022, 11:47
Перечитал! Стартует успешно (https://disk.yandex.ru/i/qxzm8QVd4xB44A) в emulyator-uknts-ukncbtl (https://zx-pk.ru/threads/6257-emulyator-uknts-ukncbtl.html). Случайно, пытаясь закрыть эмулятор по Alt+F4, выбросило тоже в нормальное окно. Ещё раз попробовал после ошибки ПЗУ нажать F4 - выбросило нормальную надпись. Обновил файлы на https://disk.yandex.ru/d/9UZpIn9TRsvgDA. Так (https://disk.yandex.ru/i/3WVhqYOoxFEQUw) в emustudio (https://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html) при нажатии клавиш, иначе просто синий экран.

Исходники открытые, можно собрать тупо поменяв файлы прошивок.
Можно так (https://zx-pk.ru/threads/29614-uknts-otsutstvie-mikroskhemy.html?p=1142335&viewfull=1#post1142335)

Alex_K, да, придётся разбираться с реалом

Hunta
05.01.2022, 11:55
Значит, всё таки Зелакс-Секунда, просто более ранняя версия :) А потом, похоже, РР1 закончились - и сделали переходник :)

Radon17
05.01.2022, 17:08
Стартует успешно
А не скинете ли собранный exe?

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

А хотя... :)
Собрал сам.

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

А прошивка от Hunta вот так "в лоб" не заработала.

Hunta
05.01.2022, 17:16
Ну там как бы и не УК-НЦ, хотя и что то похожее :)

Radon17
05.01.2022, 17:32
Ахаха :D
А терминал-то рабочий.
Можно совершенно спокойно юзать с эмулятором ДВК.

https://pic.maxiol.com/thumbs2/1641392726.1559557793.zelaks.png (https://pic.maxiol.com/?v=1641392726.1559557793.zelaks.png&dp=2)

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

И клавиатура работает, что вообще интересно. С завода-то там должна XT-клавиатура идти вроде как. Или они родную клаву для отладки использовали...

Вот тетрис, пожалуйте.
https://pic.maxiol.com/thumbs2/1641393055.1559557793.zelaks1.png (https://pic.maxiol.com/?v=1641393055.1559557793.zelaks1.png&dp=2)

parsec
05.01.2022, 17:46
А не скинете ли собранный exe?

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

А хотя... :)
Собрал сам.

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

А прошивка от Hunta вот так "в лоб" не заработала.

Можно не собирать. https://github.com/nzeemin/ukncbtl/blob/master/emulator/Emulator.cpp#L84, если не находит https://github.com/nzeemin/ukncbtl/blob/master/emulator/Emulator.cpp#L76 то берёт из ресурсов.

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


Ахаха :D
А терминал-то рабочий.
Можно совершенно спокойно юзать с эмулятором ДВК.

https://pic.maxiol.com/thumbs2/1641392726.1559557793.zelaks.png (https://pic.maxiol.com/?v=1641392726.1559557793.zelaks.png&dp=2)

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

И клавиатура работает, что вообще интересно. С завода-то там должна XT-клавиатура идти вроде как. Или они родную клаву для отладки использовали...

Вот тетрис, пожалуйте.
https://pic.maxiol.com/thumbs2/1641393055.1559557793.zelaks1.png (https://pic.maxiol.com/?v=1641393055.1559557793.zelaks1.png&dp=2)

А нет ли более подробной информации по терминалу? Ничего что-то не нашёл :(

Radon17
05.01.2022, 17:55
А нет ли более подробной информации по терминалу? Ничего что-то не нашёл
Не, у меня ничего нет.
А что собственно интересует? Мне кажется что всё и так ясно. Фирма Зелакс (zelax.ru) в 92-93 годах переделывала УКНЦ в терминалы и продавала оные.

parsec
05.01.2022, 18:00
Radon17, всё-таки такая мощность двухпроцессорной машины просто терминал? А как вообще это работает? Что туда писать, нажимать надо?

Radon17
05.01.2022, 18:11
всё-таки такая мощность двухпроцессорной машины просто терминал?
Полагаю что на момент 92-93 года машины типа УКНЦ не могли составлять конкуренцию хлынувшим в страну PC. Вот их и продавали по дешёвке хоть кому-то.
С точки зрения фирмы-разработчика гораздо проще и дешевле адаптировать уже существующий компьютер к какой-то задаче, чем разрабатывать всё самим с нуля.

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

А как вообще это работает? Что туда писать, нажимать надо?
Куда "туда"?
Терминал подключается кабелем к вычислительной машине, является устройством ввода-вывода. (грубо - клавиатура + монитор (текстовый в данном случае) + последовательный интерфейс).

parsec
05.01.2022, 18:16
Куда "туда"?
Терминал подключается кабелем к вычислительной машине, является устройством ввода-вывода. (грубо - клавиатура + монитор (текстовый в данном случае) + последовательный интерфейс).
Ага, если я правильно понял, на картинках эмулятор с прошивкой Зелакс-секунда подсоединён через (виртуальный?) com-порт к работающей (в эмуляторе?) машине (ДВК?)

Radon17
05.01.2022, 18:24
Ага, если я правильно понял, на картинках эмулятор с прошивкой Зелакс-секунда подсоединён через (виртуальный?) com-порт к работающей (в эмуляторе?) машине (ДВК?)
Да, всё верно.
Через драйвер виртуального последовательного порта создаётся пара COM1 <---> COM2. Эмулятор ДВК (https://zx-pk.ru/threads/18351-emulyator-dvk.html) с конфигом COM1 (из комплекта поставки) подключается собственно к COM1. UKNCBTL подключается к COM2 в настройках.

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

А самое лучшее в такой конфигурации в том, что любой компонент можно очень легко заменить с виртуального на реальный. Что терминал, что вычислитель.

Radon17
05.01.2022, 21:32
А кто-нибудь догадался как вот эти тесты завести? Может клавишу какую нажать при загрузке?

https://pic.maxiol.com/images2/1641407538.1559557793.zel.png

Alex_K
06.01.2022, 14:19
А кто-нибудь догадался как вот эти тесты завести? Может клавишу какую нажать при загрузке?
Наверное надо дизассемблировать ПЗУ и разобраться в работе. Мне только через отладчик UKNCBTL удалось выскочить в пультовый монитор ЦП, он нового типа, такой же как в ПЗУ нового типа, которые в серию не пошли. Более ничего не добился.
Сама программа терминала, которая грузится в ЦП, занимает не очень много, адреса с 01000 по 03004.

Так что завести тесты может можно только с внешней клавиатуры.

Hunta
06.01.2022, 14:28
Наверное надо дизассемблировать ПЗУ и разобраться в работе
Немного позже попробую. Как ни странно, но DisAsm на ней очень любит падать, поэтому в лоб не получилось.

Alex_K
06.01.2022, 14:35
Немного позже попробую. Как ни странно, но DisAsm на ней очень любит падать, поэтому в лоб не получилось.
ПЗУ УКНЦ лучше всего дизассемблировать вручную, там код перемешан с данными. Да и данные могут быть не только строками, но и различными таблицами адресов, значений. Плюс к тому же придётся разобраться с распределением памяти, какая ячейка за что значит. А уж потом и понять логику работы. В ПЗУ терминала конечно кое-что полегче, нет дисковода, магнитофона, вероятно отсутствует графический дисплей. Но там реализована, как я понял, система команд VT-100, да и разобраться с работой с внешней клавиатурой надо.

Hunta
06.01.2022, 14:42
там код перемешан с данными
Как раз именно такой сценарий рассматривался как основной при написании DisAsm-11, поэтому он не пытается дизассмеблить всё тупо в лоб. А учитывая его интерактивность - легко давать подсказки - как трактовать данную (данные) ячейку (ячейку).

Hunta
07.01.2022, 17:49
Вчера не успел - провозился с восстановлением стенда PDP-11 и некоторыми экспериментами на нём.
Но сегодня поковырялся. Ценное ПЗУ - во-первых, поправил в DisAsm некоторое количество ошибок (из за которых он и вылетал при попытке дизасма ПЗУ Зелакс-Секунды), поправил некоторую неточность вывода ASCII(Z) (эта сссссссскотина уже попила у меня крови и ещё попьёт)

Результат выложил туда же - http://www.KpXX.Ru/Зелакс-Секунда/ROM

M.MAC - исходник, ASCII.MAC и HWDF.MAC - определения некоторых символов (это не конкретно для M.MAC - файлы как бы общие и на них завязан функционал DisAsm-a, думаю в будущих версиях DisAsm-а сделать по другому), r.cmd - файл, которым я всё это хозяёство транслирую и собираю. При трансляции 6 (шесть) ошибок класса Z - то есть пометка команд, которые на разных PDP-11 дают разный результат, но посколько выполнение не предполагается на не1801ВМ2 - на них можно забить.

На выходе, если у M.SAV подрезать начало - первые 32 кб, результат один в один с исходником.

Кому будет не лень и кого будет интерес - может поковыряться для понимания логики :)

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

А, да, вдогонку :) Это результат быстрого, чернового так сказать, дизасма :) В логике не особо разбирался, не все адреса сделаны метками и никаких меток для рабочего ОЗУ (кстати, мысль по поводу улучшения работа DisAsm-а - добавления функционала, когда рабочее ОЗУ не в адресном пространстве дизассмеблируемого модуля, ну и возможность добавления-переименования меток надо бы уже добавить - руки только не доходят :) )

Alex_K
07.01.2022, 18:22
Результат выложил туда же - http://www.KpXX.Ru/Зелакс-Секунда/ROM
Файлы в каталоге вижу, а скачать не получается - ошибка 404.

Hunta
07.01.2022, 18:24
Alex_K, спасибо!

Фиксед.

Alex_K
07.01.2022, 22:00
Адаптер клавиатуры, который собран на 1515ХМ2-001. Чтобы не конфликтовать со штатной микросхемой УКНЦ, в данном адаптере поменяли местами линии адреса данных AD4 и AD8. Соответственно по адресам регистров получается такое соответствие:
177700 - 177320
177702 - 177322
177704 - 177324
177710 - 177330
177712 - 177332
177714 - 177334
177716 - 177336
У данной микросхемы адреса векторов прерывания 0300, 0304 и 0310. Т.к. 4-й и 8-й разряды в данном случае нулевые, то вектора прерываний не поменялись.
А так получается, что на регистре 176ИР2 собирается параллельный код, потом в ХМ2-001 дергается линия EXT и в подпрограмме обслуживания прерывания этот код считывается через линии Y ХМ2-001.

Также в данном ПЗУ еще проверяется адрес 0177750, вектор прерывания 0200. В подпрограмме обслуживания прерывания код прямо считывается из этого регистра.