DFI 486

Last modified: Mon Dec 1 11:33:37 EST 2008


Vintage1994-07
Form factorBaby AT
CPU66 MHz 486 DX2 (P24), sSpec SX807
CPU socket486 socket
CPU maximum power dissipation6.3 W
MotherboardDFI 486-CCV Rev. A
ChipsetContaq
Last BIOS version1992-11-11
RAM8 MiB (8 × 1 MiB 70 ns parity SIMM, 30-pin)
Upgraded to 32 MiB (8 × 4 MiB same)
L2 cache128 KiB

 

Next up from the Freecycle pile was a 486 that appeared to be loaded with add-in cards.  The VGA card, sound card, and modem all stood a chance of being useful, but what really caught my eye was the non-SoundBlaster game port.  Getting two joysticks to work on a SoundBlaster game port requires a soldering iron due to some of the pins being commandeered for MIDI.  This game port might meet the original spec and work without modification.

Why would I need two joysticks?  To play Llamatron of course.

 

Then I opened the case, and what I found was hurl-worthy.

Yuck.  Ribbon cables must breed like hangers.

 

And what are these mondo long slots?  Could it be... VESA Local Bus?  The horror.  The shame.  The obscurity.

VESA Local Bus (VLB) was a flash in the pan, a dead-end interface.  I leapfrogged the 486 generation of processors when they were current, so this was my first encounter with it.  This VGA card is useless in any other system, as is the I/O controller card to which the IDE hard drive, floppy drives, serial ports, parallel port, and game port are all connected.

 

In another bad omen, the CD-ROM was cabled to an IDE interface on a sound card with the same branding (Aztech).  The sound card does not have a generic CD-ROM interface like some later models have; instead, it has three separate IDE-ish headers labelled Sony, Mitsumi, and Panasonic.  The model CDA 268-01A CD-ROM was connected to the Mitsumi header and presumably was manufactured by Mitsumi.  I noticed that it lacked the Master/Slave/Cable Select jumper that IDE CD-ROMs typically have.

The CD-ROM showed up neither in the BIOS nor in Smart BootManager.  As expected, connecting the CD-ROM to the main IDE channel did not work.  But neither did it work to connect a later model, generic ATAPI CD-ROM to the main IDE channel.  Bogus!

 

The DFI 486-CCV Rev. A motherboard has an AMI BIOS.  DFI (Diamond Flower, Inc.) still exists as a manufacturer of motherboards both mainstream and special-purpose, but unfortunately, their BIOS downloads did not include an update for this old computer.  Abandon all hope of booting from CD.

After testing a kernel with a boot floppy, I set aside the 210 MB hard drive that came with the computer and installed a couple of larger hard drives that I had pre-loaded with Slackware 12.1 in a linear RAID (JBOD) configuration.

Getting Slackware to run with only 8 MiB of RAM was challenging.  The motherboard supports a maximum of 32 MiB.

 

The Trident TGUI9400CXi VGA card is supposedly supported by the Trident driver of X.Org, but it didn't detect the card.  The generic VESA driver worked and fired up a 1024×768×8bpp interlaced mode.  VGA bandwidth as judged by scrolling text in xterms was surprisingly good for an unaccelerated driver.

 

I had some issues getting the modem to be detected.  It turned out that the DTC2278VL rev "B" multi I/O controller card was mis-jumpered such that the conflicting second serial port was only half-disabled.  The address was disabled but not the IRQ.

The microscopic print says it is a Best Data model 1442FQ, 1442VTQ or 1442FTQ.  The commands ati0 and at+fclass=? revealed it to be a 14.4 kbit/s Class 1 fax modem, and one which was obviously Linux-compatible.  Such a modem has its uses.

 

Things went downhill after that.  I could not get the sound card to work.

The documentation for the snd-cs4231 kernel module states, "This module does not support autoprobe thus main port must be specified!!!"  My only clue about what port to specify was the jumper label, Base Address 22XH.  So I specified port=0x220 and tried every reasonable guess for irq, dma1 and dma2, but it never worked.  I even tried changing the "CONFIG MODE" jumper from "SOFTWARE SETTING" to "EEPROM SETTING" on the chance this would avoid the need for some driver that I don't have, but to no avail.

 

There's a message on the ALSA site about a fairly new AZT1605 module that has not yet appeared in the mainline kernel.  This card has one of those chips too, so maybe that's what it needs.

Aztech provides no support for their legacy products, and from what I can find they do not appear to have supported DOS ever.  Thus I have no configurator for the Aztech sound card under DOS either, nor even any documentation on what its default setup might be.  As it is, with no configuration, DOOM is fully functional with settings of port 0x220, IRQ 5 and DMA 1.  However, Llamatron hangs before long and Mpxplay hangs immediately.

I went back and tried various Linux drivers with the configuration validated under DOS and found that the snd-sb8 driver would work with those settings for a few seconds, followed by a total system hang.

 

I had better luck replacing the Aztech sound card with an ESS ES1868 ISA PnP AudioDrive card salvaged from a PC someone left at the curb on trash day.  The ALSA driver for this card is broken, but ESS is good enough to support their legacy products and to provide a DOS configurator for them.  After using their DOS setup utility to perform the PnP configuration and setting the BLASTER variable appropriately, the AudioDrive card functioned well enough for Mpxplay and all of my old DOS games to run.  Now that's what I call compatible.

With the sound working, it was finally possible to determine the limits of the 486 CPU.  Mpxplay was able to play an uncompressed WAV file at 44.1 kHz if I turned off its CPU-hogging spectrum analyzer; however, it was not possible to play an MP3 except by first decompressing it to WAV.  Similarly, FPS in DOOM could be described as merely acceptable.

 

As for the I/O card, I changed jumpers to increase the IDE data transfer rate from its default of 3.9 MB/s (slightly above PIO 0) to its maximum of 8.3 MB/s (equivalent to PIO 2) with no adverse effects, and Linux boot time reduced by 12%.  However, no matter what I tried, the 2.6 kernel utterly failed to detect the game port.  Sigh.  With a 2.4 kernel this might work.

Under DOS, with a joystick connected to the gameport, I was able to use the fire button to start Llamatron, but it hung immediately afterward.  The hang occurred even when there was no sound card in the system to conflict.  If Llamatron was configured to use keyboard instead of joystick it worked fine.

So much for that.  I disabled the I/O card gameport and used the one on the sound card.

 

Although getting Slackware to run in 8 MiB of RAM was a worthy challenge, I did eventually get sick of waiting on it and paid $21.90 (shipping included) on EBay for a matched set of 8 of the hard-to-get 4 MiB SIMMs to make it run half decently.  That's $700 per GiB.  ACK!

These SIMMs, which were advertised as 3-chip, 4 MiB, 70 ns parity RAMs—a safe choice to replace the 3-chip, 1 MiB, 70 ns parity RAMs that were in there—have two chips that store 4 bits of each byte (LGS GM71C17400BJ6 = 16 Mib 60 ns) plus one different chip that I can't find any info on (Mitsubishi M5M44100BTP or 451SJ00-7).  It probably is a legitimate 4 Mib RAM, but for SIMMs of this vintage, you have to watch out for "fake parity," where a logic chip is used in lieu of the extra RAM to fake out the PC.

 

So, finally...  Gone are the original hard drive, 5¼″ floppy drive, nonstandard Aztech CD-ROM + sound card combo, modem, disabled gameport, DB-25 serial port, pin 20 from the IDE interface, 8 MiB RAM, and loads of ribbon.  Added are two 3.2 GB hard drives, the ESS sound card (minus pin 20 from its IDE interface), an ATAPI CD-ROM drive, 32 MiB RAM, and three round cables.  (A black A.C.Ryan IDE cable connecting the sound card to the CD-ROM is hiding in the back.)

After rerouting that long power-switch cable and tying down the other power cables it almost ceased to be hideous.  Almost.  There's only so much you can do with this layout.

 

The ATAPI CD-ROM drive is specifically a Sony CDU701–F.  It worked under Linux with the old PnP EIDE support module, but the generic DOS drivers didn't work, and Sony no longer provides DOS drivers on their web site (SIGH!).  I scrounged version 2.27b of their driver distribution from the net, and it works, but only if Linux is booted before DOS.  Apparently the ESS PnP configurator configures the sound and gameport but not the IDE interface; if the PnP settings are configured by Linux, they stick through a warm boot.

The Sony driver distribution includes a program, CDPLAY.EXE, that allows the PC to function as a CD player if the (otherwise useless) analog wire from the CD-ROM to the sound card is hooked up.  (I used the Creative header instead of the Sony one, so sue me.)

504 MiB limit

 

That crufty old LILO warning about 1024 cylinders actually bit me this time.  The ancient BIOS does not support LBA at all.  LILO, DOS, and anything else that goes through the BIOS can only access the first 504 MiB (1024 cylinders × 16 heads × 63 sectors) of a disk.  And yes, for once the geometry matters.  I went many rounds with fdisk to get the partition table right.

Installing Disk Manager 9.56a fixes the problem for DOS, but unfortunately, the maintainers of the 2.6 Linux kernel have seen fit to break interoperability with Disk Manager.  I would have to either revert to an old kernel or settle for the DOS partitions being inaccessible from within Linux.

As a compromise, I partitioned both disks so that the first 1024 cylinders belong to DOS, with the exception of a small Linux boot partition, and all cylinders above 1024 belong to Linux.  I also switched to smaller hard drives to save the (marginally) better parts for projects where I could use them.

Bad module

Making the CD-ROM work with the 2.6.27.4 kernel meant abandoning the non-functional "ISA Plug and Play PATA support (Experimental) (NEW)" module of libata and reverting to the "PNP EIDE support" under the old "ATA/ATAPI/MFM/RLL support" driver.  Experimental or not, using libata exclusively for all SATA and PATA drives had always been a big win prior to this; this was the first time I had to go back to the old driver for any reason.

Non-repeating failures

 

For a while there the CMOS clock was not keeping time while the PC was off.  With daily use the problem has stopped repeating.  I imagine that this slightly corroded fossil of a battery is responsible for the problem, which will surely come back if the PC is left off for a longer period of time.  Call me senile, but I do seem to recall that normal watch batteries had been invented by 1994....

At one point I got this "interesting" error message under Linux:

Uhhuh. NMI received for unknown reason a0 on CPU 0.
You have some hardware problem, likely on the PCI bus.
Dazed and confused, but trying to continue
Uhhuh.  "I see no PCI bus here."  The error coincided with the floppy drive going flaky.  Removed and reattached the floppy cable, rebooted, and the problem did not repeat.

Conclusion

This project was complicated but the payoff was good.  The 486 now runs all of my old DOS games with fewer glitches than I have experienced on any other PC, including the 386 DX that I owned back in the day.  The sound does not cut out.  The screen does not flicker.  It does not hang.  The only glitch I have had is CC3D dying with an error message about not finding the file 3.res, and that might be an installation snafu.

My new biggest peeve:  Manufacturers who brick their own products by withholding or withdrawing driver support.  Shame!


KB
Home