PiDP-11: RECREATING THE PDP-11/70
Using the PiDP-11
The user manual is available for download here (link). You really should read it - this is a 1970s minicomputer. Minis came with manuals, not user interfaces.
You can run the PiDP-11 software on any Pi without the actual PiDP hardware to try it out. Although of course you'll be Blinkenless. The manual has a section on this.
The PiDP-11 presents its terminals on either ssh or telnet sessions, or the Pi's HDMI display, or actual serial terminals. The PDP-11 inside does not care. It does know about the Pi's HDMI display (or VNC) as a vector graphics tube though.
The boot menu
The PiDP-11 boots up in a little demo program called IDLED. It just blinks the lights running a small PDP-11 program. By toggling in a value on the SR switches and depressing the Address rotary knob, you can boot into any of the installed operating systems. If you only use the one operating system all the time, then next time when you power up with the SR switches in the right position, you can skip IDLED.
Octal numbers are important for the PDP-11.
The SR switches are grouped in coloured blocks of three. Each block makes one octal number.
So unix v7 is shown as 0107 on the boot menu. Set the SR switches to octal 1-0-7, i.e. binary 001 - 000 - 111, as per the bottom picture.
Operating the front panel
The front panel gives you total control of the whole system at any time. From toggling in a program, to debugging the operating system whilst it runs in single-step mode.
Very short introduction: first, halt the system (depress HALT), and
execute whatever is running in single-step mode by repeatedly toggling CONT.
move the HALT switch back to the ENABLE position and toggle CONT,
and you'll just continue normal operation.
when halted, look at the contents of a memory address (or register): set SR switches, then toggle EXAM. Look at the DATA leds.
when halted, modify the contents of a memory address (or register): set the SR switches to the desired address, toggle LOAD ADRS (look at the ADDRESS leds mirroring your SR switches), then set the SR switches to the desired value, and toggle DEP.
If you want to start a new program: enter the starting address on the SR switches, hit LOAD ADRS, then hit START.
CPU registers can be viewed and edited by inspecting 'special' addresses. The manual has a more in-depth overview of the front panel.
Some of the operating systems included in the PiDP-11 collection
Over time, the above will become the curated system images, implying that they should be continuously enhanced with networking capabilities, where applicable, and a growing set of applications.
The RSX-11M Plus disk pack is currently networked using both DECnet and TCP/IP. It contains a web server(!) and email package, as well as all main programming languages. You can download an entire 1.6GB of available software on a second drive - including MTREK, the famous multi-terminal, multi-user Star Trek game (see the manual).
The 2.11BSD disk pack is the PDP-11's most well-rounded Unix. It is networked, and recently a Tektronix vector display emulator has been brought on to allow quite spectacular graphics. The C compiler has libraries to make programming it very simple.
The RT-11 disk pack comes with a hard- and software configuration to use DEC's own GT-40 vector graphics system. You can play Lunar Lander on it, or code for it in Basic, Assembler or Fortran. VT-100 games like Adventure, Pac Man, Space Invaders etc are also available here. A TCP/IP setup existed for RT-11, we still need to bring that on.
Unix v6 is installed for those who want to study John Lion's “A commentary on the Sixth Edition UNIX Operating System” (link); and v7 is present as well, being the Nicest Unix, as are V5, Ultrix and System III & V.
This list of curated operating system packages will grow - but free slots in the boot menu can be filled with your own setups.
As this curation business will take a concerted effort and significant time, Paul Nankervis has kindly shared his collection of PDP-11 system images used in his online PDP11/70 emulator. See the table to the right.
The Nankervis system is de facto a second collection of boot images, but they are all installed on a single PDP-11, set up with a huge number of drives. See the manual on how to add it to the PiDP-11. All these systems can then be booted into from the boot menu, after which you use 'boot xxn' to select the drive/OS to boot. Paul's site is well worth a visit for the annotated walkthroughs that will give you a quick hands-on introduction to all these systems.
Call for help: anybody able to set up uucp between v7 and Raspbian?
As the PiDP-11 is based on the Raspberry Pi, you should not just pull the power. A proper system shutdown command can be given through the 'hidden' switch combination of depressing the HALT switch and pushing the Address knob. This will effectively issue the equivalent of a "sudo shutdown -h now" command. You should wait 15 seconds more before cutting power. Note that you can optionally connect the key switch to take over this function, see here.
Note that actually, many PDP-11 operating systems need to be shut down too before you power down. This is entirely your responsibility. You should do that before using the switch combo above if your OS needs it. Note - as this is the default bootup for the PiDP-11 you should know this sooner rather than later - it is safe to just cut power when you are in RSX-11M Plus but have not yet entered the date. Once you are logged in, issue the RUN $SHUTUP command in RSX before shutting down the PiDP.
Starting from the bare (simulated) metal
Although you can just go off and boot one of the operating systems, understanding the low-level basics is part of the fun. See Dave's blog with First Steps here (link). Crucially, Dave shows you not only how to operate the PDP-11 itself, but also makes extensive use of the simh command line. Which, if you ever get deep into PDP-11 hacking, is a phenomenal tool. You can do most everything on the front panel, but the simh command line is a tool that back in the day, PDP-11 users would have killed for. Figuratively speaking mostly.
Minicomputing means a need for manuals. Manuals, manuals, manuals. Documentation, documentation, documentation. Books, b---
Pretty much all PDP-11 manuals and many good books are available as PDFs online. The go-to place is bitsavers.org, with more pointers on where to start provided in the PiDP-11 manual.
Living with flat-panel displays
TIP: If you lack proper serial terminals like the DEC VT-100 or VT-220, there is a very nice CRT display simulator for either your Pi (HDMI or VNC) or your Linux laptop:
It might add character to your flat-panelled display. See the PiDP-11 manual for details.
Understanding the PiDP-11 software setup
Some understanding of simh is useful here. Simh bootscripts are configuration files telling simh what hardware is to be emulated, and how it is to be setup - including what disk or tape images are to be mounted initially. You can see the pre-installed bootscripts in /opt/pidp11/systems/<operating system>/boot.ini, and open them with a text editor to view them.
The entire PiDP-11 setup resides in /opt/pidp11. The following subdirectories are useful to know:
./systems contains the collection of operating systems
./bin client11 - the blinkenbone simh emulator
server11 - the front panel driver program
pidp11.sh- shell script to start both of the above, started on the Pi at boot time
without front panel hardware: add the SR number you want to boot to pidp11.sh
./install install.sh - performs a complete reinstall of everything. Use with caution!
./src the entire source tree. makepidp.sh compiles the client/server binaries.