Цитата Сообщение от barsik Посмотреть сообщение
Во-первых, написан ли свой блок эмуляции КР580 или использован чей-то чужой проверенный блок эмуляции 8080? Эмуляция на ассемблере только системы команд 8-ми разрядного процессора (в зависимости от близости процессоров) без учёта конвейера тормозит скорость прогона в 25-40 раз. Из-за конвейера эта величина в несколько раз ниже. При использовании оптимизирующего Си для процессора с кэшем (где операции с ОЗУ не тормознее, чем с регистрами) торможение лишь немного выше, чем на ассемблере. Потому в 8 МГЦ эмулируемого КР580 вполне верится. Но это только для эмуляции лишь процессора. А как же с экраном?
Я использую эмулятор i8080 от begoon, на гитхабе указано. Современные RISC-процы крайне навороченные и сравнивать их производительность с тактами не совсем правильно. Та же xtensa, на которой работает ESP8266 многоконвеерная, т.е. разные конвееры занимаются выполнением различных операций паралельно. Еще и отдельный конвеер раскладывает задания. Т.ч. в зависимости даже от порядка выполняемого кода, он может выполняться быстрее или медленнее. К примеру, 1-я инструкция может помещать в память какое-то число, а 2-я инструкция может использовать эту же ячейку памяти. Так вот, без специальной команды синхронизации такое работать не будет, т.к. эти команды скорее всего будут выполняться параллельно на разных конвеерах, 1-й будет заниматься записью, второй - чтением, но при этом запись еще не будет завершена и вторая команда будет еще использовать старые данные. В общем там все сложно, просто так по тактам выполнения команды не подсчитаешь

Цитата Сообщение от barsik Посмотреть сообщение
Здесь видео делает сам процессор. При такте CPU в 80 МГЦ это возможно, но тогда для прогона программы КР580 остаётся только время долгого гашения луча во время обратного хода кадровой развёртки, что для РК составляет лишь 20% времени, отчего эффективное быстродействие падает в 5 раз. Т.е это принцип ZX80/ZX81.
Проц работает на 160МГц, остальная переферия на 80МГц. Это разрешенный штатный максимум. Видео генерируется не совсем и программно. Программно генерируются буфера для каждой строки. Я делал профайлинг в реальном времени - генерация строки видео занимает порядка 6мкс процессорного времени. При длительности строки 64мкс - это менее 10% загрузки процессора. А при учете, что есть еще пустые строки и строки кадровой синхронизации, которые лежат готовые в ОЗУ и на их генерацию проц не тратится, то фактически это число уже 7-8%.
Эти буфера выкидываются через DMA на выход I2S, что дает битовый поток на скорости 40 МБит. Сигнал синхронизации выдается по таймеру, для точности смешивается с видеоданными как раз с помощью 74HC00. Т.ч. на вывод графики тратится не так уж много ресурсов.

Многие спрашивают про цветную графику. Дам развернутый ответ.
Текущая аппаратная реализация цвет никаким образом получить не сможет, т.к. вывод графики 1-битный. Аппаратных интерфейсов для вывода цвета на ESP8266 нет (имеется в виду без дополнительной внешней логики).
Что касается работы @cnlohr и вывода цвета через 3-й канал NTSC - я такого делать не буду, т.к. это не более, чем хак для конкретных случаев. К тому же качество графики отвратительное.
У меня есть идея для отдельного цветового процессора, которому буду передавать только данные цветности, а он будет модулировать ЧБ-сигнал от ESP.

Цитата Сообщение от barsik Посмотреть сообщение
При этом возникает вопрос, а с какой реально скоростью прогоняется эмулируемая программа КР580 (или Z80)? Дотягивает ли до 3.5 МГЦ, чтобы хватило на ZX-Spectrum? Возможно хватит, т.к у ZX кадровый бланк длится дольше (38.5% периода кадра). Но даже если хватит, то есть сомнения, что получится качественно его эмулировать, ведь там всё основано на времянках и движения спрайтов делаются по прерываниям во время гашения луча.
Если убрать вывод графики и оптимизировать HAL, то можно получить частоту эмуляции 10-12 МГц, думаю. Ресурсов хватает с запасом.

Цитата Сообщение от barsik Посмотреть сообщение
И ещё такой вопрос. Раз этот микроконтроллер дёшев и эмулирует КР580 быстрее, чем 2.5 МГЦ, то нельзя ли из него сделать скоростной микропроцессор КР580 работающий с тактом 8 МГЦ? Т.к есть 15 программируемых входов-выходов, то нельзя ли, добавив регистры для защёлок шины адреса, сделать дешёвый, но скоростной эквивалент КР580. Например, для турбирования Специалиста нужен КР580 на 4 МГЦ, т.е 8080-D, но он редкий и потому винтажный и очень дорогой.
Его легко можно эмулировать на каком-нибудь STM32 в корпусе LQFP48 там и портов достаточно и флэша для эмуляции того же ПЗУ.


Цитата Сообщение от barsik Посмотреть сообщение
Проблемы со звуком, видимо, объясняют мои предположения о прогоне программы КР580 только во время бордюра. Если в РК86 звук хрипастый, лишь оттого, что за время вывода строки в 64 МКСЕК ПДП кратковременно рвёт прогон программы 5 раз, то тут прогон полностью пропадает на долгие 16.4 МСЕК, отчего звуки вообще невозможны (100% модуляция частотой 50 ГЦ со скважностью 5). По тем же причинам без гашения экрана, как и на реальном РК, не получится ввод с магнитофона.
Со звуком как раз проблем нет никаких. Просто на ESP-01 нет свободных пинов. Я сделаю проект на чем-нибудь типа ESP-03 (у него портов побольше), тогда и звук будет.

Цитата Сообщение от barsik Посмотреть сообщение
Кстати, похоже, что на базе этого микроконтроллера можно сделать оцифровыватель ТВ-кадров с телевизора или с видеокамеры.
Адекватного ничего не сделаешь, да и зачем ? USB-видеовход на Али стоит 300р.


Информация для тех, кто хочет повторить этот проект.
Чтобы не ждать, ESP-01 (как и 74HC00, разъемы, платы итд) можно купить на http://chip-nn.ru/
У них они всегда в наличии и всего по 175р (на Али в районе 100р).