# TOPS-10

TOPS-10 System (Timesharing / Total Operating System-10) is a discontinued operating system from Digital Equipment Corporation (DEC) for the PDP-10 (or DECsystem-10) mainframe computer family. Launched in 1967, TOPS-10 evolved from the earlier "Monitor" software for the PDP-6 and PDP-10 computers; this was renamed to TOPS-10 in 1970.

## Overview

TOPS-10 supported shared memory and allowed the development of one of the first true multiplayer computer games. The game, called DECWAR, was a text-oriented Star Trek-type game. Users at terminals typed in commands and fought each other in real time. TOPS-10 was also the home of the original Multi User Dungeon, MUD, the forerunner to today's MMORPGs.
Another groundbreaking application was called FORUM. This application was perhaps the first so-called CB Simulator that allowed users to converse with one another in what is now known as a chat room. This application showed the potential of multi-user communication and led to the development of CompuServe's chat application.
TOPS-10 had a very robust application programming interface (API) that used a mechanism called a UUO or Unimplemented User Operation. UUOs implemented operating system calls in a way that made them look like machine instructions. The Monitor Call API was very much ahead of its time, like most of the operating system, and made system programming on DECsystem-10s simple and powerful.
The TOPS-10 scheduler supported prioritized run queues, and appended a process onto a queue depending on its priority. The system also included User file and Device independence.

### Commands

The following list of commands are supported by TOPS-10.
* ASSIGN
* ATTACH
* BACKSPACE
* BACKUP
* CCONTINUE
* COMPILE
* CONTINUE
* COPY
* CORE
* CPUNCH
* CREATE
* CREDIR
* CREF
* CSTART
* D(eposit)
* DAYTIME
* DCORE
* DDT
* DEASSIGN
* DEBUG
* DELETE
* DETACH
* DIRECTORY
* DISABLE
* DISMOUNT
* DSK
* DUMP
* E(xamine)
* EDIT
* ENABLE
* EOF
* EXECUTE
* FILCOM
* FILE
* FINISH
* FUDGE
* GET
* GLOB
* HALT
* HELP
* INITIA
* JCONTINUE
* KJOB
* LABEL
* LIST
* LOAD
* LOCATE
* LOGIN
* MAKE
* MERGE
* MIC
* MOUNT
* NETWORK
* NODE
* NSAVE
* NSSAVE
* OPSER
* PJOB
* PLEASE
* PLOT
* PRESERVE
* PRINT
* PROTECT
* PUNCH
* QUEUE
* QUOLST
* R
* REASSIGN
* REATTACH
* REENTER
* RENAME
* RESOURCES
* REWIND
* RUN
* SAVE
* SSAVE
* SCHED
* SEND
* SET
* SKIP
* START
* SUBMIT
* SYSTAT
* TECO
* TIME
* TPUNCH
* TYPE
* UNLOAD
* USESTAT
* VERSION
* WHERE
* ZERO

## History
### Release history

The PDP-6 Monitor software was first released in 1964. Support for the PDP-10's KA10 processor was added to the Monitor in release 2.18 in 1967. The TOPS-10 name was first used in 1970 for release 5.01. Release 6.01 (May 1974) was the first TOPS-10 to implement virtual memory (demand paging), enabling programs larger than physical memory to be run. From release 7.00 onwards, symmetrical multiprocessing was available (as opposed to the master/slave arrangement used before). The final release of TOPS-10 was 7.04 in 1988.

### TOPS-10 today

Hobbyists are now entitled to set up and use TOPS-10 under a Hobbyist's License.
The easiest way for the hobbyist to run TOPS-10 is to acquire a suitable emulator and an operating system image. TOPS-10 may also be generated from archived original distribution "tapes".
Paul Allen maintained several publicly accessible historic computer systems, including a DECsystem-2065 running TOPS-10.

## Software
### Implemented programming languages

The TOPS-10 assembler, MACRO-10, was bundled with the TOPS-10 distribution.
The following programming languages were implemented on TOPS-10 as layered products:
* ALGOL, as ALGOL-10 v10B, a compiler used for general computing
* APL, as APL-SF V2, an interpreter used for mathematical modelling
* BASIC, as BASIC-10 v17F, an interpreter used for general computing
* BLISS, as BLISS-10 and BLISS-36, compilers used for systems programming
* COBOL, as COBOL-68 and COBOL-74, compilers used for business computing
* Fortran, as FORTRAN-10 v11, a compiler used for numerical computing
The following programming languages were implemented on TOPS-10 as contributions from DECUS members:
* FOCAL, as FOCAL-10
* Forth, a threaded interpreted language
* IMP72
* Lisp, an interpreter used for AI programming
* Pascal, a compiler used for computing education
* PILOT
* SAM76
* Simula, a compiler used for modeling
* SNOBOL, an interpreter used for string processing
* BCPL, a compiler implemented by Essex University

### Implemented user utilities

The following major user utilities were implemented on TOPS-10:
* RMS (Records Management Services)
* IQL (Interactive Query language)
* DBMS-10 (CODASYL Database Management System)

### Notable games implemented on TOPS-10

* ADVENT
* DECWAR, as noted above
* FORUM, as noted above
* HAUNT, an early role-playing game
* Mac Hack, a chess program by Richard Greenblatt
* MUD

## Legacy

MS-DOS was heavily influenced by TOPS-10. Identical elements include three characters long file extensions, several standard extensions (e.g., EXE, TXT), the asterisk (*) as a wildcard, the usage of the slash (/) as a switch separator and more.