The TOPS-20 operating system by Digital Equipment Corporation (DEC) is 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 competed with TOPS-10, ITS and WAITS—all of which were notable time-sharing systems for the PDP-10 during this timeframe. TOPS-20 is informally known as TWENEX.
TENEX
TOPS-20 was based upon the TENEX operating system, which had been created by Bolt Beranek and Newman 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.
PA1050 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.The 10/50 was the top-of-the-line KA machine at that time. The family continued with another KA, the 10/55, and then came KI, KL & KS.
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."
TOPS-20 capabilities 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) programsThe 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
The "EXEC" accomplished its work primarily using internal code, including calls via JSYS requesting services from "GALAXY" components (e.g. spoolers)
Command processor Rather advanced for its day were some TOPS-20-specific features: Command completion Dynamic help in the form of noise-words - typing DIR and then pressing the ESCape key resulted in DIRectory (of files) typing and pressing the key resulted in Information (about)
One could then type to find out what operands were permitted/required. Pressing displays status information. Available programming languages Some available programming languages were FORTRAN, COBOL, BASIC, ALGOL, CPL, APL, BLISS, and Pascal.
Commands The following list of commands are supported by the TOPS-20 Command Processor.
ACCESS ADVISE APPEND ARCHIVE ASSIGN ATTACH BACKSPACE BLANK BREAK BUILD CANCEL CLOSE COMPILE CONNECT CONTINUE COPY CREATE CREF CSAVE DAYTIME DDT DEASSIGN DEBUG DEFINE DELETE DEPOSIT DETACH DIRECTORY DISABLE DISCARD DISMOUNT EDIT ENABLE END-ACCESS EOF ERUN EXAMINE EXECUTE EXPUNGE FDIRECTORY FORK FREEZE GET HELP INFORMATION KEEP LOAD LOGIN LOGOUT MERGE MODIFY MOUNT PERUSE PLOT POP PRINT PUNCH PUSH RECEIVE REENTER REFUSE REMARK RENAME RESET RETRIEVE REWIND RUN SAVE SEND SET SET HOST SKIP START SUBMIT SYSTAT TAKE TALK TDIRECTORY TERMINAL TRANSLATE TYPE UNATTACH UNDELETE UNKEEP UNLOAD VDIRECTORY
JSYS features 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 PCL includes: 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)
TOPS-20 today Paul Allen maintained several publicly accessible historic computer systems before his death, including an XKL TOAD-2 running TOPS-20. Currently TOPS-20 is available in emulation with Mark Crispin's TOPS-20 Panda Distribution.
See also SDF Public Access Unix System.
See also Time-sharing system evolution
References
Further reading 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. "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."
External links 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.