Долго думал над картинкой с того сайта и вот что надумал:
Счетчики считают вперед, перезагрузка только на краю. У вертикального счетчика есть предустановка старшего разряда, который отвечает за бордюр. Кадровый синхроимпульс смещен на 8 строк ниже для упрощения. Насколько данный расчет близок к истине?
Я где-то потерял 2 микросхемы LH21256, это зарубежный аналог 565РУ7. Жалко, придется использовать M5M4464A, а у них объеденены вход и выход данных. Хотя, есть еще выбор - найти все же недостающие РУ7 или использовать SIMM30. У SIMM30 входы и выходы данных объедены, зато там максимальный объем 1 мегабайт, но наверное это перебор. Откладываю все до приобретения необходимых компонентов.
Сегодня посвятил весь день поиску потерянных РУ7х. К сожалению не нашел. Так как все равно придется пропускать шину данных памяти через CPLD, решил использовать то, что есть. Начал компоновать макетную плату:
Теперь надо выделить время и потратить запас МГТФ провода...
Нашел реализацию PAL кодера на ПЛИС. Добавил. Генерирует 12 фаз поднесущей. Полное цветовое пространство (через EasyCAP):
Желтые цвета требуют повышенной яркости, что заметно на бордюре. Ленинград с S-Video выходом в PAL формате. Я бы его купил в 90х.
Потратил весь день на проект. Выводил экран ZX-Spectrum без участия Z80 и блокированным сигналом записи. Понимаю, что "матрас" должен быть стабильным, но он меняется через некоторое время после включения. Пришел к выводу, что все-таки текущего режима регенерации не хватает для выбранной памяти. Получается, что либо менять память на стандартную, либо как-то вводить циклы CAS_перед_RAS в общую диаграмму работы, чтобы можно было использовать память сколь угодно большого объема. Циклы вставить можно во время формирования бордюра, но тогда нарушается тайминг Ленинграда в целом. Как теперь быть?
Добрый день! Я не потерялся, просто уезжал. В общем, не получилось найти РУ5е или РУ7е. Поэтому, буду ставить статическое ОЗУ. Но сигналы привяжу к CAS и получится как-будто динамическое, только не будет требовать обязательной регенерации. Как перепаяю макетку покажу результат.
Припаял SRAM. Демультиплексировал адреса. Занулил CS. Управляю только OE и WR, которые привязаны к CAS. Появился стабильный спектрумский матрас. Что и требовалось доказать. Начинаю пайку процессора и ПЗУ, пора бы уже увидеть заветную надпись.
Припаял процессор и ПЗУ. В ПЗУ зашил стандартный ROM от 48К 1982 года. Результат:
Регистры портов не реализованы, INT тоже. Но он стартует и выводит надпись. Это радует.
Пока только в квартусе и на макетке. Вчера нашел много ошибок в схеме в квартусе, которые исправил. Из-за них иногда появлялся снег (ошибка при захвате атрибута из памяти) и окно бордюра было смещено на 8 точек вправо (надпись не должна начинаться прямо с бордюра). Когда реализую клавиатурный порт и прерывание, то сразу проверю качество таймингов окончательно.