Курсовая работа: Программа воспроизведения произвольного звукового файла с использованием звукового адаптера (формат - wav)
stc ; если Sound Blaster неоткликается
ret ; вернуться с CF=1
good_reset:
clc ; если инициализация прошла успешно
ret ; вернуться с CF=0
dsp_reset endp
; процедура dsp_write
; посылает байт из BL в DSP
dsp_write proc near
mov dx, SBPORT+0Ch ; порт 22Ch - вводданных/команд DSP
write_loop: ; подождём готовности буфера записи DSP
in al, dx ; прочитаем порт 22Ch
Код исходной программы(продолжение)
and al, 80h ; и проверим бит 7
jnz write_loop ; если он не ноль - подождём ещё
mov al, bl ; иначе:
out dx, al ; пошлём данные
ret
dsp_write endp
; процедура hook_sbirq
; перехватывает прерывание звуковой карты и разрешает его
hook_sbirq proc near
mov ax, 3508h+SBIRQ ; AH=35h, AL=номер прерывания
int 21h ; получим адрес старого обработчика
mov word ptr old_sbirq, bx ; и сохраним его
mov word ptr old_sbirq+2, es
mov ax, 2508h+SBIRQ ; AH=25h, AL=номерпрерывания
mov dx, offset sbirq_handler ; установимновыйобработчик
int 21h