TOPS-20

Summary

The TOPS-20 operating system by Digital Equipment Corporation (DEC) is a proprietary[1] 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).[2]

TOPS-20
login
DeveloperDigital Equipment Corporation
Written inAssembly language
OS familyTENEX
Working stateDiscontinued
Initial release1976; 48 years ago (1976)
Latest release7.1 / June 1988; 35 years ago (1988-06)
Marketing targetMainframe computers
Available inEnglish
PlatformsPDP-10
Default
user interface
Command-line interface
LicenseProprietary
Preceded byTENEX

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.[3] 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[4] and WAITS—all of which were notable time-sharing systems for the PDP-10 during this timeframe. TOPS-20 is informally known as TWENEX.[5]

TENEX edit

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 edit

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,[6] 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.[7]

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."[7]

TOPS-20 capabilities edit

The major ways to get at TOPS-20 capabilities, and what made TOPS-20 important, were

  • Commands entered via the command processor, EXEC.EXE[2]
  • JSYS (Jump to System) calls from MACro-language (.MAC) programs[8][9]

The "EXEC" accomplished its work primarily using

  • internal code, including calls via JSYS
  • requesting services from "GALAXY" components (e.g. spoolers)

Command processor edit

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. Pressing Ctrl-T displays status information.

Commands edit

The following list of commands are supported by the TOPS-20 Command Processor.[2]

  • 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
  • R
  • 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 edit

JSYS stands for Jump to SYStem.[10] 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."[2]

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) edit

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.[11][12][13][14]

PCL language features edit

PCL includes:[11]

  • 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 edit

Paul Allen maintained several publicly accessible historic computer systems before his death, including an XKL TOAD-2 running TOPS-20.

See also SDF Public Access Unix System.

See also edit

References edit

  1. ^ Richard Stallman (30 October 1986). "RMS lecture at KTH (Sweden)".
  2. ^ a b c d "TOPS-20 Command manual" (PDF). Digital Equipement Corporation. September 1985.
  3. ^ a b "Origins and Development of TOPS-20".
  4. ^ "ITS reference manual" (PDF).
  5. ^ "TWENEX". The Jargon File.
  6. ^ "What does UUO mean in Software?". abbreviations.com.
  7. ^ a b 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.
  8. ^ 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
  9. ^ "DECSYSTEM-20 Assembly Language Guide". The Kermit Project. 3 July 1980.
  10. ^ "JSYS means Jump to System". allacronyms.com.
  11. ^ a b TOPS-20 Programmable Command Language / User's Guide and Reference Manual. Carnegie Mellon University Computation Center. 1981.
  12. ^ "Programmable Command Language". fileformats.archiveteam.org. March 11, 2016.
  13. ^ R. J. Cohn (1988). "Programmable Command Languages for Window System" (PDF). Archived from the original (PDF) on 2003-09-26.
  14. ^ Ray Scott (12 January 1983). "TOPS-20 Programmable Command Language". Archived from the original on 2008-10-07.

Further reading edit

  • 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 Archived 2014-01-07 at the Wayback Machine." 1988.
  • "DECSYSTEM-20 Assembly Language Guide." Frank da Cruz and Chris Ryland, 1980.
  • "Running TOPS-20 V4.1 under the SIMH Emulator."

External links edit

  • DIGITAL Computing Timeline
  • 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 Archived 2014-03-02 at the Wayback Machine.
  • PDP-10 Software Archive.
  • 36-bits Forever.
  • Request a login to Living Computers: Museum + Labs TOAD-2 running TOPS-20.