Monday, October 19, 2020

The Motorola MDP-1000

So having found myself gainfully employed again after a rather stressful hiatus over the summer, I decided to reward myself and splurge on this sexy bit of kit:

The Motorola MDP-1000 Minicomputer

Prior to this showing up on eBay, I wasn't even aware that Motorola had ever made a minicomputer (more on that later), but there it was.  I knew I had to have it.  It arrived last week and I've been digging into the system and trying to find out more about its history.  Unfortunately not much is out there, so I thought that it would be a perfect subject to write about here so that the majesty of the MDP-1000 might be more widely shared with the world.  Also, what else am I going to do with myself late on a Sunday evening?

The Hardware

The MDP-1000 was introduced in late 1968 or early 1969 and is built from discrete TTL and DTL chips.  It was apparently manufactured by Motorola's Instrumentation and Control Systems Division in Phoenix, Arizona, and was intended for real-time industrial control applications.  It's a strange little machine: It's nominally a 12-bit computer -- the instruction word, registers and ALU are all 12 bits wide -- but the memory is only 8 bits wide.  Instructions normally occupy two bytes (16 bits) in memory but there's a special "shared-byte" encoding which allows certain classes of instructions to share their second byte, by taking it from a pool of 64 bytes in memory.  This allows a more compact encoding of instructions, at the expense of making things more complicated to understand and disassemble.  Oh, and that 12-bit ALU?  The carry bit comes out of bit 7, not bit 11.  The system includes a current loop serial interface that has to be read in manually, one bit at a time, with software reassembling the bits into bytes.  It has an interrupt system, but it has to be polled.  This thing is weird.  I've never seen anything quite like this computer in my voyages through the bowels of computing history.

The MDP-1000 can address up to 16K of core memory.  Like the PDP-8, only 4K are directly addressable at a time due to the 12-bit registers, but there's a 3-bit wide extended memory register that swaps out the top 2K of the memory space.  A variety of I/O devices were available, from the typical teletype interface to relay controllers and analog-to-digital converters.

I know only a little about the history of this specific specimen of the MDP-1000.  The seller was kind enough to share what he knew about it.  It was bought by the Saskatchewan Research Council in the late 1960s or early 1970s, and was being disposed of in the 90's when the seller acquired it.  There is an article on page 36 of the December 1969 issue of Computers and Automation magazine mentioning an MDP-1000 being used for glacial surveys in Canada -- it's entirely possible the article is talking about the same computer I have on my bench right now.

The only detailed picture of an MDP-1000 I've found -- from the System Description manual

 The system I have isn't actually an MDP-1000: it's a ruggedized version of the MDP-1000, designated on the rear as an MDP-6650.  The chassis is quite tall, but only about a foot deep, whereas the original MDP-1000 was about 5 inches tall and 21 inches deep.  All the boards in the 6650 are approximately 17"x15", and covered in conformal coating.  I assume the MDP-1000 had similar internals, repackaged.  The power supplies for both were external.

MDP-1000 CPU Board

As mentioned before, the system is made from TTL and DTL chips, manufactured by TI and marked with house numbers, making identification a challenge.  What on earth is an SN4812 or SN6392?  The only Motorola ICs are on the core memory board, used as part of the sense amps for the core planes.  These too have strange in-house part numbers (SC5330) that defy my attempts to identify.  Debugging and repairing this system is going to be a big challenge, so my hope is that there's not too much wrong with it.



MDP-1000 Core Memory board (4K)




The Plot Thickens

My purchase included a three-ring binder full of documentation but no detailed information on the hardware.  No schematics for the logic or wiring diagrams for the power supply connector on the rear of the chassis.  I put the word out in the usual places but there were no bites.

Searches on the Internet yielded some interesting articles and ads in early computer magazines but nothing more.  Until I stumbled on this Usenet post.  In the middle of what I assume was a scintillating and incredibly informative and productive discussion about the relative advantages of the Motorola 68000 versus the Intel 8086, there was this comment:

For that matter what was a "Motorola machine" in the relevant time period, an MDP-1000, a.k.a. a rebadged General Automation SPC-12? I see zero architectural similarity between the MC6800 and the MDP-1000 except that they both used 8 bit wide memory systems.

Holy cow, the poster was right!  The MDP-1000 was clearly an SPC-12 in slightly different duds, as was easily confirmed by a trip to good ol' Bitsavers:

A stack of SPC-12s!

 

Interesting that Motorola chose to rebadge the SPC-12 for their Control Systems Division.  Try as I might, I haven't been able to find any information detailing a partnership or agreement between General Automation and Motorola.  As far as system documentation goes, There's a bit more information out there on the SPC-12 than there is for the MDP-1000, I even found a program for it written as part of a Master's thesis done at Texas Tech: "Interpreter for the SPC-12 General Automation Computer. (This, apart from the paper tape bootstrap loader remains the only bit of software I've found for the system.)

Alas, still no schematics.  But I did find another collector who has a couple of SPC-12s, and he's posted some nice pictures of the internals.  Here's the CPU board from an SPC-12:


Look at all familiar?  It's not 100% identical to the CPU in the MDP-1000, but it's close.  And best of all, the ICs have normal part designations on them, so I can use these pictures as a cross-reference for the house numbers on the MDP-1000's boards.  (Turns out an SN4812 is a straight-up SN7400 chip.)  Not too bad.

Power Supply

The system itself was fairly clean.  Musty, but clean.  A bit of soap and water on the backplane at the bottom of the chassis (bottomplane?) that had accrued a bit of dirt and dust and the occasional dead insect, followed by some drying and rigorous application of contact cleaner and scotchbrite brought it back to service:

MDP-1000 backplane prior to cleaning.  Note the grody tin-plated contacts.  Gross.

The next order of business was to figure out how to power the MDP-1000 up.  The MDP's power supply was external and was not included with the system, having been lost long ago.  I had a few clues as to the system's needs for power: +5V at 5A, and +/-15V at 3.6A would do the trick.  As to how that power got into the system, I was on my own.

As you can see on the above photos, there's a row of colored test points for the power supply on the right-hand side.  These made it relatively easy to figure out how the power supply was meant to be wired up.  The edge connector on the lower right is the power connector and it was a simple matter to beep the connections out with my multimeter, leaving only a few mysterious signals on the connector not directly related to power.  One pair went off to the relay you see on the left side, in the middle.  The others went off to the logic on the top-middle of the board.  I suspect the relay is related to power sequencing and the logic is related to the line-time clock hardware, but these are just guesses at this time.

I had a reasonable +5V supply on hand already.  I went on eBay and I found a suitable Lambda supply for the +/-15V, and I ordered up a 24-conductor card edge connector for the wiring.  The parts arrived in a week or so and I cobbled this monstrosity together:

Cobbled together power supply.  Lambda on the right.

And the first power-up was a success, no smoke or anything.  The front panel was responsive, though many of the switches did not behave reliably -- they will need some cleaning.  No response from the memory, however.  But that's a task for another day...