VOGONS


MCA Adlib card -- just need pictures

Topic actions

First post, by sigtau

User metadata
Rank Newbie
Rank
Newbie

I and a few others who are electrical engineering students are looking to try and reverse-engineer some of the more popular (but very rare) sound cards.

The simplest to work on would be the AdLib MCA variant, since the bus logic seems to be very, very similar to its ISA counterpart, except it routes a few things through the PC82C611 MCA chip. It appears to use the chip just for DMA, and everything else is wired up as it would be with the ISA version.

This one: http://retronn.de/imports/hwgal/hw_adlib_mca.html

Basically, if any of you happen to own one, it would be really nice if I could get pictures of

- The front
- The back
- The traces near the PC82C611 chip (remove the chip from the socket with a toothpick), both sides if possible
- If you could shine a flashlight through it on both sides, that would be enough to see where each trace leads and what it does.

Working out what to do with the PC82C611 is really all we need to get the ball rolling on this, but there just aren't any pictures of the reverse side, let alone ones that let you see the connections hooked up to that chip.

If we can get this going, we can open-source the card design. 82C611s can be obtained new-old-stock and don't require any kind of extra programming. This might help with the severe shortage of MCA sound options.

And yes, I know about the Covox and the SoundSource. 😜 This is more fun.

Reply 1 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie

So I actually just made a topic about this on VCFed:

http://www.vcfed.org/forum/showthread.php?618 … MCA-sound-cards

I'd say probably the two best candidates for making a clone would be the AdLib card and the Sound Blaster CT5320. Both these cards seem to use off the shelf parts and the same parts as their ISA counterparts. They just use the PC82C611/PC82C612. Digging around I did find a proper data sheet for those chips that gives a pinout and everything:

http://ps-2.kev009.com/ohlandl/Unsorted_Files … C611-82C612.pdf

So that might be of help if you didn't have that already.

Reply 2 of 68, by sigtau

User metadata
Rank Newbie
Rank
Newbie

Hey, good to hear I'm not the only one. We're on discord at https://discord.gg/bXym47H in #your-retro-hardware if you want to discuss things further.

We had those documents, it's really just the area around the PC82C611 that we don't know about. There are quite literally no photos online of this card that give us an idea of what the chip is connected to.

There are some clues, though, for example: the IRQ lines are still hooked up exactly as they would be on the ISA version, no special chips needed.

Reply 3 of 68, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

Enigma who owns the card is also registered here.

Sadly the card doesn't work currently (System will appear dead with the card inserted - hopefully just a dead 82C611 or a shorted tantalum capacitor) and he asked me a while ago if I'd be willing to look into repairing it. Overall I'd say chances are good as long as the PAL on the card is intact.

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 4 of 68, by Scali

User metadata
Rank l33t
Rank
l33t
sigtau wrote:

It appears to use the chip just for DMA

What kind of DMA are you talking about?
Since the ISA AdLib has no DAC of any kind, it also does not perform any DMA transfers. So I don't see why the MCA version would need any kind of DMA either (unless it's for some fancy MCA auto-config stuff?).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 6 of 68, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

Datasheets love, Datasheets don't judge - use them: http://pdf.datasheet.live/f3687abb/intel.com/82C611.pdf

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 7 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie
shock__ wrote:

Datasheets love, Datasheets don't judge - use them: http://pdf.datasheet.live/f3687abb/intel.com/82C611.pdf

Would probably be best to stick to the one I posted earlier. It actually has the full thing as opposed to the one that's only 2 pages floating around everywhere.

From the thread on vcfed, it seems the Roland MPU-IMC is using discreet logic to handle the MCA stuff and isn't using any special chips to do it. So it might be possible to make a clone of it as well, especially if it can be determined that it's special ICs aren't doing anything MCA specific. From the looks of things it seems to share a lot with it's ISA coutnerpart:

MCA Front:
http://www.retrosynth.com/gear/mpuimc/mpuimc_01.jpg

MCA Back:
http://www.retrosynth.com/gear/mpuimc/mpuimc_02.jpg

ISA:
https://upload.wikimedia.org/wikipedia/common … d_mpu-ipc-t.jpg

The only difference I see is the smaller IC seems to have a slightly different number on the MCA card, but that could just be a different revision. If it can be determined that it's not doing any special MCA functionality, it might be possible to build a clone based on the research done for the HardMPU clone.

Reply 8 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie

So looking at the Roland card, as that's the only one I can really find a good picture of the front and back of it, this appears to be the pins used:

A1 - CD Setup
A3 - GND
A4 - A11
A5 - A10
A6 - A09
A7 - +5Vdc
A8 - A08
A9 - A07
A10 - A06
A11 - +5Vdc
A12 - A05
A13 - A04
A14 - A03
A15 - +5Vdc
A16 - A02
A17 - A01
A18 - A00
A20 - ADL
A31 - +5Vdc
A32 - -S0
A33 - -S1
A34 - M/-IO
A37 - D00
A38 - D02
A39 - +5Vdc
A40 - D05
A41 - D06
A42 - D07
A43 - GND


B3 - GND
B5 - GND
B9 - GND
B13 - GND
B16 - A15
B17 - GND
B18 - A14
B19 - A13
B20 - A21
B21 - GND
B22 - IRQ9
B23 - IRQ3
B24 - IRQ4
B25 - GND
B26 - IRQ5
B27 - IRQ6
B28 - IRQ7
B29 - GND
B33 - GND
B34 - CMD
B36 - CD SFDBK
B37 - GND
B38 - D01
B39 - D03
B40 - D04
B41 - GND
B42 - CHRESET
B45 - GND

So it looks like it's using very few MCA specific features, which seems to support the idea that it's a quick and dirty ISA conversion. It seems to only use CHRESET, CDSFDBK, CMD, ADL, and CD Setup. The M/-IO and S1 and S0 signals from the MCA documentation look to be your MEMW/MEMR and IOW/IOR lines based on what the M/IO pin is set to. Since the ISA version of this card only uses IOW and IOR according to it's schematic, I'd be willing to bet this one has the M/-IO pin set to have the S1 and S0 lines to permanently act as IOW/IOR lines.

Not sure how useful this all is, but it at least narrows down what MCA functionality is actually being used which could make figuring the card out a bit easier.

I also stumbled across this:
http://www.retrosynth.com/gear/mpuimc/info.txt

retrosynth.com wrote:
The external connector box has a 74LS05 to drive the MIDI out and MIDI thru, and a Sharp PC900 optoisolator for the MIDI in. I' […]
Show full quote
IC1	LC3517AL-15K
2 HG62E08R10FS
3 6801V0B55P
4 74LS05
5 74LS02
6 74LS05
7 74LS32
8 74LS04
9 74LS74
10 74LS138
11 74LS573
12 74LS86
13 74LS688
14 74LS93
15 74LS688
16 5218A

The external connector box has a 74LS05 to drive the MIDI out and MIDI thru, and a Sharp PC900 optoisolator for the MIDI
in. I've listed the pinout of the DB9 connector below.

DB9
1 Ground
2 TTL MIDI In
3 Metronome Out
4 Tape In
5 +5v
6 Ground
7 TTL MIDI Out
8 Tape Out
9 +5v

So there's all the ICs used as well as the pinout for the DB-9 connector and a description of the Breakout box.

Reply 9 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie

So a couple things to update on. First the technical manual for the Roland MPU-IMC was posted over on the Vintage Computer forums by the user eeguru. These actually have the full PCB scans and schematics:

https://www.retrotronics.org/vcf/Roland_MPU-IMC_Service.pdf

So with that you could probably make a 1:1 clone no problem. However sourcing some of those ICs is going to be tricky. I'm not really a fan of harvesting parts from hardware that otherwise is in good working order. So I'd rather see this info be used to make something like an MCA clone of HardMPU or the MusicQuest Midi board.

From looking at the MCA technical documents and the schematic, it looks like once you get to the CMOS gate array the MCA version of the card seems to start lining up nicely with the ISA version. However there are some differences:

MPU-IMC:
ehX2JKP.png

MPU-IPC-T:
4FtWjU9.png

Differences:
1) For some reason the pins for HD0-HD7 have alternate pins called HD0D-HD7D. Not sure what that's for or whats going on there as there's no additional output pins to go with it.
2) NHCS is gone and in it's place are 3 new pins, AS0, AS1, and AS2. Not really sure what they're for or doing. AS2 is connected directly to the CMD line, AS0 and AS1 are coming from 2 different ICs.

Assuming I'm understanding things correctly it looks like AS1 eventually leads back to the CD-SFDBK line, and AS0 get's fed into pin 1 of IC15, which eventually goes to pin 1 of IC13, which eventually comes back to CD-SFDBK. So this is a complete guess here and I'm probably completely wrong, but it looks like AS2 reads off of CMD which tells it data is valid on the bus. It sends a signal to AS0 which goes up to the logic using the Address bit lines which I'm guessing is to figure out which address it's using, and AS1 sends a signal back. Eventually AS1 and AS0 come back together to send a signal on the CD-SFDBK line. Again though this is complete guess work by just following the lines with no EE knowledge or experience. So someone with more knowledge should probably clear this up.

3) DSRD and DRRD are gone on the MPU-IMC and the pins in the 6801 they connected to are disconnected.

Beyond that the rest is very similar at that point. It would probably be doable to figure out what signals coming out of the bus logic on the MCA card correspond to the signals coming from the bus logic on the ISA card. For example NHRD and NHWR hook directly to the IOR and IOW pins on the ISA card. So I'd imagine the signals coming out of the ICs they're connected to on the MCA card would correspond to an equivalent IOR and IOW signal. Looking at hte schematics this seems to add up as those two lines find their way back to S0 and S1, which correspond to either IOW and IOR or MEMW or MEMR depending on what the pin M/-IO is set to according to the MCA documents.

So I'd say using this to figure out a port of say HardMPU or MusicQuest is doable, the real trick I'd say is figuring out exactly what is going on with pins AS0, AS1, and AS2.

If anyone wants to look at this the other documents are here:

MPU-IPC-T schematic:
http://ps-2.kev009.com/ohlandl/sound/MPU-IPC-T-circuit.jpg

MCA Documents:
http://www.nj7p.org/Computers/IBM%20PC/work/PS2_HI.pdf
http://ps-2.kev009.com/ohlandl/books/ps2_50-6 … rchitecture.pdf

Reply 10 of 68, by DigitalBrains

User metadata
Rank Newbie
Rank
Newbie

Keropi requested we don't discuss an MCA MPU-401 compatible in the Music Quest topic. I hope this is the correct topic for it 😀. I just wanted to clarify my post there, as I wasn't clear enough.

keropi wrote:

UART MPU-401 might be possible with 74series logic but good luck implementing the Roland features with such a design

Anyways please discuss these MCA stuff on it's own thread since there is one, I want to keep this one about this specific MQ project, thanks.

I actually meant that the synchronization of the microcontroller and the PC is done with 7400-series logic, like in the HardMPU. I meant that it seems quite doable to port the HardMPU to MCA, not that somebody should make an intelligent-mode MPU401 implementation using 7400-series logic 🤣. I'm not volunteering for either job. I just wondered why people want to modify the Music Quest card instead of the HardMPU one.

Reply 11 of 68, by keropi

User metadata
Rank l33t++
Rank
l33t++

ah yes that's more clear, ofcourse that's the way to do it

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 12 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie
DigitalBrains wrote:

Keropi requested we don't discuss an MCA MPU-401 compatible in the Music Quest topic. I hope this is the correct topic for it 😀. I just wanted to clarify my post there, as I wasn't clear enough.

keropi wrote:

UART MPU-401 might be possible with 74series logic but good luck implementing the Roland features with such a design

Anyways please discuss these MCA stuff on it's own thread since there is one, I want to keep this one about this specific MQ project, thanks.

I actually meant that the synchronization of the microcontroller and the PC is done with 7400-series logic, like in the HardMPU. I meant that it seems quite doable to port the HardMPU to MCA, not that somebody should make an intelligent-mode MPU401 implementation using 7400-series logic 🤣. I'm not volunteering for either job. I just wondered why people want to modify the Music Quest card instead of the HardMPU one.

Most would just prefer at least something. So I reached out to to both the Music Quest thread as well as the HardMPU thread. It just seems that the Music Quest one is more active at the moment.

Reply 13 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie

So I've been looking at other MCA sound cards as well and I'm starting to think the Sound Piper might not be a bad choice to look at either for making a clone or using it as guidance for making a new MCA sound card entirely. Looking at it, it uses either an ES688 with an OPL3 chip or the later revisions use an ES1688 with both using a custom bus controller chip. I'm curious if it would be possible to make a copy of it using an off the shelf controller chip like the Chips P82C612.

The data sheets for the ES688 and ES1688 can be found here:
ftp://ftp.alsa-project.org/pub/manuals/ess/PB1688B.PDF
http://www.datasheets360.com/pdf/-2567618899084452839

Again I really have little to no knowledge on this kind of thing, but looking at the datasheets of the ESS chips and the P82C612 it doesn't look like it would be too crazy to figure out.

Reply 14 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie

So I've been messing around with KiCAD lately as I've been reading into some of the MCA documentation, the datasheets for hte P82C611/612, as well as looking into the schematics for the Adlib clone available here:

http://www.malinov.com/Home/sergeys-projects/isa-opl2-card

I think I might have come up with a rough idea of how the base components would connect up for the MCA version, but as I really know little to nothing about Electrical Engineering, this is really nothing more than me playing connect the dots against some of the major components. So it's very possible I've screwed a lot of it up or misunderstood things. Never the less, I thought I'd post what I've come up with for others to look at and see if maybe people could chime in with thoughts to figure the rest out or correct problems.

https://i.imgur.com/v1DMa8i.png

So a few things I'm not sure on.

  • The AEN signal on the ISA bus. In the Adlib clone that's used to connect to one of the pins of the LS138. From what I've read it's used to prevent I/O operations during DMA. I can't seem to see any kind of equivalent in the MCA spec, but at the same time I'm not sure if it's entirely necessary.
  • The Data bus lines I'm pretty sure need a bit more logic than the ISA version. The P82C611 needs access to this and I believe it's needed for POS operations too. I'd imagine you can't have them all just connect to the bus without something to keep control or you'd probably get collision or bus contention or something. Looking into things I noticed the MCA Adlib card also has an 74LS244 in addition to the 74LS245. It looks like this chip has a few different uses which I'm wondering if it's being used to handle that part of the data bus. But since I have no knowledge of this kind of thing I have no idea how to go about figuring that out or implementing it.
  • A couple lines on the P82C611 I'm also not sure if they're necessary or how to implement them. One is the CD SEL line. From the datasheet this is used to signal that the card has been addressed, but I'm not sure how that would be accomplished. Perhaps the Write signal from the YM3812?
  • Another is the DS16 line. This line when driven high tells sets the CD DS 16 line to indicate only 8 bits of data will be addressed. I'm curious if this even needs to be used because according to the MCA documentation apparently if the CD DS 16 line isn't driven at all it's assumed to be 8-bit. So maybe that line on the P82C611 doesn't even need to be connected to the MCA bus?
  • CDEN, this is used to signal the adapter logic that it's enabled. But I'm not sure What it would go to. Perhaps this could take the place of AEN?
  • BUFENL, BUFENH, and BUFDIR. These are used for the D0-D7 lines to control reads and writes. I'd imagine they'd need to be used in that logic mentioned earlier but I'm not sure how.
  • I'm not sure what should take he place of the RESET line on the ISA bus. Perhaps CHRESET on the MCA bus?
  • I haven't done anything with POS stuff. I figured I'd focus on figuring out how to connect the major guts of the card first, then figure that part out.

So that's what I've come up with so far. Again I've probably gotten a lot wrong here but I figured perhaps it might get others thinking on ways to correct, improve, and complete it. And the other thought I had was perhaps figuring this out could lead to figuring out how to come up with a more useful card such as one that's Sound Blaster compatible.

Reply 15 of 68, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

I don't know much about this sort of thing, but after looking at what's been posted so far I thought I'd add my .02

TrekkiesUnite118 wrote:

A couple lines on the P82C611 I'm also not sure if they're necessary or how to implement them. One is the CD SEL line. From the datasheet this is used to signal that the card has been addressed, but I'm not sure how that would be accomplished. Perhaps the Write signal from the YM3812?

Judging by the 611 datasheet, /CD_SEL should be driven low when an address hits the card. So basically, the same logic you have connected to /OPL_CS would be connected to /CD_SEL as well.

Another is the DS16 line. This line when driven high tells sets the CD DS 16 line to indicate only 8 bits of data will be addressed. I'm curious if this even needs to be used because according to the MCA documentation apparently if the CD DS 16 line isn't driven at all it's assumed to be 8-bit. So maybe that line on the P82C611 doesn't even need to be connected to the MCA bus?

Yeah, maybe /CD_DS16 can be left unconnected to the slot? Or connect it, but put a pull-up on /DS16?

CDEN, this is used to signal the adapter logic that it's enabled. But I'm not sure What it would go to. Perhaps this could take the place of AEN?

My guess is that when CDEN is off the card is supposed to keep quiet. In the case of the YM3812, maybe that means disabling the IRQ line? Because aside from that I don't see how its presence could affect anything.

BUFENL, BUFENH, and BUFDIR. These are used for the D0-D7 lines to control reads and writes. I'd imagine they'd need to be used in that logic mentioned earlier but I'm not sure how.

Sounds like BUFENL and BUFDIR would be connected directly to a 74245 which sits between the YM3812 and the slot. I'm not sure how the data lines on the 611 fit into the picture... BUFENH is for the high byte of a 16-bit card and wouldn't be needed.

I'm not sure what should take he place of the RESET line on the ISA bus. Perhaps CHRESET on the MCA bus?

Sounds reasonable.

I haven't done anything with POS stuff. I figured I'd focus on figuring out how to connect the major guts of the card first, then figure that part out.

This is the big question in my mind. Is it possible to make a "dumb" MCA card that ignores POS and only uses hardwired resources?

Reply 17 of 68, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Well it seems like simplifying implementation of POS is a large part of the 82c611's functionality. If that's not essential maybe you'd do just as well without it, substituting some other logic to handle the iow/ior/command lines.

Reply 18 of 68, by TrekkiesUnite118

User metadata
Rank Newbie
Rank
Newbie

Well it's not just the POS stuff it simplifies, it's intended to make it easy to convert ISA boards to MCA by converting MCA signals into ISA style signals. While for the Adlib it might be overkill, my thought process was figuring it out might be enough of a learning process to try something a bit more ambitious such as using the 82c612 to make a Soundblaster compatible clone, possibly using an ESS chip similar to what the Sound Piper card used. For that, I'd definitely say using something like the 82c612 would be preferred as that chip handles all the DMA arbitration logic for you.

All that said, the POS stuff doesn't really seem that hard to figure out if I'm understanding it correctly. From the looks of things at start up the the cards ID is read from memory addresses 100 and 101, while the system then writes configuration bits to addresses 102-107. Based on what those are the card will configure itself based on the logic it has. Some chips like the ES668, ES1668, and ES1868 all seem like they'd work well for this, as they have pins that depending on if they're set high or low will configure things like the DMA channel, IRQ, Memory Address, etc.