16

A popular, but, much maligned bus expansion device for the CoCo was the venerable MPI. There were several companies who made bus expasion devices for the CoCo, however, this question is related specifically to the Tandy version.

There were three model numbers listed for the MPI:

  • 26-3024 - in both grey and white colors;
  • 26-3124 - in white, released about the same time the restyled CoCo 2 was;
  • 26-3124A - in white, released about the same time as the CoCo 3 was;

It's pretty well known that the second two devices (3124 & 3124A) were electronically identical with the original, but, used more circuit integration. However, there is a compatibility issue with the 3024 and 3124 when used with the CoCo 3.

Two questions:

  1. What is the problem with using the 3024 and 3124 with the CoCo 3?
  2. Is there a method to fix the problem on either device?
3
  • 1
    If you don't have access to a PAL / GAL programmer, Cloud 9 does sell the programmed chip. I'm going to see if I can also start to make these, I just need to buy the correct GAL once I have a big enough order for parts.
    – fziffle
    Jan 26, 2022 at 14:45
  • Welcoem to the site @fziffle! Moved this to a comment as it was flagged on not being an answer, and I'm inclined to agree, but it's useful content so didn't want to remove it altogether. If you do have some more info that directly addresses the questions posed feel free to post another, and please do stick around :)
    – Matt Lacey
    Jan 27, 2022 at 13:29
  • 1
    I have successfully programmed a GAL for this, and can program more if needed. Contact me here, and we can discuss.
    – fziffle
    Nov 4, 2022 at 16:30

3 Answers 3

14

From Marty Goodman, writing in The Rainbow, January 1987, page 102:

The reason for the Multi-Pak fix for the CoCo 3 is at least twofold.

First, the older PAL chips used to decode the software slot select port for the Multi-Pak “ghosted” from $FF7F to $FF9F. That is, when a value was written to $FF7F, it appeared at $FF9F also, and vice versa. This ghosting caused no problems with the CoCo 2, but it plays havoc with the CoCo 3, which occasionally wants to write to $FF9F when talking to its GIME chip. Similarly, any attempt at slot selection with a ghosting Multi-Pak will send spurious data to the GIME chip. Thus, the decoding of the software slot selection port had to be made more complete.

Second, Tandy felt it necessary to lock out the $FF80 through $FF9F range ($FFA0 and up are already locked out by the programming of the old Multi-Pak PAL chips). This was to protect the GIME chip from conflicts with information from other external devices that might be addressed in that range.

The article goes on to explain the hardware upgrades necessary to fix the Multi-Paks:

On the older Multi-Pak (26-3024) all that is necessary is to replace the PAL chip, U8, with updated PAL chip.

On the newer Multi-Pak (26-3124), Marty makes the case to have the upgrade done by a professional:

If you own one of the newer MPIs (Catalog No. 26-3124), I recommend you take your MPI to Tandy and have them upgrade it for you. This is because the upgrade involves cutting a trace on the circuit board, and then delicately soldering seven wires of the new satellite board to various integrated circuit chip pins on the board. If you feel totally comfortable with doing such work, what follows is a brief outline of the upgrade process.

0
10

Tim's answer referencing Marty Goodman offers a good explanation, but not really any options for users today who might need to make this upgrade.

The 3024 model can be modified with a simple PAL upgrade, available from Cloud9

If you have access to a programmer and the proper GAL, there's information on Coco3.com for another option:

If you get a Gray or White Large MPI (both have catalog #26-3024), then the procedure is different – you simply replace the 14L4 PAL with a properly programmed 16V8. You can’t use the equations presented above for a 26-3024. Instead, use these:

Name 26-3024 M.P.I. Upgrade ;
PartNo GCC-3024.01 ;
Date 6/1/2010 ;
Revision 01 ;
Designer J&R ;
Company GIMEchip.com ;
Assembly 26-3024 M.P.I. Upgrade PAL for CoCo 3 ;
Location U6 ;
Device g16v8 ;
/* ***************** INPUT PINS *****************/
PIN 01 = !FFXX; /* LOW For Any Address Between $FF00-$FFFF */
PIN [2..9] = [A7..0]; /* CPU A7 – A0 */
PIN 11 = RW; /* READ = 1, WRITE = 0 */
PIN 12 = E; /* E-Clock */
PIN 13 = Q; /* Q-Clock */
PIN 18 = !CTS; /* Cartridge Select Signal. */
PIN 19 = !SLENB; /* Input To Disable Device Selection. */
/* ***************** OUTPUT PINS *****************/
PIN 14 = !DBEN; /* Enables The Multi-Pak Interface Data Buffer */
PIN 15 = !IOR; /* Read the Slot Select Latch. */
PIN 16 = !IOW; /* Write the Slot Select Latch */
/* ***************** LOGIC EQUATIONS & VARIABLE DEFINITIONS *****************/
FIELD ADDRESS = [A7..0]; /* */
LATCH = ADDRESS:[7F]; /* Slot Select Latch@$FF7F */
IOR = LATCH & FFXX & E & RW; /* Active on $FF7F and E=1 and RW=1 */
IOW = LATCH & FFXX & E & !RW & !Q; /* Active on $FF7F and E=1 and RW=0 and Q=0 */
DBEN = (ADDRESS:[40..7F] & FFXX) # SLENB # CTS;/* Active $FF40-$FF7F or SLENB or CTS */
/* *****************/

The 26-3124 model can be upgraded according to this image from coco3.com using a 74LS10 and some soldering skills:

Little John's 74LS10 upgrade

Standard CoCo 3 upgrade for the 26-3124 Multi-Pak Interface. The integrated circuit is a 74LS10 Tripple 3-Input NAND. The trace connecting pin 19 of IC1 to pin 52 of IC6 is severed. This circuit is assembled and connected as indicated in the schematic. This circuit restricts the address range of the M.P.I. data buffer to $FF40-$FF7F. The data buffer is aso enabled on SLENB* and CTS*. BA7 is buffered address line A7.

Once you make this upgrade, your MPI will only be address compatible with the CoCo 3.

1
  • 2
    The above information is mostly correct, except for the comment: "Once you make this upgrade, your MPI will only be address compatible with the CoCo 3." That is not true. What is true is that a (very) few CoCo 1/2 devices that use addresses in the $FF80-$FF9F range will no longer work in that Multipak, but most devices including the floppy controller, most (all?) hard disk controllers, the RS232 pak, and most other devices will work fine in a modified Multipak on a CoCo 1, 2 or 3. Sep 7, 2016 at 18:34
1

This is a standard JEDEC (.JED) format, which is the compilation of the file that tlinder placed above. (The file above uses an 20+ year old obsolete program, WinCUPL, and .JED is the preferred format to distribute GAL object files.)

You should be able to put the below contents in a file, rename it to "coco-3-U8.JED" or similar and then use your favorite device programmer to program a GAL16V8 with the file contents. Finally, replace the PAL14L4 in your 26-3024 with the GAL16V8 to get it to work with your Color Computer 3.

CUPL(WM)        5.0a  Serial# XXXXXXX
Device          g16v8s  Library DLIB-h-40-9
Created         Tue Feb 14 20:06:38 2023
Name            26-3024 M.P.I. Upgrade 
Partno          GCC-3024.01 
Revision        01 
Date            6/1/2010 
Designer        J&R 
Company         GIMEchip.com 
Assembly        26-3024 M.P.I. Upgrade PAL for CoCo 3 
Location        U6 
*QP20 
*QF2194 
*G0 
*F0 
*L00768 10100111011101110111011001010110
*L01024 10100111011101110111011101010101
*L01280 10100111111111111111111111111111
*L01312 11111110111111111111111111111111
*L01344 11111111111011111111111111111111
*L02048 00000000010001110100001101000011
*L02080 00101101001100110011000000110010
*L02112 00110100111000111111111111111111
*L02144 11111111111111111111111111111111
*L02176 111111111111111110
*C1E92
*A8F9

Also, for fun, here are the actual equations derived from the above Coco3 MPI JED file, as reported by MAME's jedutil:

Inputs:

1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 17, 18, 19

Outputs:

14 (Combinatorial, Output feedback output, Active low)
15 (Combinatorial, No output feedback, Active low)
16 (Combinatorial, No output feedback, Active low)

Equations:

/o14 = /i1 & /i2 & i3 +
       /i19 +
       /i18
o14.oe = vcc

/o15 = /i1 & /i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9 & i11 & i12
o15.oe = vcc

/o16 = /i1 & /i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9 & /i11 & i12 & /i13
o16.oe = vcc

And, finally, here are the original equations from the PAL14L4 that originally came with the 26-3024 (and works with the Coco 1 and 2). Notice that there's an additional line in the /o14 stanza here that isn't in the "fixed" Coco3 version, above, "/i1 & i2 & /i3 & /i4 +".

Inputs:

1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 18, 19

Outputs:

14 (Combinatorial, No output feedback, Active low)
15 (Combinatorial, No output feedback, Active low)
16 (Combinatorial, No output feedback, Active low)
17 (Combinatorial, No output feedback, Active low)

Equations:

/o14 = /i1 & /i2 & i3 +
       /i1 & i2 & /i3 & /i4 +
       /i19 +
       /i18
o14.oe = vcc

/o15 = /i1 & /i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9 & i11 & i12
o15.oe = vcc

/o16 = /i1 & /i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9 & /i11 & i12 & /i13
o16.oe = vcc

/o17 = 
o17.oe = vcc

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .