TOPS-20
| Industry | Computer hardware, software |
|---|---|
| Founded | November 7, 1957 in Massachusetts, United States |
| Founder | Ken Olsen, Harlan Anderson |
| Headquarters | Maynard, Massachusetts , United States |
| Products | PDP-10, DECSYSTEM-20, TOPS-20 operating system |
The TOPS-20 operating system, developed by Digital Equipment Corporation (DEC), is a proprietary platform designed for DEC's 36-bit mainframe computer architectures, notably the DEC PDP-10 and DECSYSTEM-20. Its origins trace back to the TENEX OS created by Bolt, Beranek and Newman (BBN), with DEC commencing commercial distribution in 1976.
Although it differs from the similarly titled TOPS-10, TOPS-20 incorporated an emulation layer called PA1050 to support the execution of most TOPS-10 programs. DEC provided only minimal maintenance updates to PA1050, prioritizing compatibility over feature equivalence.
Among PDP-10 time-sharing systems, TOPS-20 was a competitor to platforms such as TOPS-10, ITS, and WAITS. Within professional communities, it is colloquially referred to as TWENEX.
TENEX
The foundation of TOPS-20 lies in TENEX, an operating system initially developed by BBN for the PDP-10. With the release of DEC’s faster KI-10 model, TENEX was incompatible with this hardware. To resolve this issue, DEC acquired TENEX’s rights from BBN and embarked on a porting initiative. The resulting system incorporated minimal original TENEX code and was renamed TOPS-20, reflecting DEC’s strategic move to provide an advanced OS compatible with its newer machines.
PA1050
Certain elements within TOPS-20 simulated the TOPS-10 OS's Unimplemented User Operation (UUO) calls, which were necessary for running compilers and user applications not specifically designed for TOPS-20. This compatibility component, loaded into a user’s address space, was known as PA1050—where 'PA' denotes compatibility, '10' refers to DEC or PDP-10, and '50' signifies the PDP-10 Model 50. The 10/50 represented the highest-end KA model at that time, succeeded by models such as 10/55, KI, KL, and KS.
PA1050—sometimes called PAT—operated as unprivileged user-mode code that executed requested functions through JSYS system calls.
TOPS-20 capabilities
The strength of TOPS-20 resided in its access mechanisms:
- Command input via the EXEC.EXE command interpreter
- JSYS (Jump to System) calls invoked from MACro-language (.MAC) programs
The EXEC command processor primarily functioned by internally issuing JSYS calls and interacting with "GALAXY" components like spoolers to fulfill service requests.
Command processor
For its period, TOPS-20 offered sophisticated command-line features including:
- Command completion functionality
- Context-sensitive help triggered by noise words. For example, typing DIR followed by ESC would expand to "DIRectory," while typing I then ESC would yield "Information." Pressing displayed valid operands; revealed status details.
Commands
The TOPS-20 Command Processor provided an extensive range of commands:
- 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
- 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 Capabilities
The acronym JSYS means Jump to SYStem. Operands occasionally referenced memory locations, with TOPS-20 accommodating either 18-bit or 30-bit addressing. Certain system calls mandated specific address lengths, while others were compatible with both formats. Some calls interpreted 18-bit addresses as offsets within the active section.
Files were accessed by first obtaining a Job File Number (JFN) using the GTJFN JSYS, after which file operations like OPENF utilized that JFN to manage the file.
PCL (Programmable Command Language)
PCL (Programmable Command Language) is a programming language designed to operate within the TOPS-20 environment. Typically saved with a .PCL extension, PCL programs extend the functionality of the TOPS-20 EXEC by introducing new commands through the DECLARE statement. These compiled commands become seamlessly integrated into the EXEC shell, thereby expanding its capabilities.
Features of PCL
Among its features, PCL offers:[1]
- Control flow constructs including DO While/Until loops, CASE/SELECT branching, IF-THEN-ELSE conditionals, and GOTO statements
- String manipulation functions such as determining length, extracting substrings, and concatenation
- Access to system-level information like current date and time, file metadata, and device properties
TOPS-20 in the Present Day
Prior to his passing, Paul Allen preserved multiple historic computer systems accessible to enthusiasts, including an XKL TOAD-2 machine running TOPS-20.
See also SDF Public Access Unix System.
See also
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
- DIGITAL Computing Timeline
- Origins and Development of TOPS-20 – comprehensive historical overview.
- Panda TOPS-20 distribution
- SDF Public Access TWENEX
- SIMH Simulator – emulates PDP-10 hardware and runs 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.
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedPCLman