# TOPS-20 Interactive Tutorial

This file is a log of a session with the TOPS-20 interactive tutorial on twenex.org. It has been added to the SDF tutorials to make the content available on the World-Wide Web, but it is a much more effective learning experience to work through the tutorial interactively by logging-in to twenex.org and running the TOPS20 program.

## Executive Summary

The tutorial introduces a number of useful keystroke commands for working with in the TOPS-20 EXEC environment.

Output control
| ^S | Pause output scrolling
| ^Q | Resume output scrolling
| ^O | Toggle output suppression
Command guidance
| ESC | Command completion and guide words
| ? | Expected input guidance
Command line editing
| ^R | Retype current line
| DEL (or BackSpace) | Erase previous character
| ^W | Erase previous word
| ^U | Erase current line
Program status and control
| ^T | Session status
| ^C | Exit program (may need 2 or more)

## TOPS20 Tutorial Log

    @tops20

    Following is  a brief  explanation of  some conventions  of  Tops-20.
    Learning and remembering them will be a great help when exploring the
    facilities on this system.  If you are already familiar with Tops-20,
    you should  ^C out of this program.   If not,  you might want to take
    notes.

    The first things you should learn  are the control characters ^S  and
    ^Q.  A  "control character"  is made  by striking  some letter  WHILE
    HOLDING DOWN the control key  (marked "CTRL").  They are  represented
    in print by putting ^ before the letter.  So ^S is made by striking S
    while holding down the CTRL key. (S need not be typed in upper case.)

    ^S and ^Q are used to stop and start output (typing) to the terminal.
    This is useful  mostly on a  CRT (video) terminal,  where things  you
    want to look  at have  a habit  of going off  the top  of the  screen
    before you can read it.

        ^S - stop output temporarily
        ^Q - continue stopped output

    A ^S typed by you will be simulated now.  (Type ^Q to continue.)

    Very good!  It is also  possible (but we won't  go into how here)  to
    have the line set up so that it automatically pauses at the end of an
    uninterrupted page  of output.   Practice using  ^S and  ^Q every  so
    often throughout this lesson.  (Remember: When output stops where you
    wouldn't expect it to,  the system is frequently  just waiting for  a
    ^Q.)

    The next concept you  should learn is that  of ESCAPE and "?".   Most
    commands are given  with words.   You needn't type  out the  complete
    command.  A  unique abbreviation  is  sufficient.  After  typing  the
    abbreviation, an ESCAPE (sometimes  called ALTMODE, labeled "ESC"  or
    "ALT") will cause  the system  to type out  the rest  of the  command
    word.  This is called recognition.

        ESC - complete an abbreviated command

    Here is  an example  - type  an ESCAPE at the end of this example:

    TOPS20>recogNITION

    Good.  See  how the  system completed  the word  for you?   There  is
    another advantage  to using  ESCAPE for  recognition -  guide  words.
    When you type ESCAPE  to recognize a command,  the system will  often
    supply a hint as to  what it wants to  see next.  These hints,  which
    are always typed in parentheses, are called guide words.  Try  typing
    ESCAPE again and see how it works:

    TOPS20>gUIDE (WORDS)

    Alright!  The "(WORDS)" above is an  example of a guide word.   Guide
    words are also sometimes  called noise words.  Usually they give some
    hint as to what should come next, as

        TYPE (FILES)       - you should give it names of files to type
        LOGIN (USER)       - you should type your user name

    Sometimes, though, this doesn't give a  big enough hint.  If this  is
    the case, you can find out what  is expected of you next by typing  a
    question mark.

        ? - show what is expected here

    Ok, now try out using a question mark ("?").  (If the system  doesn't
    do anything when you're done, type a carriage return.)

    How do you spell 3? ? one of the following:
     ONE     THREE    TWO
    How do you spell 3? three

    Ok, next we'll work on changing what you've typed in.  First of  all,
    sometimes, the line you are entering gets broken or messed up in some
    other way.  If you type a ^R,  the system will retype the prompt  and
    any input you have typed.

        ^R - retype the current line

    Here a  broken line  will be  demonstrated.   Type a  ^R to  have  it
    redisplayed.

    TOPS20>This line is
    SANTA.CLAUS, TTY45, 23-May-2010 5:41AM
    Have you been good?
    TOPS20>This line is not broken
    There -  you  see  how  the  line  got  retyped  all  in  one  piece?
    Sometimes, something you  typed was  not what you  meant.  There  are
    special characters which  you can  use to  edit what  you have  typed
    already.  The first of these is DELETE (which may also be labelled as
    either "DEL", "RUBOUT", or "RO").  Its function is to erase the  last
    character typed.

        DEL - erase the previous character

    Use a DELETE to correct the following error:

    TOPS20>correction

    Hey, you're moving right along now.  The next line editing  character
    to learn is ^W.  Sometimes your mistake doesn't involve just the last
    couple of letters.  Sometimes you'll goof up a word or two.   DELETEs
    aren't convenient when you have to  delete so many letters.  ^W  will
    delete characters a word at a time.

        ^W - erase the previous word

    Use one or more ^W (along with some other features you've learned) to
    correct the following error:

    TOPS20>This example is not wrong

    That's it!  Almost done with  the editing control characters...   The
    last of these is ^U.  If, somehow,  the line you typed in was not  at
    all what you were intending to type, ^U will erase the entire line of
    input.

        ^U - erase the entire line

    Use ^U  (and  some other  features  you've learned)  to  correct  the
    following error (we're getting tricky now):

    TOPS20>

    Wonderful!  Now you know all about editing characters for commands on
    Tops-20.  Only a couple more things to learn.  The next is ^O.  If  a
    lot of typing is coming out on your terminal which you don't want  to
    see, but you don't want to  interrupt the program which is doing  the
    output (we'll get to how to do  that in a minute), you should type  a
    ^O.  The  first  time you  type  ^O,  it redirects  output  for  your
    terminal off into  nowhere (sort of  sends it to  the "bit  bucket").
    The next time you type ^O,  output is directed back to your  terminal
    again.  All output in the interim is lost.

        ^O - toggles output suppression

    For practice with  ^O, I'm  going to  dump a  lot of  output to  your
    terminal.  Try typing a few ^O's to see how they work.

    Type carriage return when you're ready.
    This is trip number 1 thru the loop.
    This is trip number 2 thru the loop.
    This is trip number 3 thru the loop.
    This is trip number 4 thru the loop.
    This is trip number 5 thru the loop.
    [...]
    This is trip number 46 thru the loop.
    This is trip number 47 thru the loop.
    This is trip number 48 thru the loop.
     ^O...s trip number 49 thru the loop.
    he loop.
    This is trip number 53 thru the loop.
    This is trip number 54 thru the loop.
    [...]
    This is trip number 98 thru the loop.
    This is trip number 99 thru the loop.
    This is trip number 100 thru the loop.

    So there's ^O for you.  Quite useful at times, isn't it...

    Would you like to try it again? no

    Ok, one last thing which you'll find useful before the final  lesson.
    That's ^T.  ^T  tells you  information about what  you are  currently
    doing.  It's output looks something like this:

    17:03:57 TOPS20 IO wait at 2332  Used 0:34:41.4 in 10:05:05, Load
    3.58

    In the above example, "TOPS20" is  the the name of the program  which
    you are running.   "IO wait" tells  what the program  is doing.   (In
    this case, it's waiting for some input or output to complete -  maybe
    waiting for the user to  type something.)  The number following  "at"
    is the  address  at  which  the program  is  executing.   The  number
    following "Used" is the amount of time your program(s) have  actually
    spent running, and the one after "in" is how long you've been  logged
    on.  The  number following  "Load" is  roughly the  number of  people
    trying to use the machine "right now."

    Try typing a ^T...

     05:36:28 TOPS20 SLEEP at PS5+11  Used 0:00:01.5 in 0:07:49, Load
    0.03

    Well, would  you believe  you've made  it to  the last  part of  this
    lesson?  The last (but not  least important) thing you'll learn  here
    is about ^C.  Typing ^C's is how you get out of almost any program on
    Tops-20.  If the program is waiting for input, one ^C will  interrupt
    it.  If not, probably  two will work, but  sometimes as many as  four
    are needed.  ^C is usually used as a panic exit from a program.

        ^C - exits (immediately) from the program

    Oh, yes...  Before you try it out, if you'd like to run this  program
    again sometime, it's TOPS20:<GAMES>TOPS20.EXE.

    Ok - Now for the last bit of practice - ^C out of this program.
    ^C

    To summarize:

        ^C  - Cease program immediately
        ^O  - Output suppress
        ^Q  - Qontinue output
        ^R  - Redisplay line
        ^S  - Stop output
        ^T  - Tells what's happening
        ^U  - Undoes line being typed in
        ^W  - Word deletion
        ?   - what?s expected here
        DEL - DELetes one character
        ESC - rESCognitiion invoked

    Ok, good luck...
    @

$Id: tops20-interactive.html,v 1.1 2010/05/23 16:55:57 papa Exp $