The 12-bit PDP-8 contained a single 12-bit accumulator (AC),
a 1-bit "Link" (L), and a 12-bit program counter (PC):
Later models (the /e, /f, /m & /a) added a 12-bit multiplier quotient (MQ) register.
The term “minicomputer” was not coined to mean miniature, it
was originally meant to mean minimal, which is a term that,
more than anything else, accurately describes the PDP-8.
Whereas today's machines group their binary digits (bits) into sets of four in a system called “hexadecimal”, the PDP-8, like most computers of its era, used “octal” notation, grouping its bits into sets of three. This meant that the PDP-8's 12-bit words were written as four octal digits ranging from 0 through 7.
The first 3 bits of the machine's 12-bit word (its first octal digit) is the operation code (OpCode). This equipped the machine with just eight basic instructions:
The six memory reference instructions (MRI):
The multi-purpose input/output instruction:
The multi-purpose “operate” instruction:
As you can see from the chart above, given a 12-bit machine with a 3-bit opcode, the six memory reference instructions (MRI) are left with only 9 bits (three octal digits) to use for specifying the effective address of the instruction. But 9 bits can take only 512 possible values, so there's no way to address even the original, smallest 4K words of the PDP-8's core memory. DEC's solution to this was a beautiful, clever, and efficient compromise:
The PDP-8 memory reference compromise:
The PDP-8's designers dedicated one of the machine's precious 9 memory reference bits to signify “indirection.” Indirection means that the location being addressed is not the target of the instruction, but rather the referenced location contains the address of the target. In other words, the addressed location contains a “pointer” to the instruction's target. Since PDP-8 words were 12-bits long, a 12-bit pointer could reference any word within the machine's 4K word memory. So even if an instruction could not directly point to the location it might want, it could indirectly point to a 12-bit word that could point to the target. (Therefore, the term “indirection”.)
The PDP-8's designers also gave up one more of the machine's precious 9 memory reference bits to signify whether the location referenced by the remaining 7 bits was on the “current page” or on “page zero.”
What's a page? After stealing 1 bit to signify indirection, and another for the current page or page zero, only 7 bits remained, and those 7 bits could only address any of 128 possible locations in memory. So this limitation automatically created the concept of a “page”:
4K words addressed in pages:
The address of any location within the 4K word (12-bit) address space where the machine was reading instructions could be thought of as being divided into two parts, a 5-bit page number and a 7-bit page offset. This meant that the machine was always executing instructions from some “current page” as determined by the uppermost 5 bits of current instruction's address. Therefore, if the Page bit in the MRI instruction was set to '1', the lower 7 bits of any memory reference instruction (MRI) would refer to a word within the same page as the instruction itself. And if the MRI instruction's Page bit was set to '0', the instruction's lower 7 bits would always refer to a word in the first page of the machine's memory, page zero.
This simple and economical solution was remarkably efficient. Data that needed to be accessed from anywhere within a program could be placed in the machine's first 128 words (page zero) of memory where any MRI instruction located anywhere could reference it. And data that was only being used locally could be placed somewhere within the same page as the referencing code. And if page zero were to fill-up with highly referenced data, a word in the current page could be used to point to another word anywhere through the use of indirection.
The PDP-8 succeeded like no other computer ever had
because everything about its design reflected
a carefully conceived minimalism.
People fell in love with the machine, and for me at age 16, it was love at first sight. Even today, after nearly 40 years of saturation exposure to computers and computer technology, for me there is something hauntingly right about what DEC had the engineering brilliance to create so many years ago. For that reason more than any other I have wanted to keep them around . . .
I still truly love these machines. There's something fundamentally minimal and perfect about the design of the PDP-8. As you'll see below and on the other pages here, I recently assembled three contemporary PDP-8 kits created by Bob Armstrong. Then I re-learned the delightful PDP-8 assembly language so that I could create some front panel “Toggle Toys” to give these new PDP-8's something fun to do.
Note that even an ancient PDP-8 can do useful work and
be a lot of fun today. It is not just a curio even in the
21st century. See the page “What a PDP-8 can do today”
to get a sense for all the fun you can have with a PDP-8.
I, like many others who are about my age and who have fond memories of their first encounters with classic DEC machines, have become a collector of classic DEC PDP-8 and PDP-11 computers and peripherals. My collection is continually growing. As of the end of 2009, I own several PDP-8/e's, PDP-8/l's, a PDP-8/m and a PDP-8/f as well as several PDP-11/05's and 11/35's along with some VAX-11's, various peripherals and plenty of original manuals and related documentation. While most people aren't lucky enough to own a real PDP-8 (and they are pretty large, noisy and power hungry) Bob's beautiful PDP-8 kits make owning an actual working PDP-8 possible! They are able to run the PDP-8's standard DEC operating system, OS/8 and all of its many languages, programs and utilities.
As an assembly language programmer, the PDP-11 and VAX-11 instruction sets are especially appealing since DEC's engineers deliberately designed those machines to be pleasant to program in assembly language. Unlike today's systems, where the assumption is that very little will be written by humans in the machine's assembly language, back then the machines were programmed in their native assembly language more often than not.
I cannot spare the time to play with them right now. But I want to rescue any machines I find today so that they don't wind up in someone's dumpster. What a tragedy that would be! And I do plan to spend many enjoyable years in the future refurbishing, restoring, and resurrecting them all — if I ever find the time to retire!
One morning in late 2008, while I was nostalgically Googling through the Internet's PSP-8 memorabilia, I stumbled upon Bob Armstrong's “SpareTimeGizmos” web site . . . and I was amazed!
Many years before, Bob had created a single board computer, the SBC6120, around a limited supply of Harris Semiconductor HD6120 chips. The HD6120 was a single CMOS chip implementation of the complete PDP-8. It was an entire PDP-8 on a chip! Bob had produced kits, not only to allow hobbyists to build complete working PDP-8 systems around this chip, but he went as far as to create a close copy of the original PDP-8's front panel with its lights and switches!
Bob Armstrong's SBC6120 & Front Panel (see mine here!)
At the time, no more kits were available, so I contacted Bob just to register my interest in the event that he might ever bring the kits back to life. I discovered that he was about to do just that! To make a long story short, I purchased and assembled — and had a lot of fun programming — three of Bob's kits.
NOTICE! Every previous production run of Bob's unique PDP-8 kit have always
sold out completely (and quickly). At the beginning of February 2010, after
sufficient interest in one last round of PDP-8 kits was confirmed, Bob Armstrong
placed the production orders for what will almost certainly be the last round of
availability there will ever be. Once they have sold-out, they will be gone forever.
If you are interested, there is no time to waste. See the "How YOU can own
your own" page for all the details. It is strictly first-come-first-served, so you
must immediately jump on board if you are interested!
See the links below to take a quick tour of my fall 2009
PDP-8 kit building and code writing adventure . . .
to learn how YOU can acquire & build
one of these complete PDP-8 systems for yourself !!!
Gibson Research Corporation is owned and operated by Steve Gibson. The contents
of this page are Copyright (c) 2016 Gibson Research Corporation. SpinRite, ShieldsUP,
NanoProbe, and any other indicated trademarks are registered trademarks of Gibson
|Last Edit: Jul 10, 2012 at 10:29 (1,753.75 days ago)||Viewed 120 times per day|