The ESS AudioDrive ES1868F for sound and IDE

Hardware

In my continuing series on building a functional computer from a repaired Am386SX motherboard, today we’re looking at getting sound working; and for bonus points, maybe even another IDE controller for free.

The ISA ESS AudioDrive ES1868F was the first expansion card I bought as a kid. Our first family machine had Sound Blaster cards for which I’m quite nostalgic, but the ESS remains my favourite. It has Sound Blaster 2.0 compatibility, sounds clear without any background hiss, and has the easiest drivers of any non-Plug and Play cards I’ve used.

Top-down view of the highly-integrated ES1868 ISA card.

As you can see on the left, the card also sports a secondary IDE controller. These were common at the time; early cards came with proprietary connectors for various optical drives, but thankfully they standardised. I’ve never had a use for them before, but given this Am386 board has no on-board IDE, and the Multi-IO card I’m using only has one IDE channel, I figured it was worth trying to offload the CD-ROM to it.

Configuring sound

But I’m getting ahead of myself! To get sound working, I downloaded the drivers, extracted to a disk, then run INSTALL.EXE. This wrote the requisite driver lines to AUTOEXEC.BAT and CONFIG.SYS.

As I don’t have a fixed hard drive yet, I had to run SUBST to map the disk drive to C, so the installer would work:

A:\>SUBST C: .

To write the BLASTER variable for AUTOEXEC.BAT, I ran ESSCFG.EXE which printed the Base I/O address (A), the IRQ channel (I), the DMA channel (D), and the MIDI MPU-401 address (P). According to the DOS Fandom Wiki, the type variable (T) should be 3, as the ESS cards emulate Sound Blaster 2:

:: AUTOEXEC.BAT Sound Blaster config
SET BLASTER=A220 I10 D0 T3 P300

I rebooted, and a quick test with Apogee’s Word Rescue played the MIDI music perfectly!

Configuring IDE

This was tricker, because I’d never done it before. Before you can use your DOS CD-ROM drivers, you need to load a driver for the sound card’s IDE controller. ESSCFG.EXE showed the controller was disabled:

ESSCFG ( Version V4.3 ) found ES1868 at address 220.
...
IDE CD-ROM controller is disabled.
  
Select function:
    ...
    6) Change IDE CD-ROM I/O Address
    7) Change IDE CD-ROM IRQ Channel
    8) Display current settings
    Press ESC to quit

I pressed 6, and chose 168 as an I/O address. It’s the most common I’ve seen for secondary IDE controllers, and is often the default for many DOS CD-ROM drivers.

Next I pressed 7, and chose 11 as the IRQ. IRQ assignments were always a black art, and it was common to have to choose different ones until stuff worked. If an IRQ doesn’t work, try another one!

Pressing ESC to quit wrote the required line to CONFIG.SYS. I rebooted the machine, and was happy to see it reflected:

ESS IDE CD-ROM controller ( ES1868 ) enable program V4.3
Copyright (C) ESS Technology, Inc 1995-1996

Loading the CD-ROM drivers

Now that we had IDE, I opened CONFIG.SYS, and below the ESS line I added VIDE-CDD.SYS, my favourite CD-ROM driver:

;; CONFIG.SYS
DEVICE=C:\AUDIODRV\ES1868.COM /A:168 /I:B
DEVICE=C:\DRIVERS\VIDE-CDD.SYS /D:RUBENCD /P:168,11

This didn’t work at first, but according to the docs bundled with the driver, we can pass the I/O address and IRQ of the ESS IDE controller with the /P option. This worked! Note that the ES1878.COM driver has the IRQ set in hex instead of decimal (B == 11).

Now I could open AUTOEXEC.BAT and add SHSUCDX.COM you can download here, with the same device name as my CD-ROM driver. I also appended D to the variable so it would get that drive letter.

:: AUTOEXEC.BAT
C:\DRIVERS\SHSUCDX.COM /D:RUBENCD

I rebooted the machine, and it worked! The ISA CD-ROM controller was detected, the CD-ROM driver was able to detect the drive connected to it, and I was able to browse CDs.

Photo showing the optical drive, the ESS IDE CD-ROM controller loaded, and the VIDE-CDD driver loaded.

This might not be the most performant setup, but I’m chuffed that I was able to get this working for the first time. It also saved my precious two other IDE channels for use with hard drives, or more likely CF cards.

If you have a limited number of IDE channels in your old PC, give your sound card a try. It might give you another option.

Author bio and support

Me!

Ruben Schade is a technical writer and infrastructure architect in Sydney, Australia who refers to himself in the third person. Hi!

The site is powered by Hugo, FreeBSD, and OpenZFS on OrionVM, everyone’s favourite bespoke cloud infrastructure provider.

If you found this post helpful or entertaining, you can shout me a coffee or send a comment. Thanks ☺️.