Archives for MIDI

MPU-401: MIDI for the PC & PC/XT

An email from a user of the Lo-tech XT-CF-lite caught my attention recently, the board being used in an IBM PC 5150 that’s being set up with the original Roland MPU-401 MIDI interface. It’s something I’d never looked at in detail, but a quick search quickly pulled up a couple of recent hardware projects to make compatible ISA interface cards for it. There’s an interesting article about the MPU-401 on the Nerdly Pleasures blog, but basically the system consisted of an ISA card (‘MIF-IPC’) in the PC connected to the MPU-401 via a 25-pin DSUB connector, which then provides MIDI outputs.

Multiple MPU-401s

Flicking through the manuals then turned up something interesting… it looks like Roland had originally intended for up to four MPU-401 devices to be connected to the IBM PC, as the original MIF-IPC card sends A1 & A2 to the MPU-401, which then has fitted an ‘LS138 1-of-8 decoder:

MPU-401-Schematic-Address-Selection

By the time the second card was produced, the MIF-IPC-A, these lines had been simply connected to ground so effectively disabling this functionality. MIDI isn’t something I know anything about, but I’ve been told that having more than one MPU-401 attached would be “like going back to 1981 with an iPhone”!

Now of course software support would be another problem, and then there’s the question of whether the 8088 in the 5150 – or the ISA bus itself – is fast enough to keep them fed with data… but it’s something I’d like to at least have the option to try.

The Lo-tech MIF-IPC-B

So, roll on another Lo-tech PCB…, I’m calling it the MIF-IPC-B, since it builds on the Roland MIF-IPC-A (by including the reset signal masking apparently need for compatibility with PC/AT systems) with some new features. Here’s the current GerbV image:

Lo-tech-MIF-IPC-B-r00

In terms of differences from the MIF-IPC-A, the board has:

  • Option to present A1 & A2 as either ground (like the MIF-IPC-A), or from the ISA Address Bus (like the original MIF-IPC), so making possible the connection of up to four MPU-401 devices to a single card
  • Option to work in PC/XT slot 8
  • Selectable IO port base address (15 options)
  • Selectable IRQ line (6 options)

Assuming this board works as intended, there will be some further work involved in getting multiple MPU-401’s hooked up, since the schematic clearly shows that the device ID is pre-selected on the PCB. I’m not sure many owners will be too keen on modifying the MPU-401 itself, but there are two ways of getting multiple devices hooked up with this card:

  • By using multiple cards, since the IO port can be individually selected, or
  • By running a short 25-pin DSUB lead to a break-out board, providing address decoding there and up to four DSUB connectors.

Using multiple cards isn’t a great option for 5150 owners, since the system needs a graphics board, a memory board, and at least one storage adapter (and likely two) meaning possibly only one slot free. For 5160 machines, the slot-8 compatibility of this board should make this a practical option, though this will still need testing.

Status

This board is currently at the design phase – any thoughts or ideas are welcome!