Вход

Просмотр полной версии : Реинкарнация Вектор ПК-6128ц



Improver
10.10.2022, 12:00
Вектор Турбо+ (https://zx-pk.ru/threads/20615-vektor-turbo.html?p=1163221&viewfull=1#post1163221), конечно, крутая разработка, но я всё-таки решил потихоньку продолжить возрождать ПК-6128ц, пусть он будет "средним братом" между Вектором-06ц и Вектором Турбо. :)

Итак, берём за основу восстановленную схему Вектора ПК-6128ц (https://zx-pk.ru/threads/8146-pk-6128ts-obsuzhdenie.html?p=1160605&viewfull=1#post1160605) и начинаем улучшать, при том стараясь без особой необходимости не вмешиваться в схему... Что уже сделано:


Заменил память на SRAM. Сейчас это сделать проще, чем искать РУ5. Память осталась на 16 бит при чтении видеоданных, и менять сдвиговые регистры на 74HCT597 не стал -- пусть пока останется схема с задержкой на триггере, как было сделано изначально в ПК-6128.
Заменил ПЗУ РФ4А на 64кб 29EE512, что немного упростило схему -- больше не требуется выбор одного из двух чипов ПЗУ. Кстати, интересный момент: в ПК-6128 выведен отдельный сигнал /BROM на блокировку ПЗУ (по типу БЛК для работы квази-диска), т.е. схема предусматривала подмену внутреннего ПЗУ, интересное решение. Оставил этот сигнал, но теперь ПЗУ будет отключаться при наличии любого из двух сигналов, /BROM или БЛК.
Сделал видеовыход на CXA2075. Тут всё просто и проверено ранее на Векторах. Попутно сделал инверсию цвета, исправил строчные синхроимпульсы и выровнял по центру изображение.
Убрал из схемы сетевую карту. По сути, в современных реалиях она становится совершенно бесполезной.
Заменил все чипы КМОП серий К561 и К1561 на ТТЛ. Вообще, в справочниках и журналах типа "Радио" тех лет были замечания по совместному применению микросхем КМОП и ТТЛ от "не рекомендуется" до "категорически запрещено", странно, что в ПК-6128ц это сделали... С современными чипами серий 74HC/74ALS эта комбинация становится ненужной, кроме того можно убрать из схемы несколько резисторов и конденсаторов, требующихся для совмещения уровней сигналов КМОП и ТТЛ.
Добавил в схему стандартный Векторовский порт ВУ -- с ним можно будет подключать существующее внешнее Векторовское железо, например, тот же комбодевайс. Сигнал СТЕК там формируется по типу адаптеров Z80 для Вектора, он будет подан при командах PUSH, POP и XTHL, чего вполне достаточно для работы КД. Единственно, на этом ВУ не будут работать старые квази-диски, т.к. такая схема не вырабатывает сигналы регенерации памяти. Но много ли таких осталось?


Схемы нового ПК-6128 на текущем этапе:
https://s1.hostingkartinok.com/uploads/thumbs/2022/10/a655269ce2c695c2dde31b97a723a3ad.png (https://hostingkartinok.com/show-image.php?id=a655269ce2c695c2dde31b97a723a3ad)

Порт ВУ отдельным листом:
https://s1.hostingkartinok.com/uploads/thumbs/2022/10/d0317e2beb2119c6e6f4cdacd1103519.png (https://hostingkartinok.com/show-image.php?id=d0317e2beb2119c6e6f4cdacd1103519)

Что ещё предстоит:


Оптимизировать по чипам -- в результате доработок высвободилось много элементов, схему можно запросто сократить на пару корпусов микросхем, но что и куда лучше перебросить станет понятно на этапе разводки платы.
Добавить памяти в виде внутренних квази-дисков. Схема КД будет практически такая же, как тут (https://zx-pk.ru/threads/29342-novyj-staryj-kvazidisk.html?p=1136928&viewfull=1#post1136928), но проще -- не требуется разворачивать адреса по RAS/CAS, сигнал выбора порта 10..13 уже есть в схеме ПК-6128. Дополнительно можно сделать чтение конфигурации КД. Если к 128кб добавить даже один КД на 256кб, то базовая конфигурация станет совместима с большинством Векторовских программ под МДОС и КД, а два КД хватит всем. ;)
Надо ещё подумать об обеспечении равной ширины пикселей в режиме 512 точек. В Векторе Турбо это возможно решили просто убрав конденсатор С2 с резистором R9 и заменив логические элементы на выходе на более быструю серию 74ALS, может имеет смысл просто пойти по этому же пути.
Думаю над тем, чтобы убрать из схемы контроллер флоповода, т.к. без самого флоповода в корпусе он бесполезен, а при внешнем подключении привода в плане удобств нет разницы, подключать флоповод прямо к Вектору или через внешний комбодевайс.
И есть ещё желание добавить в схему аудиокодек AY8910, смикшировать его выход с ВИ53 и поставить небольшой усилитель с внутренней пищалкой, как было на Векторе 06ц.


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

З.Ы. Если Napoleon1 использует в своей схеме Вектора Турбо+ что-то из идей ПК-6128ц, то я буду только рад. :)

З.З.Ы. Страница проекта на гитхабе: https://github.com/ImproverX/PK-6128c_PP

ivagor
10.10.2022, 15:13
Еще бы РЕ3 заменить на что-нибудь более современное.

Improver
10.10.2022, 17:13
Еще бы РЕ3 заменить на что-нибудь более современное.Согласен. Можно разложить её на логику, или поставить какую-нибудь простую ПЛИСку, но пока ещё это не обдумывал в подробностях.

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

Да, вот ещё вспомнил: возможно следует в схему добавить ещё часы.

Improver
19.10.2022, 13:28
Обновление схемы ПК-6128, свёл всё в один лист:

https://s1.hostingkartinok.com/uploads/thumbs/2022/10/d96f2f955e8ed158b643a057271c2609.png (https://hostingkartinok.com/show-image.php?id=d96f2f955e8ed158b643a057271c2609)


Убрал-таки контроллер дисковода.
Добавил внутреннюю пищалку и AY-3-8910, выход микшируется в моно. Решил пока не усложнять, если будет необходимость (желание), то переправить на стерео будет не сложно.
Попробовал исправить схему работы экрана в режиме 256х512, теоретически получается так: по даташитам задержка на 74ALS00 (D14:A) равна 3..11 (2..8) нс, на 74ALS32 (U10:C) -- 2..14 (3..12) нс, т.е. практически разница должна быть не больше 5 нс и при ширине пикселя 83 нс (в режиме 512) это, думаю, будет незаметно.


Квази-диск не делал, его можно будет добавить и потом отдельной платой. И часы тоже решил оставить на потом.

Improver
05.12.2022, 12:28
Пора обозначить очередной этап разработки... Схема в настоящий момент выглядит так:

https://s1.hostingkartinok.com/uploads/thumbs/2022/12/72b298e04d5cdb041ca3614d3d81ef59.png (https://hostingkartinok.com/show-image.php?id=72b298e04d5cdb041ca3614d3d81ef59)


Разделил на платы в соответствии с предложенной ранее концепцией (https://zx-pk.ru/threads/34546-quot-vektor-pk-6128ts-quot-khotelos-by-uznat-pobolshe.html?p=1159455&viewfull=1#post1159455). Элементы с фоном из жёлтой штриховки ушли на плату ОЗУ, с голубой штриховкой -- ЦПУ (но это ещё не окончательно).
Немного переделал схему разрешения доступа к ОЗУ.
Переключение доступа к ПЗУ теперь не при помощи джампера, а программное, для этого решил использовать стандартную переключалку области экрана ПК-6128 на порту 0Dh. При отправленном нуле в нулевом бите в этот порт будет подключена область ПЗУ 8000h-FFFFh (по умолчанию при сбросе), при единице -- область 0000h-7FFFh.
Кардинальное изменение: для сокращения числа контактов между платами внедрил одну из своих прошлых идей, сделал "эмуляцию" ВВ55 на логических элементах U28 и U29, что позволило сократить число линий на 8+5-3=10 шт. И теперь независимо от того, какая конфигурация загружена в ВВ55 на порту 00, запись в порт 03 будет устанавливать сдвиг экрана, запись в порт 02 -- цвет бордюра и режим 512/256. Это немного упростит работу с клавиатурой, не будет необходимости постоянно переключать режим ВВ55, и обеспечит совместимость с существующим ПО. В дополнение, для полного соответствия работе ВВ55, запись в порт 00 конфигурации приводит к обнулению значений в портах 02 и 03 (хотя, может это и лишнее).

ivagor
05.12.2022, 13:11
запись в порт 00 конфигурации приводит к обнулению значений в портах 02 и 03 (хотя, может это и лишнее).
Стоит добавить учет старшего бита данных (что он =1), а то будет сбрасывать регистры в 0 при выводе на магнитофон или проигрывании биперной музыки.

Improver
05.12.2022, 14:44
Стоит добавить учет старшего бита данных (что он =1), а то будет сбрасывать регистры в 0 при выводе на магнитофон или проигрывании биперной музыки.Да, это учтено, в U24. :)

ivagor
05.12.2022, 15:07
Понятно, я не посмотрел.
Все же стоит еще раз оценить, насколько нужно это нововведение. Оно позволит избавиться от двух out (и двух загрузок A) на прерывание, это не принципиальное преимущество и вряд ли где-то еще будет реализована данная штука. Пример принципиального преимущества - отвязать опрос клавиатуры от прерывания, и то это помогло бы только новым программам, которые вряд ли будут написаны.

Improver
05.12.2022, 17:18
Все же стоит еще раз оценить, насколько нужно это нововведение.Ну тут цель была другая -- уменьшить количество линий между платами, избавление от двух out вышло бонусом.


Пример принципиального преимущества - отвязать опрос клавиатуры от прерыванияА как это можно сделать с сохранением совместимости со старым ПО?

ivagor
05.12.2022, 18:02
как это можно сделать с сохранением совместимости со старым ПО?
Вариантов много, но если например оттолкнуться от предложенной схемы, то получим искомое добавив в нее отключаемый запрет параллельной записи в U28 и U29. По умолчанию запись разрешена и совместимость. Не призываю делать это, вводить навороты стоит когда есть перспектива программной поддержки.

Improver
05.12.2022, 23:14
Вариантов многоДа, вот ещё вариант пришёл в голову: можно сделать обращение к ВВ55 по двум адресам, один стандартный, 00-03, и второй альтернативный, допустим, C0h-C3h. При записи во второй диапазон портов U28 и U29 затрагиваться не будут. С таким вариантом можно и писать новые программы, и легко пропатчить существующие.

Improver
29.12.2022, 11:22
Схема обновлённого ПК6128 на текущем этапе:
https://s1.hostingkartinok.com/uploads/thumbs/2022/12/3b2a612125f14e2b9a64843da624b640.png (https://hostingkartinok.com/show-image.php?id=3b2a612125f14e2b9a64843da624b640)


Немного изменил схему формирования сигнала КСИ -- вместо объединения КСИ и ССИ через "исключающее или" использовал свободный триггер.
Сделал гасящий синхроимпульс, во время кадра совпадает с ССИ, и на всю длительность КСИ гасит сигнал.
Изменил схему записи палитры -- в схеме ПК6128 микросхемы РУ2 были открыты всегда, кроме некоторого времени перед КСИ и в конце КСИ. Теперь РУ2, при отсутствии сигнала записи в порт 0Ch, будут отключаться при ГСИ.
Исправил ошибку -- на СХА2075 сигнал синхронизации подавался в инверсном виде относительно того, что там требуется.
Исправил сигнал RDM в схеме формирования СТЕК -- в предыдущем варианте возможны были коллизии при использовании прямого доступа в память процессора 8085. Косяк небольшой, да и проявился бы только в случае появления соответствующей периферии, но всё же...
Изменил схему подключения джойстиков -- на ПК6128, оказывается, был свой вариант, программно несовместимый с существующими. Сделал также, как на Векторе 06ц02, плюс аппаратно совместимыми с джойстиками Atari/MSX (https://www.msx.org/wiki/General_Purpose_port), на разъёмах D9 (как com-порт).

Ну и уже практически нарисовал все платы, осталось доделать те 20%, на которые уйдёт 80% времени. :)

Improver
13.01.2023, 17:46
Небольшое обновление схемы и большое обновление проекта:

Страница 1:
https://s1.hostingkartinok.com/uploads/thumbs/2023/01/b798bf08c49189fb54808112dda22d39.png (https://hostingkartinok.com/show-image.php?id=b798bf08c49189fb54808112dda22d39)

Страница 2 (дополнения):
https://s1.hostingkartinok.com/uploads/thumbs/2023/01/63e59f58d24486805328a78a7fb7ab7d.png (https://hostingkartinok.com/show-image.php?id=63e59f58d24486805328a78a7fb7ab7d)

Основные изменения:

D25 заменил на 74HC138 и U24 на 74hc139 -- чипы 74HC155 (и аналогичные) в исполнении SMD почему-то сложно найти в продаже, есть только DIP. В части D25 эта замена даже немного упростила схему, а на U24 наоборот, усложнила. Кроме того, на U24 добавил джампер для отключения сброса счётчика сдвига экрана и цвета бордюра (порты 02 и 03) при записи конфигурации в РУС ВВ55. Не то, чтобы этот джампер там особо нужен, просто для эксперимента на совместимость с ПО Вектора...
Добавил в схему часы RTC на DS12885 (вторая страница), подключение выполнено по омской схеме для Вектора, с учётом документации на более свежий чип DS12885.


Ну и самое главное: разводка плат полностью готова, проект выложил на гитхаб (https://github.com/ImproverX/PK-6128c_PP).
Гербер-файлы для заказа пока не делал, т.к. это ещё не финал, схему и платы надо бы повторно проверить перед изготовлением, возможно переосмыслить что-то.

Ну и картинка с разводкой плат, просто для общего представления:
https://s1.hostingkartinok.com/uploads/thumbs/2023/01/421d281f9f768a23623df734559764f7.png (https://hostingkartinok.com/show-image.php?id=421d281f9f768a23623df734559764f7) https://s1.hostingkartinok.com/uploads/thumbs/2023/01/24ab16257f858c80d170ff4819ce02a3.png (https://hostingkartinok.com/show-image.php?id=24ab16257f858c80d170ff4819ce02a3)
При экспорте в картинку почему-то меняются местами верхний и нижний слои разводки, но для просмотра без запуска протеуса сойдёт... Вторая картинка с выключенным нижним слоем.

Napoleon1
15.01.2023, 23:07
Не совсем понятно - плата что - двусторонняя? Не понятно где полигоны под питание и землю.

Improver
16.01.2023, 09:43
Не совсем понятно - плата что - двусторонняя?Да, двух слоёв для такого размера плат и плотности элементов вполне достаточно. Добавил в исходное сообщение (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1170555&viewfull=1#post1170555) картинку с отключённым нижним слоем, для видимости верхнего слоя.


Не понятно где полигоны под питание и землю.Распределены по двум слоям. На нижнем слое есть заполнение землёй, а питание идёт по кругу платы с дублированием и более толстыми дорожками. Выделять отдельные линии для просмотра удобнее в протеусе, всё же, не на картинке.

Napoleon1
17.01.2023, 01:53
Ну дело хозяйское. На низких частотах работать будет, конечно.
Хотя если посмотреть осциллографом цифровые схемы на платах без сплошного полигона земли - это полный абзац.
К слову - а зачем базовое ОЗУ и процессор на отдельных платках?

Improver
17.01.2023, 08:18
Ну дело хозяйское. На низких частотах работать будет, конечно.Вектор работал, и тут частоты не выше, максимум те же 6МГц, не считая генератора...


Хотя если посмотреть осциллографом цифровые схемы на платах без сплошного полигона земли - это полный абзац.Можно ещё верхний слой залить землёй, как считаете, имеет это смысл? А переходить на 4 слоя я что-то не вижу необходимости, хотя это и позволит немного уменьшить плату, милиметров на 15-19 по высоте.


К слову - а зачем базовое ОЗУ и процессор на отдельных платках?Тут всё просто -- это для "гибкости" конструкции. Т.е. с таким дизайном можно легко заменить процессор на z80, или на КР580ВМ80А, а то и на нечто на плис (https://zx-pk.ru/threads/34449-vektor-06ts-580khkh-na-plis/page17.html), просто заменив одну платку. Ещё можно, теоретически, разогнать процессор независимо от всей остальной части ПК...
И память тоже тут легче заменить -- можно на других чипах собрать, попробовать вернуться к драм, или 32-пиновые симы приспособить, но более интересен последующий переход на 8 бит и последовательное чтение экранных байтов, как было сделано в моей графической карте (https://zx-pk.ru/threads/31273-graficheskaya-plata-vektora.html?p=1129987&viewfull=1#post1129987). :)

Napoleon1
17.01.2023, 22:18
Полигон сверху залить можно - будут максимально широкие дорожки, но радикально это ничего не поменяет. Хотя это лучше для производства - меньше расход травильного раствора.
У вас компоновка и в целом размер платы исходя из Векторовского расположения разъёмов выполнена. Если к этому не привязываться, то на 4-х слойке можно сделать компактнее и, соответственно, по цене изготовления на такую же сумму выйти.
Я по работе платы развожу, поэтому выполнение питаний не полигонами вызывает у меня ментальный диссонанс :-). И даже на такой низкой частоте с полигонами земли сигналы на порядок чище получаются.

Improver
25.01.2023, 11:23
Работа над ошибками:

Исправил переключение адреса на U13 и U14, теперь оно происходит по сигналу MX1. Использование там /CAS приведёт к тому, что адрес на ВУ будет запаздывать по отношению к /CAS и ошибкам на внешних квази-дисках.
Попутно на свободном элементе U10:A сделал отключение сигнала /CAS на ВУ во время обращения к графике. Как альтернативу тут можно было бы просто изменить прошивку РЕ3, но решил оставить её ближе к оригинальной.
По совету Napoleon1 по максимуму залил землёй верхний слой.

Из-за минимальности изменений в схеме публиковать картинки не вижу смысла, а проект на гитхабе (https://github.com/ImproverX/PK-6128c_PP) обновил.

Improver
14.04.2023, 10:19
Обновление проекта:

Заменил U29 на 74нс174, ну и ещё что-то по мелочам...
Решил использовать ПЗУ D10 на все 100%, для этого достаточно было вывод А4 переключить с земли на сигнал LD0, теперь во время показа бордюров и КСИ/ССИ из неё будет использоваться вторая половина адресов, с 16 по 31. Это даёт то, что теперь можно будет разрешить процессору доступ к памяти тогда, когда не считываются данные для графики. Прирост быстродействия при этом будет всего процентов на 5, если не ошибаюсь. Собственно, меня удивляет, почему это не было сделано в оригинальной схеме ПК-6128ц -- там всего-то пару проводков переключить.

Прошивка D10 при этом будет выглядеть примерно так:

Адр. 0 1 2 3 4 5 6 7 8 9 A B C D E F -- совпадает с прошивкой ПК-6128ц
D0(RATO) 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 -- доступ процессора к памяти
D1(RAS) 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
D2(CAS) 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0
D3(MX1) 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 -- 0 = адрес по CAS, 1 = адрес по RAS
D4(MX2) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 -- ОЗУ/Графика
D5(FR6) 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -- чтение первой пары регистров
D6(FR7) 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 -- чтение второй пары регистров
D7(FR1) 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 -- 13-й бит адреса (графика)
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
Экран ОЗУ

Адр. 10 ... 1F
D0(RATO) 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 -- доступ процессора к памяти
D1(RAS) 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
D2(CAS) 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0
D3(MX1) 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 -- 0 = адрес по CAS, 1 = адрес по RAS
D4(MX2) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -- ОЗУ/Графика
D5(FR6) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D6(FR7) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D7(FR1) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 -- тактовая частота
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ОЗУ
Или вот менее радикальный вариант второй части, с сохранением режимов работы процессора, как на ПК-6128ц, который я хочу использовать в начале:

Адр. 10 ... 1F
D0(RATO) 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 -- доступ процессора к памяти
D1(RAS) 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1
D2(CAS) 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
D3(MX1) 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 -- 0 = адрес по CAS, 1 = адрес по RAS
D4(MX2) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 -- ОЗУ/Графика
D5(FR6) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D6(FR7) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D7(FR1) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 -- тактовая частота
^^^^^^^^^^^^^^^^
ОЗУ
Для полного доступа к памяти пришлось входной сигнал на 13 вывод D52 заменить с MX2 на FR1, но и это на схему не сильно повлияло, но зато поставив единицу в седьмом бите по адресу 1Fh можно легко сместить изображение до идеальных временных задержек (https://zx-pk.ru/threads/8739-vektor-06ts-videovykhod-podklyuchenie-k-tv.html?p=1172321&viewfull=1#post1172321). :)
И ещё, с этой доработкой чипы D9:B и D9:C становятся ненужными, но я ещё не решил, убрать их или оставить.

Новая схема:
https://s1.hostingkartinok.com/uploads/thumbs/2023/04/2962837738faad732fa5d736a4b0944a.png (https://hostingkartinok.com/show-image.php?id=2962837738faad732fa5d736a4b0944a)

https://s1.hostingkartinok.com/uploads/thumbs/2023/04/a76adb486167f1be1e9fdb84c6e88b9b.png (https://hostingkartinok.com/show-image.php?id=a76adb486167f1be1e9fdb84c6e88b9b)

Проект на гитхабе обновил, все нужные файлы там (https://github.com/ImproverX/PK-6128c_PP).

ivagor
14.04.2023, 11:13
Это даёт то, что теперь можно будет разрешить процессору доступ к памяти тогда, когда не считываются данные для графики. Прирост быстродействия при этом будет всего процентов на 5, если не ошибаюсь. Собственно, меня удивляет, почему это не было сделано в оригинальной схеме ПК-6128ц -- там всего-то пару проводков переключить.
Неравномерная скорость проца плоха как минимум для обмена с магнитофоном и бипера. Разве что сделать ее включение/выключение. Меня больше расстраивает, что вероятно из-за экономии не сделали прозрачный доступ проца к озу. Там пара регистров ну и может еще микросхема логики, зато максимальная скорость (все равно совместимости с 06Ц по скорости нет ни в каком варианте). Пример zx8085 Micka показывает, что это вполне работоспособно с 565РУ5. Причем для озу такой вариант был бы даже менее напряжным, учитывая слишком агрессивный вариант страничного режима в 6128.

Improver
14.04.2023, 11:48
Неравномерная скорость проца плоха как минимум для обмена с магнитофоном и бипера.Да, согласен, причём скорость будет непрогнозируема, кроме как выравниванием по прерыванию. Тут надо ещё протестировать, если будет совсем плохо, то просто заменить прошивку на второй вариант.

Improver
14.04.2023, 19:31
прозрачный доступ проца к озу. <...> Пример zx8085 Micka показывает, что это вполне работоспособно с 565РУ5.А где можно подробнее почитать про это? Проект zx8085 нагуглил, но про прозрачный доступ к ОЗУ не могу найти что-то...

ivagor
14.04.2023, 20:11
У него процессор не тормозится. Есть хитрый момент (https://zx-pk.ru/threads/32921-quot-zx-8085-quot-daungrejd-kompyutera-quot-leningrad-quot-chast-2.html?p=1105815&viewfull=1#post1105815), Mick поставил перемычку, чтобы можно было подстраиваться к конкретному процу/экземпляру.

Improver
15.04.2023, 22:40
ivagor, да, тема крайне интересная, прямо хочется в это погрузиться, но, боюсь, что уйдя в эксперименты я так и не соберу ПК-6128ц, поэтому решил пока держать прозрачный доступ к ОЗУ в планах на улучшения. Для начала пусть будет хотя бы с торможением, но работающий экземпляр.

И вопрос возник про упомянутый выше обмен с магнитофоном: а возможно ли написать подпрограмму чтения с магнитофона так, чтобы она правильно выставляла константы чтения на любом процессоре, его рабочей частоте, с торможением и без? Можно, конечно, до начала чтения добавить определение процессора и вносить соответствующие корректировки, ну а если без этого, то возможно ли такое, в принципе?

ivagor
16.04.2023, 06:19
Improver, тема с прозрачным доступом к озу интересная, но отдельная, лучше запустить реплику 6128, я полностью за.
В своих модификациях бейсика я переделал процедуру задержки, чтобы она выполнялась за одинаковое время на 4х околовекторовских процессорах (sui 1 вместо dcr a). В эмуляторе этого достаточно, из wav грузит. На реале возможны нюансы, т.к. в остальной процедуре есть команды у которых отличается время выполнения, но надеюсь это не влияет критически.

Improver
21.04.2023, 11:42
Убрал-таки два элемента "или" из схемы управления сдвиговыми регистрами, вот новый вариант:

https://s1.hostingkartinok.com/uploads/thumbs/2023/04/74873d4e2d0ec23bc2d982d643e79f92.png (https://hostingkartinok.com/show-image.php?id=74873d4e2d0ec23bc2d982d643e79f92)

https://s1.hostingkartinok.com/uploads/thumbs/2023/04/50675c9ae0ce1a750dcf17d5c05b4e9f.png (https://hostingkartinok.com/show-image.php?id=50675c9ae0ce1a750dcf17d5c05b4e9f)

В итоге минус одна микросхема в ПК. Обновлённая схема и разводка плат выложена на гитхаб (https://github.com/ImproverX/PK-6128c_PP).

ivagor
27.06.2023, 13:09
Вопрос ускорения уже затрагивался здесь, хочу озвучить (довольно капитанский) альтернативный вариант. Можно не трогать шину и оставить имеющееся торможение, но затактировать проц удвоенной частотой. При этом циклы, которые >4 тактов, подожмутся и влезут в 4 такта. Например inx/dcx станут 4 вместо 8, dad - 8 вместо 12, push - 12 вместо 16 и т.д.
Этот подход был вполне возможен и для 06Ц при замене на z80. И даже при замене на 8080 или 580ВМ1, но тут уже очень большая проблема с поиском соответствующих экземпляров процов. А для 8085 или z80 найти работающие на 6 МГц не так уж сложно.

Improver
05.07.2023, 11:47
Думаю, пора что-то показать по проекту... Собрал плату процессора, запустил и протестил, насколько смог в таком виде -- всё, вроде, работает, в том числе и формирование сигнала СТЕК. Все исправления и обновления в проекте заливаю на гитхаб (https://github.com/ImproverX/PK-6128c_PP). Теперь думаю заказывать и собирать основную плату.

https://s1.hostingkartinok.com/uploads/thumbs/2023/07/7881ced1b7eb77208718302e83eafdc9.png (https://hostingkartinok.com/show-image.php?id=7881ced1b7eb77208718302e83eafdc9)

Нашёл китайского изготовителя, который принимает оплату по QIWI и отправляет в Россию: www.elecrow.com (https://www.elecrow.com/referral-program/NTQ0NDBqMnQ/)
Качество изготовления плат на высоте, цена выходит примерно 10$ с доставкой за 5 плат 100х100мм, что дешевле, чем у посредников через али.

Можно не трогать шину и оставить имеющееся торможение, но затактировать проц удвоенной частотой.Хорошая, кстати, идея -- не сложная в реализации в схеме ПК-6128 и эффективная, надо будет попробовать, но после того, как всё будет работать. :)

ivagor
05.07.2023, 12:18
При удвоенной частоте возможно придется подвигать фазу сигнала торможения, чтобы проц его вовремя схватил и отпустил, но это детали. Главное чтобы заработал базовый вариант 6128, хотя он даже базовый+, т.к. оригинал как минимум не умел СТЕК, а 6128 с квазом - это заметно круче 6128 без кваза.

Improver
05.07.2023, 12:48
При удвоенной частоте возможно придется подвигать фазу сигнала торможения, чтобы проц его вовремя схватил и отпустил, но это детали.Да, это всё решается прошивкой РЕ3, но тут может всплыть другая проблемка: время задержки на К155РЕ3 может быть до 65 нс, а при частоте 6 МГц длительность полуцикла будет всего-то 83 нс, возможно потребуется долгая кропотливая подборка прошивки и чипов...

ivagor
05.07.2023, 13:19
Возможно придется двигать не прошивкой, а например добавлением в разрыв логических элементов (для задержки 10-30 нс). Это конечно не здорово даже для малосерийного изделия, но хотелось бы увидеть хотя бы один "турбированный" экземпляр.

ivagor
05.07.2023, 20:09
Improver, какие у тебя есть 8085 в наличии? Статистика (https://zx-pk.ru/threads/32921-quot-zx-8085-quot-daungrejd-kompyutera-quot-leningrad-quot-chast-2.html?p=1115019&viewfull=1#post1115019) Mickа, если вдруг еще не видел.

Improver
05.07.2023, 22:09
Improver, какие у тебя есть 8085 в наличии?Пока у меня только один, и он на фото выше -- OKI M80C85AH, в статистике такого нет, а в даташитах пишут, что максимум 5МГц, хотя вполне возможно, что его получится разогнать. Или надо будет потом найти другой для опытов.

ivagor
06.07.2023, 06:11
У Micka один 80C85A заработал на 6, второй - на 7 МГц. Если верить даташиту (https://cdn.hackaday.io/files/294901261700160/OKI%20MSM80C85AH%20datasheet%20(2003-05-16).pdf), то A сделаны по технологии 3 мкм и рассчитаны на 3.125 МГц, а AH - 2 мкм и 5 МГц. Т.е. AH должен быть еще круче, но это уже лишнее, если заработает на 6, то это будет очень здорово.

Improver
24.08.2023, 12:05
Продолжаю сборку ПК-6128ц++, спаял по минимуму основную плату:

https://s1.hostingkartinok.com/uploads/thumbs/2023/08/98dc773fb02d2c42579b0d84a1fdc59e.png (https://hostingkartinok.com/show-image.php?id=98dc773fb02d2c42579b0d84a1fdc59e)

Работает ВИ53 и клавиатура (использовал вариант "мини" (https://zx-pk.ru/threads/32280-miniklaviatura-dlya-vektora.html)), ну и практически вся схема управления. Динамик пока подпаял из имеющихся (нужен на 8Ом), потом он будет заменён на более миниатюрный. Для тестирования немного модифицировал свою тестовую прошивку (https://zx-pk.ru/threads/33133-vektor-06ts-novodel-(ne-altera).html?p=1112365&viewfull=1#post1112365).
При старте прошивка выполняет самотестирование и при совпадении контрольной суммы переходит в режим мигания индикатором "РУС/ЛАТ", нажатие на клавиш "СС", "УС" или "РУС/ЛАТ", также выводит через ВИ53 частоты 3, 2 или 1 кГц соответственно по разным каналам. При этом не используется основная память и прерывания.

В это же время выполняется тестирование экрана:


при нажатии УС, кроме вывода звука, заполняется экранная область значением 55h, устанавливается цвет бордюра 00h
при нажатии СС экранная область заполняется значением FFh, устанавливается цвет бордюра 00h
при нажатии РУС экранная область заполняется значением 00h, устанавливается цвет бордюра 0Fh
при нажатии УС+РУС выполняется загрузка палитры, экран заполняется ч/б градиентом по типу этого теста, устанавливается цвет бордюра 00h. Тут используется прерывание и требуется исправное ОЗУ по адресам FFFEh-FFFFh, в случае обнаружения ошибок по этим адресам загрузка палитры и тест градиентом не выполняется.

Примечание. Заполнение видеопамяти производится без программного тестирования, ошибки будут просто видны на экране, если он подключен.

Если нажать одновременно "СС" и "РУС", то будет запущен тест клавиатуры -- нажатие клавиш будет озвучиваться, код нажатой клавиши отправляется в порт В (ПУ). И, как бонус, тестируется сам порт ПУ, если на нём установлена заглушка, как описано в документации к Тесту Устройств (Порт А <--> Порт В, Порт С 7-4 <--> Порт С 3-0). В случае удачного теста ПУ будет гореть индикатор РУС/ЛАТ.

Нажатие "СС"+"УС" запускает тестирование памяти в таком порядке:

Банк 2, экран в Банке 2
Банк 3, экран в Банке 2
Банк 0, экран в Банке 0
Банк 1, экран в Банке 0

Каждый банк тестируется методом:

простого записи/чтения, для контроля последовательно используется байты 00h/FFh, AAh/55h.
методом записи/чтения через стек, используются слово 6699h/9966h и счётчик
очистка памяти с проверкой

Обнаруженные ошибки выводятся в порт ПУ.

Если тестирование прошло без ошибок, то в память копируется тест техпрогона и выполняется программный сброс, или, если удерживать клавишу "УС" при окончании теста памяти, то будет запущен Тест Устройств.
Сама прошивка с исходниками выложена на гитхаб (https://github.com/ImproverX/PK-6128c_PP/tree/main/ROM), отдельно архив с тестовой частью: 79295 (если кто-то захочет проверить его работу в эмуляторах).

В настоящее время тесты работают без ошибок (на имеющихся компонентах), дальше надо распаивать плату памяти... И там наступает самый сложный момент всего проекта: надо чем-то заменить К155РЕ3 для подгонки циклов работы, пока думаю заменить её перепрошиваемой ПЗУшкой на соплях.

Improver
20.11.2023, 09:43
Почти три месяца ждал нужные детальки, и вот плата памяти собрана:

https://s1.hostingkartinok.com/uploads/thumbs/2023/11/e314a956daefa1dc7995decb533a36cb.png (https://hostingkartinok.com/show-image.php?id=e314a956daefa1dc7995decb533a36cb)

Пока что работает без РЕ3, в режиме полного доступа процессора к памяти. Для этого надо всего лишь заземлить сигналы МХ2 и /RAS, а на FR1 подать частоту 750кГц, все остальные выходы РЕ3 уже притянуты к питанию.
В таком режиме на тестовой прошивке всё работает -- память тестируется без ошибок, и после запускается "тест техпрогона", судя по звукам.

Теперь надо сделать эмуляцию РЕ3 для отладки прошивки... Тут либо временно подпаивать другую перепрограммируемую ПЗУшку, либо ещё что-то. Ардуина, скорее всего, 6 МГц не потянет, возможно на STM32, или в ПЛИС, посмотрим, что будет проще.

electroscat
04.12.2023, 20:00
Теперь надо сделать эмуляцию РЕ3 для отладки прошивки... Тут либо временно подпаивать другую перепрограммируемую ПЗУшку, либо ещё что-то. Ардуина, скорее всего, 6 МГц не потянет, возможно на STM32, или в ПЛИС, посмотрим, что будет проще.

Могу нашить вам РЕшек сколько нужно. Не проблема ни сами микросхемы ни программатор, все есть. Приеду домой 12 декабря и могу нашить, присылайте дампов. НУ и вроде мы почти соседи, можно будет почтой отправить, будет совсем незаметно все это стоить ...

Improver
05.12.2023, 12:05
Могу нашить вам РЕшек сколько нужно. Не проблема ни сами микросхемы ни программатор, все есть.Спасибо, обращусь. Пока у меня есть пара чистых РЕ3, экспериментирую с ними...

По поводу экспериментов: STM32 не оправдала ожиданий -- максимальная частота, которую она смогла вывести в пустом цикле с переключением одной ноги составила всего ~2,75МГц, так что STM не годится на замену РЕ3. И замена на перепрошиваемую ПЗУ 29ЕЕ512 тоже не заработала должным образом, у неё, в отличие от РЕ3, при переключении адресов там успевает сработать подтяжка к 5В и при заполнении нулями на выходе имеем, фактически, частоту 12МГц, которая не даёт нормально работать памяти.

А вот ПЛИС даёт некую надежду на проведение отладки -- имеющаяся у меня в распоряжении EPM3256A хорошо отрабатывает, в том числе на высоких частотах, пытаюсь её приспособить, но всё немного усложняется переводом прошивки РЕ3 в логику на ПЛИС...

Ну и сами РЕ3 можно использовать, и хорошо, что их можно прошивать побитово, это позволяет поэтапно проверять прошивку.

electroscat
05.12.2023, 13:30
STM не годится на замену РЕ3. ......... А вот ПЛИС даёт некую надежду на проведение отладки .....
Я более чем уверен что то из серии GAL16V8 100% сможет заменить РЕ3. Они и по скорости подойдут, и по стоимости не сильно оттопыриваются, и ко всему они многократно программируемые. По крайней мере как дешифратор памяти эти микросхемы работают на Поиске, и проблем вообще нет, частота процессора там 5 мГц. Работает с памятью в конкретном аппарате приемно 0.7 процессогного времени, то есть мегагерца 3-4 точно без нареканий. А теоретически и на много больше.

Serg6845
05.12.2023, 14:46
всё немного усложняется переводом прошивки РЕ3 в логику на ПЛИС...


там переводить-то нечего...
вот тут например http://forum.pk-fpga.ru/download/file.php?id=491 есть файлик RT5.VHD - прямо готовый пример...

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


Я более чем уверен что то из серии GAL16V8 100% сможет заменить РЕ3. Они и по скорости подойдут, и по стоимости не сильно оттопыриваются, и ко всему они многократно программируемые.

скорее всего да. разве что могут вылезти нюансы если нужен открытый коллектор как у РЕ3.

Improver
05.12.2023, 17:02
Я более чем уверен что то из серии GAL16V8 100% сможет заменить РЕ3Я тоже уверен, что подойдут, я даже хотел попробовать, но у меня их в наличии нет, поэтому эксперименты с ними отложил на время, а пока решил сделать на том, что есть. И ещё у меня есть смутное сомнение, что для замены РЕ3 хватит одного корпуса GAL16V8, но это уже технические мелочи.


там переводить-то нечего...
вот тут например <...>Спасибо, поизучаю и попробую повторить.

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


могут вылезти нюансы если нужен открытый коллектор
Там ОК не нужен, это сделано просто из-за РЕ3.

Serg6845
05.12.2023, 21:28
И ещё у меня есть смутное сомнение, что для замены РЕ3 хватит одного корпуса GAL16V8, но это уже технические мелочи.


хватит, куда он денется...
берем прошивку отсюда https://zx-pk.ru/threads/8146-pk-6128ts-obsuzhdenie.html?p=1160950&viewfull=1#post1160950

конвертим ее например в abel


module RE3
title 'RE3 for Vector'

A3,A2,A1,A0 pin 1,3,5,7;
q7,q6,q5,q4,q3,q2,q1,q0 pin 12,13,14,15,16,17,18,19 istype 'com';

adr = [A3,A2,A1,A0];
out = [q7,q6,q5,q4,q3,q2,q1,q0];

@dcset
truth_table (adr -> out)
0 -> ^b11111110;
1 -> ^b11111100;
2 -> ^b01110100;
3 -> ^b01110000;
4 -> ^b01010000;
5 -> ^b11110100;
6 -> ^b10110000;
7 -> ^b11111010;
8 -> ^b11101111;
9 -> ^b11101101;
10 -> ^b11100101;
11 -> ^b11100001;
12 -> ^b11101001;
13 -> ^b11101001;
14 -> ^b11101001;
15 -> ^b11101011;

end

собираем при помощи например ispLever classic 1.4, получаем jedec файл:


ispLEVER Classic 1.4.00.04.27.10 Lattice Semiconductor Corp.
JEDEC file for: P16V8AS V9.0
Created on: Tue Dec 05 21:21:52 2023

RE3 for Vector
*
QP20* QF2194* QV0* F0*
X0*
NOTE DEVICE NAME: GAL16V8D-10LP*
NOTE Table of pin names and numbers*
NOTE PINS A3:1 A2:3 A1:5 A0:7 q7:12 q6:13 q5:14 q4:15 q3:16 q2:17 q1:18*
NOTE PINS q0:19*
L0000 11101111111111111111111111111111*
L0256 11110111111101111111011111111111*
L0288 11111011111110111111101111111111*
L0512 11010111111111111111111111111111*
L0544 11111111111101111111011111111111*
L0576 11110111111111111111101111111111*
L0768 11111011111101111111111111111111*
L0800 11100111111111111111101111111111*
L0832 11100111111110111111111111111111*
L1024 11011111111111111111111111111111*
L1280 11100111111110111111101111111111*
L1536 11100111111101111111101111111111*
L1792 11100111111110111111101111111111*
L1824 11101011111101111111111111111111*
L2048 01000000*
L2128 11111111111111111111111111111111111111111111111111 11111111111111*
L2192 1*
C3CF3*
D6FC

LeoN65816
06.12.2023, 07:26
Спасибо, поизучаю и попробую повторить.
Есть ещё вариант: существует такая прога Logic Friday 1.4, которая по таблице истинности может генерить формулы для GAL.
Вот здесь (http://forum.agatcomp.ru//viewtopic.php?pid=3896#p3896) маленькая прога-подмога к этой пятничке.

Improver
12.12.2023, 10:21
Вот такая временная замена РЕ3 получилась:

https://s1.hostingkartinok.com/uploads/thumbs/2023/12/efd0b1ecb3947cd0b4ac50c36f8bc1f3.png (https://hostingkartinok.com/show-image.php?id=efd0b1ecb3947cd0b4ac50c36f8bc1f3)
Выполнена на базе "ускоренного" варианта (https://github.com/ImproverX/PK-6128c_PP/blob/main/K155PE3.txt), код на VHDL:
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity RE3 is
port
(
address: in std_logic_vector(4 downto 0);
q: out std_logic_vector(7 downto 0);
ledin: in std_logic;
led: out std_logic
);
end RE3;

architecture behaviour of RE3 is
begin
process(address, ledin)
begin
case address is
when "00000" => q <= "01111110";
when "00001" => q <= "01111100";
when "00010" => q <= "01110100";
when "00011" => q <= "01110000";
when "00100" => q <= "01010000";
when "00101" => q <= "11110100";
when "00110" => q <= "10110001";
when "00111" => q <= "11110011";
when "01000" => q <= "01101111";
when "01001" => q <= "01101101";
when "01010" => q <= "01100100";
when "01011" => q <= "01100000";
when "01100" => q <= "01100000";
when "01101" => q <= "01100000";
when "01110" => q <= "01100000";
when "01111" => q <= "01100010";

when "10000" => q <= "11101111";
when "10001" => q <= "11101101";
when "10010" => q <= "11100100";
when "10011" => q <= "11100000";
when "10100" => q <= "11100000";
when "10101" => q <= "11100000";
when "10110" => q <= "11100001";
when "10111" => q <= "11100011";
when "11000" => q <= "01101111";
when "11001" => q <= "01101101";
when "11010" => q <= "01100100";
when "11011" => q <= "01100000";
when "11100" => q <= "01100000";
when "11101" => q <= "01100000";
when "11110" => q <= "01100001";
when "11111" => q <= "11100011";
when others => null;
end case;
led <= ledin;
end process;

end behaviour;Пока что проблем с работой нет -- сигналы формируются хорошо (судя по показаниям осциллографа), память тестируется без ошибок, тест техпрогона запускается...

Эксперименты с GAL отложил в связи с их отсутствием у меня в данный момент.

Improver
29.12.2023, 15:34
Небольшой предновогодний отчёт о состоянии проекта:

1. Обнаружена и исправлена досадная ошибка -- на микросхемах D54 и D55 (К155РУ2) были перепутаны адресные входы и входы данных. Причём ошибку допустил ещё при восстановлении схемы ПК-6128ц, а в новоделе не перепроверил. Исправил схемы и тут (https://github.com/ImproverX/PK-6128c_PP), и там (https://github.com/ImproverX/PK-6128c), перерезал и перепаял 16 дорожек на плате -- изображение есть. Только оно почему-то заметно хуже, чем на оригинальном Векторе с той же CXA2075M -- красного цвета почти нет, всё зелёное... Но радует, что строчные и кадровые синхроимпульсы в идеале.

2. Откорректировал циклы по работе графики в прошивке D10 (К155РЕ3, или в заменяющей её сейчас ПЛИС). На реале оказалось, что расстояние между импульсами FR7 и FR6 должно быть в два раза больше, иначе сигнал с триггера D49 отстаёт на пиксель. В настоящий момент первая половина прошивки выглядит так:

Адр. 0 1 2 3 4 5 6 7 8 9 A B C D E F
D0(RATO) 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
D1(RAS) 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
D2(CAS) 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1
D3(MX1) 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1
D4(MX2) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
D5(FR6) 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 -- чтение первой пары регистров
D6(FR7) 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 -- чтение второй пары регистров
D7(FR1) 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
Экран ОЗУ

3. Запустил "Тест Устройств", он заработал, но выполнить тест памяти не смог -- выдал ошибку на этапе проверки диспетчера памяти. Анализ работы теста показал, что есть ошибки при обращении к памяти в режиме 023h/032h, это когда по адресам 8000h..FFFFh запись выполняется в Банк 3, а чтение из Банка 2 и наоборот. Причина пока не понятна, продолжаю тесты. Возможно всё решится небольшим сдвигом циклов в прошивке D10 (К155РЕ3).

И ещё: в текущем состоянии (пока на плате не распаяно АУ, нет RTC, нет джойстиков...) потребление по питанию составляет 0,46...0,51А, т.е. пока ещё можно запитать от USB. :)

Improver
18.01.2024, 10:35
Исправил работу с памятью, как я и предполагал, всё решилось выставлением циклов в прошивке D10 (К155РЕ3). Теперь первая половина прошивки выглядит так (полная прошивка выложена на гитхаб (https://github.com/ImproverX/PK-6128c_PP)):

Адр. 0 1 2 3 4 5 6 7 8 9 A B C D E F
D0(RATO) 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 -- доступ процессора к памяти
D1(RAS) 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
D2(CAS) 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0
D3(MX1) 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 -- 0 = адрес по CAS, 1 = адрес по RAS
D4(MX2) 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 -- ОЗУ / Графика
D5(FR6) 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 -- чтение первой пары регистров (по положительному фронту F6M)
D6(FR7) 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 -- чтение второй пары регистров (по положительному фронту F6M)
D7(FR1) 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 -- 13-й бит адреса (графика) + тактовая частота 750кГц
^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Экран ОЗУ

F 6МГц 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 -- тактовая частота генератора
SVNC 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 -- тактовая частота процессораБольше нет ошибок в ОЗУ. :) Теперь надо разобраться с изображением...

Improver
07.02.2024, 10:31
Очередной этап проекта. Как оказалось, с предыдущим вариантом прошивки "эмулятор РЕ3" на EPM3256 стал очень нестабилен -- реагирует искажениями и пропаданием/появлением изображения при касании щупом осцилографа даже к неподключённым пинам, попробовал заменить на GAL16V8. Из-за того, что у РЕ3 и GAL входы-выходы с разных сторон, пришлось поставить "галку" вверх выводами, получилось вот так:

https://i.ibb.co/rF71FNp/IMG-20240207-092113.jpg (https://ibb.co/rF71FNp)

Сигналы стали заметно лучше, но с GAL есть провал в "0" сигнала FR1 при переходе адреса с хх011 на хх100 (возможно из-за небольшого отставания F1.5M), что приводило также к пропаданию изображения. Для исправления сдвинул прошивку на 4 бита влево:

Адр. 0 1 2 3 4 5 6 7 8 9 A B C D E F -- совпадает с прошивкой ПК-6128ц
D0(RATO) 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 -- доступ процессора к памяти
D1(RAS) 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
D2(CAS) 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1
D3(MX1) 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 -- 0 = адрес по CAS, 1 = адрес по RAS
D4(MX2) 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 -- ОЗУ / Графика
D5(FR6) 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -- чтение первой пары регистров (по положительному фронту F6M)
D6(FR7) 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 -- чтение второй пары регистров (по положительному фронту F6M)
D7(FR1) 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 -- 13-й бит адреса (графика) + тактовая частота 750кГц
^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^
Экран ОЗУ Экран
При таком варианте все глюки ушли, все тесты отрабатывают, на касания реакции нет. Кроме того могу отметить, что выравнивание картинки по центру экрана практически идеально, временные задержки синхроимпульсов с этой прошивкой выведены до варианта по схеме megov-а (о чём я делал некое исследование ранее (https://zx-pk.ru/threads/8739-vektor-06ts-videovykhod-podklyuchenie-k-tv.html?p=1172321&viewfull=1#post1172321)).
Полный вариант прошивки, как обычно, обновлён на гитхабе (https://github.com/ImproverX/PK-6128c_PP), прошивка для GAL16V8 с исходниками в этом архиве: 80334

Теперь о грустном... На изображении крайне скверно выводится красный цвет, на больших площадях он просто пропадает, в результате чего в "Тесте техпрогона", например, фон не жёлтый, а зелёный. Причин тут может быть три, как я думаю:
1. Брак одного из чипов К155РУ2 (хотя, ослик отличий в сигналах на выходах РУшек не показывает),
2. Брак чипа CXA2075m -- китайцы вполне могли прислать некондицию,
3. Непропай, или утечки и просадки на линии красного цвета от ЦАП до CXA2075.

И второй неприятный момент: в тесте ЦПУ (и только там) на фоне проявляются вертикальные почти незаметные полосы:

https://i.ibb.co/FV9B9vM/IMG-20240207-092317.jpg (https://ibb.co/FV9B9vM)

Причина пока непонятна, надо тестировать всё...

Ну и ещё немного фоток с экрана, только хочу сразу предупредить, что на просадку по красному тут ещё накладывается "интеллектуальная" цветокоррекция фотоаппарата в моём телефоне, с которой я боролся, как мог.
https://i.ibb.co/gSYFK6Y/IMG-20240207-091907.jpg (https://ibb.co/gSYFK6Y) https://i.ibb.co/PzrwwH8/IMG-20240207-091954.jpg (https://ibb.co/PzrwwH8)

https://i.ibb.co/tQ6rmTR/IMG-20240207-092042.jpg (https://ibb.co/tQ6rmTR) https://i.ibb.co/9bFc7Jg/IMG-20240207-092156.jpg (https://ibb.co/9bFc7Jg)
Теперь, думаю, можно продолжить сборку, а с красным цветом разбираться в процессе.

ivagor
07.02.2024, 11:38
И второй неприятный момент: в тесте ЦПУ (и только там) на фоне проявляются вертикальные почти незаметные полосы:
А что это за версия теста? Немного отличается и от 1.1 из комплекта 06Ц и от версии для 6128.
Видно, что полосы на стыках байтов, т.е. или первая точка байта запаздывает или последняя точка заканчивается рано. Можно попробовать этот же цвет фона в бейсике - SCREEN0,0,16


2. Брак чипа CXA2075m -- китайцы вполне могли прислать некондицию,
3. Непропай, или утечки и просадки на линии красного цвета от ЦАП до CXA2075.
Для проверки можно попробовать поменять R и G на входе кодера.

Improver
07.02.2024, 12:09
А что это за версия теста? Немного отличается и от 1.1 из комплекта 06Ц и от версии для 6128.Это я просто стал копать Тест устройств, и попутно его немного модернизировал... Но пока он не готов для выкладывания -- ещё не всё доделано.


Видно, что полосы на стыках байтов, т.е. или первая точка байта запаздывает или последняя точка заканчивается рано.Не, я сейчас кажется догадался в причинах: там отключённые экранные области для теста заполняются кодом "ADD C" == 081h, и они "просвечивают". Кстати, при стартовой картинке, когда всё рисуется с отключённой палитрой, в реале немного проглядывают контуры фигур и текста, этого нет в эмуляторах. Надо будет проверить тест на реальном Векторе -- там тот же эффект наблюдался, насколько я помню.


Для проверки можно попробовать поменять R и G на входе кодера.Пробовал переключать на подстроечных резисторах, красному это не помогло, но надо будет повторить, возможно в другом месте.

ivagor
07.02.2024, 13:04
Не, я сейчас кажется догадался в причинах: там отключённые экранные области для теста заполняются кодом "ADD C" == 081h, и они "просвечивают". Кстати, при стартовой картинке, когда всё рисуется с отключённой палитрой, в реале немного проглядывают контуры фигур и текста, этого нет в эмуляторах. Надо будет проверить тест на реальном Векторе -- там тот же эффект наблюдался, насколько я помню.
Да, на векторе эффект "просвечивания" был, но намного слабее, чем на фотографии.

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

ivagor
07.02.2024, 18:50
Только сейчас обратил внимание, что яркостный сигнал формируется не резисторами, как в оригинальных 06Ц, .02 и 6128, а кодером. Это приведет к отличию при подключении в чб варианте. Кодер делает оттенки серого примерно 0.6G+0.3R+0.1B, а у 06Ц и .02 свои варианты, причем разные. Для 6128 оттенки серого не считали и не определяли по реалу, но есть подозрение, что они тоже не соответствовали стандартной формуле. Короче говоря, реинкарнированный 6128 не покажет те 16 оттенков серого в подобных (https://zx-pk.ru/threads/33043-jpeg-8080.html?p=1113548&viewfull=1#post1113548) программах.

Improver
08.02.2024, 08:09
Вчера проверил на Векторе, как показывается картинка при тесте цпу -- да, там тоже видны полоски, и да, они менее выражены, размыты и почти не заметны. Да и вообще, картинка с моего Вектора (тоже через CXA2075) заметно лучше и чётче, хотя сама обвязка кодека там не отличается. Надо будет ещё поиграться с выходом.


Только сейчас обратил внимание, что яркостный сигнал формируется не резисторами, как в оригинальных 06Ц, .02 и 6128, а кодером. Это приведет к отличию при подключении в чб варианте.Да, вполне возможно, небольшие отличия будут, но этот момент не первостепенной важности, сейчас надо собрать и отладить всю схему ПК-6128ц++, проверить нововведения, шину ВУ с Векторовским железом...

ivagor
08.02.2024, 19:05
Если было бы много программ, использующих нестандартные векторовские оттенки серого, то отличие стало бы проблемой, но их мало и это скорее можно назвать особенностью. Вот с просвечиванием точно надо что-то делать.

Improver
10.02.2024, 23:04
Запустил ПК-6128ц на слегка модифицированной прошивке (https://github.com/ImproverX/BOOTROM) для Вектора, на удивление всё работает -- с магнитофона программы грузятся, хотя и на чуть меньшей скорости, чем на оригинальном Векторе.

https://s1.hostingkartinok.com/uploads/thumbs/2024/02/c9a0a05a4cc9d2da0f14672532177f76.png (https://hostingkartinok.com/show-image.php?id=c9a0a05a4cc9d2da0f14672532177f76)

Запустил обновлённый Бейсик 2.891, без проблем заргузил в него программу "Инфор-1" (из того, что было на флешке):

https://s1.hostingkartinok.com/uploads/thumbs/2024/02/fbd049ce3286bf18903cd3f346064feb.png (https://hostingkartinok.com/show-image.php?id=fbd049ce3286bf18903cd3f346064feb)

Ну и как же без Патапа?

https://s1.hostingkartinok.com/uploads/thumbs/2024/02/0e384aa846db9f5e3b9f1d643742c3ee.png (https://hostingkartinok.com/show-image.php?id=0e384aa846db9f5e3b9f1d643742c3ee)

С неисправленной пока проблемой красного изображение неожиданно хорошее... Но выявился интересный глюк: БЛК-СБРОС нельзя долго держать нажатыми, это почему-то портит программу и вызывает сбои, даже при запуске сразу после загрузки. В идеале надо запускать (или сбрасывать) коротким быстрым нажатием. Почему так происходит пока нет идей, но это не дребезг контактов, его должен гасить триггер D7.A, да и проверял на двух клавиатурах, везде этот глюк.

Improver
14.02.2024, 11:20
Причина глюка найдена и исправлена -- она была в том, что процессор при сигнале сброса выводит линии RD, WR и EIO в третье состояние, а шумы и наводки просто подают случайные сигналы записи, что и портит содержимое ОЗУ. Для исправления просто добавил там подтяжку к 5В, теперь БЛК-СБРОС можно держать сколько угодно долго.

Схема оригинального ПК-6128ц не имела таких подтяжек, но, по всей видимости, серия К555, в отличие от 74HC, считает такое состояние на входе единицей и потому проблем там не было.

Все необходимые исправления в схему и разводку внесены в проект на гитхабе (https://github.com/ImproverX/PK-6128c_PP).

И вопрос есть к ivagor (и svofski заодно), про формат FM9: как можно поправить подпрограмму чтения этого замечательного формата, чтобы она работала на процессорах 8085? Раз уж она попала в прошивку ПК-6128ц++... Я так понимаю, там всё очень хорошо высчитано по тактам и циклам процессора ВМ80, но вот на других, в том числе и на Z80, она не работает даже в эмуляторах. Моих познаний, что и где там надо поправить, просто не хватает.

Ну и раз упомянул, выложу тут переделанную под ПК-6128ц++ основную часть прошивки, с исходниками: 80373

ivagor
14.02.2024, 12:56
Радует, что получается находить причины и устранять проблемы.
Что касается FM9. В эмуляторах VV и Emu по крайней мере оригинальные загрузчики (которые rom, не автостартующие) в 6128 частично работают (грузят часть файлов), на что я честно говоря не рассчитывал. В Emu для этого надо добавлять в раздел cas конфига строку
noisefilterfreq=20000
Чтобы нормально грузились все файлы надо вспоминать что там было и считать такты.

Improver
14.02.2024, 15:27
noisefilterfreq=20000Да, точно! Я забыл про этот важный параметр, с ним эмуляторы грузят FM9 с любым процессором.

в 6128 частично работают (грузят часть файлов), на что я честно говоря не рассчитывалМне ещё пока такие не попадались, по крайней мере из того, что я сейчас проверил, загрузились все.

ivagor
14.02.2024, 16:04
Попробовал несколько файлов - "нормальным" загрузчиком FM9 они все грузятся и с 8085 и с z80 (в VV). z80 в Emu я не пробовал, т.к. в Emu для z80 не реализовано векторовское торможение. А проблемы с загрузкой были с таймерным вариантом loadfm9vi53, но его вроде никто и не использует.

ivagor
14.02.2024, 19:06
Надо отметить, что переносимость магнитофонных результатов с эмуляторов на реалы не 100% и это справедливо не только для вектора. Но я все же надеюсь, что в данном случае будет нормально.
Потенциально 8085 и z80 способны поднять потолок скорости загрузки. По крайней мере в эмулятор файлы на повышенной скорости 13500 грузятся нормально, но они и в эмуляторы вектора и в плисовый v06cc грузятся хорошо, а вот в реалы нестабильно.

Improver
01.03.2024, 08:12
Интересный момент выявился: на ПК-6128ц при чтении из неподключённого порта возвращается его номер, а не FFh, как ожидалось. Т.е. если, например, сделать IN 0A5h в цикле, то в аккумуляторе получим стабильно 0A5h, а не 0FFh. По крайней мере, на моём новоделе так, хотя там отличий в схеме формирования ШД и ША нет.

В оригинальной схеме ПК-6128ц есть резисторы подтяжки, R12..R19, но, видимо, они на чтение из порта они не влияют -- к сожалению, нет возможности проверить на оригинале. Даже не знаю, добавить ещё подтяжку непосредственно на ШД, или считать это фичей? :)

ivagor
01.03.2024, 13:21
В первом такте последнего машинного цикла команды IN 8085 выставляет на AD0-7 номер порта, возможно емкости шины хватает, чтобы он там провисел до такта собственно чтения порта. Но признаюсь, что на эту тему я схему 6128++ не смотрел.

Improver
01.03.2024, 14:59
В первом такте последнего машинного цикла команды IN 8085 выставляет на AD0-7 номер порта, возможно емкости шины хватает, чтобы он там провисел до такта собственно чтения порта.Очень на то похоже. И у меня есть подозрение, что в схеме ПК-6128ц опечатка, подтягивающие резисторы там должны быть на ШД, а не на выводах AD0-7 процессора:

https://s1.hostingkartinok.com/uploads/thumbs/2024/03/6d02c4c5e62ff14219207da72f1da12f.png (https://hostingkartinok.com/show-image.php?id=6d02c4c5e62ff14219207da72f1da12f)

Т.е. тут резисторы должны быть на "тёмно красной" шине, а не на "малиновой" -- нумерация там совпадает, просто не туда их завели...

UncleDim
01.03.2024, 17:48
Так где бы ни стояли резисторы - АПшка их легко перетянуть должна..

Improver
01.03.2024, 19:09
Так где бы ни стояли резисторы - АПшка их легко перетянуть должна..Если резисторы будут на входе, то на выходе Д5 (АП6) будет то, куда резисторы её притянут, а сейчас при чтении из порта резисторы получаются на выходе, поэтому АП и перетягивает.

Для эксперимента, думаю, надо их вообще выпаять, и если отсутствие резисторов в линиях AD на работу не повлияет, то однозначно переставлять надо.

Improver
18.03.2024, 10:43
Предположение (выше) об ошибке в схеме ПК-6128ц оказалось неверным -- без подтяжки на линиях AD0-7 комп начинает глючить, и даже с подтяжкой на ШД, из программ загрузить удалось только Тест Техпрогона, да и тот не мог двигать экран вверх-вниз. В общем, резисторы нужны и там, и там -- внёс соответствующие исправления в схему.

Далее, наконец-то впаял полностью всё на плату и протестировал, что получается:

АУ работает превосходно, правда пришлось немного подкорректировать резистор R223 для того, чтобы выровнять громкость ВИ и АУ.
Джойстики работают. Проверял с джойстиками от Сеги на "Тесте Устройств (https://github.com/ImproverX/Test_Ust)" и программе "Карандаш". Кстати, какие игры поддерживают джойстик С? В Базисе такой информации нет в описаниях, перебором всего подряд нашёл "Карандаш" и дальше не искал...
Часы RTC работают. Для их настройки и теста выдернул из DOS201 (http://caglrc.cc/scalar/ware/668/) и сделал отдельной утилиткой TIME.COM -- работает под любой версией МДОС и РДС, и даже из Монитора-Отладчика, но рекомендуются поддерживающие КОИ8 (например "Т-72" и "РДС") для правильного отображения русских букв дня недели. Архив с исходниками: 80520

Теперь о грустном... Квази-диск на шине ВУ корректно не работает. Точнее сказать, тесты kdtest2 (http://caglrc.cc/scalar/ware/620/), kdtest (http://caglrc.cc/scalar/ware/619/) и "Дождь (http://caglrc.cc/scalar/ware/803/)" ошибок не показывают вообще, а тест квази-диска из "Теста Устройств (https://github.com/ImproverX/Test_Ust)" подвисает, и МДОСы тоже выдают кучу ошибок... Пока пытаюсь понять, кто виноват -- то ли конфигурация КД не корректно записывается, то ли ШАП сбоит по RAS/CAS.

Ну и вторая проблема и изображением так и осталась в планах на доработку, вот эти две проблемки и остались по ПК-6128ц++.

З.Ы. Потребляемый ток всей схемой составляет примерно 0,55...0,65А, с подключёнными квази-диском и ардуиноплеером (https://github.com/ImproverX/RW-player) может доходить до 0,8А.

ivagor
18.03.2024, 11:08
Стоит проверить кваз отдельно на стабильность доступа стеком и "адресностью".
Архив из 20-30 игрушек с поддержкой джойстиков-П и -С могу закинуть попозже на google drive

Improver
18.03.2024, 11:34
Стоит проверить кваз отдельно на стабильность доступа стеком и "адресностью".Да, я уже успел позапускать свои тесты (отсюда и далее (https://zx-pk.ru/threads/29342-novyj-staryj-kvazidisk.html?p=983906&viewfull=1#post983906)), плюс написать несколько новых, но локализовать проблему пока не получается, провожу эксперименты...


Архив из 20-30 игрушек с поддержкой джойстиков-П и -С могу закинуть попозже на google driveСпасибо, протестирую на них. Можно даже не архивом, а просто списком -- скачаю с Базиса, если что.

ivagor
18.03.2024, 16:14
Игрушки (https://drive.google.com/file/d/1978wxbeLsHuaSk2LKYQq6cbSqzRv5bvr/view?usp=sharing) с поддержкой джойстиков -П и -С. Скорее всего можно еще найти на образах дисков Vector-user.
Список не сильно помог бы, т.к. в базисе не все эти версии есть.

Improver
21.03.2024, 17:32
Удалось победить проседание красного цвета, причина была в гасящих синхроимпульсах. Согласно даташиту на CXA2075m, видеосигнал должен гасится 10 мкс после начала строчного синхроимпульса, т.е. ГСИ должны быть длиннее, чем ССИ, примерно в два раза, что я не учёл до этого. Для удлиннения ГСИ потребовалось добавить ещё пару триггеров, и теперь цвета стали заметно лучше, правда это не в силах передать мой фотоаппарат, но хотя бы жёлтый на фото не выглядит зелёным, как ранее (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1194167&viewfull=1#post1194167), вот:

https://s1.hostingkartinok.com/uploads/thumbs/2024/03/90ce5d82aa8e5e20c9459eb3c7f0aebd.png (https://hostingkartinok.com/show-image.php?id=90ce5d82aa8e5e20c9459eb3c7f0aebd) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/19d2454d494e5a72d5b9762f57574838.png (https://hostingkartinok.com/show-image.php?id=19d2454d494e5a72d5b9762f57574838)

Схему и разводку на гитхабе (https://github.com/ImproverX/PK-6128c_PP) исправил (герберы обновлю немного позже).

И ещё такой момент, про ширину чётных/нечётных пикселей при разрешении 512х256... Проверил, как оно показывается с внедрёнными исправлениями (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1165219&viewfull=1#post1165219):

1. Заполнение кодом FFh области B000h...D000h -- разница между левой и правой половинами экрана не заметна, что радует:
https://s1.hostingkartinok.com/uploads/thumbs/2024/03/1727135ebd2365cd3cc54d1b1b5452c7.png (https://hostingkartinok.com/show-image.php?id=1727135ebd2365cd3cc54d1b1b5452c7)

2. Заполнение кодом AAh и 55h -- всё-таки есть небольшое отличие, правая половина слегка ярче:
https://s1.hostingkartinok.com/uploads/thumbs/2024/03/db8e95d8ca2d34639538165a54868668.png (https://hostingkartinok.com/show-image.php?id=db8e95d8ca2d34639538165a54868668) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/8f26f17e510dd3c267acd00ccc4c198e.png (https://hostingkartinok.com/show-image.php?id=8f26f17e510dd3c267acd00ccc4c198e)

3. Заполнение кодом 11h -- тоже разницы не видно:
https://s1.hostingkartinok.com/uploads/thumbs/2024/03/38336a3cc8f48a46638a4b9920fb610b.png (https://hostingkartinok.com/show-image.php?id=38336a3cc8f48a46638a4b9920fb610b)

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

ivagor
21.03.2024, 18:18
На фото теста техпрогона вверху немного зеленит, может недовыполняются требования кодера к кадровым импульсам?
Одинаковость hires точек явно лучше, чем у моего бывшего вектора, это радует.

Improver
21.03.2024, 22:42
На фото теста техпрогона вверху немного зеленит, может недовыполняются требования кодера к кадровым импульсам?Вроде, не зеленило верх в реале... Там ещё от ракурса съёмки зависит.
Два снимка одной и той же картинки, у первой верх затемнило на фотографии:
https://s1.hostingkartinok.com/uploads/thumbs/2024/03/eb7cb56421d74589840b60035485f88c.png (https://hostingkartinok.com/show-image.php?id=eb7cb56421d74589840b60035485f88c) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/036902ad538028aa754397f9826bb221.png (https://hostingkartinok.com/show-image.php?id=036902ad538028aa754397f9826bb221)

Белый экран и чёрная рамка и наоборот:
https://s1.hostingkartinok.com/uploads/thumbs/2024/03/35b017521a71fb1fefdac8c2182fb955.png (https://hostingkartinok.com/show-image.php?id=35b017521a71fb1fefdac8c2182fb955) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/bff460396e93da9b34167d50d1076fe5.png (https://hostingkartinok.com/show-image.php?id=bff460396e93da9b34167d50d1076fe5)

Желто-синий вариант, цвет равномерный, но на фото немного зелени вылезло:
https://s1.hostingkartinok.com/uploads/thumbs/2024/03/044d5c9173fe4dfe00b7c37ce3595f86.png (https://hostingkartinok.com/show-image.php?id=044d5c9173fe4dfe00b7c37ce3595f86) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/432f8126f6107bc393aa23a84918324e.png (https://hostingkartinok.com/show-image.php?id=432f8126f6107bc393aa23a84918324e)

https://s1.hostingkartinok.com/uploads/thumbs/2024/03/1953cc819e5ea0121abf3da9dd9bb558.png (https://hostingkartinok.com/show-image.php?id=1953cc819e5ea0121abf3da9dd9bb558) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/a3180b0cf3ba14aac2b3f0f7c6705040.png (https://hostingkartinok.com/show-image.php?id=a3180b0cf3ba14aac2b3f0f7c6705040) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/dcd878f8a40b0834082ad0d60719da0d.png (https://hostingkartinok.com/show-image.php?id=dcd878f8a40b0834082ad0d60719da0d)

https://s1.hostingkartinok.com/uploads/thumbs/2024/03/18f5a6b5ec7e61fdfe3d33a5f07179f4.png (https://hostingkartinok.com/show-image.php?id=18f5a6b5ec7e61fdfe3d33a5f07179f4) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/8596ce645229121d6e1f13e61990fc00.png (https://hostingkartinok.com/show-image.php?id=8596ce645229121d6e1f13e61990fc00) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/7cceb091025561eeb5d8f1c98102ff22.png (https://hostingkartinok.com/show-image.php?id=7cceb091025561eeb5d8f1c98102ff22) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/74cab0612a6696b09e21a7bbf699abf3.png (https://hostingkartinok.com/show-image.php?id=74cab0612a6696b09e21a7bbf699abf3)

ivagor
22.03.2024, 06:04
На этих фото такого не видно, но интереснее было бы увидеть фото техпрогона без зелени.

Improver
22.03.2024, 08:32
На этих фото такого не видно, но интереснее было бы увидеть фото техпрогона без зелени.Ок, попробую сделать ещё фоток техпрогона. А по поводу кадровых импульсов: там в любом случае будет некое отступление от стандарта, т.к. кодек при КСИ ожидает чётные/нечётные полукадры черезстрочной развёртки, при этом частота импульсов должна быть в два раза выше, но Векторовский вариант развёртки принимает тоже, и вполне хорошо.

ivagor
22.03.2024, 10:32
Насколько помню, в ходе экспериментов и всяких регулировок кодера PAL svofski из v06cc у меня среди прочего вылезали левые цвета вверху экрана. Как это лечил сейчас не могу вспомнить, но развертка была прогрессивная, не чересстрочная.
Полуофтоп. PAL для вектора это все же компромисс. Если для 256 еще удовлетворительно, то для 512 на мой взгляд ближе к неудовлетворительно. Пусть SCART встречается сравнительно редко, но вот компонентный YPbPr чаще. Опять же в плисовых девобрдах делал и картинка была замечательная. Понятно, что цифровой принцип формирования тут не подойдет, но можно найти аналоговые схемы. Возможно лучше будет использовать сигналы с выхода кодера (R G B). А может Y сгодится прямо с кодера и останутся только Pb и Pr.

Improver
22.03.2024, 12:18
PAL для вектора это все же компромисс. Если для 256 еще удовлетворительно, то для 512 на мой взгляд ближе к неудовлетворительно.Может быть мне попался очень хороший телевизор (нет), но я бы оценил качество повыше: 256 -- на одиночных пикселях есть огрехи цвета именно от преобразования в PAL, но в целом очень хорошо, 512 -- текст читается там иногда плохо, но не хуже, чем на старом ламповом телевизоре, поэтому удовлетворительно. В общем, для простого универсального подключения -- это вполне приемлемый вариант.


Пусть SCART встречается сравнительно редко, но вот компонентный YPbPr чаще.Да, сейчас ни то, ни другое не найти уже, на телевизорах уже лет пять-семь из входов делают только HDMI. Но можно ещё найти старый работоспособный телевизор со SCART, и с S-Video, и с RGB-входом, не только YPbPr, а композитный PAL есть во всех старых. Многие телевизоры имели переключение типа входа RGB/YPbPr, поэтому если понадобится именно YPbPr, то пусть преобразованием занимается какое-нибудь внешнее устройство...

Как вариант, можно сделать стандартный VGA-выход -- это будет действительно существенное улучшение, но тут вместо CXA2075M надо ставить что-то другое, например ADV7123, и переделок может стать на порядок больше.

ivagor
22.03.2024, 13:23
Да, сейчас ни то, ни другое не найти уже, на телевизорах уже лет пять-семь из входов делают только HDMI.
Посмотрел, у нас в городе все еще можно купить в магазине ТВ с компонентным входом. Со скартом тоже можно купить, но надо заказать и подождать. И в старых работающих (т.е. которым лет 10-20) ТВ компонентный встречается чаще чем SCART. К сожалению мне не попадались ТВ у которых можно было подать на компонентный вход RGB. В целом согласен, что это исчезающие разъемы, но при большом желании найти можно.


можно сделать стандартный VGA-выход -- это будет действительно существенное улучшение, но тут вместо CXA2075M надо ставить что-то другое, например ADV7123, и переделок может стать на порядок больше.
Если со скандаблером, то это конечно хорошо, только уже сравнительно сложно. Или плюнуть на демы и просто выбирать видеоданные в 2 раза быстрее и напрямую показывать каждую строку 2 раза.

Improver
22.03.2024, 15:14
В целом согласен, что это исчезающие разъемы, но при большом желании найти можно.Есть ещё более простой вариант -- использовать GBS8200 и подобные карты и подключать обычный монитор. Такие карты у китайцев есть даже с HDMI-выходами, по цене выйдет соразмерно поиску телевизора с нужным входом, мне кажется.


просто выбирать видеоданные в 2 раза быстрееКак вариант, поднять частоту всего ПК6128ц в два раза -- процессор это позволяет... :)

KTSerg
22.03.2024, 16:47
Есть ещё более простой вариант -- использовать GBS8200 и подобные карты и подключать обычный монитор. Такие карты у китайцев есть даже с HDMI-выходами, по цене выйдет соразмерно поиску телевизора с нужным входом, мне кажется.
...
А ещё круче, сделать из него ноутбук ;)
Засунуть всё в корпус старого ноута, и использовать дисплей ноута в качестве монитора...

Improver
22.03.2024, 17:28
А ещё круче, сделать из него ноутбук ;)Да, как вариант: Самодельный ноутбук ZedRipper на шестнадцати Z80 (https://habr.com/ru/articles/480290/) :)

Improver
22.03.2024, 22:27
ivagor, я добавил фотографии теста техпрогона в сообщение (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1196002&viewfull=1#post1196002). На них, кажется, теперь синит в нижней половине экрана...

ivagor
23.03.2024, 06:27
На этих фото я локальных позеленений или посинений не замечаю, похоже с цветами кодера все в порядке.

Improver
23.03.2024, 09:54
Ещё две картинки теста техпрогона, на сей раз получены через карту видеозахвата EasyCAP и VLC-плеер, подключал по композитному сигналу, S-Video даже пробовать расхотелось...

https://s1.hostingkartinok.com/uploads/thumbs/2024/03/3323f95da2fadd4765fcd1febc616824.png (https://hostingkartinok.com/show-image.php?id=3323f95da2fadd4765fcd1febc616824) https://s1.hostingkartinok.com/uploads/thumbs/2024/03/fb943d87d4f120ecfcd3bcec6f44b655.png (https://hostingkartinok.com/show-image.php?id=fb943d87d4f120ecfcd3bcec6f44b655)

Качество -- нечто среднее между "неудовлетворительно" и "ужастно", тут я согласен с ivagor...

На скриншотах можно увидеть тёмную полосу по левому краю экрана, которая не была видна на телевизоре -- это завершение сигнала ГСИ, который получился 10,6мкс (вместо положенных 10, но думаю, это не критично).

ivagor
23.03.2024, 10:42
подключал по композитному сигналу, S-Video даже пробовать расхотелось
Так наоборот, если композит - безусловное зло, то S-Video дает хотя бы нечто отдаленно похожее на качество.


На скриншотах можно увидеть тёмную полосу по левому краю экрана, которая не была видна на телевизоре -- это завершение сигнала ГСИ, который получился 10,6мкс (вместо положенных 10, но думаю, это не критично).
Грубо прикинул по скриншоту ширину захваченной картинки - примерно 52.8 мкс. Ни один телевизор даже близко столько не показывает, в лучшем случае микросекунд 49, а обычно еще меньше, поэтому на ТВ черную полосу сбоку точно никто не увидит.
Еще конечно есть люди, которые добрались до сервисного меню телевизора и теоретически могут накрутить более широкую активную область (хотя насчет регулировки до >52 мкс даже в таком случае сомневаюсь). Но я бы за них сильно не переживал, они спокойно могут ее и сузить.

Improver
23.03.2024, 12:41
Так наоборот, если композит - безусловное зло, то S-Video дает хотя бы нечто отдаленно похожее на качество.Там много шумов и искажений, мне кажется их даже S-Video не исправит, хотя бы до уровня предыдущих фотографий с телевизора.


на ТВ черную полосу сбоку точно никто не увидит.Это точно, а даже если и увидят -- не страшно, она за границей бордюра получается.

ivagor
23.03.2024, 17:06
Просто из любопытства - карта захвата выдает картинки с именно таким разрешением или ты их обрезал (или сжал) по вертикали?

Improver
23.03.2024, 18:24
карта захвата выдает картинки с именно таким разрешением или ты их обрезал (или сжал) по вертикали?Картинки прямо в таком виде сохранил сам VLC, я их не редактировал, не обрезал и не пересохранял, только загрузил на хостинг. А в настройках VLC было указано масштабирование 1:1, без растяжения по окну или экрану, формат сигнала "PAL B", и если никаких изменений самовольно он не внёс, то такая картинка и приходит с карты захвата.

svofski
31.03.2024, 01:55
Игрушки (https://drive.google.com/file/d/1978wxbeLsHuaSk2LKYQq6cbSqzRv5bvr/view?usp=sharing) с поддержкой джойстиков -П и -С. Скорее всего можно еще найти на образах дисков Vector-user.
Список не сильно помог бы, т.к. в базисе не все эти версии есть.

https://caglrc.cc/scalar/categories/joystick_p/ (в зипах с суффиксом _jps)

ivagor
31.03.2024, 06:21
Спасибо, когда будет возможность желательно проставить год у Moon Bugs - 1990 (на заставке есть).

Improver
09.04.2024, 08:14
Запустил Vector Speed Test (https://caglrc.cc/scalar/ware/787/) для пробы, вот результат:

https://s1.hostingkartinok.com/uploads/thumbs/2024/04/1b218d91b90cabcd76a74ac6279e643e.png (https://hostingkartinok.com/show-image.php?id=1b218d91b90cabcd76a74ac6279e643e) дубликат: https://i.ibb.co/X33qxLP/IMG-20240408-214715.jpg (https://ibb.co/X33qxLP)

И тот же тест с "ускоренной" прошивкой D10 (К155РЕ3), в которой сокращены задержки обращения к памяти во время вывода бордюра и КСИ/ССИ:

https://s1.hostingkartinok.com/uploads/thumbs/2024/04/093e22c07b4a203f46fc585bf8b11ba1.png (https://hostingkartinok.com/show-image.php?id=093e22c07b4a203f46fc585bf8b11ba1) дубликат: https://i.ibb.co/wW3Y1Sn/IMG-20240404-230210.jpg (https://ibb.co/wW3Y1Sn)

Есть небольшие отличия в скорости многих команд, но особенно отличились C*-n, R*-n, PUSH... Думаю, результаты будут интересны ivagor-у. :)

И ещё, проверил загрузку данных в формате FM9 -- работает и из прошивки ПЗУ, и с предварительно подгружаемым загрузчиком, только во втором варианте, в случае ошибок чтения, всё заканчивается чёрным экраном -- не понятно, загрузилось, или нет смысла ждать дальше...

ivagor
09.04.2024, 11:09
ivagorу результаты интересны, но он их к сожалению не видит.
Еще интереснее были бы результаты vstvi53 (https://caglrc.cc/scalar/ware/908/). Там в последних версиях поддерживается тестирование уникальных команд 8085 и есть эталонный результат теста 6128, который провел dk_spb (но там старая версия теста без команд 8085).
Черный экран в загрузчике FM9 - это ожидание загрузки. Когда загрузка начинается появляются две черточки, показывающие начальные и конечные блоки. В процессе загрузки идет заполнение от начального блока к конечному. Если в процессе загрузки перешли на черный экран - значит ошибка загрузки.

Improver
09.04.2024, 14:40
он их к сожалению не видит.Опять хостингкартинок недоступен... Дополнил картинки (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1196904&viewfull=1#post1196904) с другого хостинга.


Еще интереснее были бы результаты vstvi53.Ок, и этот могу сделать, вечером.


Черный экран в загрузчике FM9 - это ожидание загрузки.Да, тут просто вводило в замешательство то, что Бейсик, на котором я испытывал загрузку, после старта до показа курсора несколько секунд распаковывается, и каждый раз было непонятно, ждать дальше, или снова грузить. :)

Improver
09.04.2024, 22:34
Еще интереснее были бы результаты vstvi53 (https://caglrc.cc/scalar/ware/908/).Готово, это результаты с обычной прошивкой РЕ3, совпадают с ПК-6128ц, насколько я вижу:

https://i.ibb.co/zmPz5HH/IMG-20240409-204830.jpg (https://ibb.co/zmPz5HH)

А это с ускоренным режимом работы памяти:

https://i.ibb.co/Nr7YC2H/IMG-20240409-204719.jpg (https://ibb.co/Nr7YC2H)

ivagor
10.04.2024, 07:07
Возможно у кого-то возникнет вопрос по результатам vstvi53 - почему в ускоренном режиме у некоторых команд с паспортным одинаковым числом тактов и циклов разные результаты? Ответ простой - в этом тесте нет привязки к прерываниям, и соответственно к бордюру и активной области. Результаты таких команд в ускоренном режиме лучше смотреть по vst с прерываниями (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1196904&viewfull=1#post1196904).

Improver
17.05.2024, 09:55
Очередные шаги проекта:

- Прошил-таки К155РЕ3 и поставил вместо временной GAL. Всё работает, отличий не заметил, кроме меньшего габарита чипа.

- По шине ВУ: подключил к шине жёсткий диск -- работает замечательно, без ошибок. Для теста пришлось записать в загрузочную область диска игру в упакованном виде и загрузить её несколько раз -- загрузка с диска проходит без ошибок, что подтверждается правильной распаковкой архива. Т.о. можно сделать вывод, что ШАВВ, ШД и сигналы ЗПВУ, ЧТВУ работают хорошо. Проблемы с КД, значит, могут быть или по ШАП, или по CAS. Возможно ещё ЧТЗУ или ЗПЗУ, но это маловероятно. Полагаю, для начала надо немного доработать схему и сделать выключение сигнала CAS на ВУ при отсутствии ЧТЗУ / ЗПЗУ / БЛК, и до кучи МХ2.

- По упомянутым тут (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1194167&viewfull=1#post1194167) просвечивающимся полоскам на тесте процессора: оказалось причина была в пониженном напряжении использованного блока питания (от телефонной зарядки), он выдавал не больше 4,5В, при подключении нормального источника с 5В полоски стали также незаметны, как на оригинальном Векторе. Полагаю, пониженное напряжение плохо влияет на быстродействие К155РУ2...

- Вспомнил, что дорабатывал запись палитры, чтобы она происходила с одного раза. Для проверки написал небольшой тест, который выводит 16 полосок разных цветов и периодически сдвигает цвета палитры. На реальном Векторе из-за ошибок записи он показывает некоторые полоски двойной ширины, меняется цвет бордюра, а в эмуляторах и на ПК-6128ц++ такого эффекта нет, т.е. палитра без проблем пишется с первого OUT, что не может не радовать. Вот сам тест в архиве с исходниками, можете проверить свой Вектор: 80824

- Ну и последнее, изготовил на 3Д-принтере корпус. Фотографии пока не публикую -- корпус ещё не окрашен, но если интересно, модели в формате STL выложены на гитхаб (https://github.com/ImproverX/Vector06c_case), там есть просмотр, можете оценить.

ivagor
17.05.2024, 10:33
Проблемы с КД, значит, могут быть или по ШАП, или по CAS. Возможно ещё ЧТЗУ или ЗПЗУ, но это маловероятно.
Еще возможно СТЕК и БЛК.

причина была в пониженном напряжении использованного блока питания (от телефонной зарядки), он выдавал не больше 4,5В
Жесть, а пробовал тестировать кваз уже с 5В, не повлияло?

Improver
17.05.2024, 10:56
Еще возможно СТЕК и БЛК.Да, может и СТЕК, хотя ошибки есть и при обращении к КД в режиме ОЗУ. А сигнал БЛК формирует сам КД, но там ОК и подтяжка к +5В через резистор внутри ПК, я его уже уменьшил до 2кОм -- не сильно помогло.


Жесть, а пробовал тестировать кваз уже с 5В, не повлияло?Ещё не успел... По тестам КД выдаёт около полусотни ошибок чтения на один банк, не исключено, что из-за напряжения -- надо проверить. Но всё равно мне не нравится, что CAS на ВУ подаётся постоянно, надо его ограничить.

Improver
06.06.2024, 11:41
Обещанные фото ПК-6128ц++ в изготовленном на 3Д-принтере корпусе:
https://s1.hostingkartinok.com/uploads/thumbs/2024/06/49e85780548f7241bb09d71014c6881a.png (https://hostingkartinok.com/show-image.php?id=49e85780548f7241bb09d71014c6881a)

https://s1.hostingkartinok.com/uploads/thumbs/2024/06/3e2b1059f28559ea615e94acbae2b474.png (https://hostingkartinok.com/show-image.php?id=3e2b1059f28559ea615e94acbae2b474)

https://s1.hostingkartinok.com/uploads/thumbs/2024/06/4bcb03b6bd6e70ac6ae6e8c93ffa541f.png (https://hostingkartinok.com/show-image.php?id=4bcb03b6bd6e70ac6ae6e8c93ffa541f)

https://s1.hostingkartinok.com/uploads/thumbs/2024/06/6034ff0ac96aa32b4add939a733874c4.png (https://hostingkartinok.com/show-image.php?id=6034ff0ac96aa32b4add939a733874c4)

https://s1.hostingkartinok.com/uploads/thumbs/2024/06/c73bdf963f4aa600315c4829ef3ddb1c.png (https://hostingkartinok.com/show-image.php?id=c73bdf963f4aa600315c4829ef3ddb1c)

ivagor
06.06.2024, 12:04
Выглядит здорово, даже не верится, что это современная реплика.
Если не секрет, то какая примерно себестоимость полного комплекта (плата+детали+корпус+клавиа тура, без стоимости монтажа/сборки)?
Из фото не понял, надпись на корпусе отдельно наклеена или сразу напечатана на корпусе на 3D принтере?

svofski
06.06.2024, 12:28
Зверски красиво!

Improver
06.06.2024, 12:40
Если не секрет, то какая примерно себестоимость полного комплекта (плата+детали+корпус+клавиа тура, без стоимости монтажа/сборки)?До этого подсчётов не вёл, покупалось всё в разное время при сильно разном курсе валюты, но примерно получается так:
- Три платы, каждая по 5 шт. (заказ из Китая) -- 6000 руб., или 1200 руб. один набор. Плюс плата клавиатуры, ещё 700 руб., итого 1900 руб., будем считать, как один комплект.
- Кнопки черри с крышками, 1600 руб. + 1200 руб, ещё пробел с механизмом балансировки, 330 руб., всего 3130 руб.
- Корпус мне изготовили за 13000 руб., но были предложения в различных конторах от 8000 до 30000 руб., так что при повторении тут может сумма сильно измениться... Кстати, за эту же сумму можно купить убитый Вектор и взять его корпус, но я решил, что надо изготавливать.
- Детали... Это самое сложное, т.к. покупалось в разное время и в разных количествах, что-то ушло в запас, что-то взял из запаса... Давайте посчитаем так: 81 микросхема в среднем по 50 руб., выходит на 4050 руб., плюс резисторы-конденсаторы-разъёмы всякие... Берём грубо, что на 5000 руб.
- Мелочёвка всякая: винты, втулки резьбовые, краска для корпуса, припой и паяльная паста, провода, инструмент и т.п. -- оценим грубо на 1000 руб.
Итого сейчас затраты примерно на 24 тысячи, и они ещё будут увеличиваться, т.к. разработка ещё не завершена. :)


Из фото не понял, надпись на корпусе отдельно наклеена или сразу напечатана на корпусе на 3D принтере?Распечатал на цветном принтере, заклеил сверху скотчем и наклеил на корпус на клей ПВА. Скорее всего, этот вариант будет заменён потом на металлический шильдик, но для визуализации сейчас вполне подходит.

Ramiros
07.06.2024, 09:51
Improver, 3D модель корпуса сам делал, или там где заказывал?

Improver
07.06.2024, 20:03
Improver, 3D модель корпуса сам делал, или там где заказывал?Сам, по своему Вектору (волжский вариант), плюс сделал там несколько улучшений, не влияющих на внешний вид... Всё выложено на гитхаб (https://github.com/ImproverX/Vector06c_case), если надо.

KTSerg
08.06.2024, 03:40
Сам, по своему Вектору (волжский вариант), плюс сделал там несколько улучшений, не влияющих на внешний вид... Всё выложено на гитхаб (https://github.com/ImproverX/Vector06c_case), если надо.
А сбоку две "заглушки" для дополнительных разъёмов, уже есть идеи, что подключать?

Improver
08.06.2024, 07:20
А сбоку две "заглушки" для дополнительных разъёмов, уже есть идеи, что подключать?Да, это сделал для установки разъёмов джойстиков ПК-6128ц, типа Д9 (как сом-порт), такие на Sega и MSX.

svofski
11.06.2024, 11:15
Improver, расскажи, пожалуйста, поподробней про корпус. Чем печатал, на чем, как ориентировал, как обрабатывал после печати? Если ты конечно не пишешь книгу и не снимаешь видео на 1.5 часа про процесс. Тогда я готов подождать.

Improver
11.06.2024, 13:23
расскажи, пожалуйста, поподробней про корпус. Чем печатал, на чем, как ориентировал, как обрабатывал после печати?Печатал не я, как уже написал ранее, но процесс был примерно такой: материал PLA+, порекомендовали чёрный, как наиболее качественный. Печаталась каждая деталь из двух половин, которые склеивались дихлорэтаном. Расположение половин на столе при печати -- вертикальное, на боковые грани корпуса. Разделение модели для печати, считаю, было не очень удачным, ровно посередине, лучше бы разрез немного сместили и не резали стойки и рёбра жёсткости, но со мной этот момент не согласовали, увы... Не я же занимался и склейкой половин, по договорённости с исполнителем.

Зачистку поверхности делал сам -- там немного было... Шлифовать всю поверхность шкуркой не стал, чтобы не затереть символы, просто слегка прошёлся по граням и углам. После зачистки и установки вплавляемых резьбовых втулок покрыл двумя слоями белой акриловой грунтовки (на первый слой ушёл целый аэрозольный баллончик 270мл, на второй слой расход немного меньше), после покрыл акриловой краской, для блеска. Возможно надо было три слоя грунтовки сделать, всё-таки немного просвечивает чернота основы. Грунтовка высыхает практически в ноль по толщине, остался даже заметен стык между половинами, так что количество слоёв можно увеличить. Но если не придираться к мелочам -- в целом неплохо вышло, считаю.

ivagor
11.06.2024, 14:09
Получается если уместить вектор в половинном размере (клавиатура внешняя через контроллер), то можно без склейки.

Improver
11.06.2024, 15:30
Получается если уместить вектор в половинном размере (клавиатура внешняя через контроллер), то можно без склейки.Вообще, есть 3Д-принтеры, которые могут распечатать целиком, но они есть далеко не у каждого, и не в каждом городе -- мне просто не повезло... А если делать половинный размер с внешней клавиатурой, то есть не придерживаться "канона", то тогда форма Вектора уже теряет смысл и легче будет поместить всё в готовый корпус miniITX, например, чем изготавливать уменьшенную копию.

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

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

svofski
11.06.2024, 16:45
Грунтовка высыхает практически в ноль по толщине, остался даже заметен стык между половинами, так что количество слоёв можно увеличить.
Я покупал "Грунт-наполнитель серый "Автоп", уп. 650 мл" (гуглится). Это баллончик аэрозольный, на вид как обычный. Но из него летят здоровенные куски какого-то густого фарша. Заполняет слои отлично, но его надо шкурить конечно потом, так что это не для любой работы.

Improver
03.09.2024, 12:19
Новости по проекту:

Работа шины ВУ исправлена, причина сбоев оказалась в сигнале СТЕК. Точнее сказать причина была в том, что этот сигнал мог быть выставлен в циклах процессора Т4, Т5, Т6 в случае, если младший байт адреса совпадал с кодом команд PUSH/POP/XTHL. После исправления схемы все тесты проходят, МДОСы запускаются, т.е. на ПК-6128ц работают внешние устройства Вектора. Причём из-за повторения сигналов ШАП Вектора, квази-диски, поддерживающие резервное питание, можно переключать с сохранением информации.
Собрал внутренний квази-диск для ПК-6128ц++, схему с разводкой и гербер-файлы выложил на гитхаб (https://github.com/ImproverX/PK-6128c_PP/tree/main/KVAZI_DISK). Квази-диск сделал сразу двойным, на 512кБ, управляется он также, как и два квазидиска для Вектора, по портам 10h и 11h, но с одним ограничением -- в следствие того, что использован один чип на 512кБ невозможно одновременное обращение к двум КД. Но это и в эмуляторах невозможно сделать, если что...

Схему, разводку и другие файлы проекта на гитхабе (https://github.com/ImproverX/PK-6128c_PP) обновил.

В общем, на данный момент все узлы ПК-6128ц++ работают, в остатках только мелкие доработки и дальнейшее развитие, а именно:

Хорошо бы сделать выключение сигнала CAS на шине ВУ при отсутствии БЛК, как на Векторе. Работе КД это не мешает, но всё-таки...
Не помешает протестировать подключение комбодевайсов -- из-за того, что большая часть периферии уже есть в составе ПК, возможны конфликты по портам, надо будет как-то их отключать, или переключать на другие адреса...
Ещё надо попробовать заменить С3 (в схеме видеоЦАП) на больший по ёмкости, либо даже переделать схему на ЦАП по схеме R2R.
Можно переделать схему с к155ре3 на GAL.
Также можно попробовать заменить триггеры задержки в схеме формирования видео на регистры 74HC597.
Возможно стоит разработать платы процессора на КР580ВМ80А и Z80, может даже с повышением частоты.
И, думаю, надо попробовать собрать внутренний контроллер НЖМД на SSD типа DOM, тем более, что из-за совмещения КД один внутренний порт освободился.

Improver
08.10.2024, 10:20
Неожиданно пришла идея разгона ПК-6128ц без повышения частоты... Попробовал вот такой вариант прошивки РЕ3:

Адр. 0 1 2 3 4 5 6 7 8 9 A B C D E F
D0(RATO) 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 -- доступ процессора к памяти
D1(RAS) 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0
D2(CAS) 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 -- для шины ВУ
D3(MX1) 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 -- 0 = адрес по CAS, 1 = адрес по RAS
D4(MX2) 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 -- ОЗУ / Графика
D5(FR6) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 -- чтение первой пары регистров (по положительному фронту F6M)
D6(FR7) 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 -- чтение второй пары регистров (по положительному фронту F6M)
D7(FR1) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 -- 13-й бит адреса (графика) + тактовая частота 750кГц
^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^
Экран ОЗУ 1 2 Экран

Адр. 10 ... 1F - Вариант ускоренного режима работы
D0(RATO) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -- доступ процессора к памяти
D1(RAS) 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
D2(CAS) 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
D3(MX1) 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
D4(MX2) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -- ОЗУ
D5(FR6) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D6(FR7) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D7(FR1) 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 -- тактовая частота 750кГц. Бит 1C -- выравнивание ССИ
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ОЗУ

F 6МГц 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 -- тактовая частота генератора
SVNC 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 -- тактовая частота процессораПолучается так: при выводе пикселей вместо одного Т из четырёх память доступна на два Т подряд, на какой попадёт такт Т3, что немного сокращает размер TW. А при выводе бордюра и КСИ/ССИ память теперь доступна постоянно, а не кратно двум по тактам, как ранее. Теоретически, лучше было бы сделать такты "Экран/ОЗУ" через один, но в текущей схеме это приведёт к неправильному выводу чётных/нечётных пикселей.

В итоге, производительность ещё немного возросла и, в дополнение к предыдущим результатам (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1196938&viewfull=1#post1196938) теста от ivagor, вот новые значения:
https://i.ibb.co/9HTggtf/IMG-20241007-vtec2.jpg (https://ibb.co/9HTggtf)

Ну и для полноты картины, вот изображение теста clrspace (https://zx-pk.ru/threads/8634-vektor-06ts-emulyatsiya.html?p=1204422&viewfull=1#post1204422), как оно выглядит с новой прошивкой:
https://i.ibb.co/Hrvfd0s/IMG-20241007-vtec2.jpg (https://ibb.co/Hrvfd0s)

С новой прошивкой стали иногда появляться сбои при чтении с "магнитофона", а в остальном прошивка работает, глюков в памяти и в работе ПК не выявлено. Единственное, забыл ещё протестировать работу новой прошивки с внешним квази-диском (внутренний работает без проблем).

ivagor
08.10.2024, 10:35
При неравномерном торможении для измерения средней температуры по больнице лучше vst без vi53. Ну и повторюсь, что подобные варианты не будут реализованы в эмуляторах, поэтому ориентироваться на них при написании или модификации программ проблематично.

Improver
08.10.2024, 11:17
подобные варианты не будут реализованы в эмуляторах, поэтому ориентироваться на них при написании или модификации программ проблематично.Согласен. Это "чисто академический" интерес... :)

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


При неравномерном торможении
Кстати, можно сделать равномерное торможение с ускорением -- при КСИ/ССИ отключить два такта, сделать как в основном цикле. Надо будет протестировать, как это повлияет на быстродействие.

Improver
19.10.2024, 23:50
Для проверки возможностей разгона запустил ещё такой вариант прошивки РЕ3:

Адр. 0 1 2 3 4 5 6 7 8 9 A B C D E F
D0(RATO) 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 -- доступ процессора к памяти
D1(RAS) 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0
D2(CAS) 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 -- для шины ВУ
D3(MX1) 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 -- 0 = адрес по CAS, 1 = адрес по RAS
D4(MX2) 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 -- ОЗУ / Графика
D5(FR6) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 -- чтение первой пары регистров (по положительному фронту F6M)
D6(FR7) 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 -- чтение второй пары регистров (по положительному фронту F6M)
D7(FR1) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 -- 13-й бит адреса (графика) + тактовая частота 750кГц
^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^
ОЗУ 1 Экран ОЗУ 2 Экран

Адр. 10 ... 1F - Вариант ускоренного режима работы
D0(RATO) 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 -- доступ процессора к памяти
D1(RAS) 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1
D2(CAS) 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1
D3(MX1) 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1
D4(MX2) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -- ОЗУ
D5(FR6) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D6(FR7) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D7(FR1) 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 -- тактовая частота 750кГц. Бит 1C -- выравнивание ССИ
^^^^^^^ ^^^^^^^
ОЗУ 1 ОЗУ 2

F 6МГц 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 -- тактовая частота генератора
SVNC 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 -- тактовая частота процессораТ.е. тут получается торможение процессора равномерное, в отличие от предыдущего варианта, но кратность выравнивания тактов процессора равна двум, а не четырём, как на обычном ПК-6128ц и Векторе. К сожалению, при этом будет сдвиг пикселей на изображении, эту прошивку без переделки схемы использовать не стоит, хотя других ошибок в работе ПК она не вызывает и проверить быстродействие с ней можно.

Вот результаты теста, по некоторым командам видно ускорение:
https://i.ibb.co/b2nVHRB/IMG-20241019-cpu-x2n.jpg (https://ibb.co/0F3LBVM)

А вот если делать два такта ОЗУ и два такта экран, без чередования, то результаты ничем не отличаются от прошивки с выравниванием тактов процессора с кратностью 4.
https://i.ibb.co/jrz92nR/IMG-20241019-224731.jpg (https://ibb.co/FDXkMRV)

https://i.ibb.co/jhHBxXr/IMG-20241019-224851.jpg (https://ibb.co/4WJ9DrV)

ivagor
20.10.2024, 06:26
Извините за повтор, но при доступе через такт 8085 в принципе может обеспечить прозрачный доступ проца к озу, доказательством чего является zx8085 Micka. И теоретически все же можно получить ускорение при доступе 2 через 2. У 8085 довольно долгие обращения к памяти, насколько помню почти 2 такта. Если их удачно сдвинуть (есть нюанс с тактированием проца, см. zx8085), то получается, что один такт задержки совсем не помеха, а два такта подряд - как один. Но это теоретически, т.к. уже сильные изменения по сравнению с 6128.

Improver
20.10.2024, 09:22
Извините за повтор, но при доступе через такт 8085 в принципе может обеспечить прозрачный доступ проца к озуДа, я помню, и к этому стремлюсь. :)

ivagor
21.10.2024, 06:15
Опять повторяюсь, но отсутствие торможения интересно в основном готовой эмуляцией такого варианта в Emu при минимальном редактировании конфига. А с точки зрения минимизации изменений 6128 мне кажется проще удвоить тактовую проца при сохранении тормозов, часть команд ускорится.

Improver
16.01.2025, 10:44
Продолжаю эксперименты с разгоном по памяти: заменил-таки D45 и D47 на регистры 74HC597 и, соответственно, убрал триггер задержки D49, что позволило ещё немного поиграться с таймингами. К сожалению, параллельная загрузка на 74HC597 немного отличается от 74HC166, из-за чего пришлось сгенерировать для них свой сигнал в ущерб MX1, но это не критично -- МХ1 можно получить просто через один логический элемент ИЛИ. Циклы работы в прошивке получились такие:

Адр. 0 1 2 3 4 5 6 7 8 9 A B C D E F
D0(RATO) 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 -- доступ процессора к памяти
D1(RAS) 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
D2(CAS) 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 -- для шины ВУ
D3(FR71) 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 -- FR7 для D45 и D47; MX1 = (MX2 or RAS)
D4(MX2) 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 -- ОЗУ / Графика
D5(FR6) 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 -- сохранение в буфер регистров D45 и D47
D6(FR7) 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 -- параллельная загрузка в регистры (по положительному фронту F6M)
D7(FR1) 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 -- 13-й бит адреса (графика) + тактовая частота 750кГц
^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^
Экран ОЗУ

Адр. 10 ... 1F - Вариант ускоренного режима работы
D0(RATO) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -- доступ процессора к памяти
D1(RAS) 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
D2(CAS) 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
D3(FR71) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D4(MX2) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -- ОЗУ
D5(FR6) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D6(FR7) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
D7(FR1) 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 -- тактовая частота 750кГц. Бит 1C -- выравнивание ССИ
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ОЗУ

F 6МГц 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 -- тактовая частота генератора
SVNC 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 -- тактовая частота процессораПолучается так: 3 такта доступ к памяти и 1 к экрану. Или 3/4 к 1/4...
По тесту VST (https://caglrc.cc/scalar/ware/787/) есть улучшение показателей по сравнению с предыдущими значениями (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1196904&viewfull=1#post1196904):

https://i.ibb.co/qsZH3MK/IMG-20250116-100305.jpg (https://ibb.co/qsZH3MK)

А вот VSTVI53 (https://caglrc.cc/scalar/ware/908/) почему-то наоборот, показатели снизил, и объяснения этому у меня нет. Вот результаты:

https://i.ibb.co/ydzVDzH/IMG-20250113-222740.jpg (https://ibb.co/ydzVDzH)

Практически да, можно обращения к памяти экрана вообще задвинуть в промежутки между обращениями к памяти процессора, но для этого требуется либо инвертировать частоту F 6МГц (иначе положительные фронты там не попадают в нужное место), либо D46 и D48 также заменить на 74HC597.

ivagor
16.01.2025, 11:46
В vstvi53 тоже все нормально, ускорение есть, там результаты интерпретируются иначе.
Для 3 МГц пересчет результатов тестов в такты
vst: 312*192/результат
vstvi53: результат/1000
Нецелые значения, которые получаются для ряда команд при таком варианте торможения - это чередование целых, например 7 и 8 и т.д.

Improver
16.03.2025, 13:18
Не реклама, просто создан канал в телеграме по вопросам изготовления современной реплики ПК-6128ц++, кому интересно -- подключайтесь: t.me/Vektor6128Cpp (https://t.me/Vektor6128Cpp)

Improver
26.03.2025, 10:27
Сделал ещё одну доработку ПК-6128ц -- заменил-таки резисторный видеоЦАП на чип. Но не на ADV7120, который стоит достаточно дорого, а на его дешёвый китайский аналог SDA7123, упоминание о котором я случайно встретил в инете. Аналог, кстати, на али стоит раз в 10 дешевле оригинала, примерно как набор резисторов для того же видеоЦАП Вектора.

Вот так сейчас выглядит эта тестовая доработка:
https://s1.hostingkartinok.com/uploads/thumbs/2025/03/b5cb3e8e3a34b125553ef858b8be57dc.png (https://hostingkartinok.com/show-image.php?id=b5cb3e8e3a34b125553ef858b8be57dc)

https://s1.hostingkartinok.com/uploads/thumbs/2025/03/01168b819025b5f52c15569ef030048f.png (https://hostingkartinok.com/show-image.php?id=01168b819025b5f52c15569ef030048f) https://s1.hostingkartinok.com/uploads/thumbs/2025/03/437a06b6cb7277c49f06cf1198d93b52.png (https://hostingkartinok.com/show-image.php?id=437a06b6cb7277c49f06cf1198d93b52) https://s1.hostingkartinok.com/uploads/thumbs/2025/03/4ac6eea0df7249a34664bfd8f3cf0c8c.png (https://hostingkartinok.com/show-image.php?id=4ac6eea0df7249a34664bfd8f3cf0c8c) https://s1.hostingkartinok.com/uploads/thumbs/2025/03/3033fff5a5bb27c7eea154b0d962700f.png (https://hostingkartinok.com/show-image.php?id=3033fff5a5bb27c7eea154b0d962700f)

Уточню, что подключение было через S-Video.
Что сразу заметно: изображение стало насыщенней, полностью пропали "просветки" отключённых плоскостей (https://zx-pk.ru/threads/34716-reinkarnatsiya-vektor-pk-6128ts.html?p=1194181&viewfull=1#post1194181). Всё-таки в этих "просветках" была виновата сама схема ЦАП Вектора, и даже не погрешность резисторов, а, скорее, характеристики микросхемы К155РУ2 -- её ячейки имеют разные токи утечки, токи при передаче данных, что приводит к тому, что при равных записанных значениях яркость пикселей отличается. Не предназначена она, в общем, для работы в аналоговых цепях.

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

Проект на гитхабе (https://github.com/ImproverX/PK-6128c_PP) (схема, разводка) обновлён, но релиз там не делал -- ещё пока рано...

ivagor
26.03.2025, 10:39
скорее, характеристики микросхемы К155РУ2 -- её ячейки имеют разные токи утечки, токи при передаче данных, что приводит к тому, что при равных записанных значениях яркость пикселей отличается.
В это сложно поверить так сразу, по-хорошему надо проверять. Но для вектора или 6128 это получается уже не нужно, возможно кто-нибудь займется этой отдельной задачей.
С другой стороны можно вспомнить про разные задержки из разных ячеек при использовании некоторых пзу для замены плм. Если тут также, то получается вместо озу с ОК лучше было использовать озу+тактируемый регистр с ОК на выходе данных.

Improver
26.03.2025, 11:11
вместо озу с ОК лучше было использовать озу+тактируемый регистр с ОК на выходе данных.По факту, чипы ADV7123 как раз и имеют внутри такой регистр...

Интересно, почему разработчики эмуляторов не обратили внимание на эту особенность Вектора? В эмуляторах есть всякие фильтры, делающие изображение похожим на старый телевизор, а эмуляции "просветки" нет... :)

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

Кстати, тактируемый регистр на входе ЦАП даёт ещё один плюс: с ним чётные и нечётные пиксели становятся совершенно одинаковыми по ширине (фоток для подтверждения не делал, но, думаю, и так понятно).

ivagor
26.03.2025, 11:27
В эмуляторах есть всякие фильтры, делающие изображение похожим на старый телевизор, а эмуляции "просветки" нет
В эмуляторах кроме VV нет даже такой обязательной для (всех?) векторов штуки как эмуляция зон непрограммируемости палитры. Ну а оригинальных зон для 06Ц и .02 нет ни в одном эмуляторе.
А вот разные точки режима 512 и просветы я бы поставил на 2 и 3 место по значимости неподдерживаемых фич. Отсутствие поддержки некоторых непринципиальных особенностей изображения характерно не только для вектора, но для таких монстров, как С64. Эмуляторы с поддержкой jailbars надо еще поискать. Хотя я давно не погружался в комод, может ситауция изменилась.

svofski
26.03.2025, 15:17
В эмуляторах кроме VV нет даже такой обязательной для (всех?) векторов штуки как эмуляция зон непрограммируемости палитры.
Ты помнишь, чем кончилось когда мы последний раз гоняли мультиколоры с дизерами? Мне казалось, что зоны непрограммируемости по крайней мере некоторых реалов сильно шире, чем в VV. Даже пришлось подгонять старые примеры.

ivagor
26.03.2025, 16:07
зоны непрограммируемости по крайней мере некоторых реалов сильно шире, чем в VV
Да, они шире и так и должно быть, т.к. в VV зоны непрограммируемости по моему бывшему реалу, который был модифицирован по методу Tim0xи. Соответственно укоротились ССИ и зоны непрограммируемости. А полный тест немодифицированных 06Ц и .02 никто не делал. Или делал, но результатами не поделился.

Pyk
28.03.2025, 12:05
В эмуляторах кроме VV нет даже такой обязательной для (всех?) векторов штуки как эмуляция зон непрограммируемости палитры. Ну а оригинальных зон для 06Ц и .02 нет ни в одном эмуляторе.
Сделать можно, но:

полный тест немодифицированных 06Ц и .02 никто не делал
Какой вариант тогда делать и делать ли вообще?:v2_unsur:

ivagor
28.03.2025, 12:32
То, что я написал, может выглядит как упрек эмуляторостроителям, но конечно тут комплексная задача.
1. Нужен продвинутый и заинтересованный реальщик, который напишет и прогонит тесты, а потом выложит результат, доступный для реализации и проверки. Казалось бы тесты может написать и кто-то другой, но задача объяснения, как ими пользоваться может оказаться сравнимой по сложности с тем, чтобы написать самому.
2. Реализация в эмуляторах. Пример VV показывает, что это вполне возможно.

Если фантазировать без привязки к реальности, то можно например придумать вариант переделки вектора для возможности чтения из РУ2. Тогда можно сделать автоматический тест, но этот вариант уж совсем из области фантастики.

Improver
28.03.2025, 20:53
Нужен продвинутый и заинтересованный реальщик, который напишет и прогонит тесты, а потом выложит результат, доступный для реализации и проверки. Казалось бы тесты может написать и кто-то другой, но задача объяснения, как ими пользоваться может оказаться сравнимой по сложности с тем, чтобы написать самому.Теоретически, можно написать тест, который будет менять палитру в каждой строке, причём в каждой строке задержки делать разными со сдвигом, а по картинке судить, в каких строках палитра не программируется. Тогда этот тест сможет запустить каждый обладатель реала, и не вникая в тонкости просто показать фото экрана...

ivagor
28.03.2025, 21:12
Не все так просто.
1. Есть разные варианты строк по паттернам непрограммируемости. В моем модифицированном реале (и в VV) 4 "типа" строк (или 3 с половиной, смотря как считать).
2. Часть строк не отображается на экране. И как раз там "особенные" паттерны непрограммируемости.

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

В принципе возможен тест, результаты которого записываются на видео, так можно восстановить полную картину.

Improver
29.03.2025, 07:31
В принципе возможен тест, результаты которого записываются на видео, так можно восстановить полную картину.Да, можно и видео. Примерно так: рисуем 16 полосок (квадратиков) по цветам, обнуляем палитру и пишем по одному цвету в прерывание, каждый раз с разной задержкой. Потом снова обнуляем и снова пишем, с другими задержками, пока не пройдём весь диапазон. Ну ещё какая-нибудь метка с номером теста на экране не помешает, чтобы не гадать потом по кадрам видео.

ivagor
29.03.2025, 10:23
Про 16 цветных полосок/квадратиков я не понял.
Для ориентировки на экране надо отображать два числа: номер строки и позицию в строке, в которой программировали РУ2 в данном прерывании.

Improver
29.03.2025, 12:37
Про 16 цветных полосок/квадратиков я не понял.Поясню свою мысль... Области непрограммирования палитры находятся же в пределах КСИ, значит можно сделать до 16 записей за кадр, посмотреть результат, какие записи прошли, какие нет на этих 16 полосках/квадратиках/строчках, каждой из которых назначен свой цвет из 16. Допустим, мы знаем, что цвет №5 записывался в палитру через N мкс после прерывания, и если квадратик остался чёрным, значит это место непрограммируемости. Потом сделать паузу для снятия скриншота и повторить с другими смещениями... Наверно, можно количество таких замеров за один кадр увеличить, если использовать мультиколор, но я не особо представляю, как.

ivagor
29.03.2025, 13:11
Понял, речь о "пакетном" тестировании для ускорении теста, чтобы видео было покороче. Я бы сам не стал, так сложнее сделать правильный тест и сложнее интерпретировать результаты, но это мои субъективные предпочтения.
Немного занудства - не только в пределах КСИ, но и ССИ, если речь про 06Ц и .02.

Improver
31.03.2025, 15:34
не только в пределах КСИ, но и ССИ, если речь про 06Ц и .02.Я посмотрел схему -- похоже, зоны непрограммируемости палитры определяются наличием "1" на сигнале синхронизации, значит для первого Вектора без доработок они будут выгядеть так:
82135 82136 82137
Вверху сигнал 50Гц, внизу -- синхронизация, сигнал снят с выв.2 К155РУ2 (Д32 / Д39). Зоны непрограммируемости, получаются, по ~10мкс и ~27мкс при КСИ с частотой следования строк.

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

Для 02 Вектора ССИ будет в два раза меньше, но подтвердить измерениями не могу в связи с его отсутствием у меня. А на ПК-6128ц я тут (https://zx-pk.ru/threads/8634-vektor-06ts-emulyatsiya.html?p=1204433&viewfull=1#post1204433) приводил расчётный график непрограммируемости -- он тоже свой. ПК-6128ц++ таких зон не имеет.

Improver
17.12.2025, 12:47
Продвижения по проекту:
- Собрал внутренний контроллер НЖМД, причём сразу в двух вариантах, с разъёмом IDE и под CF-card.
https://s1.hostingkartinok.com/uploads/thumbs/2025/12/867ffdb785618c28b61f26b85ea16803.png (https://hostingkartinok.com/show-image.php?id=867ffdb785618c28b61f26b85ea16803) https://s1.hostingkartinok.com/uploads/thumbs/2025/12/0f1b6605c5ea72ee33c6d1581e857c58.png (https://hostingkartinok.com/show-image.php?id=0f1b6605c5ea72ee33c6d1581e857c58)
В ходе сборки пришлось переписать TESTHDD -- никак не мог разобраться, почему контроллер глючит, а оказалось в итоге, что это просто брак пайки. :)
Свежая версия: 83346, и она же с исходниками выложена тут: github.com/ImproverX/TESTHDD-for-Vector06c (https://github.com/ImproverX/TESTHDD-for-Vector06c)

- Опубликовал альтернативную схему блока памяти с регистрами на 74HC597, что даёт возможность разнести такты обращения графической подсистемы к ОЗУ.
Установка данного модуля взамен стандартного возможна в любой версии плат ПК-6128ц++, но в схемах до 27.01.2025, из-за отсутствия в схеме ОЗУ-Т2 сигнала /CAS, не будут работать внешние квази-диски (на ВУ).

По тестам, выравнивание с кратностью равной двум тактам (вместо стандартных четырёх), даёт основное преимущество на командах:

CALL, C*-Y/N
DAD
DCX, INX
PUSH
R*-Y/N
SPHL
RST*

А также на недокументированных командах процессора 8085:

DSUB
LDHI, LDSI
RDEL
RSTV

Всё, что относится к проекту, выложено на гитхаб (https://github.com/ImproverX/PK-6128c_PP).