Настоящий Z80, а RP2350B притворяется всей ULA ZX Spectrum
В гибридном ZX-совместимом компьютере тактирование Z80, арбитраж видеопамяти и формирование VGA перенесены в RP2350B, тогда как процессор Z84C00, ROM и SRAM оставлены дискретными. Плата выдаёт 720×576 при 50 Гц и сохраняет загрузку программ с кассеты. Главный компромисс проекта лежит в таймингах: совместимость с играми уже показана, однако поведение оригинальной ULA по каждому такту пока не воспроизведено.
Проект ZX-совместимого homebrew-компьютера объединил настоящий Z84C00 в DIP-40 с модулем на RP2350B, который берёт на себя функции Spectrum-специфичной ULA. Микроконтроллер формирует тактовый сигнал процессора, участвует в обслуживании общей памяти, опрашивает клавиатуру и периферию, создаёт видеосигнал. Получается аппаратная машина, где код исполняет физический Z80, а наиболее сложная заказная логика 1980-х заменена программой и PIO-автоматами современного MCU.
Память разделена на три области. В роли ПЗУ используется W27C512: из 64 КБ микросхемы DIP-переключателями выбирается требуемый 16-КБ образ. Для Z80 выделены 32 КБ SRAM, ещё 16 КБ SRAM доступны и CPU, и RP2350B. Этот общий участок нужен видеоподсистеме и требует арбитража доступа. Шины данных процессора и контроллера соединены резисторами, что повторяет принцип развязки в Spectrum; адресные линии, а также сигналы /RD и /WR заведены через буферы SN74LS541. Тактовый выход RP2350B дополнительно буферизован транзистором S9018.
Важная часть реализации — memory contention. Оригинальная ULA отнимала у Z80 такты при обращениях к экранной памяти в определённые фазы развёртки, и многие программы использовали этот эффект как часть своей логики или для графических приёмов на границе кадра. В новой машине задержки доступа воспроизводятся управляющей прошивкой. Это позволяет приблизить поведение шины к Spectrum, однако автор прямо указывает, что система не является cycle-perfect. Для демо с точной синхронизацией бордюра, нестандартными видеорежимами и зависимостью от отдельных T-state остаётся риск несовместимости.
Видеовыход реализован в формате VGA 720×576p с кадровой частотой 50 Гц. Строки изображения Spectrum удваиваются, чтобы согласовать 192 активные строки исходной машины с 576 строками VGA-кадра. Нижняя рамка сокращена до 48 строк против 56 у PAL-варианта Spectrum: такое решение укладывает развёртку в выбранную геометрию. Работу VGA подтверждает собранный прототип с тестовым изображением на мониторе, но измерений джиттера, параметров RGB и перечня протестированных дисплеев пока нет.
Загрузка намеренно оставлена кассетной через аудиоинтерфейс. SD-карта и ускоренные загрузчики в текущую конфигурацию не включены, хотя разъём расширения выводит сигналы Z80 и оставляет пространство для дальнейшей периферии. HDMI пока отсутствует; для него прорабатывалась отдельная плата на TFP410 с 27-МГц пиксельным тактом и сигналом Data Enable.
Исходники прошивки на C и PIO ASM, схема в KiCad и фотографии платы опубликованы открыто. Первая ревизия PCB содержала ошибки схемы и разводки, исправленный вариант ещё ожидает изготовления. Поэтому проект уже пригоден как редкий пример MCU-чипсета на реальной восьмибитной шине, но его совместимость следует считать предварительной: она подтверждена запуском набора игр, а не полным тестом программ и периферии Spectrum.