VOGONS


First post, by rasteri

User metadata
Rank Member
Rank
Member

Disappointed that your modern PC doesn't have ISA?

Well - you've been lied to. Your motherboard does have an ISA bus, but it's locked away inside the chipset. And we can help it escape through the TPM connector.

I've designed an adapter that uses the Fintek F85226 LPC-to-ISA bridge to allow you to connect ISA cards to (theoretically) pretty much any motherboard, as long as it exposes the LPC bus somewhere and has a legacy BIOS or CSM.

And yes, DMA is fully functional!

Currently only works on baremetal DOS (probably linux too) but I'd love to see if a soundblaster driver could be written for Windows 11 😀

So far I've tried a Socket 755 motherboard with a Quad-core Xeon X5470, and a Socket 1155 motherboard with a 2nd gen Core i5, both work. The software should work on later Intel chipsets too, and may be portable to AMD. I wonder what the fastest possible DOS gaming PC is...

Video of it in action : https://www.youtube.com/watch/IXr-VEpQ1lg

Source code and hardware design files will be open sourced ASAP. Hopefully together with SBEMU this will make baremetal DOS gaming cool again 😀

Confirmed working motherboards :
Foxconn H61MXV
GIGABYTE Z77X-D3H

Attachments

Last edited by rasteri on 2023-04-06, 17:04. Edited 4 times in total.

Reply 2 of 511, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

For full functionality, it needs a chipset with DMA support, right?
Or that LPC-to-ISA bridge provides DMA even if the chipset doesn't?

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 4 of 511, by rasteri

User metadata
Rank Member
Rank
Member
Grzyb wrote on 2023-03-19, 15:30:

For full functionality, it needs a chipset with DMA support, right?
Or that LPC-to-ISA bridge provides DMA even if the chipset doesn't?

Yeah it'll need a chipset with DMA. I haven't really looked into exactly how "modern" you can get before the LDRQ signal starts disappearing from LPC - I'll check into it at some point.

EDIT : DMA exists at least as of the 9 Series PCH, so potentially Haswell CPUs would be usable. I've not looked at AMD yet.

Reply 5 of 511, by the3dfxdude

User metadata
Rank Member
Rank
Member
rasteri wrote on 2023-03-19, 14:49:

Annoyed that your modern PC doesn't have ISA?

Well - you've been lied to. Your motherboard does have an ISA bus, but it's locked away inside the chipset. And we can help it escape through the TPM connector.

I was literally last week going through a bunch of motherboards, listing which have LPC through a TPM connector, thinking, this might be something to build an ISA bus extension with, in case I could not find any with legacy I/O that I like. Now I need to go back through the motherboards to decide if these modern boards should be listed as capable with expansion cards.

I would like some chipset information on dma capabilities.

Reply 6 of 511, by rasteri

User metadata
Rank Member
Rank
Member
the3dfxdude wrote on 2023-03-19, 16:41:

I would like some chipset information on dma capabilities.

Basically any chipset with a southbridge that has an LDRQ signal should work. Intel chipsets with an ICH or PCH (up to series 9) still have this signal. So that's anything up to potentially socket 2011 motherboards with 6th gen core CPUs.

LDRQ seems to have been dropped from PCH series 100 though, so SBEMU for anything newer 😀

I'm investigating AMD chipsets, but they will almost certainly require a different init program.

Last edited by rasteri on 2023-03-19, 17:09. Edited 1 time in total.

Reply 8 of 511, by weedeewee

User metadata
Rank l33t
Rank
l33t
rasteri wrote on 2023-03-19, 17:03:
dontbugster wrote on 2023-03-19, 15:51:

Wow sounds great!
Do pentium 3 boards have it?

I think you can use a PCI-ISA bridge with pentium 3 chipsets. Maybe I'll try that one day.

That's a nice idea. I thought of using the VIA 82c586B chipset once. Still haven't gotten round to it though.
Also no idea how to handle it with software.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 10 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

Excellent work! Does this adapter work out-of-box, or that it needs some configuration similar to that of RUBY-9719VG2AR?

From the looks of it, it might be very straightforward to install it into a standard ATX case with a MATX (or ITX/DTX) motherboard, which would make things easier.

EDIT: Looks like some initialization is definitely needed. Given the adapter can work as intended, it seems on a good amount of boards, the TPM connector does expose LDRQ/LDCK signals.

Reply 11 of 511, by rasteri

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2023-03-20, 04:44:

Excellent work! Does this adapter work out-of-box, or that it needs some configuration similar to that of RUBY-9719VG2AR?

Yeah it does. A while ago I rewrote Tiido's RubyISA utility in C - https://github.com/rasteri/RubyISA32 - and the init utility for dISAppointment is based on that.

Reply 12 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
rasteri wrote on 2023-03-20, 09:55:

Yeah it does. A while ago I rewrote Tiido's RubyISA utility in C - https://github.com/rasteri/RubyISA32 - and the init utility for dISAppointment is based on that.

rasteri wrote on 2023-03-19, 14:49:

Currently only works on baremetal DOS (probably linux too) but I'd love to see if a soundblaster driver could be written for Windows 11 😀

A while ago I've been thinking about how to get RUBYISA working elsewhere as well. Actually, it's possible to make it work outside DOS with the help of GRUB4DOS. The same should apply to your utility as well.

Simply do a quick boot into DOS by loading only RUBYISA, then use GRUB4DOS to boot to the OS you want, and the ISA sound card would be usable from this point on. I'm currently using this trick to get audio working in NT 3.51, though it should theoretically work anywhere, such as WinXP.

I'm really looking forward to more developments on this, as honestly, while RUBY-9719VG2AR is a great platform for both legacy and modern applications, it has a few major flaws.
- It doesn't have a floppy drive connector.
- Its IDE port (other than the CF connector) is 44-pin, instead of the usual 40-pin. I think it's more meant for IDE DOMs utilizing that form factor, though there are 44-to-40 cables that allows you to connect an IDE optical drive.
- Its RAM slots overlap with the PCIe x16 slot, preventing the insertion of longer video cards.
- It has a hardwired onboard buzzer, so you can't connect a dynamic loudspeaker to improve PC speaker output. The usual pins on the front panel header is useless from what I've tested (which is exactly as described as in the board's manual).

With this adapter paired with the right motherboard these issues could be properly addressed, and it would definitely open up a lot of new possibilities for bare-metal DOS gaming.

Reply 13 of 511, by rasteri

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2023-03-20, 12:54:

Actually, it's possible to make it work outside DOS with the help of GRUB4DOS. The same should apply to your utility as well.

Yep - I've used grub4dos to run ISA soundcards on my Ruby, everything up to XP works great. I couldn't get any versions of windows to work after that, but I didn't try very hard. Looks like there might be some promise here : Re: Using SBpro and SB16 ISA on WinXP and Win7, possible?

But the hard part will be getting drivers that will still work on recent versions of Windows. Likely they will need to be written from scratch, or ported from ALSA or something.

EDIT : I see that msisadrv.sys is still included with Windows 11...

Reply 14 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
rasteri wrote on 2023-03-19, 17:03:
Basically any chipset with a southbridge that has an LDRQ signal should work. Intel chipsets with an ICH or PCH (up to series 9) […]
Show full quote
the3dfxdude wrote on 2023-03-19, 16:41:

I would like some chipset information on dma capabilities.

Basically any chipset with a southbridge that has an LDRQ signal should work. Intel chipsets with an ICH or PCH (up to series 9) still have this signal. So that's anything up to potentially socket 2011 motherboards with 6th gen core CPUs.

LDRQ seems to have been dropped from PCH series 100 though, so SBEMU for anything newer 😀

I'm investigating AMD chipsets, but they will almost certainly require a different init program.

I had a look at the related datasheets. It seems for Intel, up to X99 chipset (the last before the removal of LDRQ), the registers involved are still in the same place so the init procedures remain compatible with the ones used for ICH7.

For AMD the LPC init procedure is indeed very different. Here's a register reference guide for AMD SB850, as well as for AMD Bolton family (for pre-Ryzen APUs). The LPC part in both documents appears to be identical so the same init procedure for AMD chipset would apply to all southbridges/FCHs before Ryzen, including the server counterpart (SP5100), which is mostly similar to the SB700 family.

Though AMD has not publicly released any documentations for SB950 southbridge, but according to an errata regarding it, SB950 appears to still support LPC DMA, just that it has some known corruption issues with HPET enabled.

On the other hand, no public documentations regarding newer AMD PCHs meant for Ryzen CPU/APUs have been released, so whether these PCHs have LDRQ signal or not is uncertain, though it's very likely the signal would have been removed by that point...

EDIT: This is only about the chipset. Compatibility needs to be assessed at a per-board basis, as not all boards have a 20-pin TPM header and not all boards actually wire the LDRQ signals to the header. On some boards' manuals, the pins in question are marked as NC, though it could be a lie.

Reply 15 of 511, by rasteri

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2023-03-21, 09:07:

EDIT: This is only about the chipset. Compatibility needs to be assessed at a per-board basis, as not all boards have a 20-pin TPM header and not all boards actually wire the LDRQ signals to the header. On some boards' manuals, the pins in question are marked as NC, though it could be a lie.

Yeah if the TPM header has NC pins there's a good chance one of them is LDRQ. Often you have to add a solder bridge over a nearby resistor pad to enable it. Alternatively LDRQ can be hijacked from the Super I/O chip.

Another thing that often needs to be done is lifting the LDRQ pin of the Super I/O chip, as although Super I/Os don't really use DMA they like to hold the pin high.

I've checked some schematics for AMD motherboards and at least the X370 still has LDRQ...

Reply 18 of 511, by rasteri

User metadata
Rank Member
Rank
Member

I've started a github with hardware designs and source code. Needs a lot of work still but if anyone's determined enough that should be enough to build one.

https://github.com/rasteri/dISAppointment

The "Sapphisa" utility will also work on the RUBY-9719VG2AR, and allows you to specify custom ports.