TOPS-20

{{Short description|Operating system by Digital Equipment Corporation}}

{{Infobox OS

| name = TOPS-20

| logo =

| screenshot = TOPS-20.png

| caption = login

| developer = Digital Equipment Corporation

| source_model =

| kernel_type =

| supported_platforms = PDP-10

| released = {{Start date and age|1976}}

| latest_release_version = 7.1

| latest_release_date = {{Start date and age|1988|06}}

| marketing_target = Mainframe computers

| programmed_in = Assembly language

| language = English

| updatemodel =

| package_manager =

| working_state = Discontinued

| ui = Command-line interface

| license = Proprietary

| preceded by = TENEX

| succeeded by =

| website =

| family = TENEX

}}

The TOPS-20 operating system by Digital Equipment Corporation (DEC) is a proprietary{{cite web|url=https://www.gnu.org/philosophy/stallman-kth.html|title=RMS lecture at KTH (Sweden)|date=30 October 1986|author=Richard Stallman}} 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).{{cite web

|url=https://livingcomputers.org/UI/UserDocs/TOPS-20-v7-1/2_TOPS-20_Commands_Reference_Manual.pdf

|title=TOPS-20 Command manual

|date=September 1985

|publisher=Digital Equipement Corporation}}

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.{{cite web|url=http://tenex.opost.com/hbook.html|title=Origins and Development of TOPS-20}} 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{{cite web

|url=https://dspace.mit.edu/bitstream/handle/1721.1/6165/AIM-161A.pdf

|title=ITS reference manual

}} and WAITS—all of which were notable time-sharing systems for the PDP-10 during this timeframe. TOPS-20 is informally known as TWENEX.{{cite web|url=http://www.catb.org/jargon/html/T/TWENEX.html|title=TWENEX|website=The Jargon File}}

TENEX

{{Main|TENEX (operating system)}}

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,{{cite web |url=http://www.abbreviations.com/term/223192 |title=What does UUO mean in Software?

|website=abbreviations.com}} 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. {{cite web |url=http://tenex.opost.com/hbook.html

|title=Origins and Development of TOPS-20 |author=Dan Murphy |date=1989}} 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{{cite web| url=http://www.columbia.edu/kermit/ftp/dec20/assembler-guide.txt |title= DECSYSTEM-20 Assembly Language Guide |date=3 July 1980 |website=The Kermit Project}}

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:

:*noise-words - typing DIR and then pressing the ESCape key resulted in

::::DIRectory (of files)

::typing {{keypress|I}} and pressing the {{keypress|Esc}} key resulted in

:::: Information (about)

One could then type {{keypress|?}} to find out what operands were permitted/required. Pressing {{keypress|Ctrl|T}} displays status information.

=Commands=

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

{{div col|colwidth=9em}}

  • 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

{{div col end}}

=JSYS features=

JSYS stands for Jump to SYStem.{{cite news |url=https://www.allacronyms.com/JSYS/Jump_to_System |title=JSYS means Jump to System |newspaper=All Acronyms}} 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.{{cite book

|title=TOPS-20 Programmable Command Language / User's Guide and Reference Manual

|publisher=Carnegie Mellon University Computation Center |year=1981}}{{cite web

|url=http://fileformats.archiveteam.org/wiki/Programmable_Command_Language

|title=Programmable Command Language

|website=fileformats.archiveteam.org

|date=March 11, 2016}}{{cite web

|url=http://reports-archive.adm.cs.cmu.edu/anon/scan/CMU-CS-88-139.pdf

|title=Programmable Command Languages for Window System

|author=R. J. Cohn |year=1988

|archive-url=https://web.archive.org/web/20030926230320/http://reports-archive.adm.cs.cmu.edu/anon/scan/CMU-CS-88-139.pdf

|archive-date=2003-09-26}}{{cite web

|url=http://www.math.utah.edu/~bowman/pcl.txt

|title=TOPS-20 Programmable Command Language

|author=Ray Scott

|date=12 January 1983

|archive-url=https://web.archive.org/web/20081007044359/http://www.math.utah.edu/~bowman/pcl.txt

|archive-date=2008-10-07}}

=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.

See also SDF Public Access Unix System.

See also

References

{{Reflist}}

Further reading

  • [http://tenex.opost.com/fjcc72/ 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.
  • "[http://tilt.twenex.org TOPS-20 User's Guide] {{Webarchive|url=https://web.archive.org/web/20140107050623/http://tilt.twenex.org/ |date=2014-01-07 }}." 1988.
  • "[http://www.columbia.edu/kermit/ftp/dec20/assembler-guide.txt DECSYSTEM-20 Assembly Language Guide]." Frank da Cruz and Chris Ryland, 1980.
  • "[http://gunkies.org/wiki/Running_TOPS-20_V4.1_under_SIMH Running TOPS-20 V4.1 under the SIMH Emulator]."