Programación General > ASM (Ensamblador)

 Altavoz Del Pc

(1/1)

Cobo:
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


--- Código: Text --- InicAltavoz:   push ax   in al,61h  or al,03    out 61h,al     pop ax  ret  
lo cierra asi:


--- Código: Text --- 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.

vandyke:
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.

Navegación

[0] Índice de Mensajes

Ir a la versión completa