Не все так просто. Там надо для каждой команды, которая исполняется в процедуре, посчитать количество тактов. Если это команда условного перехода или DJNZ - то надо рассмотреть оба варианта по тактам, когда переход исполняется и когда он не исполняется. Тактовая частота процессора известна - 3,5МГц. Анализ процедуры генерации звука позволит выяснить задержки между переключениями сигнала на бипере. Если требуется повторить такой звук на Ардуино без ЦАП - то нужно более или менее точно выдержать эти задержки и сгенерировать такой же сигнал на выходе звука. Если же имеется аудио-ЦАП - то есть вариант 2. Сгенерировать в памяти компьютера такой же сигнал, как это делает процедура на Спектруме. Потом подвергнуть этот сигнал ФНЧ-фильтру, ограничив полосу пропускания до 20кГц или ниже (по желанию). После фильтрации частоту дискретизации сигнала (исходно 3,5МГц) можно будет снизить до примерно 44кГц путем выбрасывания лишних данных - это не приведет к потере качества благодаря теореме Котельникова. Отфильтрованный сигнал после передискретизации записать в память и воспроизводить. Но тут, скорее всего, потребуется много памяти.
В общем, задача непростая, но интересная!





Ответить с цитированием