THE DEC PDP-1 MANUAL
2025 ONLINE EDITION

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
1. Stand-alone PiDP-1: GUI interface

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!
3. Custom setups: Peripheral Apps

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-1pdp1control 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
orpdp1control stat
rather do what you'd expect.
pdp1control set gui
,pdp11control set web
orpdp1control 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
orpdp11control 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 terminalpdp1 ptp
saves tape coming out of the paper tape punchpdp1 ptr
loads an existing tape into the paper tape readerpdp1 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 withtab
and usingarrow keys
also works; usectrl
to resize andshift
for more precise movement. - Create a new layout with
=
and cycle through layouts withspace
- 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.

But to give some ideas for custom layouts:


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 |
---|---|---|
00 | 000 000 | Blinky - a front panel hack |
01 | 000 001 | Spacewar! v4.8 |
02 | 000 010 | Pong |
03 | 000 011 | --- |
04 | 000 100 | Ironic Space Simulator |
05 | 000 101 | Spacewar! v2B.5 |
06 | 000 110 | --- |
07 | 000 111 | Dual-screen Spacewar! v4.1 |
Graphics demos
Octal number | binary switch pattern | description |
---|---|---|
00 | 000 000 | Blinky - a front panel hack |
10 | 001 000 | Spacewar! v4.8 |
20 | 010 000 | Pong |
30 | 011 000 | --- |
40 | 100 000 | Ironic Space Simulator |
50 | 101 000 | Spacewar! v2B.5 |
60 | 110 000 | --- |
70 | 111 000 | Dual-screen Spacewar! v4.1 |
Software
Octal number | binary switch pattern | description |
---|---|---|
00 | 000 000 | Blinky - a front panel hack |
01 | 000 001 | Spacewar! v4.8 |
02 | 000 010 | Pong |
03 | 000 011 | --- |
04 | 000 100 | Ironic Space Simulator |
05 | 000 101 | Spacewar! v2B.5 |
06 | 000 110 | --- |
07 | 000 111 | Dual-screen Spacewar! v4.1 |