Esta rutina hace que de alguna forma suene una campana durante 15 segundos.
Contar dw 0
mov ah,00h
int 1ah ;Veo en que segundos andamos.
mov Contar,dx ;dx nos da un tiempo, lo grabamos.
add Contar,280d ;a la variable le sumamos el tiempo
;devuelto más 15 segundos.
;(60x18.2 aprox.)
call nosonar ;Leo el puerto 61h.
call sonar ;Lo escribo (speaker).
call nosonar
call sonar ;Y de nuevo para que suene.
Bucle:
mov ah,00h
int 1ah
cmp Contar,dx
jna nosonar2 ;Si ya no es mayor, apago el
;sonido.
jmp Bucle
Sonar:
in al,61h
or al,11b
out 61h,al
ret
Nosonar:
in al,61h
and al,11111100b
out 61h,al
ret
Nosonar2:
in al,61h
and al,11111100b
out 61h,al