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.
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.
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…
Here is the manual…