• Please review our updated Terms and Rules here

Via Mini-ITX EPIA as a retro DOS machine: setting up UMBs?

As long as the motherboard chipset supports ISA DMA then you can get a soundcard which uses the CMI8738 which has hardware Sound Blaster Pro support. You would only need to run a non-resident configuration program and you have full Sound Blaster Pro sound and OPL FM (plus it also has its own native sound support as well).
 
I'll definitely keep an ear to the ground for either that or the aforementioned ESS card, it looks like either might be a good way to get rid of the requirement for the software layer.

For laughs I went ahead and stuffed in the SB Live! and installed the driver set. On the plus side it sounded pretty good in Commander Keen and it takes up almost no conventional or UMB memory (unlike the 40k TSR for the Via synth TSR.) On the way less positive side it does indeed *require* VM86 and I discovered that on this machine at least Jazz Jackrabbit reboots on start if you try to run it with EMM386 enabled. (I was able to replicate it after switching back to the VIA sound as well, so it doesn't seem to be a problem explicitly with the Live! driver.) And you do indeed need to run the driver to enable the joystick port.

Maybe until I find something better I'll leave the SB Live! in the slot so I can switch between it and the VIA sound as needed. Need to install some more suitably 90's games and see what works better with what.
 
My LTTP comment: Try QEMM, which I've found to to be the best at identifying upper RAM and ROM (and even if there is ROM, it lets you move it out of the way).
 
On another topic, does anyone know of a workable way to emulate a floppy drive on a pure DOS machine or (sigh) a working software stack to drive a USB floppy? Unfortunately this Via board doesn't have a physical floppy connector. (It looks like they sold two very similar versions of this board, one with a single IDE connector and floppy, and the one I have with dual IDE busses.)

I got excited when I remembered a recent thread about ethflop, a network-based floppy emulator since it looked like the perfect solution to the problem of installing software off disk images (or dealing with software that demands you insert a floppy if you make driver changes) but that hope was dashed when I realized that it has no disk change mechanism implemented. In my initial scan of the docs I thought I saw you could send a "mount new image" command on the linux server's console, but that was actually referring to choosing a single image to mount from the DOS TSR. That of course is useless if you're trying to run a multi-floppy installation program.

On the USB side I stumbled across a driver called "USBASPI.SYS" which seemed to initialize the USB floppy drive I had lying around, but it doesn't actually work. Doing a "DIR" spins the disk but returns a nonsense directory, and any attempt to format or whatnot a disk eventual results in an abort, retry, fail message.
 
Last edited:
If you use an IDE LS-120 drive the BIOS should provide floppy emulation.
 
Per a comment I just dropped in the ethflop thread I figured out a ghetto way to make ethflop do the needful. It's not elegant but it worked well enough for my chosen test case, which was installing Windows for Workgroups 3.11a off a set of floppy images.

(The Windows installer *hated* UMBPCI, so I had to switch to EMM386. Kaboom. And at the end of it all there was a great unhappiness traced to Windows subbing its version of EMM386 for PC-DOS'es. DOS is such great fun!)

Not that I'm likely to do much with Windows 3.11, but, hey, it was there.
 
As long as the motherboard chipset supports ISA DMA then you can get a soundcard which uses the CMI8738 which has hardware Sound Blaster Pro support. You would only need to run a non-resident configuration program and you have full Sound Blaster Pro sound and OPL FM (plus it also has its own native sound support as well).

FWIW, I took a chance on one of these CMI cards. ($10 shipped, figured I could stand to lose that.) And, I dunno, maybe it's just my board or I'm using the wrong driver set but so far as I can tell these cards are nearly worthless. It works perfectly with Commander Keen (that seems to be a "thing" I'm picking up while playing with various alternatives, everything works with Commander Keen) but nearly everything else is broken.

Jazz Jackrabbit: No sound or music
DOOM: Crashes on startup
Quake: Repeats the same fragment of digitized noise over and over again

Apparently the card relies on having the PCI IRQ initialized to something that's useful for DOS; initially my board insisted on assigning it IRQ 10. I screwed around with the PnP settings until I managed to convince it to get assigned to IRQ 5, but it didn't fix anything. Given Adlib seems to work (the aforementioned Commander Keen) I'll guess it's an issue with ISA DMA.

A bit disappointing since it looked like that VIA chipsets were usually on the more compatible side for this sort of thing, but live and learn.
 
Does the BIOS setup include an option for using USB floppy under DOS as the A: drive? On my HP Neoware thin clients, it exists and works pretty well for standard 3.5" DOS formats.
 
FWIW, I took a chance on one of these CMI cards. ($10 shipped, figured I could stand to lose that.) And, I dunno, maybe it's just my board or I'm using the wrong driver set but so far as I can tell these cards are nearly worthless. It works perfectly with Commander Keen (that seems to be a "thing" I'm picking up while playing with various alternatives, everything works with Commander Keen) but nearly everything else is broken.

Jazz Jackrabbit: No sound or music
DOOM: Crashes on startup
Quake: Repeats the same fragment of digitized noise over and over again

Apparently the card relies on having the PCI IRQ initialized to something that's useful for DOS; initially my board insisted on assigning it IRQ 10. I screwed around with the PnP settings until I managed to convince it to get assigned to IRQ 5, but it didn't fix anything. Given Adlib seems to work (the aforementioned Commander Keen) I'll guess it's an issue with ISA DMA.

A bit disappointing since it looked like that VIA chipsets were usually on the more compatible side for this sort of thing, but live and learn.

Again, ESS Solo 1 is what you want...it has the best DOS compatibility with VIA chipsets.
 
FWIW, I took a chance on one of these CMI cards. ($10 shipped, figured I could stand to lose that.) And, I dunno, maybe it's just my board or I'm using the wrong driver set but so far as I can tell these cards are nearly worthless. It works perfectly with Commander Keen (that seems to be a "thing" I'm picking up while playing with various alternatives, everything works with Commander Keen) but nearly everything else is broken.

Jazz Jackrabbit: No sound or music
DOOM: Crashes on startup
Quake: Repeats the same fragment of digitized noise over and over again

Apparently the card relies on having the PCI IRQ initialized to something that's useful for DOS; initially my board insisted on assigning it IRQ 10. I screwed around with the PnP settings until I managed to convince it to get assigned to IRQ 5, but it didn't fix anything. Given Adlib seems to work (the aforementioned Commander Keen) I'll guess it's an issue with ISA DMA.

A bit disappointing since it looked like that VIA chipsets were usually on the more compatible side for this sort of thing, but live and learn.

When I had a CMI8738 soundcard I used it in an Intel chipset PC and later an AMD chipset PC. It worked on both but I do recall having to patch SETAUDIO.COM because it wasn't initializing the card properly based upon the spec, once I did that everything worked fine. I don't recall exactly what I changed since it was years ago but it was a simple change to a register initialization.
 
Does the BIOS setup include an option for using USB floppy under DOS as the A: drive? On my HP Neoware thin clients, it exists and works pretty well for standard 3.5" DOS formats.

The only explicit "legacy USB" option in the BIOS is keyboard emulation, but after doing some experimentation it looks like there is a BIOS-level emulation for a floppy. But I have to say the implementation leaves something to be desired.

It turns out I do get a working A: drive if I plug in the floppy before booting and don't have a memory manager loaded, at least with the normal greedy switches. With UBMPCI or EMM386 disabled poking around with Checkit there's a new 32k ROM signature that shows up in upper memory from D200-DA00h when the floppy drive is plugged in. (Oddly the PXE ROM that started at CC00h before also seems to go away? Checkit instead sees a 24k gap between the end of the video ROM and this new ROM that shows a mix of two 8k empty blocks and one 8k region of high RAM.(???)) So... yeah, I guess it can emulate a floppy, but it needs a shedload of upper memory to do it?
 
Last edited:
When I had a CMI8738 soundcard I used it in an Intel chipset PC and later an AMD chipset PC. It worked on both but I do recall having to patch SETAUDIO.COM because it wasn't initializing the card properly based upon the spec, once I did that everything worked fine.

Alas figuring that out is probably significantly beyond my abilities. Poking around Vogons posts it seems like most end up with tantalizing hints the card *can* work but they all seem to end in about the same boat I'm in, IE, it'll do Adlib and everything else is either broken always or worked once and never did again.

I used the driver set that the guy who does "Phil's Computer Lab" has on his webpage, maybe I'll poke around and see if any of the other downloads for setaudio.com have a different checksum.

The one thing I'll say about the VIA's built-in sound is it has *worked* with everything I've tried so far. The 40k of conventional RAM the FM sound emulation needs is the main bummer. Well, that and no game/midi port.
 
Alas figuring that out is probably significantly beyond my abilities. Poking around Vogons posts it seems like most end up with tantalizing hints the card *can* work but they all seem to end in about the same boat I'm in, IE, it'll do Adlib and everything else is either broken always or worked once and never did again.

I used the driver set that the guy who does "Phil's Computer Lab" has on his webpage, maybe I'll poke around and see if any of the other downloads for setaudio.com have a different checksum.

The one thing I'll say about the VIA's built-in sound is it has *worked* with everything I've tried so far. The 40k of conventional RAM the FM sound emulation needs is the main bummer. Well, that and no game/midi port.

Try the attached setaudio.com which I patched for my CMI8738 soundcard. I recall some games originally hung in a loop because one of the CMI8738 registers wasn't initialized properly which caused the DMA address and count registers to not be updated during playback which some games rely on.
 

Attachments

  • setaudio.zip
    2.3 KB · Views: 6
Try the attached setaudio.com which I patched for my CMI8738 soundcard.

Thank you for posting this. I tried messing with various aspects of the config for about an hour and while there is some "change" it's still not working with most software. Strangely digitized sound in "Quake" suddenly works perfectly, but everything else I tried still crashes when trying to use it. ("Doom" crashes hard before even going to graphics mode, Jazz Jackrabbit is able to play a few seconds of FM music before it crashes in the opening cinematic, etc.) Adlib is still fine. I assume it must be some chipset-level incompatibility.
 
Really enjoying your adventure down memory lane. Back in the day I would hand look at the memory map for umb space, picking my own memory regions for inclusion with himem and emm386. And the MS versions of these were best for compatability as IBM's DOS was always slightly different.

On the same oldskool site linked above there is a floppy emulator that allows you to write an image and then play it back, but I think your usb floppy works and that your umb was just overwriting the rom. You can always do what we did--copy the disk to the hard drive and then use the subst command to subst a: for c:\game. It worked pretty well for most games. And you could even subst b: for c:\gamedisk.2 so you didn't even have to swap disks anymore. :)

And for some games you could just copy all the files to one directory and just run it from there.
 
Just an update to this thread regarding that cmi sound chipset. I've tried three different models of 8738 chipset, one that works with sbpro only and two that initializes as sb16 compatible. And I've used them all on all motherboards from the intel 430 tx chipset to the ich5 chipset. And they all behave the same with that patched driver. Only the model with sbpro partially works but crashes with everything. With AMD/ATI & VIA chipsets I've also noticed that sb compatibility is the same with only adlib opl3 only truly working. ISA DMA is pretty much disfunctional with these sound cards, only truly working with games that don't really need to send constant interrupts cycles to a game informing of an update was made to the ISA DMAC (auto-init DMA mode). Which leads me to believe that their Sound blaster compatibility uses some sort of crappy style write back dma method that is incompatible with games that can program and manipulate a real SB DSP's. (WBDMA=monitoring the host DMA controller via the PCI bus) which was proven to be problematic for games that use a strict DMA timing on some sound cards with SB emulation. which isn't an issue with real ISA sound cards that perform SB DSP DMA reading/IRQ cycles. To be fair though, alot of pci sound cards with their own SB emulation with their proprietary legacy isa resource access also suffered from these same issues like the CMI sound chips.

Which is why for anyone who wants a PCI sound card with good or best DOS compatibility. Go for these sound chipsets listed down below instead as these are tried and tested by everyone on the web with real results.

1.ESS solo-1 and its allegro maestro family (best used on older motherboard chipsets and all VIA chipsets)

2.Aureal Vortex family of sound cards. Will work on any motherboard with PCI & PCI bridges that support native PCI resources.

3.Yamaha YMF7x4 series. Works best on older motherboard chipsets. (A TSR is provided for DMA emulation)

4.Fortemedia FM-801 series. Will work on all motherboard chipsets that has ISA DMA compatible controller. (It's the only card with the best WBDMA method for it's SB emulation)

5.ALS4000 series. See #1 for same requirements.

None of these above actually require emm386 or protected mode for their sound blaster emulation. (Except the ymf7x4's TSR)
 
Last edited:
Back
Top