Motorola, Intel, IBM Make A Mainframe in a PC - The PC XT/370
Turning an IBM PC/XT into a Mainframe Compatible Desktop
It almost sounds like alchemy:
Take two Motorola 68000 microprocessors. Change the microcode in one. Add an Intel 8087 Math Coprocessor. Change its microcode. Add 512 kilobytes of memory. Mix with lots of logic chips. And you have (nearly) …. an IBM System/370 mainframe.
Today’s post is about one of the oddest and most fascinating systems of the 1980s, the IBM Personal Computer XT/370. The XT/370 added three expansion cards to a standard IBM PC/XT, to give a desktop machine capable of running some IBM System/370 mainframe software.
I find it interesting for several reasons. It’s surprising that it was possible to put an (almost) System/370 compatible system into a desktop in 1983. It’s an incredibly creative use of technology with special purpose designs from both Motorola and Intel. It also tells us something about the relative power and priorities of major firms in the early 1980s and provides a portent of future developments.
So alchemy or Frankenstein’s monster? Let’s start with a little background.
The System/370 mainframe line was launched in 1970 as the successor to the wildly successful System/360 line. Even today’s IBM mainframes can run most System/370 compatible software. By the early 1980s, an entry-level S/370 mainframe processor cost around $250,000.
The original IBM PC was launched in August 1981. Its successor the PC/XT added a built-in hard disk drive and some more expansion slots and launched in March 1983.
So what was the PC XT/370? Put simply, it was a PC XT (the original IBM PC with a hard disk drive) with three additional cards:
PC/370-P : A card with one modified 68000, one standard 68000 and lots of logic chips.
PC/370-M : A card with 512 kilobytes of memory.
PC/370 EM: Providing the ability to emulate an IBM 3270 terminal.
The XT/370 then became three machines in one:
An IBM PC/XT.
An IBM 3270 terminal that could be used to access a System/370 mainframe.
A machine capable of running some System/370 software.
So how might the XT/370 be used in practice? An article in Byte from 1984 paints one scenario:
For example, imagine it is just before noon and the mainframe is becoming terribly slow. You really want to run a large database job but you are afraid it may take hours at the current load. Instead of being tied to the mainframe you can simply take a copy of the database-management system on your XT/370 and run the job on your own system.
I think that the article overstates the case for the desktop machine by using the example of a ‘large database job’. The general sense was clear though: some tasks could be simply downloaded from the mainframe and run on the XT/370.
By making writing and running some System/370 software more accessible the system would help increase demand for actual System/370 compatible mainframes. So XT/370 could be a success even if it sold in relatively low volumes. As a bonus, IBM got to trial how System/370 might be as a desktop architecture.
I want to make one point clear though. I don’t believe that the XT/370 was ever an attempt by IBM to turn the System/370 architecture into a mass-market desktop product. Equally, I don’t think that IBM ever saw the XT/370 as a major product.
But surely the XT/370 would be too slow to make it useful?
Actually, the XT/370 was surprisingly fast. We have a NASA report from 1984 that assesses the capabilities of an XT/370.
Comparing the XT/370’s performance compiling and running Fortran with a 90% loaded Honeywell mainframe running Multics, showed that the XT/370 was competitive or even faster in some cases.
Was it unaffordable then? In reality the XT/370 was surprisingly good value. The XT/370, with a hard drive, could be purchased for as little as $8085. This compares with a basic PC/XT with 256K RAM for $4395 and adds a lot more functionality.
So how did the XT/370 work? The PC/370-P card was the most important part of the system. We can see this card as the topmost card in the picture below.
Top right we can see three larger chips. The square ones are Motorola 68000 microprocessors, one standard and one modified for this system. The rectangular chip is a modified Intel 8087 Math co-processor.
The modified 68000 was designed to directly execute a subset of S/370 instructions. Instructions that were not in this subset would be caught and emulated on a program running on the unmodified 68000. Math operations would be performed on the modified 8087.
The various components were linked together as follows:
Lots of logic chips ‘glued’ the processors, the co-processor and the memory together. Most notably they implemented ‘virtual’ memory - not available on the 68000 - adding a page table so that memory pages could be stored on the (PC/XT) hard disk and retrieved as required. The board then communicated with the XT/370’s memory through one of three buses - data, address and control.
So how was it possible to modify a complex design such as the 68000 to execute System/370 instructions? The answer is that the design 68000 was heavily dependent on microcode, programs held in Read Only Memory on the 68000 that turned the 68000’s complex machine code instructions into simpler operations within the processor.
If we look at the 68000 die shot the large square blue/grey areas in the upper half of the die towards the right are microcode.
The 68000 could be repurposed to run a subset of System/370 instructions simply by changing the microcode. This repurposing was assisted by some high-level similarities between the two systems. Both System/370 and the 68000 had 32-bit registers. There were still, however, some profound differences between the two systems (for example the number of general purpose registers) which would have made these changes challenging.
Motorola assigned Nick Tredennick to work with IBM’s engineers on the revised 68000. Tredennick had worked on logic design and microcode for the original 68000. Quoting the oral history panel on the 68000 development and promotion:
Nick probably brought the most amount of intelligence to the project. He actually helped us design in detail many of the integral parts. This was the first microcoded designed microprocessor that I can find any little history of. He did almost all of the microcode.
So not only did Motorola construct a custom 68000 for IBM, but they also assigned one of their top engineers to help IBM develop an extremely niche product. Why? Presumably because Motorola badly wanted IBM as a customer. Likewise for Intel, with the revised 8087, how could they turn down their biggest microprocessor customer?
But it’s also telling that to build a powerful desktop machine, IBM turned to products from Motorola and Intel. The balance of power was shifting to the semiconductor industry.
The XT/370 was also an early example of the possibilities opened up by the PC’s expansion slots. Adding more computing power through expansion slots would soon be a standard practice, one that has continued today with Graphics Processing Units.
Alchemy or Frankenstein’s monster? Probably some of both. It was certainly one step towards an evolutionary dead end. There were successor products (look out for a future post!) but the System/370 architecture would not survive in a viable desktop product.
It did demonstrate, though, how mass-market microprocessors could encroach on territory that had previously been the domain of mini and mainframe computers. And it’s also hard not to be impressed at the ingenuity behind the design of the XT/370.
The XT/370 Today
Whilst I was drafting this post I discovered that Twitter user @TubeTimeUS was posting about his work to restore an XT/370 to working order. You can see a small selection of their tweets below. It’s a fascinating journey. It’s great to see one of these machines still running today.
Further Reading
I’ve intentionally left out a lot of technical detail on the XT/370 particularly on the software it ran. For more reading I’d recommend Byte magazine from October 1984 (link to the Internet Archive) which has an extended article on the XT/370.
Image Credit
XT/370 Boards
By Mike Ross - http://www.corestore.org/370.htm, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=110769554
68000 Die Shot
Pauli Rautakorpi, CC BY 3.0 <https://creativecommons.org/licenses/by/3.0>, via Wikimedia Commons
Very interesting article. I worked on the qualification of the Intel math coprocessor at IBM which was code named "Cornrow", a reference to Bo Derek's hairstyle in the popular 1980s movie "10". Those were interesting times. IBM help save Intel with an almost 20% share in the company which almost put IBM out of business a decade later. Thankfully both are still around today and are still innovating and essential to the technology industry.
Looking forward to your next article...since I own two P/370s and two P/390s, all Micro Channel and all running (and all in RS/6000 hosts).