Professor Mark Csele

Vintage Digital PDP-11 Computers

The PDP-11 was a computer I always _wanted_ to own. As a kid, in the 1970’s, these were the apex of computer technology. Larger 11’s featured blinking lights which went wild as the computer ran.

I acquired my first PDP-11/05 system in the early 80’s. After a lot of trading (including for the shell of an 11/70 I picked-up at a surplus sale), I ended-up with a reasonably well equipped 11/34 system. Built in the mid 70’s this system featured three RK05 removable disks. Unfortunately, the system was (out of necessity) stored in an unheated garage: fifteen years of temperature extremes, mice, and moisture resulted in the complete destruction of the drives …. they would never run again :(. When removed from storage it was hoped that all they would need as “a good cleaning” however a closer look revealed that mice had made a home in the drives, chewing some wires including the delicate wires to the disk heads, and humidity had caused many moving parts to rust. Glass sliders used for disk head position feedback had broken from their mounts and were found in the bottom of the drives. After a good deal of effort to salvage the drives, they were essentially written-off. On the plus side, the CPU works very well – it seems almost unscathed by the ravages of time that were not very kind to the disk drives.

The CPU, weighing in at 110lbs, is now housed in a heated workshop where the temperature hardly varies and humidity is well controlled: it can now be preserved well. Of course, now that the RK-05 drives are gone I do not have a bootable device to run RT-11 (which was on my old RK-05 DecPacks) … I have plans in the works to add an RX-01 floppy drive to the machine allowing it to run RT-11 again.

Role of the PDP 11 in the history of the computer

If one thinks of the PDP-8 as the “model T” computer (cheap, and designed for mass production), then the PDP-11 is the big old 1950’s car! Loaded with features and with loads of horsepower, the PDP-11 CPU features memory-mapped I/O (common on many later microprocessors like the 6502 in which one simply MOVES a value to an I/O device rather than use a special IN or OUT instruction), eight working registers, and the ability of these registers to operate in many rich addressing modes. For example, a register could act to hold a simple value {MOV #500,R2}, or could be used as a pointer {MOV (R2),R0}, and even auto-increment {SUB (R2)+,R0}. Featuring an orthogonal instruction set, instructions like MOVE could use memory addresses or registers as operands. This was one of the first implementations of this type of architecture and we see this legacy live-on even today in chips like Microchip’s dsPIC series (among many, many others). 

The PDP-11/34 CPU

The front panel of the PDP-11/34 CPU featuring a keypad and display

For those of you unfamiliar with a PDP-11 consider that this is a true minicomputer in an era before microprocessor chips existed. There is no CPU ‘chip’ but rather several printed-circuit boards containing hundreds of discrete logic IC’s, primarily 74xx series TTL. This particular machine is a third-generation PDP-11 held on only two large PC boards and with advanced memory, not core like older machines (e.g. the 11/05) had. Dated about 1976 this is an original 11/34 replaced by 1980 by the more-common 11/34A. Considering the first PDP-11 was shipped in 1970 (the first model being the 11/20) this model in the PDP-11 family was reasonably advanced for its time and the CPU requires only two boards, plus one smaller board which acts as an interface between the front panel (which features a keypad and 7-segment LED displays). 

The CPU box is a 10.5″ high BA-11K mounting box which houses the CPU boards (top two in the photo, which comprise the KD-11E CPU) as well as boards for a serial console (an RS-232 terminal, usually a VT-100 or Decwriter), memory, and peripheral controllers. The CPU is mounted in a DD11-PK nine-slot backplane and can expand further in four-slot backplanes which can be added to the system. The first two slots of the DD11-PK are reserved for the CPU cards, and the rest are quad-wide SPC (Small Peripheral Controller) slots. These slots are actually hex-wide with four slots wired as SPC and the other two wired as MUD (Modified Unibus Device). The MUD slots (A&B on the backplane) are the Unibus “proper” however have different wiring than the “true” Unibus slots at the very end of the backplane. MUD slots, for example, feature most Unibus signals (e.g. data and address lines) however some ground, Bus Grant, and NPG signals are missing and instead replaced with added voltages for Core memory, battery backup for MOS memory, parity signals, and test points. For example, where Unibus lines AV2 and BD1 are ground, in a MUD slot these are used for Core +20V and +5B BATT voltages respectively.

Only the two end A&B slots are the “true” Unibus and are used for expansion of ther system. When an additional four-slot backplane is added, for example, only the Unibus on the last A & B slot (#9) is jumpered to that next backplane. At the end of the “chain”, a terminator module must be installed (such as the M9302 used in this machine).

The machine originally featured RK-05 drives and so had an RK-11 controller installed (now removed). This controller is quite large – it is housed on four separate quad-wide boards – and so it cannot plug into a simple SPC slot like other peripherals … it required it’s own four-slot backplane, mounted into the CPU cabinet beside the main CPU backplane and jumpered-in. The current machine has only a nine-slot backplane with room for three additional four-slot backplanes. With all of these cards in the system the beast has a large power supply and can consume a large amount of energy. The supply has a rated input of 12 Amps at 120 Volts – that runs the CPU box only, not additional disk drives which have their own power supplies! 

The actual board configuration inside my PDP-11 reveals the CPU and basic I/O on a 9-slot hex-wide backplane. The CPU boards sit in the first few slots followed by three RAM boards (this machine is loaded with 256K) and an RS-232 interface board (the console). Grant Continuity boards (yellow on this diagram), required to complete a UNIBUS configuration, are installed into each unused slot (where an SPC slot is unused, a G727 jumper is required in slot D). The M9202 is a jumper bridging the UNIBUS between the 9-slot CPU backframe and a smaller 4-slot frame used for the RK-11 disk controller (which itself consists of four boards) – it has subsequently been removed. Finally the UNIBUS is terminated with an M9302 board. 

The 11/34 backplane consists of sockets mounted on a PC board as well as wirewrapped jumpers between the sockets. Power is supplied via several Molex connectors which wire into the PC board. Visible here is the nine slot backplane only … additional smaller four slot backplanes can be added as well and feature similar construction.

All slots occupied by non-NPR (DMA) cards require a jumper between pins CA1 and CB1. In the case of this backplane, all slots feature a wirewrapped jumper between these two pins on each socket – this jumper must be removed on any slot used with an NPR-enabled device. Of course, a grant continuity card is still required in all unused SPC slots in socket D. This card, a G727, jumpers pins DS2 to DT2 (side 2), DP2-DR2, DM2-DN2, and DK2-DL2. 


Lacking a disk drive (see below), software may be loaded from papertape via the console (TTY) into memory and executed from there.

To begin, it is required that a bootstrap loader be loaded into high memory. This bootstrap may be entered using the front-panel or run directly from a bootstrap card if so installed. Once running, the bootstrap allows the loader tape to be entered into memory.

If entered from the front panel, a suitable bootstrap can be found in the “PDP-11 Paper Tape Software Handbook” chapter 6. For a machine with 32KW of memory the bootstrap can be loaded in addresses 177744 to 177776 (i.e. in the highest page of memory) and the device status address used is 177560 which corresponds to the teletype paper tape reader.

Since this 11/34 has an M9301-YB bootstrap card installed, the console emulator may be invoked simply by entering address 173000 (173000, then LAD and RUN) then, at the “$” prompt entering “TT” which makes the teletype (console) the active device. Now, using a terminal emulator (such as TeraTerm) with a 10ms delay, send the tape file “DEC-11-L2PC-PO.ptap” as binary. The machine loads this tape, which is the absolute loader, then halts with an address of 157500 on the display. Press CONT to continue execution and send the file “DEC-11-AJPB.PB.ptap” as binary. WHen BASIC-11 has finished loading the machine halts again. Load address 00000 and run at that address to run the basic interpreter (version 007A).

RK-05 Drives

In the 1980’s, when I acquired the system, it featured three RK-05 disk drives. These were removable hard disks, a single platter about 30cm across mounted in its own heavy case, and was really the predecessor to the ZIP disk. It featured a recording density of 2200 bits per inch with a total capacity of about 2.5 Megabytes. At the time, that seemed like an immense amount of storage! To load a cartridge the front door was lowered, the disk inserted, the door closed and the LOAD switch pressed. At this point the front door was locked automatically by a large solenoid and the disk began to spin – powered by a 2 amp AC motor. When operating speed was reached (in about 20 seconds) the READY light on the front panel lit and the disk could be used. 

The large, removable DecPack cartridges for the RK-05 drive. 

Unlike modern hard drives, which use step motors to position the heads, the heads on these drives were positioned using a linear voice-coil drive. The large coil is seen here: high currents passing through this coil move two heads on a carrier in/out – this coil moves inside a very large and heavy magnet (not shown).

Feedback of actual head position was provided by a glass slide with fine markings: as the heads moved forward and back, markings on the slide would interrupt two light beams producing pulses (sin and cos) which indicated movement. A counter provided feedback on which track was actually being accessed. 

Unfortunately, these drives suffered the wrath of time (and storage in an unheated garage for over 15 years) and so are no longer part of the system.

Plans for this machine

Today, the PDP11 is housed in my heated workshop to preserve it, along with other treasures in my collection.

I have purchased an original DEC handbook for this processor which describes the processor, traps, and Unibus operation. Looking at the cover of the PDP 11/34 handbook (not the newer 11/34a) you’ll see that the configuration I _had_ was indeed ‘standard’ at the time – two RK05 disks with the CPU and a DECWRITER (basically a terminal with a dot-matrix printer and keyboard).

I have acquired an M7846 UNIBUS floppy controller card for an RX-01 drive (which I have left-over from a Decmate system). I’m hoping to put the floppy drive on the system and boot it from there. My old RK-05 disks had RT-11 on them but now, in their absence, I need another bootable device. I am fortunate enough to have a variety of options open including using a Q-niverter Unibus-to-Q bus interface cardto use a set of drives I have on an LSI-11 system to run RT-11 on the 11/34. I can then build a new, bootable, copy of RT-11 on the RX-01 drives. The progress on that LSI-11 system is outlined below as well as on making the RX-01 boot on this system. 


The LSI-11 was Digital’s implementation of a PDP-11 on Large-Scale Integration technology – the same technology used to build microprocessors. Perhaps not a “true” microprocessor since it is not on a single chip (the original PDP 11/03 processor, the first in the LSI-11 family, used four 40-pin chips), the LSI processors were quite compact with the entire CPU on a single double-wide board. LSI series processors used a new bus called the Q-Bus which was similar to the old Unibus however featured multiplexed data and address lines. This allowed a 22-bit address space for increased memory capacity.

Whereas Unibus PDP-11’s, especially early models, featured switches and LEDs on the front panel allowing the operator to enter and debug programs directly, LSI-11’s had a built-in ODT (Octal Debugging Technique) debugger which allowed the operator to control processor functions via a serial connection to the processor – this resulted in significant cost savings.

I have a bunch of Q-Bus cards including an M8192 KD11J-A (11/73) CPU, M7270 KD-11 (11/03) CPU, Serial cards, memory cards, and a Dilog MQ606 MFM and Floppy disk controller. The 11/03 was a spare for an old Bremson Data Systems photo-printing machine that I serviced in the mid-1980’s. As received, the system consisted of a DEC 11/03 CPU card with all other cards third-party. I modified the serial card to have an RS-232 output (1488/1489 drivers were required) and a pushbutton switch was added to assert BHALT which brings the CPU into ODT mode. That CPU worked. The 11/73 was a CNC controller which came-about years later. It featured an MFM hard drive and a 5.25″ floppy drive and ran RT-11. I am now hoping to boot the 11/73 system (which had RT-11 on it) and hopefully generate a new copy of RT-11 on an RX-01 floppy for use with my 11/34.

On the left, the CPU and Dilog disc controller card in the 11/03 backplane. On the right, a close-up of the J-11 CPU which consists of two separate chips in a single ceramic carrier.

Recently, I powered-up the LSI-11 CPU by inserting it, along with serial and memory cards, into the 11/03 backplane. I was greeted with three diagnostic LEDs on the CPU card: D2, D3, and D4 which usually means “CPU failure”. Of course, the problem could be anywhere in the system. A second CPU was used and this one worked with the old modified serial card and a small RAM board. In order to test various cards, including a DEC M8043 SLU card, it was required to add a 1K pull-up resistor to +5V on the BHALT line from the rear of the card cage (near the top of the 4-slot backplane there are nine pins of which one is BHALT) – grounding this BHALT to assert it starts ODT. ODT was then used to test all system boards including the SLU and RAM cards – in the case of a RAM card test data was simply written at various addresses and read-back. An M8043 Quad SLU was then installed in the system and tested. One of the four channels (#3) is configured for a default console. With the 11/73 CPU installed, all LEDs blink then stay dark until BHALT is asserted on the bus at which point the ODT led (D1) lights and the familiar “@” prompt appears on the terminal. The Dilog MQ606 disk controller was then installed with a 5.25″ floppy disk and MFM hard drive (a CDC 94205-051, 43MB) connected. The CPU does not automatically boot the disk so after the disks and CPU are powered-up, BHALT was asserted to start ODT, and at the “@” prompt the CPU was commanded to start the bootstrap manually at address 17 773 000 (the address for an 11/03 CPU, which can only address 64K, would be 173 000 however the 11/73 has a larger addressing range). The floppy actually boots and RT-11XM runs but not exactly as expected …

… It was expected that RT-11 would boot from the hard drive but when the boot process is started, it only boots from DU1:, the floppy disk. Attempting to read DU0: (which should be the hard disk) simply show an error in reading the directory. A transcript of the boot is shown below:

Booting from DU1:
RT-11XM (S) V05.04 G
?KMON-F-File not found DK:STARTX.COM

DU    .SYS     7P 19-Dec-88      SWAP  .SYS    27P 19-Dec-88
RT11BL.SYS    78P 19-Dec-88      RT11SJ.SYS    79P 19-Dec-88
RT11FB.SYS    93P 19-Dec-88      RT11PI.SYS    95P 19-Dec-88
RT11AI.SYS    81P 19-Dec-88      RT11XM.SYS   113  20-Jul-89
DUX   .SYS    10  20-Jul-89      DIR   .SAV    19P 19-Dec-88
PIP   .SAV    30P 19-Dec-88      EDIT  .SAV    19P 19-Dec-88
FORMAT.SAV    27P 19-Dec-88      DUP   .SAV    49P 19-Dec-88
 14 Files, 727 Blocks
 59 Free blocks

.directory du0:
?DIR-F-Error reading directory

The hard drive light simply blinks slowly, and the disk will not read: the disk itself appears to power-down after a few moments and stop spinning. Attempts to read a non-existent device such as DX0: renders the error “?DIR-F-Invalid device DX0:” so it appears to at least recognize the hard disk. Note the lack of files on the floppy. I believe this disk was meant to be a stripped-down “emergency boot” disk in the event of failure of the hard drive.

The wonderful thing about having a lot of ‘junk’ around is discovering it later and thinking it is treasure! Poring over box after box of computer equipment and behold I discovered another hard drive. This one booted properly and contains what appears to be a reasonably complete copy of RT-11 v 5.06G with the following list of files on the disk. With this disk booting, I figured I’d better make a bootable floppy disk asap. The following procedure was used to make a bootable 5.25″ disk:

Note that the hard drive boots as DU0:, the floppy disk as DU1:

FORMAT DU1:                (768 blocks free on the disk)
COPY/SYSTEM DU.SYS DU1:    (DU is the driver for MSCP disks)
COPY/SYSTEM DX.SYS DU1:    (DX is the driver for an RX-01 floppy)
COPY DIR.SAV DU1:	   (The directory program itself)
COPY/SYSTEM PIP.SAV DU1:   (Peripheral Interface Program allowing copying, etc)
COPY/SYSTEM TT.SYS  DU1:   (Console terminal driver)
COPY KERMIT.SAV DU1:       (Runs on XM only)
COPY DUP.SAV DU1:          (Allows COPY/BOOT to make a drive bootable
COPY/BOOT RT11SJ DU1:      (Makes the floppy bootable)

This procedure makes a bootable floppy disk from which RT-11 can be installed on another disk (e.g. the hard disk should it become unbootable). The disk boots SJ (Single Job) version but XM can be installed as well (it was included on this disk allowing this version to be installed onto the hard drive). The inclusion of KERMIT allows files on the drive to be saved to a PC (a long process) and reloaded later. I am planning on making a backup copy of all RT-11 files for safekeeping.

Moving towards getting the 11/34 running again, an M7946 was installed on this system and a bootable RX-01 disk made. This disk was tested on the LSI-11 system by asserting BHALT, entering a bootstrap via ODT, and booting from the disk (which was, at the time, the only device): it boots properly and runs RT-11 version 5.04SJ as expected.

An M7846 RX-11 controller was then installed in SPC slot 9 of the 11/34, the bootstrap loaded at 1000 via the front panel (and verified), and a boot attempted on the 11/34. When STARTed at 1000, the RUN light comes on, the RX-01 head engages (as evident from the solenoid), and you can hear the heads advancing a track or two then it stops: the “SR DISP” led and the RUN led go out, and the display reads “005134”. Examining the bootstrap area (1000) shows the bootstrap was replaced by data.

Does anyone know what the “005134” code means? I have searched through RT-11 docs and can’t find anything on error codes or such and I’m hoping this will help with the debugging.

By the early 1980’s, high-end processors using VLSI (Very Large Scale Integration) such as the Motorola 68000 and the Intel 80386 rendered the LSI-11, and hence future PDP-11’s, obsolete.

“Video Killed The Radio Star”, just as “The PC Killed The PDP”