Тоже вариант, но Titus делает полноценный реверс AY-3-8910 для CPLD.
Вид для печати
Занялся тут написанием прошивки для CPLD и похоже уже забыл что там хотели сделать.
И с целью восстановления так сказать памяти решил сначала изобразить карту на дискретах - https://disk.yandex.ru/i/KEiMpxT2v-9dwg
В дискретном варианте на порт 11h (страниц ОЗУ) идут сигналы буферизированной шины данных. В CPLD же будут идти сигналы шины данных с процессора.
Управление сигналами для работы с памятью и портами получились мудреными. Я исходил из такой логики.
Обращаться к портам можно только в диапазоне 00...BFh, все что выше это обращение как бы к памяти. Анализируются два старших бита адреса А14 и А15. Почему взял так, просто процессор дублирует адрес порта, который находится в младшем байте, в старший байт. Таким образом при обращении к порту C0h, адрес на шине будет C0C0h, если к обратиться к порту FEh, то адрес будет FEFEh.
Далее когда идет обращение к памяти дополнительного ОЗУ, а это адреса C000...FFFFh, то обращение к портам С0...FFh будут всеравно перенаправляться на системную плату. Таким образом, даже находясь в дополнительном ОЗУ можно будет достучаться до клавы.
Просьба взглянуть свежим так сказать взглядом сию схему и если что заметите не так в логике, просьба ответить.
@Mick, как обстановка? Есть ли подвижки? Или энтузиазм совсем иссяк?
Предполагаю, что жизнь отравляет отсутствие быстрой загрузки в Специалист. Тебе бы, конечно, SD подключить, чтобы отлаживать всё удобно стало... Я вот отлаживаю протокол обмена с Arduino и даже с SD это напоминает геморрой, а что уж говорить про магнитофон.
Не для CPLD.
Я уже сделал реверс и выложил его в виде синхронной схемы, которая вполне годится для перевода в FPGA.
Но делал это не для реализации AY в FPGA, а скорее для точного понимания работы AY, и для потактовой реализации в эмуляторе, чтобы точно знать, что AY-звучит 1:1 как оригинал во всех режимах и проявлениях.
По сути ты уже ответил на свой вопрос. Прошивку как бы нацарапал, а вот как быстро это проверить. Пока только майфун есть в качестве ввода. Еще откопал плату расширения для Экспресса, там вроде есть SD. Но ее еще надо спаять. Вообще, я хочу все таки до Нового Года все таки получить рабочий вариант.
Очень надеюсь, что всё у тебя получится! И если есть SD-интерфейс, то конечно стоит начать с его сборки и подключения.
Пока детали для SD интерфейса не пришли, то пока приспособил старый ноутбук в качестве магнитофона. Хорошо, что Станислав сделал проги, которые генерит кроме rks файла еще и wav. Очень пригодились. Пока решил проверить вообще загружается или нет с магнитофона что нибудь. Упростил программу с бегущей строкой - убрал пока прерывания, только в цикле. Бегущую строку на реале увидел. Теперь буду ставить платку с AY и пока добиваться буду чтобы играла еще и музыка. А потом уже попробую с прерываниями.
https://i.ibb.co/NdygrhKV/DSCN2905.jpg
https://i.ibb.co/mVp7y1Gj/DSCN2906.jpg