После раздумий, так как карта к Turbosound FM никак не имеет отношения, а получается как Turbosound + YM2612 решил обращаться к YM2612 через порты.
Чтобы не пересекаться с Мунсаундом, выбрал альтернативные:
порт C0h -> запись адреса регистра (набор регистров 1)
C1h - запись данных в регистры набора 1
С2h - запись адреса регистра (набор регистров 2)
C3h - запись данных в регистры набора 2
Регистр C0h на чтение - статус
Кроме того ввел виртуальный регистр с FE - управление входной частотой
бит D0 - 0 - частота 7,68МГц, 1 - частота 7МГц
Также подумав, решил избавиться от порта FFFC, порт управления AY
Напомню что в ZXM-SoundCard Extreme введен этот порт для управления входной частотой и блокировки второго YM2203
биты порта
D0 - выбор режима входной частоты микросхем YM2203. Лог "0" - стандартная частота (1,75МГц). Лог "1" - расширенная частота (см значение бита D1).
D1 - управление расширеным режимом входной частоты. Лог "0" - режим Amstrad CPC (1МГц) Лог "1" - режим Atari ST (2МГц).
D7 - блокировка доступа второй микросхемы AY2. Лог "0" - доступ разрешен. Лог "1" - доступ запрещен.
Так вот его хочу перенести в внутренний регистр YM2203, а именно FE
Напомню, что в Turbosound адрес регистров FE и FF отвечают за выбор AY, но данные при этом не используются
Получаем, что выбираем внутренний адрес AY - FE, как бы выбор первого чипа, а вот в данные пишем уже биты управления частоты
Иными словами, если нужен режим Amstrad CPC, то вместо обращения к FFFC
1. Выбор режима входной частоты Amstrad CPC
Было
Set_clk_Amstrad:
ld bc,0FFFCh
ld a,01h
out (c),a
ret
Стало:
Set_clk_Amstrad:
ld bc,0FFFDh
ld a,0FEh
out (c),a
ld b,0BFh
ld a,01h
out (c),a
ret
Немножко громоздко, но для разового переключения это не страшно. С другой стороны освободятся порты xxFC
Если прокатит, то тогда прошивку поменяю и в Extreme
Насколько я помню только был один сборник Амстрадовской музыки, его так сказать пропатчим.