This is an old revision of the document!
Its important to know these basics before continuing:
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
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 hiearchical filesystem. PS: (primary storage) is the system's main device (similar to / or root). Directory paths are seperated by '.' .. for instance, say your LOGIN was 'SMJ'. Your home directory would be:
Say there was a subdirectory within your home directory called 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:
The Wildcard * can be used for instance:
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:
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
QUESTIONS AND ANSWERS:
0. How do I connect and LOGIN?
TELNET to twenex.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?
Simply run the following command substituting your system LOGIN for 'LOGIN'. This creates the sub-directory '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.
OCTAL PROPERTY -------------------- 77 FULL ACCESS 40 READ 20 WRITE/DELETE 10 EXECUTE 04 APPEND 02 LIST 00 NO ACCESS
FOR DIRECTORIES: OCTAL PROPERTY -------------------- 77 FULL ACCESS 40 READ 10 CONNECT 04 BUILD 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.