• Please review our updated Terms and Rules here

68K Tandy MMU Extensions

dlightman

Experienced Member
Joined
Jun 8, 2014
Messages
160
Location
Eastern US
Most big Tandy fans are probably familiar with the Tandy MMU extension for the 68K CPU board but did you know there were others?

Tandy designed the 68K architecture for the Model 16 with 8MB of address space. Officially the first 7MB is reserved for memory and 256K at 780000-7BFFFF reserved for I/O. Unofficially an additional 512K chunk at 700000-77FFFF can also be utilized giving an effective 7.5MB of contiguous system memory. Even though the design supports 7.5MB of system memory Tandy only implemented an 8-bit MMU limiting the amount of user memory it could manage to 1MB.

While 1MB was sufficient in 1982 as the lines popularity grew so did demand for increased performance and capacity. To address this in 1986 Jerry Ballard of Tandy R&D designed a 2-bit MMU extension that expanded the amount of memory the MMU could manage to 4MB. Unfortunately for reasons that really require their own article to get into Tandy's MMU extension wouldn't be released until 1989.

The delay was so long that XENIX 3.2 with official support for the MMU would make its way to the public more than a year before the MMU would. Since demand for the MMU was quite high when XENIX was released the kernel was quickly disassembled to figure out how it worked. Once disassembled it was found that 3 additional bits of offset/limit control were added. This meant that IV gave XENIX 3.2 the ability to manage all of the memory address space rather than just the 4MB the Tandy extension supported.

With this information in the wild and Tandy's MMU still nowhere to be found several individuals designed their own MMU extensions. One of those was Steve Harmon's XMMU. Adding an additional 3 bits to the MMU the XMMU was a small daughter board that plugged into the CPU socket consisting of 5 components. It took 2 cuts / 13 leads to install and extended the amount of user memory that could be managed to 7.5MB!

In a 1991 USENET post Steve says he sold over 40 of his extensions under the name Devient Designs. The cost was around $600 installed and he also sold a 4MB memory board for $2800. Putting 7.5M on just 2 memory boards solved the line ring, jitter and other bus timing/level issues that occurred when using more than 3 of Tandy's 1MB boards. In a follow up post he provides an archive containing description of how the XMMU works along with a schematic and code so that anybody could build their own.

Sadly the uuencoded part of Steves post was stripped when archived by dejanews and thought to be lost forever but lucky for us when the MUSIE archive was uncovered earlier this year it contained a copy of Steves XMMU archive. Even better than that THE Ken Brookner took Steves schematic and brought it back to life! I was lucky enough to get my hands on one and 29 years later I present to you the XMMU:

x5OzYvol.jpg


Attached to a 8mhz Tandy CPU board:

cgdML6rl.jpg


Solder side of the board:

Mi9YInLl.jpg


Album with huge pictures: https://imgur.com/a/r7lUY72

Now I'm far from an expert on any of this but the short of how it works is chip enable on the 8303 buffer at U11 is cut and connected to the XMMU. It then hijacks the the A20-22 address lines on the output side of the 8303. When an access occurs to the extended offset/limit registers the 8303 is disabled, the XMMU handles the expanded addressing then returns everything to it's previous state until the next extended access occurs. MMA, CARRY, OBERROR and all the other signals needed are taken from/injected to their normal positions on the CPU board.

There were a few things I had to work through to get it all going so you'll have to excuse the messy wiring. I tested it with 3 x 1MB Tandy memory boards running continual memory tests in XENIX 3.2 for over a week and it just worked. If I can bumble through this and get it working anybody can and the scariest part is taking a knife to the 8mhz board. Overall it was a really cool and fun project. Now I just need a 7.5M memory board :)

L9V8xYol.png
 
Last edited:
Damn fine work! I never thought I'd see the MMU come back to life. Kudos to all involved!
 
Do you happen to have a link to the schematics and documentation that was resurrected? I don't have a big Tandy but I'm curious about the details.
 
Here's a link to what Steve Harmon provided: https://github.com/pski/model2archive/blob/master/Software/Xenix/Musie/xenix/mmu.tar

His description of how everything works is quite detailed. The only thing I would add is if you are going to do this take MMA from TP3 rather than Pin 3 of U1. He mentions it's available in both locations but that is only true for the 6mhz short board.

In addition to getting it working on the 8mhz tried the XMMU on the 6mhz short but was unsuccessful. The board layout between the short 6 and the 8 is very similar although the 6 has a lot of slower logic. Honestly I'm not versed well enough in CPU design to really know what the issue is there. I did swap some of the socketed logic out for faster parts with no effect.

Maybe somebody else would be interested in giving it a shot on the short 6.
 
Did the .GED's from this board get released? Given the purple colouring is it on OSH Park?
 
I recently installed this 68000 MMU in a Tandy 6000. As discussed, this MMU allows XENIX 3.2 access up to 7.5MB of user RAM compared to the Tandy MMU which had a maximum of 4MB. Of course, actually physically installing 7.5MB RAM into a Tandy 6000 is another matter. We discuss this modification further on the Tandy Discord.

IMG_1250 (3).jpeg
 

Attachments

  • IMG_1250 (3).jpeg
    IMG_1250 (3).jpeg
    132.8 KB · Views: 6
  • IMG_1251 (3).jpeg
    IMG_1251 (3).jpeg
    132.6 KB · Views: 6
  • IMG_1258 (2).jpeg
    IMG_1258 (2).jpeg
    94.3 KB · Views: 5
Back
Top