A brief tour of the PDP-11, the most influential minicomputer of all time

The history of computing could be divided into three eras: mainframes, mini computers, and microcomputers. The bridge between the first mainframes and the ubiquitous micros of today was provided by mini computers. The most influential and successful mini computer of all time is thePDP-11.

mini computers were used in a variety of applications They worked as instrument controllers, communications controllers, large system pre-processors, desk calculators, and real-time data acquisition handlers. They paved the way for significant hardware architecture advances and contributed greatly to modern operating systems, programming languages, and interactive computing as we know them today.

In today's world of computing, it's hard to distinguish between the chips underneath the operating system. There was a time when differences in the architecture of the processor were a big deal. Why that was the case is explained by thePDP-11.

When most computing was done on expensive GE, CDC, and IBM mainframes, thePDP-11 was introduced in 1970. There were no computers. Most of the programming was done by a few companies. Programs were run in non-interactive batches on punched cards.

The firstPDP-11 was modest, but it paved the way for an invasion of mini computers that would make a new generation of computers more readily available. The C programming language was created by thePDP-11. The next generation of computer architectures would be influenced by it. More than 600,000PDP-11s were sold during the 22-year lifespan, which is unheard of by today's standards.

The early models were not very impressive. The firstPDP-11 11/20 cost $20,000, but it only shipped with 4KB of RAM. It had a teletype printer console that printed 10 characters per 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- 888-609- It had an amazing 16-bit architecture, eight registers, 65KB of address space, a 1.25 MHz cycle time, and a flexible UNIBUS hardware bus that would support future hardware peripherals. Digital Equipment Corporation was happy with this combination.

Real-time hardware control, factory automation, and data processing were included in the initial application. The Nike missile defense system, air traffic control, nuclear power plants, Navy pilot training systems, and telecommunications were some of the uses of thePDP-11. We take word processing and data processing for granted.

The device's assembly programming is influenced by thePDP-11.

Assembler programming basics

Before high-level languages were invented, programming was done in assembly language. The environment of the early days of computing made assembly language programming perfect.

The machine language that can be run directly by the computer is called assembly language. You are directly manipulating aspects of the computer's architecture. Assembly programming moves your data by using hardware and memory. The design of the mini computer made programming it different. Every instruction made sense.

A 16-bit address space meant that each register could address up to 64KB of RAM, with the top 4K reserved for memory-mapped input and output. More on this in a bit, but a total of 128KB of RAM could be addressed using register segments. The clever use of early programming techniques allowed the systems to still be productive even with only 4KB of RAM.

An assembly language program

It is easy to understand this concept through an example of a simple assembly language program. .text defines the start of the code segment. There are labels. Assembly programming uses labels. Any text after a comment is a comment.

Keywords Translation
.globl _main Export label _main as an entry point for the operating system to use
.text Start of instruction segment where read-only code lives
_main: MOV VAL1, R0 Copy the word value at memory location VAL1 into register 0
ADD $10, R0 Add 10 to the value in register 0
MOV R0, VAL1 Copy the value in register 0 to the memory location VAL1
_.data Start of data segment where read/writable data lives
VAL1: .word $100 Reserve 2 bytes of storage to hold Val1, initialized to 100

Although numerical values can be used for memory addresses, the use of labels instead of hard-coded addresses makes it easier to program and make the code relocatable in memory. This allows the operating system to run the code in a way that is fast and efficient.

The data is put in a memory segment that is readable and writable. The memory segment is only read to prevent programming errors from corrupting the program. This separation of instructions from data on thePDP-11 is called split instruction and data, and it was considered an innovation at the time. The X86 microcomputers made extensive use of segments.