Mini-MPI

At one time, Radio Shack offered a bus expansion for their Color Computer line.
Called the Multi Pak Interface, these are usually referred to as MPIs by users.
MPIs (of which there are several variants) all plug into the CoCo cartridge port,
and provide four slots to plug in program paks, and other cart port based accessories.
Several third party expansions were offered as well back in the day, and can be
spotted in ads in old magazines devoted to the Color Computer.

A typical MPI

I'm not sure how many MPIs were made over the years, but there doesn't seem
to be enough to go around these days.  There are a couple of solutions developed
or being developed by hobbyists out there, but I think there's room for one more.

This page describes my efforts to put together a two slot MPI, for people that are
looking for just one additional slot, in as compact a package as possible.  Original
MPIs are large and take up a lot of desk space.

To start, let's look at what an MPI must do...

MPIs must provide power to the cart slots, as the CoCo's cart port is very limited in
the amount of current it's able to provide, being rated for 300ma of +5v power.
Though simple ROM paks don't use much, a floppy disk controller alone draws
more than 200ma.

At the heart of every MPI is an 8-bit register that's used to direct communications
between the slots and the CoCo.  This register can be read and written to from the
CoCo, and is located at address $FF7F.  The values latched there determine the 
routing of three signals on the CoCo bus to direct communications to the slots.

Signal routing details of MPI register

As you can see from the graphic above, bits 1 and 0 in the register contain the number
of the slot to receive *SCS, and bits  5 and 4, the slot that will be connected to *CTS
and *CART.

So let's build an MPI...

First, power for the two slots.  All CoCo cartridges require a 5v power source.  Some early carts
for the CoCo1 required 12v power as well.  The CoCo1's expansion port supplies + and - 12v
power to support these carts.  12v power at the cart port was dropped starting with the CoCo2,
and only a few devices require it.  We will only be supporting 12v power in a very limited way,
as we are keeping this as small and compact as possible, and want to avoid bulky, or excessively
hot solutions for our power.  The 12v lines from the cart port will be connected to the slots, so
that when used with a CoCo1 machine, those carts requiring it will function.  12v power will not
be available on the Mini-MPI when used with a CoCo2 or 3.

The CPLD is powered by a single 3.3v AMS1117 regulator circuit powered from the cart port.
The +5v lines on the slots are powered by one LP38692MP-5.0 regulator each.  The slot power
regulators are powered from a 7.5v DC adapter to take the load off of the cart port line.

We will need to buffer the signals from and to the CoCo's cartridge port.  I selected 74ABT16245
bus transceivers for this purpose.  These are 16-bit bidirectional buffers that are 5v TTL compatible,
and controllable for direction and output enable in groups of eight (two banks per IC).  
Perfect for this application. 

To implement our logic, which will contain our register, and direct CTS, SCS, and CART to the proper slot,
I selected a Xilinx 9572XL in the 100-pin QFP package.  More than adequate for our needs here.

Since we have only two slots on the Mini-MPI, we won't have the usual four position switch that would
normally be used to select the boot slot.  This switch preloads the register with a value connecting the
various select lines to one of the slots for the system's initial startup.  Once the MPI register is written to,
this value will change, and the switch setting becomes irrelevant (until system power is cycled).

Instead, we will use two switches.  One is a two-position switch that will tell the Mini-MPI whether the
boot slot will be the first or second slot.  The second switch is a three-position switch that indicates
whether the second slot will be set as 2, 3, or 4.  The first slot is always slot 1.

That is about it for a basic overview of the hardware...  Here are a some pics...


Early mini-MPI prototype in development



Final version - Eagle .brd view


Assembled mini-MPI boards 


mini-MPI in case (top cover removed)


mini-MPI in a CoCo3 with Orch90 clone and CoCo-SDC


Here is the manual for the mini-MPI.

Comments