The PDP-1 was the first computer made by DEC - Digital Equipment Corporation, based on MIT's TX-0 and TX-2 experimental computers. Its history is told very well on Wikipedia. A team at the CHM has restored one PDP-1 to working order; and Angelo Papenhoff has written exact simulators in both Verilog and C - including the Type 30 display. Our replica is based on this simulator.
Three years ago, we started work on a replica, to complete the PiDP series (-8, -10, -11). Little did we know that this adorable puppy dinosaur would become our favourite of the whole range. The PDP-1 is a truly fun machine to work and play with - and so, this text turned out a bit less formal than the other machines' pages.

The PDP-1 was a first in many respects. But it is also simple enough to be quickly understandable to any 21st century computer user. It remains the original Hacker's machine - the word comes from the cult forming around the PDP-1 at MIT; their demo programs are still attractive eye candy thanks to the Type 30 display. Which was a converted radar display. Driving the electron beam over its phosphor, you can get very pretty graphics effects from only a little bit of simple programming. But some serious programs were also written, despite the minimal resources of the machine it spawned the first-ever text editors, programming languages like Lis and FORTRAN, and even the first interactive multi-user system software. Much of this has been preserved and brought to run again.

Exactly because of its simplicity, this is the machine we'd really want to learn assembly language on. Before you laugh, let us give an overview of the machine from three different perspectives. Forgive us for such frivolity with a historical machine.

Three Ways To See The One

The first games console

Is it a stretch to call a $100,000 computer from 1959 a games console? No. It is where the computer video game was invented: Spacewar! And it is where games controllers were first introduced. New games are still being written for the machine to this day.

The original democoder machine

The PDP-1 was tiny enough so that it could not do too many things. Elegant, mean and lean graphics demos were thus a natural application for it. And that's not a trivial thing; a lot of graphics algorithms were invented here. And the notion of interactive graphics.

A huge milestone in computer history

Many ideas were born on the One: the text editor, the interactive debugger. And timesharing: yes, this was first-ever multi-user system. And Arpanet's real-time monitor, pushing the first-ever online software updates, to Arpanet's routers.

So we'd like to describe the machine in these three steps, violating historical correctness but focusing on why we love the One. Of all the pre-home computer systems we played with over the years, this is the most fun. Look at it as the first games console, then as the first democoder platform, and then read about the Serious Work that was done on this historical computer. It deserves a second life as the 'original retrogaming/democoding computer'. Just a few dozen lines of surprisingly friendly assembly yielding pretty cool graphics on the radar tube, and we want to show you!

The first games console You would think it is a bit of a stretch to call a $100,000 computer from 1959 a games console. Because its compact front panel (and its spacewar games controllers, there's another historical first) were attached to the side of a row of four racks full of electronics, because it weighed 1200 pounds. Yet, it is not a stretch. Its main claim to fame was after all the spacewar video game, written by students and research assistants, and used everywhere as the ultimate demo of what the machine could do. It had a 1024*1024 converted radar display tube, plotting up to 20,000 X/Y points per second on the phosphor, fading away in about that time if the display was not redrawn the next second again.
The One has seen a revival in interest in the past decade, with new games still being written for the machine. And it is easy to see why, as steering the electron beam from point to point is a fun, algorithmic, way of doing computer graphics. The fading phosphor also gives a special, very atmospheric effect to the dozen or so graphics demo programs written for the machine.
So - were it not for the fact that the $1 integrated circuit was not invented yet, this machine would have been in every teenager's bedroom playing games. We are quite serious. Alas, it remained the privilege of a select few students and scientists to play with the One. Only 53 were ever made. But it did spark off the tremendous development in computer power. Digital Equipment Corporation would be the second-largest computer manufacturer 20 years later, employing 130,000 people at its peak. Alas - only to be crushed by the microprocessor revolution only a few years later.
https://youtu.be/yZPhj-CKH3Y
The original democoder machine Actually, the PDP-1 was tiny enough so that it could not do too many things. Elegant, mean and lean graphics demos were thus a natural application for it. And that's not a trivial contribution to computing; a lot of graphics algorithms were invented here. And to quite some extent, the whole notion of interactive graphics. It helped anourmously that the PDP-1 was one of the first (arguably, the first) interactive computers. Meant to be used with input from a keyboard, entering into a dialogue with its one single user. Not pumped with a stack of punch cards, running until the output was dumped on a line printer.
But the PDP-1 became the birthplace of democoding for two more reasons. The first was that DEC, historically close to MIT, was quite happy to put an early machine in the hands of MIT students. It ended up running a model railroad; someone invented the idea of a computer video game; people visually explored chaos and order emerging from math formulas. The second reason was that this was a machine that was actually designed to be fun to operate. Not only was it interactive, its instruction set was concise, easy to learn, and the software tools (editor, assembler) quickly emerged to make the life of a coder a good one. And so, the Hacker Ethos emerged here (*).

(*) The book Hackers by Stephen Levy (link to the free chapters) is a true must-read if you have not already done so. It gives a very atmospheric background story to the Origin Of Hackerdom.
A Milestone in Computer History Not just because it spawned the second-largest computer company within a few short years, and not just because the PDP range of computers drove computer evolution for the next 25 years. Also, because so many now-obvious ideas were born on the One itself. The idea of a text editor (teco). The idea of an interactive debugger (ddt). And, bizarrely given the tiny size of the machine: timesharing. In other words, letting multiple users run multiple programs interactively, behind their keyboards. It only worked because the attached drum storage was fast enough to swap the entire 4kW of memory to drum in 20 milliseconds. Through the work of many people, with honourable mention of Al Kossow first, tons of software and documentation has been preserved. Alas, not everything - the first text editor has been lost. But a high school student wrote a Lisp interpreter for the machine - along the way, coming up with the REPL concept too. The truly determined could write Fortran code as well, but assembly remained the preferred language for most. Helped by the nice instruction set, and the interactive debugger. A luxury that is hard to appreciate from today's point of view. Until you try to work without it first. The difference needs to be experienced...

We should mention one more Milestone in the Life of The One. Arpanet. Most written histories of the internet and its origin begin with the mainframes connected to it. But in fact, the software for the IMP Arpanet routers was written with a cross-compiler on a PDP-1. In only nine months. It says smething about the PDP-1: Eight years after it came out, outdated as it was, it performed this epic task of software development. Not only that, the PDP-1 was then usefully employed to send online updates to the IMP routers in the field (which was another first, remote software updates) and acted as the network's real-time monitor, checking for downtime and problems with the Arpanet routers.

So - yes. The first games console in history; the first democoding platform; and more than 12 years later a PDP-1 still manages the earliest incarnation of the internet. Adorable machines can do astonishing things if they're well coded for.

The One comes in many forms


DEC had trouble making up its mind on the appearance of the PDP-1.

It made a few 'console panels' that stood separate from the rack with its gubbins, but then decided to mount the panel on the side of the rack. We, as well, could not choose between making a rack-mounted replica, or a smaller stand-alone console. In the end, we decided to just make both versions.

Another choice for DEC - and then for us - was whether to opt for a blue or white colour scheme. The replicas all come with interchangeable panels. You can swap between the white and blue at any time as we believe such a hard decision should just be avoided.

Historical significance

The PDP-1, introduced by Digital Equipment Corporation in 1960, marked a turning point in computing. It was the first commercial computer designed for interactive use rather than batch processing, enabling real-time programming, debugging, and display output. The PDP-1 was the platform for several historic software “firsts”: Spacewar! (1962), one of the earliest digital video games; early text editors; interactive debuggers; and pioneering time-sharing experiments at MIT. Its relatively low cost and accessibility brought computing out of the exclusive realm of mainframes and into research labs and universities, directly influencing hacker culture and the development of personal computing. By demonstrating that computers could be used for creativity, interactivity, and individual exploration, the PDP-1 shaped the trajectory of modern computing far beyond its modest production run.

Hardware design

The PDP-1 used a simple 18-bit word architecture with a single accumulator and core memory, lacking all the complexity of modern CPUs. Programs normally ran directly on the hardware without an operating system, giving full control but demanding expertise. Its fast I/O channels and vector CRT display enabled real-time interaction, unlike the batch mainframes of the era.

The extreme simplicity made the computer extremely 'hackable'. The diagram gives an overview of pretty much everything in the system:

  • 4K words of 18-bit memory - although upgradable with paged memory to 64K

  • A CPU visible to the programmer as just an accumulator AC, an IO register (able to send and receive 18 bits to the outside world), and of course a Program Counter PC.
    The fascinating thing is, of course, to see that nothing more is actually needed to make a fully functional computer.

  • Three peripherals:
    • A typewriter for keyboard input and printed output
    • A paper tape reader to read data into the machine,
    • And a paper tape punch to store data.
More devices could be added, but generally were not. Truly useful was a rotating drum storage, that had the ability to swap whole 4K pages in & out in the time of only a single instruction. That, and an interface to add multiple typewriters, led to the first-ever interactive multi-user systems, and the emergence of rudimentary operating systems.

Amusingly, the PDP-1's most influential peripheral is not shown in the diagram: the Type 30 graphics display. Built from a converted radar tube, it took bits straight out of the IO register as X/Y coordinates. A simpler graphics subsystem could not be imagined. Still, the PDP-1 could plot 20K dots per second. The downside being, they had to be replotted a few times per second as there was no bitmap memory: the electron beam briefly hit the phosphor, and even with a slow-phosphor radar tube the dot would fade quickly if not redrawn every half second or so.

The instruction set was equally minimalistic - but very clever in eking out the maximum of features from what was possible with just 2700 transistors (even a 6502 had 3500 - an 8086 took 26000). In the 18-bit accumulator, 5 bits encoded the instruction number, 1 bit was used to indicate indirect addressing, and the remaining 12 bits could hold a memory address to be used by the instruction.
Of course, if an instruction has to be encoded in 5 bits, you can't have more than 32 different instructions. In fact, the PDP-1 kept it to 27. But some instructions that did not need to encode a memory address were like Swiss Army knives - their 12 free bits could trigger flip-flops in the machine to drive special many actions. Clear the AC, clear the IO, each of these things only needs one bit - and can thus be packed in one Swiss Army knive instruction together.

Still, 27 instructions can be condensed on a small cheat sheet and are easily remembered with just that at hand. It made assembly-language programming very, very easy to start with. But the price for that of course was that you needed to be truly ingenious to craft a more complex program within those confines. Even then - with only 27 instructions to know, the 'poetry' of PDP-1 algorithms is very easy to read. That is part of the joy of studying the PDP-1: its programs read like easy-to-understand logic poems'. We did apologise for the informal tone of this page, right?

    That's the entire computer! You need to know no more than this to read assembly code.

Interesting software

Studying historical is fun, to some extent. It becomes much more fun if A) it is fun to program for the machine (check!), and B) there is some good software to play with.
In terms of good software, the PDP-1 is going as far back as you can go in history with saying 'check' to point B as well. In fact, an amazingly broad range of software has been preserved, both as source code to read (which is easy with only 27 instructions to know) and as runnable binaries to play with. They fall into roughly three categories:
  • User programs
  • Games
  • Graphics demos
For user programs, a neat toolchain has been preserved of text editor (ET), macro assembler (MACRO) and debugger (DDT, actually the first debugger ever). In terms of programming simplicity, look at this program - 8 assembly instructions is all that it take to draw a circle on the Type 30 tube. We have a dedicated page to go into a
hands-on PDP-1 programming session here (link).
But equally, you can program in Lisp or FORTRAN - the stories of how these compilers were written is a story in and of itself. Lisp was ported by a genius high school kid, Peter Deutsch. Who invented the REPL of Python fame along the way.

go,         lac x
lup,        cma
		sar 4s
		add y, dac y, lio y
		sar 4s
		add x, dac x
		dpy
		jmp lup
						
    We throw in an image of the PDP-1 Blinkenlights - it's operating the front panel that makes coding the PDP-1 fun.


For games, everyone knows about spacewar being the first-ever computer video game. As it turns out, it is very playable with the game controllers that every PDP-1 should have attached. The physics of gravity, thrusters to drive you closer to your opponent whilst not getting sucked into the sun: the game dynamics are still good. In terms of games programming, we mention Pong. The real Pong from Al Alcorn came about because he knew spacewar, as he says. But Pong is a later invention, and actually is all electronics, no computer. So the backport of Pong to a computer that could have run it 10 years earlier is a delicious retrogaming example. There are more games though - a dual-display version of spacewar is the first ever multiplayer FPS, in fact.

And in terms of democoding, that tradition starts with the PDP-1. Not quite sure what to do with a computer plus display, lots of early demos were written. A slow-phosphor radar tube hooked up to a computer that drives its electron beam is a nice change from hacking bitmap memory. We'll just show you some to close this section.
x
x
x
x

Why not try it out? PDP-1 coding on your laptop or Raspberry Pi

Of course, we hope we have whetted your appetite for a PDP-1 test drive. You can install and run a virtual PDP-1 on your Linux laptop or a Raspberry Pi from our github (link). No further hardware required, although if you want you can use our hardware replica with the exact same software. Just go through the PiDP-1 manual (link) for install and use instructions.

Tweets

Photos


Web-Stat traffic analysis