The TOPS-20 operating system by Digital Equipment Corporation (DEC) was a proprietary OS used on some of DEC's 36-bit mainframe computers. The Hardware Reference Manual was described as for "DECsystem-10/DECSYSTEM-20 Processor" (meaning the DEC PDP-10 and the DECSYSTEM-20).
|Developer||Digital Equipment Corporation|
|Written in||Assembly language|
|OS family||DEC OS family|
|Latest release||7.1 / June 1988|
|Default user interface||Command line interface|
TOPS-20 began in 1969 as the TENEX operating system of Bolt, Beranek and Newman (BBN) and shipped as a product by DEC starting in 1976. TOPS-20 is almost entirely unrelated to the similarly named TOPS-10, but it was shipped with the PA1050 TOPS-10 Monitor Calls emulation facility which allowed most, but not all, TOPS-10 executables to run unchanged. As a matter of policy, DEC did not update PA1050 to support later TOPS-10 additions except where required by DEC software.
TOPS-20 was based upon the TENEX operating system, which had been created by BBN Technologies for Digital's PDP-10 computer. After Digital started development of the KI-10 version of the PDP-10, an issue arose: by this point TENEX was the most popular customer-written PDP-10 operating systems, but it would not run on the new, faster KI-10s. To correct this problem, the DEC PDP-10 sales manager purchased the rights to TENEX from BBN and set up a project to port it to the new machine. In the end, very little of the original TENEX code remained, and Digital ultimately named the resulting operating system TOPS-20.
Some of what came with TOPS-20 was merely an emulation of the TOPS-10 Operating System's calls. These were known as UUO's, standing for Unimplemented User Operation, and were needed both for compilers, which were not 20-specific, to run, as well as user-programs written in these languages. The package that was mapped into a user's address space was named PA1050: PA as in PAT as in compatibility; 10 as in DEC or PDP 10; 50 as in a PDP 10 Model 50, 10/50, 1050. 
Sometimes PA1050 was referred to as PAT, a name that was a good fit to the fact that PA1050, "was simply unprivileged user-mode code" that "performed the requested action, using JSYS calls where necessary."
The major ways to get at TOPS-20 capabilities, and what made TOPS-20 important, were
- Commands entered via the command processor, EXEC.EXE
- JSYS (Jump to System) calls from MACro-language (.MAC) programs
The "EXEC" accomplished its work primarily using
- internal code, including calls via JSYS
- requesting services from "GALAXY" components (e.g. spoolers)
Rather advanced for its day were some TOPS-20-specific features:
- noise-words - typing DIR and then pressing the ESCape key resulted in
- DIRectory (of files)
- typing "I" and pressing the <ESC> key resulted in
- Information (about)
One could then type "?" to find out what operands were permitted/required.
- SET HOST
JSYS stands for Jump to SYStem. Operands were at times memory addresses. "TOPS-20 allows you to use 18-bit or 30-bit addresses. Some monitor calls require one kind, some the other; some calls accept either kind. Some monitor calls use only 18 bits to hold an address. These calls interpret 18-bit addresses as locations in the current section."
Internally, files were first identified, using a GTJFN (Get Job File Number) JSYS, and then that JFN number was used to open (OPENF) and manipulate the file's contents.
Paul Allen maintained several publicly accessible historic computer systems before his death, including an XKL TOAD-2 running TOPS-20. Request a login from Living Computers: Museum + Labs and try running TOPS-20 on a hardware emulated PDP-10.
- "TOPS-20 Command manual" (PDF).
- "Origins and Development of TOPS-20".
- "ITS reference manual" (PDF).
- The 10/50 was the top-of-the-line KA machine at that time. Dan Murphy (1989). "Origins and Development of TOPS-20". The family continued with another KA, the 10/55, and then came KI, KL & KS.
- The JSYS was the counterpart for the 20 of what was done by TOPS-10 on a "10" and thus the emulator for a DEC PDP-10 Model 50 was what PA1050 was emulating. The 10's system calls were known as UUO's
- Storage Organization and Management in TENEX. Daniel L. Murphy. AFIPS Proceedings, 1972 FJCC.
- Implementation of TENEX on the KI10. Daniel L. Murphy. TENEX Panel Session, NCC 1974.
- Origins and Development of TOPS-20. Daniel L. Murphy, 1989.
- "TOPS-20 User's Guide." 1988.
- "DECSYSTEM-20 Assembly Language Guide." Frank da Cruz and Chris Ryland, 1980.
- "Running TOPS-20 V4.1 under the SIMH Emulator."