Category : Music and Digitized Voice
Archive   : SBF3.ZIP
Filename : SBP_CHK.ASM

 
Output of file : SBP_CHK.ASM contained in archive : SBF3.ZIP
; Reset routine for Soundblaster
; Coded for the SBF by millerje
; Modified (to replace sbp.asm) by cmb.

DSP_RESET equ 6
DSP_DATA_AVAIL equ 0Eh
DSP_READ_DATA equ 0Ah

.MODEL large,C

.DATA
PUBLIC SbIOaddr, SbIRQ, SbDMAchan, SbType

SbIOaddr dw 220h
SbIRQ dw 7
SbDMAchan dw 1
SbType dw 2

.CODE
PUBLIC Sb_Init
Sb_Init PROC

; Reset the DSP by sending 1, (delay), then 0
mov al,1
mov dx,[SbIOaddr]
add dx,DSP_RESET
out dx,al

; Do a wait for I/O (each bus access takes 1 microsecond on a standard ISA)
; Must be at least 3.3 microseconds
in al,dx
in al,dx
in al,dx
in al,dx

mov al,0
mov dx,[SbIOaddr]
add dx,DSP_RESET
out dx,al

mov cx,64h
DataWait:
mov dx,[SbIOaddr]
add dx,DSP_DATA_AVAIL
in al,dx
test al,80h
jnz YesData ;a byte is waiting...
loop DataWait

; Timed out- there's no data there
jmp short exit

; Data is waiting, if = 0AAh, there's a SB here!
YesData:
mov dx,[SbIOaddr]
add dx,DSP_READ_DATA
in al,dx
cmp al,0AAh
je YepSB ;Found the ID byte
loop DataWait ;No, wait for next byte

; timed out- can't find signature
jmp short exit

YepSB:
mov ax,0
ret

exit:
mov ax,1
ret

Sb_Init ENDP

END




  3 Responses to “Category : Music and Digitized Voice
Archive   : SBF3.ZIP
Filename : SBP_CHK.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/