Digital Equipment Corporation Tops-20 Operating System.


If you've been involved with computers for a while, you may have heard of a company called DEC (Digital Equipment Corporation). DEC sold a family of computers based on the PDP-10 architecture in the 70s and 80s. These were 36-bit computers, created before the PDP-11 (16-bit) and VAX-11 (32-bit). The PDP-10 architecture is extremely orthogonal and its instruction set (assembly language) is very rich.


DEC sold a DEC-10 system running TOPS-10 and a DEC-20 system running TOPS-20. The hardware was mostly the same, the high end versions all based on the KL10 micro-coded CPU. Very few, if any, of these machines are still running because they were very expensive to operate (maintenance, air-conditioning and power use) and most of the hardware has probably decayed in one form or another by now.  Several PDP-10 clones were made, notably the XKL TOAD-1 system, which runs TOPS-20. This architecture apparently lives still on in the form of the μToad soft-core processor from XKL. As far as I know, not much has been published about this design. Paul Allen runs both a TOPS-10 and a TOPS-20 system, see the PDP Planet museum


Besides the personal fond memories of TOPS-20, it also had a deep influence on current Operating Systems, be it Unix or Windows. Rumor has it that Dennis Ritchie from Bell Labs requested a 36-bit PDP-10 machine for his research but was given a cheaper 16-bit PDP-11 in stead, for which he created the Unix Operating System.


Looking back, there were 2 problems that may have caused the demise of the PDP-10 family and TOPS-20:



Even though the PDP-10 had a 36-bit architecture, memory addressing was originally limited to half-words, 18-bits. 256K * 36 bits is still a huge chunk of memory (certainly in the 70s) but it was not enough. Extended addressing was added but it was too cumbersome.


Tops-20 was completely written in Macro-20, the assembly language for the PDP-10 family, which made it non-portable.


The original PDP-10 hardware has nowadays been replaced by PDP-10 emulators, running on a PC. For TOPS-20 enthusiasts, the best emulator is called KLH10, written by Ken Harrenstien (now at google). It's an amazing piece of software, accurately reproducing not only the KL10 processor but also several of the complicated DEC I/O devices, including the dpni20 Network Interface Card. Unfortunately, the KLH10 emulator currently runs only on Unix systems (Ken ported it to many flavors of Unix, incl. Linux) but not on Windows. The main reason for this limitation seems to be the multi-process structure that Ken created to parallelize the I/O, using Shared Memory Techniques to communicate between the processes. I'm sure there are a lot of details involved but converting this technique to a multi-threaded Windows application should be possible, given enough time.


Using this KLH10 emulator, Mark Crispin created the Panda TOPS-20 distribution, another milestone. This distribution provides an easy way to run your own full-blown TOPS-20 system, including TELNET logins, at speeds many times the original DEC hardware. I also added the Panda Display Panel for the KLH10 emulator. This panel is available from Spare Time Gizmos. On the right is a video of the panel in action. The program being executed was written by Mark Crispin.

Here is part of the source code:



TLNE 1,777777


MOVE 2,1

CIRC 2,-^D18



IOR 1,3



HRRZ 2,1

MOVEI 1,30


MOVE 1,2



For more information, take a look at the TOPS-20 User's Manual.


An incredible thanks to Ken Harrenstien and Mark Crispin for this monumental achievement.


I find the KL10 architecture particularly fascinating because it is a micro-coded CPU and the micro-code source is available. I hope to post more information about the KL10 in the future. Studying the KL10 won't serve any practical purpose since the KLH10 program is essentially a replacement for the KL10 micro-code but academically it is a fascinating look at CPU design.


horizontal rule

Back Up Next