[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.
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 |
ssh twenex@sdf.org
@LOGIN USERNAME PASSWORD ;your password won't echo.
@SET DIRECTORY PASSWORD <LOGIN> ;where LOGIN is your LOGIN.
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
Read this file again. Type @? and @HELP ?
Lots! Currently we have SED, EDIT10 and TV (video TECO). I will add EMACS, TECO and vi when I can.
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'
We have many esoteric and classic games available on this system.
To get a list and a description of each game, type 'HELP GAMES'
[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
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:
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'.
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
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'.