Table of Contents

TOPS-20 Starter Guide for UNIX users

[Adapted from file TOPS20:<HELP>NEW-USER.HLP.11.]

Its important to know these basics before continuing:

^S CTRL-S pause ouput
^Q CTRL-Q unpause output ← NOTE THIS IF YOUR SCREEN IS PAUSED!
^O CTRL-O ignore output
^U CTRL-U clear input
^C CTRL-C quits a job
^F CTRL-F completion (try <ESC> too)
^T CTRL-T Job Status
^\ CTRL-\ When running 'LOGOUT' use this to close TELNET

This document is written assuming that the reader has a basic understanding of the UNIX system. However, it is not really necessary to have any system background when learning TOPS-20. This is also not meant as an all in one document either.

TOPS-20 is a multiuser operating system designed specifically for the 36bit DEC PDP-10 (DECSYSTEM-20) mainframe computer.

The USER level is called EXEC (similar to the UNIX 'sh'). Above that is ENABLE, but we will just talk about the USER level in this document.

EXEC is interactive, in fact, tcsh is based off of an earlier EXEC in TENEX/The TOPS-10 operating system, (hence, tcsh is called TENEX C Shell). However, tcsh is broken in the most important ways:

EXEC has command completion via <ESC> or ^F EXEC has command recognition - use ? to have EXEC tell you mapped completions)

CMD JSYS, the interactive bit of the MONITOR ('kernel') supports real job control. You can DETACH and ATTACH to any JOB or TTY you choose. Also, you can PUSH and POP between EXEC levels.

Typically, when TOPS-20 is spewing output to your screen it will send an XOFF to your TTY (pause) when you are ready to continue type ^Q. If you don't care about the output and want your job to continue without your interaction, just hit ^O. You can also ^C or ^Z to quit or exit a program or job.

TOPS-20 supports a hierarchical filesystem. PS: (primary storage) is the system's main device (similar to / or root). Directory paths are separated by '.'. For instance, say your LOGIN was 'SMJ'. Your home directory would be:

PS:<SMJ>           (/smj)

Say there was a subdirectory within your home directory called LISP:

PS:<SMJ.LISP>      (/smj/lisp)

TOPS-20's file system supports file versioning and supporting two level file deletion. Something that UNIX seriously lacks. Files are made up of three components:

FILENAME.EXTENTION.VERSION

The Wildcard * can be used for instance:

@directory PS:<SMJ>*.*.*

Would list ALL files in that directory, if you only gave a *.*, then the current generation of ALL files would be listed.

Quick and Dirty Comparisons

UNIX TOPS-20
talk TALK
mesg n REFUSE LINKS
mesg y RECEIVE LINKS
ls DIRECTORY
ls -la VDIRECTORY
cat TYPE
rm DELETE (EXPUNGE)
mkdir BUILD
rmdir BUILD
who SYSTAT
ps SYSTAT
passwd SET DIRECTORY PASSWORD
chmod SET DIRECTORY PROTECTION
SET FILE PROTECTION
man HELP
.profile LOGIN.CMD
.plan FINGER.PLAN
send SEND
mail (sending) SEND
mail (reading) MM
Linux Command Description TOPS-20 Command Description
`ls` List directory contents `DIR` List directory contents
`cd` Change directory `CONNECT` Change directory
`cp` Copy files and directories `COPY` Copy files
`mv` Move/rename files and directories `RENAME` Rename files
`rm` Remove files or directories `DELETE` Delete files
`mkdir` Make directories `CREATE DIRECTORY` Create a new directory
`rmdir` Remove empty directories `DELETE DIRECTORY` Delete a directory
`pwd` Print working directory `INFO DIRECTORY` Display current directory
Linux Command Description TOPS-20 Command Description
`cat` Concatenate and display files `TYPE` Display contents of a file
`more` View file contents one screen at a time `TYPE` / `MORE` Display file contents, paginated
`less` View file contents with navigation `TYPE` / `MORE` Display file contents, paginated
`vi` or `vim` Text editor `EDIT` or `TECO` Edit a file
`nano` Simple text editor `EDIT` or `TECO` Edit a file
Linux Command Description TOPS-20 Command Description
`df` Report file system disk space usage `INFO DISK-USAGE` Show disk usage
`du` Disk usage of files and directories `INFO FILE-USAGE` Show disk usage of files
`mount` Mount a file system `MOUNT` Mount a file system
`umount` Unmount a file system `DISMOUNT` Unmount a file system
Linux Command Description TOPS-20 Command Description
`ps` Report a snapshot of current processes `STATUS` Show process status
`top` Display tasks `INFO JOBS` Display information about jobs
`kill` Terminate a process `KILL` Terminate a process
`bg` Run a job in the background `CONTINUE` Continue a stopped job
`fg` Bring a job to the foreground `ATTACH` Attach to a job
`jobs` List active jobs `INFO JOBS` List active jobs
Linux Command Description TOPS-20 Command Description
`uname` Print system information `INFO SYSTEM` Display system information
`hostname` Show or set the system's hostname `INFO SYSTEM` Display system hostname
`uptime` Show how long the system has been running `INFO SYSTEM` Display system uptime
Linux Command Description TOPS-20 Command Description
`ping` Send ICMP ECHO_REQUEST to network hosts `PING` Send ICMP ECHO_REQUEST to network hosts
`ssh` OpenSSH SSH client `EXECUTE` or `RUN` Connect to another system (via EXEC)
`ftp` File Transfer Protocol client `FTPC` FTP client
`netstat` Print network connections, routing tables `INFO NETWORK` Show network status
Linux Command Description TOPS-20 Command Description
`who` Show who is logged on `WHO` Show who is logged on
`passwd` Change user password `SET PASSWORD` Change user password
`su` Substitute user `LOGIN` Log in as another user

Questions and Answers

0. How do I connect and LOGIN?

 ssh twenex@sdf.org
 @LOGIN USERNAME PASSWORD          ;your password won't echo.

1. How do I set my password after logging in?

 @SET DIRECTORY PASSWORD <LOGIN>   ;where LOGIN is your LOGIN.

2. Does it have to be UPPERCASE?

No. TOPS-20 assumes you are using a printing TTY when you connect via the DZ11 terminal server. To set up your terminal options, use the 'TERMINAL' command. Typically you will put these TERMINAL commands in your 'LOGIN.CMD'

 @TERMINAL NO RAISE   ;this will set lowercase
 @TERMINAL ?          ;this will give you a list of TTY options

3. How do I get more HELP?

Read this file again. Type @? and @HELP ?

4. What editors are available for TOPS-20

Lots! Currently we have SED, EDIT10 and TV (video TECO). I will add EMACS, TECO and vi when I can.

5. How do I access EXEC command history or edit previous commands?

EXEC command history/editing must be setup by issuing the following SET commands:

 SET HISTORY 100
 ;then set your favorite editor
 SET COMMAND-EDITOR EDIT EMACS
 SET COMMAND-EDITOR ENTER CONTROL "P"

You can put these SET commands in your LOGIN.CMD and in most cases (on TWENEX.ORG) this is included in your default LOGIN.CMD

To access your command history, press ^P (CTRL P), you can then use EMACS keys to edit your previous commands. Pressing RETURN will issue the command via the current EXEC.

To re-issue the last command issued, you can type 'REDO'. Not related, but relevant, you can return to the last program run (which is still in memory) by typing 'REENTER'

6. What GAMES are available on this system?

We have many esoteric and classic games available on this system.

To get a list and a description of each game, type 'HELP GAMES'

7. How can I host a website here?

[The twenex.org TOPS-20 web server is currently not in operation. This section is left for historical interest.]

Simply run the following command substituting your system LOGIN for 'LOGIN'. This creates the sub-directory 'HTML'.

 @BUILD <LOGIN.HTML>

Either edit your .HTML files in that directory or upload them using FTP. Your URL will be HTTP://TWENEX.ORG/~LOGIN

8. How does DIRECTORY and FILE PROTECTION work?

TOPS-20 allows for 18bit DIRECTORY and FILE protection settings which includes features found under 9bit UNIX 'permissions' as well as additional protections which are uniquely TOPS-20.

For files:

OCTAL PERMISSION
77 Full access
40 Read
20 Write/Delete
10 Execute
04 Append
02 Find file with wildcard
00 Find only with complete file name; no other access

For directories:

OCTAL PERMISSION
77 Full access
40 Access existing files in directory according to their protection
10 Connect without password; Undelete files; Delete/Expunge all files;
Change file dates, times, accounting information
04 Create files
00 No access

PROTECTIONS are grouped together in a set of 3, and correspond as:

 @SET DIRECTORY PROTECTION <LOGIN> 777700
                                    ^ ^ ^
                                    | |  \ all other users
                                    |  \__ users in your group
                                     \____ your (owner) login

Such that, you and users in your group have full access to the directory <LOGIN>, while all other users have no access.

If you are used to UNIX file permissions you should be immediately impressed that under TOPS-20 you can create a file that:

  1. Does not show up in a directory listing
  2. That is not readable even if you know its name
  3. That is appendable to all users

9. How do I access the 'BBOARD' ?

The TWENEX bboard is a publically accessible mail box which users of TWENEX.ORG can use to communicate with each other.

In your initial LOGIN.CMD the bboard's latest message is called upon login. You can always re-read the last message posted to the bboard by issuing 'BBOARD /LAST' at the EXEC prompt.

To send a message:

Simply use 'MAIL BBOARD' to POST or REPLY to a message on the BBOARD.

To read a message:

The 'BBOARD' command allows you to read and scan messages on the bboard using various criteria. You can also use 'MM' to browse the bboard by typing 'BBOARD MAIL' from within 'MM'.

10. How can I use 'COMMODE', 'TALK', 'SEND' or 'PHONE'?

In order to use these to CONVERSE with other users logged in to TWENEX.ORG, you must have 'TERMINAL RECEIVE LINKS' set. While using 'TALK' you can either use the EXEC comment character ';' to prefix your lines, run 'REMARK' so EXEC doesn't interpret your input as commands or run COMMODE (CHAT) which will prefix all conversation lines with the user's LOGIN name.

'SEND' does not LINK TTYs, but allows users to send messages back and forth. Once you have received a message from a user, you can 'REPLY' to respond to the sender.

'PHONE' is probably the most elaborate CHAT system. It allows you to see who is online, if they're willing to receive links and so on.

Please note that it is not consider respectable to just randomly LINK to user's TTYs. If you want to 'TALK' with someone you've never talked to before, please use 'SEND' or 'MAIL' first. If you don't get a response, don't push it.

If you wish to not have messages sent to your TERMINAL, type:

@TERMINAL NO RECEIVE LINKS

11. Can I access USENET via my TOPS-20 account?

Yes, the 'NEWS' program can be used to access the NNTP server 'news.sdf.org'. Due to limitations with NEWS, only a select groups are available. Groups can be added by posting to the 'bboard'.