VOGONS


First post, by Action Replay

User metadata
Rank Newbie
Rank
Newbie

Please bear with me, this is part brain-dump and part questions!

The original ISA Adlib cards did not use an IRQ, they only used CPU bus addresses 388h and 389h. Ref:
http://www.oplx.com/opl2/docs/adlib_sb.txt

388h is read/write and the CPU can read the Adlib card's status.

I am assuming the bus data lines went to all ISA slots? And this varies from PCI because from what I can tell (and please correct me if I'm wrong) to read from and write to the PCI bus is dependent on the card identifying itself to the BIOS during boot up, giving a vendor id, device id, card type, negotiating for resources and these being allocated by the BIOS. So this stops cards just invisibly snooping on bus lines and also writing to the bus too.

So what are the hurdles to get over for designing a PCI Adlib card? I am so impressed by all the ISA sound card recreations in development/production on here. A PCI Adlib is something with maybe less impressive features compared to the enhanced SB clones (no digital audio) but could bring the classic OPL FM sound to PC's without ISA slots (or LPT ports! Much respect to serdashop for their creations too.)

The OPL chip would need some sort of interface to the PCI bus. Or would it? There are off-the-shelf PCI interface chips such as the PLX PCI range suitable for interfacing ISA designs to the PCI bus. But at around 40 €/$ each this would increase the cost of a card significantly:
https://eu.mouser.com/ProductDetail/Broadcom- … p1UyIOdCg%3D%3D

Surely modern multi-purpose microcontrollers from Atmel/ST would be up to the job of doing this interfacing? Perhaps when you're only dealing with I/O addresses and not IRQs you don't need much sophistication. Check out these PCI BIOS post-code cards for example. These cost a few dollars and use programmable logic chips:

AE6Y_1_201903151694604645.jpg

For a few dollars you get a card that reads from (IIRC) address 80h on the PCI bus during boot time. And maybe beyond boot time?
Would it be possble to do similar for 338h and 389h? Perhaps only 80h is forwarded to all PCI slots and only during boot.
Perhaps writing to addresses on the PCI bus might require full enumeration of the card at boot time however.

Ideas and suggestions are welcome! And thank you all for creating such a great community here.

Reply 1 of 10, by matze79

User metadata
Rank l33t
Rank
l33t

You would need a PCI ISA Bridge Chip

https://www.digchip.com/datasheets/parts/data … 217/W83628F.php

At least everything with Memory Mapped IO should do able..
Fun begins when your Cards need DMA Support.

There also Chips for PCI to 8Bit Style Bus.. but anyway youre going to need a TSR to relocate the Writes to the OPL Chip then.
So bascily you can go for OPL2LPT too... same Limitations.
or use LPT PCI Chip and combine it with OPL2LPT on a PCI Card.

Instead of this PCI Bridges a LPT PCI Chip is really cheap

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 2 of 10, by konc

User metadata
Rank l33t
Rank
l33t

Adding something to discuss, what would be the intended target and use of such a card? I mean what PCs 1) don't have ISA 2)have PCI 3)need/can benefit from an FM-only card without PCM?
The way I'm thinking it 1 & 2 starts from P4 (excluding maybe some weird OEM PCs) where 3 doesn't really apply. Unless I'm forgetting some machines or it's just for fun

Reply 3 of 10, by Action Replay

User metadata
Rank Newbie
Rank
Newbie

Thanks for your inputs!

It looks like that PCI to ISA bridge chip goes on the motherboard rather than on a card. The PLX chip I mentioned goes (I think) on a card.

As for the intended target, the idea is mostly for fun, to explore the barriers and overcome them, but also there might be uses in thin-client type PC's with 1 PCI slot or any other small machines without ISA. Did motherboard makers drop ISA before P4 came along?

Reply 4 of 10, by matze79

User metadata
Rank l33t
Rank
l33t

There are Industrial PCI to ISA Adapter Cards with PCI to ISA Bridge on it where you connect a ISA Backplane.
I have one somewhere.

But its not really compatible with much Stuff.

Best bet is to use a Compatible Machine instead of making incompatible Stuff less incompatible 😁

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 5 of 10, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Why would you need a PCI-ISA bridge chip?

And why even bother with a PCI Adlib card in the first place unless you absolutely must have OPL2.

The Yamaha YMF7x4 cards have OPL3 built in.

And there is no TSR required. All you need is to run SETUPDS /s to initilize the card at boot and the OPL3 portion works on pretty much anything with a PCI slot since it doesn't use IRQ or DMA.

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 6 of 10, by Tiido

User metadata
Rank l33t
Rank
l33t

It wouldn't be too difficult to make such a thing, it actually is something I have thought of doing as part of exercise to get familiar with PCI on low level but I haven't actually made any attempts yet since there's a bunch of other things I have to finish first.

It is possible to have a CPLD that will seek IO address transactions on PCI bus and claim them to itself, while not implementing all of the conf regs and whatnot that the spec requires. It won't be a proper PCI compliant device but it would function. Only real hurdle is then making things so that the poor OPL2/3 chip isn't getting overwhelmed by the speed possible since typical "read IO port x times between writes" timing methods will completely fail.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 7 of 10, by Action Replay

User metadata
Rank Newbie
Rank
Newbie

@cyclone3d You're right about the Yamaha YMF7x4's and it's a good point. All the PCI interfacing is built in, plus a real onboard OPL3.

Tiido wrote on 2020-06-27, 01:25:

It wouldn't be too difficult to make such a thing, it actually is something I have thought of doing as part of exercise to get familiar with PCI on low level but I haven't actually made any attempts yet since there's a bunch of other things I have to finish first.

It is possible to have a CPLD that will seek IO address transactions on PCI bus and claim them to itself, while not implementing all of the conf regs and whatnot that the spec requires. It won't be a proper PCI compliant device but it would function. Only real hurdle is then making things so that the poor OPL2/3 chip isn't getting overwhelmed by the speed possible since typical "read IO port x times between writes" timing methods will completely fail.

Yes this would be a great project Tiido and the CPLD idea sounds great. Would it be able to write responses back to the bus? As you mention there would need to be some buffering and re-clocking to get those PCI speeds down to something an OPL chip can cope with!

Another option that occurred to me would be to have a basic but available PCI sound chip acting as the controller, but one that supports an external FM chip. There are ISA sound chips that support external FM such as the Cirrus Crystal CS4237 as used with this feature on the amazing Orpheus Souncard here on Vogons. If there was a PCI equivalent to the CS4237 that might be a starting point.

Reply 8 of 10, by Tiido

User metadata
Rank l33t
Rank
l33t

Of course there must be responses possible, otherwise games cannot detect the FM chip. FIFO would be one way to reduce overheads, but then you begin to enter FPGA territory for things. It isn't a super trivial thing to do, which is why nobody has done it yet but it certainly is possible to do.

There's no such PCI chip to use, the ISA Crystal chips (and old OPTi) ones just have some internal address decode and bus buffering in them to allow one to reduce costs by not needing additional parts to interface an FM chip, modem or IDE port. Just direct connection to ISA more or less, only reason they have such things at all.

Last edited by Tiido on 2020-07-01, 17:56. Edited 1 time in total.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 9 of 10, by Action Replay

User metadata
Rank Newbie
Rank
Newbie
Tiido wrote on 2020-07-01, 06:47:

....
There's such PCI chip to use, the ISA Crystal chips (and old OPTi) ones just have some internal address decode and bus buffering in them to allow one to reduce costs by not needing additional parts to interface an FM chip, modem or IDE port. Just direct connection to ISA more or less, only reason they have such things at all.

Did you mean that there is no such PCI chip, or that there is? I read the datasheet for the ESS Solo and they support ESS external wavetable chips. The data from wavetable chip back to Solo chip has a strange clock frequency and data rate, although at a glance the data format looks similar to the output format used by OPL chips so potentially you could feed the digital audio OPL output into the ESS Solo after re-sampling/re-clocking. How the OPL talks to the PCI bus is a whole different question!

Reply 10 of 10, by Tiido

User metadata
Rank l33t
Rank
l33t

Whoops, fixed that. No such chips exist.
The wavetable aspect is simply hooking stuff to the MIDI TX signal and mixing the analog output to your final output. Typical waveblaster setup that every card can support that has a MIDI UART present.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜