
Hacking on the PDP1 Raspberry Pi Emulator - Computerphile
Audio Summary
AI Summary
The PDP-1, designed in 1959 and sold starting in 1960 by Digital Equipment Corporation (DEC), serves as a central starting point for exploring the history of interactive and personal computing. Approximately 50 units of this 18-bit machine, with originally four kilowords of memory, were built and sold. DEC, initially a startup, expanded its product line after the PDP-1. The subsequent model was the PDP-4, also an 18-bit machine, but not fully compatible with the PDP-1. This architecture was reused in later models like the PDP-7, famous for being the machine on which Unix was developed by Ken Thompson in 1969. The PDP-4 family, by flipping a bit from instruction to address, provided eight kilowords of memory but halved the instruction space, which is reflected in Unix's kernel and user memory allocation.
Following the PDP-1, DEC introduced the PDP-5, part of a smaller, stripped-down 12-bit family that included the PDP-8 and PDP-12. These machines were designed for process control and lab equipment, where the computer was an integral part of a larger system, interacting with the real world rather than solely crunching numbers like a mainframe. The PDP-8 became particularly popular, fostering a large fan community.
On the other end of the spectrum were the 36-bit PDP-6 and PDP-10 machines. These were intended for time-sharing, allowing multiple users simultaneously, and were also optimized for running Lisp, a popular programming language in early AI research circles, particularly around MIT. At this time, AI encompassed symbolic differentiation and chess programming, a form of "good old-fashioned AI" distinct from neural networks, which were not yet practical for the available computing power.
A crucial development was the PDP-11, introduced around 1969-1970. This 16-bit machine unified much of DEC's architecture, spanning from smaller models like the PDP-11/05 (similar to a PDP-8) to larger ones like the PDP-11/40 (which ran Unix) and the high-end PDP-11/70. While it didn't entirely replace the PDP-6 and PDP-10, it paved the way for the 32-bit VAX, a reinterpretation of the PDP-11, which became a flagship product. The PDP-11 and VAX are considered more "normal" computers from a modern perspective, featuring byte addressing, unlike the earlier word-addressed machines. Gordon Bell, the architect for most DEC machines except the PDP-1, viewed the 18-bit line as a mistake due to its incompatibility with the PDP-1 and the underappreciation of portable software at the time.
The PDP-1 itself had a prehistory, stemming from experimental one-off machines. The TX-0, an 18-bit machine, preceded the PDP-1. The TX-2, a larger 36-bit machine, is notable for hosting Sketchpad, Ivan Sutherland's pioneering CAD system. These machines trace back to the Project Whirlwind, specifically the Whirlwind I, which became operational around 1950. Originally intended for cockpit simulation, it evolved into a digital computer. Whirlwind I is also where core memory was invented and featured early modems and displays. Its successor, the AN/FSQ-7, part of the SAGE system, was a larger version of Whirlwind I deployed across the US for airspace monitoring, though it became obsolete with the advent of intercontinental missiles. This lineage highlights a history of interactive, controller-type, and personal computing.
The PDP-1's front panel displays almost all of the machine's internal state via lights, crucial for debugging. Key components include the program counter (address of the next instruction), memory address register (address of the memory word being accessed), and memory buffer (data read from or written to memory). The accumulator and in-out register are used by the programmer, with the in-out register also connecting to peripherals. The basic machine has 12-bit addressing for four kilowords of memory, extendable to 64 kilowords. Other panel features include run and cycle lights, a power switch, sense switches for user input, and program flags for program control or peripheral interaction. The instruction register uses five bits to encode instructions.
To illustrate interaction, the Minsky Circle algorithm is loaded into memory. This involves manually setting addresses and data using octal values and the front panel switches, a tedious process prone to errors. To streamline this, a debugger called DDT (Debugger Debugger Tool) is used. DDT is loaded via paper tape, and allows symbolic assembly and hexadecimal input for program entry, as well as examining memory contents.
Once the circle program is loaded, it can be executed from the front panel. The Minsky Circle algorithm, a discovery by Marvin Minsky, generates a stable circle by linking x and y coordinates, preventing the outward spiral that results from simple trigonometric approximations. Building on this, the Minsky-tron demo links three such circle oscillators, with their behavior controlled by front panel switches, producing dynamic and often chaotic visual patterns. Programs can be saved onto paper tape for later reloading, demonstrating the interactive and iterative nature of programming these early machines. The process involves punching a title, the program's words, and its starting location onto tape, then reading it back into the machine. While assemblers existed, direct manipulation via the front panel and interactive debuggers like DDT were common for programming and testing.