В программе (ПРИМЕР из интернета) нота кодируется одним байтом. 3 младших бита задают длительность, 5 бит- высоту тона. В подпрограмме декодирования ноты имеется retlw D'252' ; 00000DDD= СИ 1 октавы (494 ГЦ).
retlw D'238' ; 00001DDD= ДО 2 октавы (524 ГЦ). и т. д. Откуда берут эти десятичные числа: 252 и 238? Ведь в двоичном коде это 11111100 и 11101110 соответственно. Или эти числа зависят от конкретного алгоритма? Как их вычислять? И если можно, подскажите алгоритм воспроизведения мелодии и кодировки нот. Декодирование длительности тоже непонятно: retlw D'8' ; HHHHH000= 1/8 retlw D'16' ; HHHHH001= 1/4
Спасибо всем, кто поможет разобраться.
|