Running a Sound Blaster 16 on an XT
I came across this little article from last year from a guy called David L. Farquhar, and was intrigued. I've personally never even thought about trying to use a 16-bit sound card in an 8-bit machine, though his aim was less of a reach as he had a 286 system. I've tried a bunch of 16-bit video cards in 8-bit machines and certainly some DO work, but never a sound card.
An early Sound Blaster
16, the CT1740
His challenge wasn't so much about seeing if the hardware would function and more around getting the software drivers to work.
So why bother, I hear you ask? Why not just use a much older sound card that's "period correct" for the XT and 286 era? Well according to David it's simply a cost thing. Sound Blaster 16s were produced in great quantities and today are so much cheaper to buy than, say, an Ad Lib card - even an Ad Lib clone costs $80!
It is evident that at least some of the Creative Labs driver software is compiled to run on an 80386 or higher, and so won't work on anything lower than that.
In his article, David talks about the fact that back in the days of the 286, and of course the XT before it, there was no such thing as Plug & Play. All cards that needed an IRQ and DMA channel got jumpers that you physically set before you installed the card, and it could get quite tricky if you had multiple cards to configure without resource conflicts arising.
He goes on to state that Creative made drivers and utilities that could help you find out what resources your computer had free and would configure the card accordingly, presumably storing values in an EEPROM . This took the pain out of understanding your PC and what all those other cards were doing that might prevent your flash new sound card from working. The trouble was, Creative's software was a bit bloated and never ran on an XT or a 286.
Enter some clever souls in the 90s, who reverse-engineered Creative's files to make them more efficient and flexible. The result? Yeah, we got there eventually.... the ability to run a Sound Blaster 16 on an XT or 80286!
The files you need are SBPNPXT.EXE and MIXER.EXE - just unzip them to a directory such as C:\DRIVERS\SB16 on your DOS-based 8088/8086 or 286 computer.
David then added these lines to his AUTOEXEC.BAT file:
SET SOUND=C:\DRIVERS\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
C:\DRIVERS\SB16\SBPNPXT
C:\DRIVERS\SB16\MIXER 5
He says "The last line which runs Magic Mixer 5, claims to be enough on its own to configure and wake up a Sound Blaster 16, but I found I needed both lines. If those lines don’t work, you have a hardware conflict. You can use Magic Mixer to find free addresses and interrupts. Just run C:\DRIVERS\SB16\MIXER without any parameters, then write down the settings it recommends, and edit the SET BLASTER line to match.".
Another free Sound Blaster 16 mixer to try out if Magic Mixer isn't your thing, is Beva Mixer 4.1.
Alternative Solution 1
If you have any issues with any of the above, there is another program called CT4170.EXE that apparently works for the ViBRA-16X-based CT4170 card, and should work for other PnP cards. According to its author, user dca2 on Vogons, there is no specific code for the CT4170 so do try it out on any other PnP cards. It has been tested on a standard ViBRA-16 and that worked too, though it did not work for an AWE32. Bear in mind that not all jumper-less sound cards are Plug & Play, for example the CT2770.
A Creative Labs Sound Blaster
ViBRA-16 (CT4170)
Since Creative's own CTCM (Creative Configuration Manager) and CTCU (Creative Configuration Utility) programs don't run on a 286 or earlier, this CT4170 tool will do the same sort of thing but will work on these older systems.
To use, just put it in your AUTOEXEC.BAT file right after the SET BLASTER= line:
set BLASTER=A220 I5 D1 H1 P330 T2
ct4170.exe
Note that for 8-bit systems, i.e. XT, the setting for D (8-bit DMA channel) and H (16-bit DMA channel) are set to the same number. This allows the hardware to support 16-bit sound through an 8-bit DMA channel.
Alternative Solution 2
Another way in which you may get your card to initialise if CT4170 doesn't work is to use Intel's ISA Configuration Utility, or ICU. It looks like a Windows 3.1 app but it's a DOS app with mouse support, made to look fancy ;-)
When you install ICU, it will run the Configuration Assistance Utility (CASSIST.EXE) which scans all hardware resources that are used by non-Plug and Play cards:
The Plug and Play Configuration Manager (CM) then uses the information from this and does the resource allocation for all your Plug and Play cards. You also use ICU to view all the devices in your system and modify the hardware resources used by your devices.