к сожалению ничего по бластеру не нашел.
Разбирался в чем причина. Похоже весь вопрос в том что читается из порта #FE. Точно понять логику по фрагменту ADHL сложно, судя по AHDL за этот бит похоже отвечает CBL_IND, а на нем чтото очень хитрое накручено:
дебажил код плеера. Вся загвоздка в том, что он начинает писать в бластер следующие 128 байт, только если по прерыванию из статуса бластера в порте #FE прочиталась 1. Т.к. по документации на этот флаг, он отражает какая половинка буффера бластера сейчас проигрывается, плеер с такой логикой просто не может работать, но работает. AHDL только подтверждает, что логика этого бита не простая.Код:CBL_IND = CBL_CNT7 xor CBL_WA7;
-- CBL_WR = DFF((DCPP[] == B"10001000"),CLK42,,) & !/IOWR; -- 88
CBL_WR = (DFF((DCPP[] == B"10001000"),CLK42,,) & !/IOWR) or
(DFF((DECODE.PAGE[7..0] == B"11111101"),CLK42,(CBL_INT_ENA & ACC.ACC_DIR1),) &
!DFF((DECODE.MC_WRITE or DECODE.CAS),CLK42,,/RESET));
CBL_WAE = CBL_MODE16 & DFF(!CBL_WAE,!CBL_WR,,CBL_INT);
CBL_WA[].clk = !CBL_WR;
CBL_WA[].ena = !CBL_WAE;
CBL_WA[7].clrn = CBL_MODE & CBL_INT_ENA & (CBL_INT or !CBL_CNT7);
CBL_WA[7].prn = (CBL_INT or CBL_CNT7);
CBL_WA[6..0].clrn = CBL_MODE & CBL_INT_ENA & CBL_INT;
CBL_WA[].d = CBL_WA[] + 1;
Может ктото знает почему плеер на каждую половину буффера ожидает в порте #FE единичку?
Пробовал разные догадки, но они не подтвердились. Максимум что удалось добиться - звук играет с формальным соответствием документации, но в прерывании костыль - подставлять в #FE состояние INT. Частота, скорость при этом нормальные, но слышно постоянное потрескивание от сбоя синхронизации...
Также, не получилось добиться нормальной работы прерываний от бластера, сразу после сборса. При этом в порт 4e пишется #FF, т.е. частота 109 кГц с прервываниями. Но спринтер от такого режима начинает себя неадекватно вести - курсор в навигаторе бешенно мерцает, задержек на детектирование винчестеров нет - система без задержек за секунду в навигатор грузится... Пока приходится блокировать прерывания в таком режиме...

