19-Jul-01 ;SMJ

       -= TOPS-20 Starter Guide for UNIX users =-

Its important to know these basics before continuing:

^S = CTRL-S  pause ouput
^Q = CTRL-Q  unpause output
^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 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:

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


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

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


- more to come, please check back soon -