PiDP-11: Replica of the 1970s PDP-11/70
by OscarV40 in Circuits > Raspberry Pi
10836 Views, 19 Favorites, 0 Comments
PiDP-11: Replica of the 1970s PDP-11/70
The PDP-11 was probably the most influential computer ever. It defined what we think of as normal, it was the first machine you could get Unix for, and Windows can trace its roots to the PDP-11's other big-ticket operating system, RSX-11.
In 1975, the 11/70 was not only the biggest PDP-11, it was also the last-ever to sport a proper Blinkenlights panel. In red and purple. Sorry. Rose and Magenta. These were the 70s. But then - all of a sudden - front panels were gone from our lives and we were supposed to look at dull beige boxes for the next few decades. So very sad.
The really fascinating thing about this computer though, is that it is quite usable even today. You can run a proper 2.11BSD unix (meaning, it has the good bits of unix but not the bloat) - but you can also go back further and run Unix v6 whilst you study the famous Lions Commentary. It does TCP/IP, works as a web server, does (vector) graphics...
The PiDP-11 project aimed to bring back this venerable machine. With front panel. There might be a Raspberry Pi hiding inside, but you can even hook it up to real serial terminals if you like. All the original operating systems and software comes ready to boot.
Like my earlier PiDP-8 project, you can use the software on any Raspberry Pi even without the PiDP-11 hardware. But the idea is to go one step further, by giving it back its physical form: Blinkenlights.
There are actually four stages you can consider:
- just running the PiDP-11 emulator on your Raspberry Pi and play with the PDP-11 operating systems;
- adding the PiDP-11 circuit board with Blinkenlights for visual effect;
- soldering switches onto the board to gain control of the machine over the front panel;
- buy the complete replica kit with fancy case, acrylic front panel cover and custom switches.
The Pi has plenty of power left to do all the other things you would normally do with a Pi (media server, file server, etc). So you are not limited to just PDP-11 software.
Convert a Pi Into a PDP-11
The software part of the PiDP-11 project makes use of the well-known simh simulator and the BlinkenBone project, which adds a front panel driver to simh.
Install your regular Raspbian. Then, add the PDP-11 simulation with these five steps:
1 Make a /opt/pidp11 directory and go there:
sudo mkdir /opt/pidp11
cd /opt/pidp11
2 Download the pidp11 software:
sudo wget https://www3.ispnet.net/pidp11/pidp11.tar.gz
3 Unpack it so the software lives in its designated /opt/pidp11/ directory:
sudo tar -xvf pidp11.tar.gz
4 Run the install script so the PDP-11 autoboots when you switch on the Pi:
sudo /opt/pidp11/install/install.sh
5 Reboot and grab the PDP-11 console:
sudo reboot
~/pdp.sh
(the last line is necessary only when you set up your Pi to autoboot into the GUI. The PDP-11 already runs, and this command brings you to its terminal. When you log in over ssh, you'll be at the PDP-11 terminal straight away)
This will get you a running PDP-11, but all it runs is a small demo program. For now.
Note: both the above pictures are the same PiDP-11, just showing that you can hook it up to a real VT-220 terminal just as well as to a laptop running a terminal emulator.
Add the PDP-11 Software History Collection
The previous step gave you the PiDP-11, but only a demo program (idled) to run. The next step is thus to download all the operating systems.
Download and unpack the ‘systems’ collection of disk images:
cd /opt/pidp11
sudo wget https://www3.ispnet.net/pidp11/systems.tar.gz
sudo tar -xvf systems.tar.gz
Also, an even larger variety of operating systems can be added:
sudo wget https://www3.ispnet.net/pidp11/nankervis.tar.gz
Lastly, a huge 1.6GB library of RSX-11 software is available:
cd /opt/PiDP11/systems/rsx11mplus/
wget http://rsx11m.com/PiDP11_DU1.zip
unzip PiDP11_DU1.zip
More things to tweak if you want:
- if you autoboot into the GUI, you need to open a terminal and type ~/pdp.sh to ‘grab’ the PDP-11. Disable GUI autobooting: “Raspberry icon” ->Preferences-> Raspberry Pi Configuration. You can always start the GUI using the startx command.
- You can enable auto-login on the Pi, set that using sudo raspi-config and you’ll no longer be bothered by Pi/Linux stuff; you’ll just be dropped into the PDP-11 straight away.
- As you don't yet have a physical front panel attached to the Pi, read the manual on how to boot operating systems. Quick tip: CTRL-E, then "cd ../systems/rt11", then "do boot.ini" is one way.
Start Reading Up
There's still a lot going on in the PDP-11 world. The best thing is, everything is available freely as PDFs.
- Read the PiDP-11 manual here: https://www3.ispnet.net/pidp11/PiDP-11%20Manual%20...
It is in .odt format, best opened with MS Word although OpenOffice on the Pi will do a decent job as well.
- Join the forum: https://groups.google.com/forum/#!forum/pidp-11
(You don't need the PiDP-11 in kit form, PDP-11 fans with a software only setup are equally welcome!)
- Check out the web site:http://obsolescence.wixsite.com/obsolescence/pidp-...
And once you dig in, do not forget to browse through the thousands of pages of PDP-11 manuals on bitsavers.org, in their DEC subdirectories.
Add a Physical Front Panel
Why is a physical front panel interesting?
- It's Blinkenlights. Front panels are Cool.
- To understand how a computer, and its CPU, work, nothing beats inspecting a running computer in single step mode, toggling in small programs bit by bit and seeing how they actually drive the computer on the lowest level.
To get a front panel, you could buy the complete PiDP-11 kit (and you're welcome to do so), but you can also opt for the more industrial-looking Do It Yourself option. And this being Instructables, that is what we describe here: send the Gerber PCB design files to any PCB shop and make your own Bare Bones front panel. A PCB would cost a bit less than $15 per unit, in quantity five, from places like jlcpcb.com.
Other things you will need:
- 64 LEDs (5mm, red)
- 37 diodes (4148)
- a UDN2981 driver chip, or equivalent.
- 2 standard rotary switches
- 6 momentary and 24 toggle switches, any standard mini-switch will fit.
- 3 Resistors (1K), 12 resistors (390 ohms).
- An "extra-tall" pin header connector to connect your Pi. Note! Normal 2*20 pin ones will not work, the Pi needs more distance from the PCB.
If you're really on a budget, or you're just interested in the Blinkenlights, you can even leave out the front panel switches and/or the rotary switches, and be done for <$20 in all.
See the Gerber file in the download section.
Note -- You do not need a serial terminal. Everything can be done wirelessly using ssh or puTTY. Even the vector graphics display can be done wirelessly, through VNC in that case. Or use the Pi's own keyboard and HDMI monitor.