These pages document the adventures I experienced with my old PDP-11/44. I split it up into many sub-pages.
First there is some common blah-blah:
These are about the various repairs and installations I did:
- A confused KD11-Z CPU
- RL02 disk trouble
- More on RL01/RL02
- Power supply
- Installing a SMD disk
Different looks onto the PDP-11/44
A PDP-11/44 system, as DEC sees it:
My first impression of a PDP-11/44 ...
... and the same system at exhibition, just 15 months later.
Well, this is some up-and-down!
The 11/44 in history
The PDP-11/44 is an 1979 implementation of the "full" PDP-11 architecture, which was defined first by the 11/70 in 1975. There are many sites descibing the 11/44, note this one for example.
As you can read everywhere:
“The PDP-11/44 was the last PDP-11 built with discrete logic TTL chips”
It is also the last “true” UNIBUS PDP-11 CPU, and DEC made this very clear in the processor name: nothing can be the successor of “KD11-Z”. Later UNIBUS machines had QBUS Processors and a UNIBUS/QBUS bridge. Hence the ‘44 is an evolutionary dead end, see a family tree here.
On first glance it seems to be a bit outdated: PDP-11 with large scale integrated semiconductors (micro processors) appeared as early as 1975 (LSI-11). The big 32 bit VAX 11/780 on the other hand was already introduced in 1977.
While the 11/44 was technically not very exciting at its time, it is a robust midrange machine. It was rated by DEC to have 0.42 VUP (VAX units of performance). I found no prices, but the CPU was surely less than 40% of a 11/780. It’s unclear to me how many of them were made: my exemplar has serial number 457 and was built in the second half of 1983 (according to the date code stamped on the TTL chips). After this they shipped 100 per year ... this is not impressive, as DEC is estimated to have shipped a total of 600.000 PDPs in 30 years.
On the other hand, the 11/44 is quite a common machine in literature and under collectors. I’d estimate, that there were at least as many as 11/70’s ... around 10.000?
The PDP-11/44 contains technology from several generations: While the CPU and Cache is built completly from TTL-chips (74Sxx), the floating point unit and many disc controllers use the famous bit slice processor AMD 2901. Memory is MOS: 176 chips per MB. The console logic card contains an 8 bit Intel 8085 micro processor, and so does the VT100 video terminal which was introduced at the same time.
And in 1986 a DELUA network controller was added to my 11/44, which is built around a Motorola 68000. The 68000 is an 8 Mhz 16/32 bit microprocessor and has much more power than the 11/44 CPU it is serving.
This is how technology changed between 1978 and 1985.
How to get an 11/44. And why.
At first I wanted to have an 11/something with "blinken light console" of course: Full PDP-11 systems of that generation (pre 1977 like 11/40, 11/45,11/70) fill at least one 19" tower, have a mass of several 100 kilograms, may need 3-phase electrical power and would cost alone thousands of $ to ship. Paying the electrical bill and getting rid of the heat is another story.
And they are not for sale anymore. From time to time there's a mere 11/70 console board appearing on eBay, it alone gets sold for $300-$600 (I know, because I got one too).
It’s easier to get a PDP-8, but those are weak (12 bit architecture) ... I wanted to run a full UNIX.
One day there was an original 11/20 ... of course of highest historical value, but what do you want to do with just 8K of core memory? As the seller described it: “... will make a very effective paper weigth”.
Later there was this DECsystem-10 CPU ... a beauty like a gothic cathedral, a size like a truck, and it got away for just $25000. Another “local pick-up only” item.
Then I saw an 11/44 on eBay for a fixed price of $999. Small enough, light weight (only 200 kgs alltogether), cheap enough, powerful enough, and still old style technology. This machine came with a RL02 disk, a RA81 disk, 4 MB RAM, an expansion box, filled with disk and tape controllers ... a nice starter pack. The seller was a collector who needed space for an IBM mainframe (look at his web site: any questions?). I watched it for twenty days sitting there and suddendly realized: "My goodness, if I don't buy it NOW, then some other guy might get it!”.
Thus it happened. The seller offered no shipping options, only “local pick up”. Difficult, because he lived in the S.F bay area, so there were more than 9000 km, an ocean and a continent between us. But I found a local shipping agency and asked the seller to deliver there. He was very cooperative. While the machine itself had a good price, shipping and several German port and custom fees exceeded any reasonable limit ... I intentionally didn't checked this out before.
The ship’s name was “St. Louis Express”, I could track my machine online on its way over the sea:
And two weeks later ....:
A confused KD11-Z
Processor is crazy, console works
When I first powered on my 11/44, I was pleased to see the prompt of the console processor. Well there’s a prompt, so the imcportant stuff will work. Not necessarily: the 11/44 has an autonomous console processor, running the main KD11-Z Central Processor is a different thing.
Can’t add, doesn’t even try
Soon I tried to enter and execute a little assembler program: it did not run. I changed and ran the program through MACRO-11 a few times, and entered it by hand into the console (lots of “D xxx yyy” deposit commands). I did not get any success: the program HALTed at the proper address, but register and memory content was never as expected.
After the first hour working with my PDP-11/44, I was were very glad NOT to have a classic “blinkenlight” console. Operating the ASCII-console was hard enough, I just could not image working with switches and binary lights. Yes, the 11/44 console is a great achievement!
Then I used SimH, and there my programs behaved as expected. I executed the console selftest command “T/A” several times .. no error.
Very soon I got tired “depositing” and reading back code, instead the idea for PDP11GUI manifested. A first version was ready several weeks later, it could examine memory and CPU registers, assemble and load code, and run, stop and single step through a program.
A Very Reduced Instruction Set Computer
Equipped with that tool, I started new test series. The 11/44 processor executed its code in a very strange manner: I could load a register with a constant, but INC, ADD, and SUB opcodes were without any effect. A CMP behaved like a SUB, conditional branches were ignored, but BRA and HALT worked well. Definitively not Turing-complete anymore! Strangely enough, the console self test still displayed “OK”.
I dived into this microcode-thing: I scanned the PDP-11/44 micro code listings, put them in a database, PDP11GUI was extended, and I single-stepped through an ADD: the micro PC was 0010, 0015, 0000, 0010 ... like a NOP. The same with other opcodes.
There the old joke about the IBM 1620, called “CADET”, came into my mind: It had no adder, just number tables, and “CADET” was expanded to "Can't Add, Doesn't Even Try”. Well, I had my own CADET now.
Try swapping parts
It was quite clear now that the processor was damaged. The CPU core is distributed on two hex modules: Data Path M7094 and Control M7095. I bought new (old) ones from an U.S. trader and had to wait three weeks. As I unpacked the modules, there were two M7095, not M7094+M7095, an error of the sender. Well, I swapped in the first M7095: still more opcode were NOPs! I swapped in the second M7095: the CPU was now completely dead, the console processor just said “?22 CPU hung”. So now I had swapped in three different M7095 modules and got three different errors: I did not believed that the Controle Module was defect in any way. Another three weeks later finally the replacement M7094 arrived. What would you guess: Changing M7094 made no difference at all!
At this point I got into wildest theories: maybe the backplane was defect? A strange UNIBUS error? Maybe the power supply is not good? Maybe another CPU module is defect? Maybe M7094 and M7095 and the other boards were selected to work with each other and can not be changed individually? Maybe there’s a problem in my own brain? Perhaps I should sell my 11/44 and search another hobby?
Around this time I learned that there’s a computer-collector-club in my home town Göttingen: the CCG. One member, Manfred, organizes the museum at the local Scientific Computer Center GWDG. I finally called him, and told him my problem, and he said: “Why, I have a box full of 11/44 modules here, come and take them!”.
So I plugged in the 4th Control module and the 3rd Data Path module and the machine was running now! I really had three M7095 with different failures. I played with them a bit and could “repair” at least one: my original board had a broken 82S101 chip (on place “115” in the picture), but I could pick it from one of the other boards (which I called “JTB”).
82S101 is an Programmable Logic Array which is part of the instruction decoder ... and indeed, my instructions weren’t decoded very good. Since these chips need good cooling, I’m having an eye (or: ear) on my cooling fans since then.
I learned this:
- Normally, its an exception if a part fails, and replacement parts usually are working. If somebody detects a broken part, it is discarded.
With vintage parts, this is a complete other story.
- Good parts remain in collections, bad parts remain on the market. This is possible, because everything is sold as “untested”, and even broken parts are not discarded, because they still maybe valuable.
- Parts may degrade, if they rest in magazines for decades.
- Heat is bad.
- You can trust a self test only on a working machine!
- You need friends!
RL02 disk trouble
Bringing up RL01/RL02 drives
The RL02 is a disc drive with changeable platters (“packs”), it can save 10 MB. Its older siblings is the RL01, physical identical but can only save 5MB. DEC used them as big floppy drives: Small operating system can run directly from one or two RL01/RL02 drives. The RL02 was later used for software distribution.
Here are two in my office:
The RL01/02 drives are very common: almost every collection with a PDP-11 has those drives too. Here is a picture of a RL disk assembly line (slow link).
My 11/44 also came with a RL02 and a RL11 disc controller. I wanted to get the RL02 running first, because after that I could run all XXDP diagnostics from disc instead from simulated TU58 cartridges.
Making a cable
You can connect four RL02 to one RL11 controller in a daisy-chain fashion. I had a cable terminator, but no the special RL cable, and neither a “bulk head”: this is separate mechanical adapter which has a RL cable female at one side and a connector to the RL11 controller flat cable on the other. But I noticed that the RL11 controller has a 40 pin Berg connector on it, and inside the RL02 data was also routed by 40 pin flat cables. So I tried to connect directly RL11 controller and RL02 mother board with a 40 pin flat cable.
I’m very bad in geometry, so I attached signal tags to every cable side and the board connectors. So if the tags align, there’s no twist.
After that I was sure my cable connection was good. A first success was: after I powered the 11/44 on, the red FAULT lamp on the drive turned off, meaning the drive got clock from the RL11 controller in my PDP-11. But neither READY nor LOAD lamp ever lightened up. I checked all four light bulbs: READY and LOAD were burnt out. I replaced them, and disk packs could be loaded and removed by operating the RL02 as documented.
After that I ran the XXDP-diagnostics for RL drives. Result was negative: I could not made any contact to the drive, all diagnostics dumped out “OPI” errors. The same do you get, if the cable is not connected at all. Clearly a cable problem?
Testing the drive with an 11/53
I could not get the proper cables and bulk heads, but something much better: My computer club "CCG" had an PDP-11/53 with RL01/02 controller: a RLV12 with an attached cable! I connected this machine to my RL02: I got contact to the drive this time, but every read or write operation failed. So I had to conclude: my cable is trash, and/or my drive is trash. Hurray.
Getting a replacement drive, but somebody was faster
The C-C-G has an 11/34 with two RL01 drives in his collection.
So I planned to borrow there RL11 controller and RL01 drive and test my setup. When I opened the 11/34 box, I saw immediately that empty UNIBUS slot and a well known 40 pin cable ending in the air. Somebody else grabbed the RL11 out of that machine!
I got the drive and connect it to the 11/53 (a setup which did not contain ANY of my own parts). The result was the same: no read, no write. So the 11/53 was defective too! And I moved RL drives through the house again and established the last combination: the RL01 on the 11/44. Same as with the RL02. Conclusion: no error ever moved with the drives, they stay with the PDP-11’s.
I really needed some positive results at this point, so I ran the XXDP diagnostics on an SimH -simulation of my machine. At least this indicated a good “drive”, so I was sure my setup and XXDP work.
Working smarter, not harder
With distance of a week I realized what had to happen next: learn to debug TTL logic. As my experience with the 11/44 cpu showed me: If there are to many bad components floating around, this “swap-and-test” procedure leads to no results. Of course you can spend time and money to borrow or buy parts endlessly. But even if you “repair” machines this way, you do not really understand what you’re doing. A chimpanzee can be drilled to perform swap -and-test too!
So I got a little USB logic analyzer. You can get 34 channels with 500MHz sampling for $400, the company I work for payed it (since I can also use it for kernel mode driver development). And I read documentation again. Incredible, suddendly all the manual pages with “Detail function operation” and schematics and part positions on printed circuit boards and timing diagrams were filled with meaning. This was the right way!
Watching traffic on the RL11-RL02 cable
At first I monitored all wires from the RL cable while performing XXDP tests. Working with the logic analyzer was quite different from what I expected. Planing a test and setting up the probes may take more than an hour. Recording signals and interpreting them is a matter of minutes, even seconds.
First result was: the RL11 controller did not transmit any commands to the RL02 drive. The DRIVE COMMAND wire was always inactive.
Into the board
So I looked at the RL11 controller: were did the drive commands come from? I learned that a drive command is written to a 16 bit register and then serialized by a 16:1 multiplexer driver with a counter. The multiplexer (TTL IC 74150N) interested me most, and I clipped the logic analyzer on it.
A direct hit: The output of the multiplexer (signal “MUX OUT DRV CMD”) looked very ill! You see four parallel inputs at D0..D3, and the counter signal at CNT0..CNT8. MUX OUT should show the bits D0..D3 sequentially as CNT counts forward, but it shows a copy of CNT 1 with random noise!
Testing before repairing
I searched for a 74150 multiplexer. They are rare now, but I could get one from Conrad Electronics as easy as if I’d searched for a 7400. And as I waited for delivery, I got through Manfred’s 11/44 part box once again, and it struck me: There was another RL11 controller! I plugged it in, and with this one my RL02 run fine!
Finally I replaced the 74150 16:1 multiplexer.
On the left you see the old chip (“7923” means: made in 23th week of 1979), cut out. On the right you see the RL11 board, the new chip is in a socket now.
Now I had two working RL11 controller. I donated one back to C-C-G’s 11/34, where it was missing.
What I learned:
- The “swap a bad part” approach fails, if you swap in a bad part too.
- Sometimes you need a complete 2nd computer system to pick parts from.
- If you have too much stuff, you may not know that you have the 2nd system already.
- A logic analyzer does not analyze logic, it forces YOU to analyze it.