С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Опять повторяюсь, но отсутствие торможения интересно в основном готовой эмуляцией такого варианта в Emu при минимальном редактировании конфига. А с точки зрения минимизации изменений 6128 мне кажется проще удвоить тактовую проца при сохранении тормозов, часть команд ускорится.
Продолжаю эксперименты с разгоном по памяти: заменил-таки D45 и D47 на регистры 74HC597 и, соответственно, убрал триггер задержки D49, что позволило ещё немного поиграться с таймингами. К сожалению, параллельная загрузка на 74HC597 немного отличается от 74HC166, из-за чего пришлось сгенерировать для них свой сигнал в ущерб MX1, но это не критично -- МХ1 можно получить просто через один логический элемент ИЛИ. Циклы работы в прошивке получились такие:
Получается так: 3 такта доступ к памяти и 1 к экрану. Или 3/4 к 1/4...Код:Адр. 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 -- тактовая частота процессора
По тесту VST есть улучшение показателей по сравнению с предыдущими значениями:
А вот VSTVI53 почему-то наоборот, показатели снизил, и объяснения этому у меня нет. Вот результаты:
Практически да, можно обращения к памяти экрана вообще задвинуть в промежутки между обращениями к памяти процессора, но для этого требуется либо инвертировать частоту F 6МГц (иначе положительные фронты там не попадают в нужное место), либо D46 и D48 также заменить на 74HC597.
ivagor(16.01.2025)
В vstvi53 тоже все нормально, ускорение есть, там результаты интерпретируются иначе.
Для 3 МГц пересчет результатов тестов в такты
vst: 312*192/результат
vstvi53: результат/1000
Нецелые значения, которые получаются для ряда команд при таком варианте торможения - это чередование целых, например 7 и 8 и т.д.
Improver(16.01.2025)
Не реклама, просто создан канал в телеграме по вопросам изготовления современной реплики ПК-6128ц++, кому интересно -- подключайтесь: t.me/Vektor6128Cpp
Сделал ещё одну доработку ПК-6128ц -- заменил-таки резисторный видеоЦАП на чип. Но не на ADV7120, который стоит достаточно дорого, а на его дешёвый китайский аналог SDA7123, упоминание о котором я случайно встретил в инете. Аналог, кстати, на али стоит раз в 10 дешевле оригинала, примерно как набор резисторов для того же видеоЦАП Вектора.
Вот так сейчас выглядит эта тестовая доработка:
Фото изображения на телевизоре после доработки
Что сразу заметно: изображение стало насыщенней, полностью пропали "просветки" отключённых плоскостей. Всё-таки в этих "просветках" была виновата сама схема ЦАП Вектора, и даже не погрешность резисторов, а, скорее, характеристики микросхемы К155РУ2 -- её ячейки имеют разные токи утечки, токи при передаче данных, что приводит к тому, что при равных записанных значениях яркость пикселей отличается. Не предназначена она, в общем, для работы в аналоговых цепях.
Да, после доработки палитра стала немного отличаться -- это заметно на градиенте серых цветов, некоторые стали немного "синить", а некоторые наоборот, "желтить", готов в этом направлении получить неодобрение от сторонников истинной Векторовской палитры, но, считаю, что эти искажения несущественны, доработка того стоила. Кстати, в Вектор-Турбо тоже используется чип ADV7120.
Проект на гитхабе (схема, разводка) обновлён, но релиз там не делал -- ещё пока рано...
electroscat(31.03.2025), ivagor(26.03.2025), Pyk(28.03.2025), tnt23(26.03.2025)
В это сложно поверить так сразу, по-хорошему надо проверять. Но для вектора или 6128 это получается уже не нужно, возможно кто-нибудь займется этой отдельной задачей.
С другой стороны можно вспомнить про разные задержки из разных ячеек при использовании некоторых пзу для замены плм. Если тут также, то получается вместо озу с ОК лучше было использовать озу+тактируемый регистр с ОК на выходе данных.
По факту, чипы ADV7123 как раз и имеют внутри такой регистр...
Интересно, почему разработчики эмуляторов не обратили внимание на эту особенность Вектора? В эмуляторах есть всякие фильтры, делающие изображение похожим на старый телевизор, а эмуляции "просветки" нет...
- - - Добавлено - - -
Кстати, тактируемый регистр на входе ЦАП даёт ещё один плюс: с ним чётные и нечётные пиксели становятся совершенно одинаковыми по ширине (фоток для подтверждения не делал, но, думаю, и так понятно).
В эмуляторах кроме VV нет даже такой обязательной для (всех?) векторов штуки как эмуляция зон непрограммируемости палитры. Ну а оригинальных зон для 06Ц и .02 нет ни в одном эмуляторе.
А вот разные точки режима 512 и просветы я бы поставил на 2 и 3 место по значимости неподдерживаемых фич. Отсутствие поддержки некоторых непринципиальных особенностей изображения характерно не только для вектора, но для таких монстров, как С64. Эмуляторы с поддержкой jailbars надо еще поискать. Хотя я давно не погружался в комод, может ситауция изменилась.
Improver(26.03.2025)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)