Курсовая работа: Программа воспроизведения произвольного звукового файла с использованием звукового адаптера (формат - wav)
sbirq_handler endp
; процедура dsp_reset
; сброс и инициализация DSP
dsp_reset proc near
mov dx, SBPORT+6 ; порт 226h - регистрсброса DSP
mov al, 1 ; запись в него единицы запускает инициализацию
out dx, al
mov cx, 40 ; небольшая пауза
dsploop:
in al, dx
loop dsploop
mov al, 0 ; запись нуля завершает инициализацию
out dx, al ; теперь DSP готов к работе
add dx, 8 ; порт 22Eh - бит 7 при чтении указывает на
занятость
mov cx, 100 ; буфера записи DSP
check_port:
in al, dx ; прочитаем состояние буфера записи
and al, 80h ; если бит 7 ноль
jz port_not_ready ; порт ещё не готов
sub dx, 4 ; иначе: порт 22Ah - чтение данных из DSP
in al, dx
add dx, 4 ; портснова 22Eh
cmp al, 0AAh ; проверим, что DSP возвращает 0AAh при
; чтении - это сигнал его готовности к
; работе
je good_reset
port_not_ready:
loop check_port ; повторить проверку на 0AAh 100 раз