THE DEC PDP-1 MANUAL

2025 ONLINE EDITION

PiDP-1 construction





CONTENTS


Getting Started
Using a PDP-1
Some Useful Programs


Getting Started
1. Building the 2025 PiDP-1 replica

Please refer to the PiDP-1 Building Instructions & the extended PiDP-1 Rack Version Building Instructions.
2. Installing the PiDP-1 software Please refer to section 2 of the PiDP-1 Building Instructions.

But a bit more background will be useful. The PiDP-1 is designed to either use the $15 Raspberry Pi Zero 2W, or the more expensive Pi 5. This is a matter of preference, both work equally fine if you do not want your PiDP-1 to run as a 'normal Pi;, with a media server or whatever you use a Pi for. For concurrent use, you'd normally choose the extra horse power of the Pi 5.

  • If you use the Pi 5, we recommend you start with the GUI install. See below.
    You can always switch to the Web interface if you find you prefer that.
  • If you use a Pi Zero 2W, use a Pi OS set up to boot into the Linux command line, not the GUI desktop.
    You'll use the Web interface of the PiDP-1 software.
3. Using the PiDP-1
Important to understand before you continue:
The PiDP-1 will be running the PDP-1 'core' simulator. Then, there are separate simulators for all the major peripherals:
  • the Soroban typewriter, for keyboard input and typewriter console output
  • the Type 30 Display
  • the paper tape and paper punch devices
So although the PDP-1 simulator will always run on the PiDP-1, its peripherals can be accessed in three different ways.

1. Stand-alone PiDP-1: GUI interface


PiDP-1 construction
Use this if you start on a Pi 5. It is not suitable for a Pi Zero. The screen shot shows the Peripherals program full screen.

Hit F11, and you'll see that you are on the regular Pi desktop. Note that you can shift/resize the peripherals on screen, and save that as a new default. Important if you use a 7 inch HMDI monitor in the PiDP-1 Rack!

2. Headless PiDP-1: Web interface


PiDP-1 construction
Use this for easy connection to your PiDP-1 from your laptop. It is very similar to the GUI interface, but now using your laptop over wifi instead of the Pi's monitor/keyboard.
If your PiDP-1 has the name pdp1, then point the browser to
http://pdp1.local:8080

3. Custom setups: Peripheral Apps


PiDP-1 construction
Use this if, for instance, you want the Type 30 display to run full-screen on the Pi's monitor, and the Typewriter terminal plus paper tape visualiser on your laptop. Or the other way around. Mix and match for the ideal demo setup. These 'peripheral apps' can run on the Pi, on Linux, and Windows WSL2. They connect to the PDP-1 'core' over wifi.


The choice of user interface is largely a matter of preference. But if you use a Pi Zero 2W, which is not terribly powerful, you should not boot it into the desktop GUI. Boot it into the Linux command line instead. You can use the PiDP-1 headless and then, the Pi Zero 2W is a very nice brain for the PiDP-1!

Setting up your PiDP-1 starts with the install script, /opt/pidp1/install/install.sh. You need to run it at setup, but you can rerun it at any time to change things or update the software.

In daily use, you will use two other commands. They have desktop icon equivalents, but we'll describe the command-line commands here:

pdp1control commands


pdp1control is used to control the (simulated) PDP-1.

  • pdp1control start: start the PDP-1
  • pdp1control start x can be used if you are without the PiDP-1 hardware. x is the boot number you want to run.
  • pdp1control stop, pdp11control status or pdp1control stat rather do what you'd expect.
There are two configuration options:
  • pdp1control set gui, pdp11control set web or pdp1control set apps - switch between the gui setup (HMDI/keyboard on the Pi),the web server (http://pidp1.local:8080/) or the separate apps that can run on the Pi or elsewhere.
  • pdp1control panel pidp or pdp11control panel virtual - switch between the PiDP-1 hardware front panel or a virtual on-screen front panel.

pdp1 commands


pdp1 is a simple way to access/use the PDP-1 peripherals.

  • pdp1 soroban opens the Soroban used as the terminal
  • pdp1 ptp saves tape coming out of the paper tape punch
  • pdp1 ptr loads an existing tape into the paper tape reader
  • pdp1 type30 opens the Type 30 display. Resize, or F11 toggles full-screen. Close any other display simulator first.
  • pdp1 sim drops you into the PDP-1 simulator program, which you'll not normally need to do




Customising the GUI Peripheral layout


MORE FUNCTIONALITY TO BE ADDED SOON
The GUI peripheral display intends to be a distraction-free, minimalist view of the PDP-1 peripherals. Although you can use it as just a window on the Pi's desktop, it makes more sense to run it full screen.

PiDP-1 Rack users can add a 7 inch HDMI display behind the middle two speaker slots. And that is why the layout of the GUI peripheral display can be adjusted and saved. These are the commands to make the Type 30 and Paper Tape displays fit exactly behind your monitor and to keep them there:
  • Press F11 to switch between windows and fullscreen mode.
  • Press L to go into layout mode. Here you can rearrange the size/position of paper tapes and display tube. left mouse button moves, right button resizes. Cycling with tab and using arrow keys also works; use ctrl to resize and shift for more precise movement.
  • Create a new layout with = and cycle through layouts with space
  • Save the current configuration with S and re-read it with >R
  • The background can be set by editing the configuration, `pdp1_layout.txt` in the current directory.

Experiment with custom layouts. By saving a few of them, you can cycle between different small and full-screen layouts quite easily, to suit whatever the PDP-1 project at hand requires.
PiDP-1 construction Default, full screen...

But to give some ideas for custom layouts:
PiDP-1 construction ...Saved format: compact PiDP-1 construction ...Saved format #2, fits behind virtual PDP-1 panel and telnet console on a Linux laptop.


APPENDIX I: Understanding the PiDP-1 hard/software setup

This appendix goes into the inner workings of the PiDP-1 hard/software. That may be of use when you want to customise your setup. The software is written as separate modules that interconnect over network ports. So it is quite easy to customise or improve one of these modules.

Of course, it is always a good idea to have a general understanding of the software setup - which is the first section below.

Software - overview

Everything about the PiDP-1 lives in the /opt/pidp1 directory. The sources are part of the package, the install script compiles the programs in the src/ directory. All the executables are in the bin/ directory - note that most are symlinks to the actual compiled binaries in their src/ subdirectories. So if you recompile any source file, the PDP-1 simulator will immediately use the new version.

All PDP-1 paper tapes are stored in the tapes/ directory. They typically have .rim as their extension. You'll see .mac source code here as well, for completeness and for the curious. But feeding them into the paper tape reader will not do any good.

Boot options: the Sense switches One way to boot up the PiDP-1 is to use the 6 sense switches on the front panel. The idea is, you set an octal number on the sense switches before starting the simulator. A little config file then auto-mounts the desired paper tape in the reader, and can set some hardware configuration settings for the PDP-1. These config files are stored in the bootcfg/ directory. Their filename tells you what sense switch number they are linked to.
You can change, add or renumber the cfg files to your preference. There's not much special about them.

Games

Octal number binary switch pattern description
00000 000Blinky - a front panel hack
01000 001Spacewar! v4.8
02000 010Pong
03000 011---
04000 100Ironic Space Simulator
05000 101Spacewar! v2B.5
06000 110---
07000 111Dual-screen Spacewar! v4.1

Graphics demos

Octal number binary switch pattern description
00000 000Blinky - a front panel hack
10001 000Spacewar! v4.8
20010 000Pong
30011 000---
40100 000Ironic Space Simulator
50101 000Spacewar! v2B.5
60110 000---
70 111 000Dual-screen Spacewar! v4.1


Software

Octal number binary switch pattern description
00000 000Blinky - a front panel hack
01000 001Spacewar! v4.8
02000 010Pong
03000 011---
04000 100Ironic Space Simulator
05000 101Spacewar! v2B.5
06000 110---
07000 111Dual-screen Spacewar! v4.1
Software - panel driver, virtual & physical front panels
Software - GUI & command-line interface
Software - Web server interface
Hardware - theory of operation
Using a PDP-1 - either a 1959 or a 2025 version
Introduction to the Front Panel
Mounting & loading a paper tape
PDP-1 Learning by Doing - some interesting programs
Demo programs
Games
User Programsm Utilities & Languanges