Если есть возможность добавить FM часть, то почему бы и нет. К тому же как я сказал выше, прерывания практически за так бонусом идут :)
А с FM частью, так для 8080 тоже не было раньше плееров для AY
Вид для печати
Конвертнул исходник плейера PT3/PT2 из сообщения из ужасма в TASM с преобразованием мнемоник из Z80 в I8080.
При большом желании можно и прерывания от таймера привязать к развертке. Главное условие - частота тактирования таймера должна быть привязана к "базовой" частоте компа, из которой получаются частоты развертки и проца.
1. Необходимо завести на какой-нибудь порт состояние кадровых синхроимпульсов.
2. В цикле опрашиваем этот порт, ждем границы кадра.
3. Когда дождались программируем таймер на выдачу импульсов с кадровой (или кратной) частотой.
Удобнее, но затратнее по аппаратной части, использовать контроллер прерываний или коммутацию нескольких источников (например с частотой кадров и от таймера).
Кто-нибудь подвесит сопроцессор в реальный клон Специалиста или так и будем восхищаться работой проигрывателя в эмуляторе?
Я бы с радостью припаял, если бы у меня была возможность. А что касается эмулятора, то это попытка разорвать порочный круг, состоящий из двух утверждений:
1. Зачем припаивать AY к Специалисту, если под это дело нет софта?
2. Кому нужен софт для AY, если нет Специалистов с AY?
Когда Pyk добавлял поддержку AY в эмулятор, ему элементарно даже не на чем было протестировать его работу там, потому что софта под это дело было ровно ноль. Но после интеграции AY хотя бы в эмулятор у меня уже появилась возможность экспериментировать с этой связкой. В результате мы имеем несколько проигрывателей с исходным текстом. Это значит, что теперь, если подключить к настоящему Специалисту настоящий AY у пользователя появляется возможность проигрывать тысячи мелодий со Спектрума и других платформ. Конечно, в идеале нужно написать полноценный проигрыватель с догрузкой мелодий с SD и т.д. Это в планах. Но даже уже то, что есть, может кого-то смотивировать.
Второй момент - это прерывания. Само наличие AY в составе Специалиста - это уже круто. И я выкладывал примеры того, как он играет без всяких прерываний. Музыка (не PGS), конечно, играет неравномерно, с некими завываниями, но для неискушённого пользователя это может оказаться приемлемо. Кроме того, без прерываний AY можно использовать для озвучивания игрушек. Было бы идеально, если бы @ivagor нашёл желание и время, чтобы добавить оригинальную AY-озвучку в Специалистовский порт Exolon'а. Такая игрушка точно могла бы стать мощным мотиватором и наглядным примером, как это может и должно выгядеть. Однако, по моему, да и не только по моему мнению, раскрыть полный потенциал AY позволят прерывания. Это тоже довольно простая доработка, которая также уже реализована в эмуляторе и ПЛИС. И от прерываний польза уже не только для AY, но и для всеё платформы в целом. Начиная от устранения мерцания спрайтов на экране и заканчивая правильной программной обработкой турбирования.
Короче: нахер нужен этот AY реальному Специалисту! Продолжайте извращаться в эмуляторе с проигрывателем, если делать нечего.
Извините, что влезаю, но мне кажется, что можно было бы найти компромисс по варианту подключения AY (и даже не только AY). Как вариант - если ВВ55 из схемы программатора (адреса F000-F7FF) включить в состав (по крайней мере части) новых клонов специалиста и вывести на отдельный разъем порты ABC, то туда можно было бы подключать некоторую периферию. Кому что нужно - программатор или AY или может принтер или еще что. AY через 8255 подключен например в amstrad cpc, и для вектора есть такой вариант - R-Sound (2), его можно использовать практически без изменений. Недостаток (применительно к AY) - несколько более громоздкое и медленное программирование, но мне кажется это не так принципиально.