SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: Cobo en Sábado 13 de Marzo de 2004, 15:57
-
Hola a todos:
Estoy intentando generar una melodia por el altavoz del pc, programado en asm, pero no me suena nada.
Tengo un athlon 1200 y WinXP (no se si esto tiene algo q ver) pero es que no escucho nada.
El programa que estoy usando activa el altovoz de la siguiente manera
InicAltavoz:
push ax
in al,61h
or al,03
out 61h,al
pop ax
ret
lo cierra asi:
CerrarAltavoz:
push ax
in al,61h
and al,11111100b
out 61h,al
pop ax
ret
y la frequencia se la paso directamente al timmer.. pero mi problema es q no oigo nada.. me podrias exhar una mano?? como me podria asegurar que mi pc realmente emite sonidos generados con programas de este tipo??
muchas gracias.
-
Saludos,
Creo que el problemilla que tienes es quizas que estas activando la bocina y la estas desactivando al instante. Prueba activarla por un ratito y luego desactivarla a ver si escuchas algo. Esta rutina que te muestro a continuacion la utilize para elaborar un piano, espero que te funcione:
mov al, 182 ; Prepare the speaker for the
out 43h, al ; note.
mov ax,di ; Frequency number (in decimal)
; for middle C.
out 42h, al ; Output low byte.
mov al, ah ; Output high byte.
out 42h, al
in al, 61h ; Turn on note (get value from
; port 61h).
or al, 00000011b ; Set bits 1 and 0.
out 61h, al ; Send new value.
mov bx, 25 ; Pause for duration of note.
pause1:
mov cx, 65535
pause2:
dec cx
jne pause2
dec bx
jne pause1
in al, 61h ; Turn off note (get value from
; port 61h).
and al, 11111100b ; Reset bits 1 and 0.
out 61h, al ; Send new value.