|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|
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).
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.
PCL (Programmable Command Language)
PCL (Programmable Command Language) is a programming language that runs under TOPS-20. PCL source programs are, by default, stored with Filetype .PCL, and enable extending the TOPS-20 EXEC via a verb named DECLARE. Newly compiled commands then become functionally part of the EXEC.
PCL language features
- flow control: DO While/Until, CASE/SELECT, IF-THEN-ELSE, GOTO
- character string operations (length, substring, concatenation)
- access to system information (date/time, file attributes, device characteristics)
- Richard Stallman (30 October 1986). "RMS lecture at KTH (Sweden)".
- "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
- TOPS-20 Programmable Command Lanuage / User's Guide and Reference Manual. Carnegie Mellon University Computation Center. 1981.
- "Programmable Command Language". March 11, 2016.
- R. J. Cohn (1988). "Programmable Command Languages for Window System" (PDF).
- "TOPS-20 Programmable Command Language".
- 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."
- Origins and Development of TOPS-20 is an excellent longer history.
- Panda TOPS-20 distribution.
- SDF Public Access TWENEX.
- SIMH Simulator capable of simulating the PDP-10 and running TOPS-20.
- Manuals for DEC 36-bit computers.
- PDP-10 Software Archive.
- 36-bits Forever.
- Request a login to Living Computers: Museum + Labs TOAD-2 running TOPS-20.