-
Блин, мало что понял, а ведь вопрос в начале был конкретней некуда.
Стоит по умолчанию IM1.
Играет музыка. +- стандартный плейер. Исторгает звук, halt, переход на "снова исторгнуть звук".
Вопрос. КАКОЙ точно цикл поставить вместо это HALT, чтобы не делать EI:HALT:DI. Зачем? Так надо!
Я думал что-то вроде
ld b,N
M2: push bc
ld bc,0
M1: dec bc
ld a,b
or с
jr nz,M!
pop bc
djnz M2
КАКОЙ должен быть N?
- - - Добавлено - - -
LD H,D
LD L,E
LD BC,3333
LDIR
Это корректно работать будет?
-
Цитата:
Сообщение от
Slider
КАКОЙ должен быть N?
Так его же нужно будет подобрать опытным путём, в зависимости от того, сколько времени занимает процедура проигрывания ноты (и остальные процедуры главного цикла, если они есть).
Я подбирал так:
- Проигрывал мелодию и засекал точное время её звучания в режиме IM2.
- Проигрывал ту же мелодию в режиме IM1, но с программной задержкой и выставленной на глаз константой и замерял время её звучания.
- Далее по обычной пропорции вычисляется истинная константа.