46 lines
969 B
NASM
46 lines
969 B
NASM
;****************************************
|
|
; Elmar Kresse 19-INB-1 (2021)
|
|
; sound.asm
|
|
; file contains source code for
|
|
; only playing sounds
|
|
;
|
|
; - playbeep PROC
|
|
;source: http://muruganad.com/8086/8086-assembly-language-program-to-play-sound-using-pc-speaker.html
|
|
;****************************************
|
|
|
|
|
|
playbeep PROC
|
|
MOV AL, 182
|
|
OUT 43h, AL
|
|
beep:
|
|
|
|
;set frequency
|
|
MOV AX, [BX]
|
|
OUT 42h, AL
|
|
MOV AL, AH
|
|
OUT 42h, AL
|
|
;sound on
|
|
IN AL, 61h
|
|
OR AL, 00000011b
|
|
OUT 61h, AL
|
|
|
|
ADD BX, 4
|
|
MOV WORD ptr [CS:timer_ticks], 0
|
|
|
|
;break
|
|
timer_loop:
|
|
CMP WORD ptr [CS:timer_ticks], 3
|
|
jne timer_loop
|
|
MOV WORD ptr [CS:timer_ticks], 0
|
|
|
|
;sound off
|
|
IN AL, 61h
|
|
AND AL, 11111100b
|
|
OUT 61h, AL
|
|
|
|
ADD BX, 4
|
|
SUB CX, 8
|
|
JNE beep
|
|
ret
|
|
playbeep ENDP
|