Brief History of PDP Computers
entropicthoughts.comA lot of mistakes in this article, although it's well-intentioned.
There is a direct lineage from the PDP-1 to the PDP-4, and the 18-bit lineage ends with the PDP-15 (missing).
The dual-mode PDP-12 (PDP-8 + LINC) is missing from the 12-bit lineage.
The VAX (VAX-11 initially) was an offspring of the PDP-11 and the VAX-11 could natively run PDP-11 user-mode code. DEC then tried to use the VAX to unify both the 10 and 11 markets.
The PDP-11 and VAX software heritage lives on mostly in C and UNIX (NetBSD being the closest relative), and in VMS / NT. The PDP-10 heritage lives on mostly in Emacs.
"However, even its most powerful configuration wasn’t powerful enough to attract many pdp-10 users." They didn’t serve the same markets.
The PDP-10 was a time-sharing system that shone more for LISP than FORTRAN. For heavy number crunching and matmuls (the FORTRAN playground), 16-bit PDP-11s were usually used, with an auxiliary array processor such as the AP-120B or the CSPI MiniMAP. Those array processors could deliver more than 10 MFLOPS back then, when a minicomputer with a 50-100 KFLOPS FPU was already considered fast (FPUs were an expensive option back then).
Not very familiar with PDP history, but PDP-12 missing also caught my attention.
Regarding later heritage, to my understanding, several developers of the VMS kernel moved on to work on the Windows NT kernel. Whether it's really only coincidence that every letter of the acronym got shifted by one?
The first few versions of Windows NT had a very strong API resemblance with VMS, which is why Microsoft settled to pay to DEC a 9-digit $ amount, to avoid a legal battle. Though eventually that deal was less advantageous for DEC than it appeared from the amount of money, because it included the support of Windows NT for DEC computers.
The parts of the initial Windows NT API that did not resemble VMS looked liked cleaned-up versions of the UNIX API, e.g. the functions for handling file and device I/O.
The central role of asynchronous I/O in Windows NT was inherited from VMS, which in turn had inherited it from the RSX-11M operating system for PDP-11 computers (Dave Cutler had a major role in the development of all these 3 operating systems).
Whether VMS => WNT is a joke like IBM => HAL, is anyone's guess. A more certain thing is that IBM was named such as to be a hyperbolic substitute of the name of its main competitor, NCR (National => International, Cash Register => Business Machines)
> it wasn’t called a computer then, because the word “computer” back then meant big mainframe systems that ran batch calculations
PDP being a minicomputer (at the time), it could do that too and cheaper. What I heard the reason for this was to circumvent procurement restrictions. The word "computer" meant a high level of scrutiny, but obviously a "Programmable Data Processor" isn't a computer because it doesn't have the word "computer" in it (duh). So just a sales / marketing trick.The term "minicomputer" was first used in the marketing of PDP-8, but not immediately after its launch from 1965.
The use of "minicomputer" became widespread only in 1969, when it was explicitly derived from the word "miniskirt", which had become fashionable not long before that.
Quotation from "Electronic Design News", in July 1969:
“Design isn’t what it used to be. Today’s designer has available a ready-made solution to major problems — a minicomputer. Like the miniskirt, the small general-purpose computer presents the same basic commodity in a more appealing way.”
During the seventies, there was a classification of computers into mainframes like IBM System/370, supercomputers like Cray-1 and minicomputers like PDP-11.
Then in the second half of the seventies, "microcomputers" were added as the lowest tier.
I would have thought the vax owed more to the pdp-11 culture than the pdp-10. If you don’t want to move the line add a second one. Berkeley Unix really helped things network and hack and that came from the 11 onto the vax.
That's what I think too. The VAX is a lot more like the PDP-11 than the PDP-10. Hard core 36-bit PDP-10 programmers (like DIGEX, who I quoted in response to Walter's comment) were dismissive of and looked down on the 32 bit VAX.
Doug Humphrey's nickname was DIGEX, and he had a PDP-10 in his living room in Westchester Tower Apartments that he acquired from a loading dock at the University of Maryland. It was challenging to haul up in the elevator! It had two power cords, and two of us had to plug them in at the same time, into outlets on different circuits, so it got both hot legs.
He started one of the first ISPs by that name, which was later acquired by Worldcom:
https://en.wikipedia.org/wiki/Digex
The Digex Video! - Part 1:
https://www.youtube.com/watch?v=IsgROO4MIvc
DEF CON 12 - Doug Mohney, DIGEX At the Dawn of the Commercial Internet:
https://www.youtube.com/watch?v=uxMq-x9rlJM
The article also didn't mention the PDP-15, which was the fifth and last 18 bit DEC machine of the PDP-1 => 4 => 7 => 9 => 15 lineage.
That's right.
A lot of features of VAX and VMS are clearly inherited directly from PDP-11 and RSX-11M.
The main resemblances between VAX and PDP-10 are just that VAX is bigger and more powerful than PDP-11 and it is big enough and fast enough to be an upgrade even for PDP-10 not only from PDP-11.
Nonetheless there is something that VAX has inherited from PDP-10, but not really from the base DEC PDP-10 but from the enhancements that the users of PDP-10 had done to it.
The company BBN (Bolt Beranek and Newman Inc.) had made since 1970 a so-called "BBN Pager" for PDP-10, which was a hardware extension that added a paged memory management unit to PDP-10. They also designed the TENEX operating system for the PDP-10 extended with the BBN Pager.
The TENEX operating system is the origin of several very important innovations, like the memory-mapped files, which were later brought to UNIX by 4.2BSD, through SunOS 4.0 and 4.3BSD-Reno. Several of the earliest implementations of some Internet protocols, like Telnet and FTP, were done on computers running TENEX (i.e. extended PDP-10s). Implementing Telnet required the concept of pseudo-terminal, which was also imported in 4.2BSD and later the use of pseudo-terminals was expanded in various UNIX variants, to applications like terminal emulators in GUI desktops.
The paged memory management from which VAX got its name (Virtual Address Extension) comes directly from the BBN Pager extension of PDP-10.
I learned how to program on a PDP-10. Lots of great memories.
"If you're not playing with 36 bits, you're not playing with a full DEC!" -Doug Humphrey (DIGEX) tormenting VAX weenies at DECUS
To round out the timeline I'd include the TX-0, first computer based on transistors, and essentially the experimental prototype/proof of concept of what became the PDP-1. https://en.wikipedia.org/wiki/TX-0
then on the other end of the timeline, the DECSYSTEM-20 which wasn't any longer called PDP but it was simply an upgraded PDP-10. https://en.wikipedia.org/wiki/DECSYSTEM-20
The DEC 20 I was familiar with was a PDP-10 with a PDP-11 as a frontend (i/o) processor. I recall one of the cookie messages was "Help I'm trapped in a PDP-11"
I just made a PDP-7 and Type 340 vector graphics display emulator that runs in the web browser, based on SIMH, in order to reincarnate and run 128 pages of PDP-7 assembly language source code listings of a CAD system called PIXIE written at Cambridge by Heinz Lemke.
It also boots PDP-7 UNIX, the one this article is about. Log in as ken, password ken:
https://hyperties.org/cabinet/unix/
Same cabinet runs DECUS DUEL (the spacewar), DEC's light pen test, a lunar lander, and guess-the-number, besides PIXIE and the Forth below.
Here's a music video I cut from the 1969 films of that system running on the PDP-7 and Titan at Cambridge. PIXIE has the first known radial menus:
https://www.youtube.com/watch?v=jDrqR9XssJI
Cambridge librarian David Chapman digitized the uncut films from the Cambridge University Library:
https://www.youtube.com/watch?v=j9R63T2xGCA
https://www.youtube.com/watch?v=lCrl5QmQ9aA
The listing the emulator runs was assembled 12 February 1972. I wanted to look and feel first hand how the radial menus work, so here's that code running in the browser:
https://hyperties.org/cabinet/symelec/
Here's the PDP-7 assembly source code I recovered. The page runs the image it assembles to:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
I asked Mitch Bradley, who is the Forth guru who wrote OpenFirmware, if there was a Forth system for the PDP-7, so in one day he and Claude created one, including a Turtle Graphics library for the Type 340 vector graphics display! It turns out that the PDP-7 instruction set is perfect for Forth, and its inner interpreter loop is only three instructions.
Mitch Bradley's PDP-7 Forth:
https://github.com/MitchBradley/pdp7forth
How Mitch's Forth works, and my enhancements (full names, CREATE DOES>, PIXIE rings):
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Video demo of PIXIE and FORTH on the PDP-7 Cabinet Emulator with the Type 340 Vector Graphics Display:
https://www.youtube.com/watch?v=lo8kdY-5i6c
It's easy to make virtual real and fictional PDP-7 devices that, like the actual Type 340 vector graphics display, plug in custom IOT instructions and even perform DMA, like a Turing Machine co-processor, the Ultimate Machine (Minsky's design, which Claude Shannon built, that just turns itself off), and a Data Hand (like VPL's Data Glove) that tracks your hand with the webcam:
Turing Machine (adds IOT instructions and uses DMA to run TM programs out of 18 bit core memory, which it animates with Forth turtle graphics and Type 340 display character generator):
https://hyperties.org/cabinet/turing/
Forth Turing Machine driver and renderer:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Ultimate Machine (adds IOT instructions to control and monitor device that turns itself off, and animate it with Forth turtle graphics):
https://hyperties.org/cabinet/ultimate/
Forth Ultimate Machine driver and renderer:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Minsky and Shannon's Ultimate Machine (sometimes called Useless, but Marvin considered it Ultimately useful):
https://en.wikipedia.org/wiki/Useless_machine
Data Hand (adds IOT instructions to read hand position, orientation, and pose, and draws hand with Forth turtle graphics):
https://hyperties.org/cabinet/hand/
Forth Data Hand driver and renderer:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Ultimate Machine + Data Hand = Ultimate Hand (combines the above devices into an interactive Ultimate Machine that lets you turn it off with your own hand, animated with Forth turtle graphics):
https://hyperties.org/cabinet/ultimate-hand/
Forth Ultimate Hand demo putting it all together:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
The Type 340 was a real PDP-7 device. Shannon's box was a real box, and the DataGlove was a real glove, but neither was a PDP-7 peripheral. These are virtual devices that plug in the way a real one did: their own IOT instructions, and DMA.
Here's the manifesto about the emulator design:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
>We control the horizontal. We control the vertical. The machine in the page is ours, all of it at once: every register, every word of core, every device, and the host around them. Nothing here is a black box we have to squint at through a keyhole. So when something would be better, we make it better, from whichever side is closest. The 1960s machine stays honest. Everything around it is ours to invent.
Cabinet Design:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
>The rule throughout: instance first. Hardwire what SYMELEC needs, comment where the abstraction would go, generate it lazily when a second instance demands it. Work backwards from the software you want to run.
Cabinet README:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
>An emulator: a stand-in for a cabinet, so the original program can run. PDP-7 is the first plug-in instruction set, for PIXIE. Type 340 on a canvas, light pen as a hit-test.
Holy slop dump. I miss when humans did cool things.
Heinz Lemke, who wrote the PDP-7 code between 1967 and 1972, and with Neil Wiseman and John Hiles published "PIXIE: A New Approach to Graphical Man-Machine Communication" in 1969, is still doing cool things, like actively running the Computer Assisted Radiology and Surgery conference that he founded, and diligently working as Editor-in-Chief of the International Journal of Computer Assisted Radiology and Surgery:
https://cars-int.org/editorial-board/
I found the reference to his 1969 PIXIE paper, which describes his radial menus, in December 1986. His pioneering work inspired me over many decades to publish papers, free open source code, and develop pie menus for X10, NeWS, X11, TCL/Tk, ActiveX, JavaScript, SimCity, and The Sims.
I have been actively tracking down his PIXIE papers, the films, and the listing since May 2008, to tell his story and give him credit while he is still alive and active, and to see and feel first hand how his radial menus worked with a light pen.
I asked Cambridge University Library to help me find the films. David Chapman tracked them down, had them digitized, and the library published them in July 2019, and I made a music video from them in March 2020. I asked Heinz if he had any code listings or other resources. He had kept the listing, and sent me the scan in July 2026.
Please explain and justify which specific objections you have to using AI to OCR and correct the scans of handwritten notes and 128 pages of line printer listings, and implementing an emulator that runs that code in a web browser? Can you suggest a better approach, please?
It simply would not have been possible to do in this time frame at such a low cost without AI, which only just recently enabled a quest I've been on for 40 years since 1986.
I am doing it all on my own time, paying for it all out of my own pocket, while Heinz is still around to help by sending scans of his listings, papers and handwritten notes, generously answering my questions, and patiently explaining the history and details of his work.
PIXIE System Analysis -- Heinz Lemke's handwritten scanned notes and AI assisted transcript:
https://github.com/SimHacker/WillWrightShowForFood/tree/main...
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
How do you suggest I should have done anything differently? Are you volunteering your own time to help out with this project without using AI?
If you want to do cool things without AI, I could certainly use your help manually proofreading the transcript of his handwritten notes, carefully looking at these 128 scanned pages of line printer listings from 1972, meticulously cross checking the octal machine code against the PDP-7 assembly language source, and thoroughly testing and debugging the code in the emulator, or on a real PDP-7 if you are lucky enough to have access to one. The scans, the assembly, and the octal are all here:
https://github.com/SimHacker/WillWrightShowForFood/tree/main...
The version the browser emulator runs is here:
https://github.com/SimHacker/WillWrightShowForFood/tree/main...
Please submit PRs for any errors you find, and I will appreciate and credit your constructive criticism and contributions more than your banal unhelpful low-effort drive-by knee-jerk anti-ai trolling.
Or do you believe I just should not have done any of this research and work at all, nor published it as free open source code for other people and museums to use, nor shared it on Hacker News?