Subject: Using the SoundBlaster-16
To: None <port-i386@NetBSD.ORG>
From: Benjamin Lewis <blewis@oddity.netcom.com>
List: port-i386
Date: 01/02/1995 02:54:14
I was given a SoundBlaster-16 recently, and I'd like to know if it's
possible to use it with NetBSD.  I recompiled the kernel (1.0A) a few 
times with the sb0 line uncommented and an "options SBPRO" line
present and not present.  In other words, I used config files with 
lines like:

	options		SBPRO
	sb0	at isa? port 0x220 irq 5 drq 1	# SoundBlaster

and like:

	#options		SBPRO
	sb0	at isa? port 0x220 irq 5 drq 1	# SoundBlaster

Either way, the board appears to be recognized at boot-up.  dmesg 
reports:

<<<<<Begin included file
NetBSD 1.0A (ODDITY) #0: Mon Jan  2 01:18:12 EST 1995
    root@oddity.vet.purdue.edu:/usr/src/sys/arch/i386/compile/ODDITY
CPU: i486DX (486-class CPU)
real mem  = 16384000
avail mem = 14303232
using 225 buffers containing 921600 bytes of memory
isa0 (root)
npx0 at isa0 port 0xf0-0xff: using exception 16
vt0 at isa0 port 0x60-0x6f irq 1: et4000, 80/132 col, color, 8 scr, mf2-kbd, [R3.00]
com0 at isa0 port 0x3f8-0x3ff irq 4: ns82450 or ns16450, no fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns82450 or ns16450, no fifo
com2 at isa0 port 0x3e8-0x3ef irq 9: ns16550a, working fifo
lpt0 at isa0 port 0x378-0x37f irq 7
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.2MB 80 cyl, 2 head, 15 sec
wdc0 at isa0 port 0x1f0-0x1f7 irq 14
wd0 at wdc0 drive 0: 202MB, 989 cyl, 12 head, 35 sec, 512 bytes/sec <WDC AC2200F>
wd0: using 8-sector 16-bit pio transfers, chs addressing
wd1 at wdc0 drive 1: 514MB, 1046 cyl, 16 head, 63 sec, 512 bytes/sec <Maxtor 7540 AV>
wd1: using 8-sector 16-bit pio transfers, lba addressing
sb0 at isa0 port 0x220-0x237 irq 5 drq 1: dsp v4.11
root device eisa not configured
root device pci not configured
biomask 4060 netmask 21a ttymask 21a
<<<<<End included file

Since I don't have any kind of DOS partition (or a working 3/5" drive) 
I've been unable to use any of the DOS tools to set up the card, and I
am stuck with the factory defaults (irq5, drq 1).  This doesn't look to
be a problem, since the PATEK example config uses an identical line.

The problem is that it doesn't seem to work.  I don't know for sure that
it doesn't work, since I'm not really sure how to use it.  I used
/dev/MAKEDEV to make /dev/audio (it also made /dev/sound):

	crw-rw-rw-  1 root  wheel   42, 128 Jan  2 01:32 /dev/audio
	crw-rw-rw-  1 root  wheel   42,   0 Jan  2 01:27 /dev/sound

I then (acting on info from a dimly remembered post on Usenet) did a

	cat laugh.au > /dev/audio

There was a faint, high-pitched whine from the headphones, and the 
"cat" process would hang, unkillable, until reboot.  The whine 
persisted through a soft reboot until the card was probed again at 
boot-up.  Just for kicks, I've also tried:

	cat laugh.au > /dev/sound

There was no whine, but a message appeared on the console:

	Jan  2 01:27:37 oddity /netbsd: NMI port 61 a0, port 70 ff

and the "cat" process was hung again.  By the way, what does that
message mean? 

I've tried a few different .au files.  Since I don't even know if that's
the correct format, I tried .mod and .wav files too, with the same 
results.

So, what do I do? Is there some sort of audio program I need to run? Is
there any kind of man page for this (I used apropos on every kind of
keyword I could think of)?  Am I out of luck because it's an SB-16? Do
you need any more information to help me? 

Sorry about my cluelessness-

	-Ben