+
&HELP
&Anything
&please
&me
The HELP command is used to obtain information about system features.
To select a particular topic give the command:  Help Topic
where 'Topic' is one or more words describing the subject of interrest, e.g.
               Help files
In certain cases more detailed information may be obtained by
following the command with an exclamation mark: e.g.  Help Files!
Information is available concerning:
   Commands         Compiling           Console conventions
   Copying files    Creating files      Deleting Files
   Editing files    Files               Running programs
   Stopping         Operator commands   Utilities

A complete list of topics available may be obtained by typing:   Help ?

Note that typing line feed (LF) will cause output to continue if it has been
suspended after the screen has been filled.
+Archive
&tape backup
&tape dumps
&tape dumping
&backup
The command:      ARCHIVE
invokes the MOUSES magnetic tape archive manager.  For further information see

   o  Help Archive_Initialise            Labelling archive tapes.

   o  Help Archive_Analyse               List the contents of an archive tape.

   o  Help Archive_Dump                  Details of dumping files to tape.

   o  Help Archive_Restore               Details of loading files from tape.

   o  Help Archive_Idump                 Incremental dumping of user files.

These describe the available archiver commands separately, but in fact
sequences of commands (e.g. to dump several discs then generate a listing) are
commonly entered. The Archive program prompts "Archive: " when it wants a
command.  Reply with EXIT to return to MOUSES command level. 
+Archive_Initialise
&Archive_initialize
To create an empty archive tape, mount a scratch tape in the drive with a
write ring fitted.  Enter the command:

            Command: ARCHIVE!

In reply to the "Archive:" prompt, enter: 

            Archive: initialise ...text...

The text following "INITIALISE" is recorded in the tape label and appears on
listings of the contents of the tape.  (See HELP ARCHIVE_ANALYSE).
At this point, either reply EXIT to the "Archive:" prompt to return to command
level, or enter another archiver command.
+Archive_analyse
A listing of the contents of an archive tape can be produced by the following
sequence of commands:

            Command: archive / listing-file
            Archive version 1.5          Program announces itself

            Archive: analyse

            Archive: exit

When the EXIT command is entered, the 'listing-file' is closed and control
returns to command level.  The 'listing-file' may be any file or device, e.g.

            Command: archive /$temp
            Command: Archive /LP:
            Command: ARCHIVE/LP:LISTING
+Archive_Dump
The archiver command:  DUMP UNIT disc
is used to dump all the files on the named disc unit to the mounted archive
tape.  To dump only the files belonging to a single user, use the command:
                       DUMP USER who
As each file is archived, a message line is written on the operator's console
of the form:           <- filename
Reply "EXIT" to the "Archive:" prompt to return to MOUSES command level.

Examples:               Archive: dump unit sys
                        Archive: DUMP USER User_Fred
                        Archive: Dump user Alan
                        Archive: Dump unit PAK4
+Archive_Restore_User
The archiver command:   RESTORE USER who
causes the mounted archive tape to be searched for any files belinging to the
specified user.  They are reloaded onto the disc.  Where they are put depends
on how the archiver was started.  By default, the files are loaded into the
directory currently being used by the operator, so to reload FRED's files, do:
                        Command: Be Fred     {switch to right directory}
                        Fred: Archive
                        Archive version 1.5
                        Archive: restore user fred
                        Archive: exit
                        Fred: Be             {Become OPER again}
+Archive_Restore_Unit
The archiver command:   RESTORE UNIT disc
causes the program to read through an entire archive tape, reloading any files
which were originally dumped from the named 'disc'.  Users will automatically
be created on the disc to read the files into.  For example the disc PAK5
could be restored to the state it was in when last dumped by mounting the dump
tape, re-initialising PAK5 (see Help Disc_initialise) then entering :-

            Command: Archive
            Archive version 1.5
            Archive: restore unit pak5
            Archive: exit

+Archive_Restore
Files can be retored to disc from an archive tape either singly, or grouped
per user or per disc unit.  See one of:

   o  Help Archive_restore_file

   o  Help Archive_restore_user

   o  Help Archive_restore_unit

+Archive_restore_file
To restore the latest version of a file from an archive tape, use:

            Command:archive
            Archive:restore file user:filename
    e.g.    Archive:restore file pak5_fred:program.imp

If you have an analysis (see Help Archive_analyse) of the tape, the version
of the file as it was when dumped on a particular date at a particular time
may be restored.  First find the serial number of the required version from
the analyse listing, then:

            Command: Archive
            Archive: Restore #nnn

Where 'nnn' is the sequence number of the file.
+Utilities
&utility programs
Information about several system utilities is available.  See:

   Help Disc      - The disc backup/copy utility.
   Help Archive   - The magnetic tape disc backup utility
   Help Tapes     - Utilities to process tapes (including IBM tapes)

+Disc
&Disc utility
&Disc checks
&Disc checking
&Disc copying
&Disc compression
&compressing discs
&copying discs
The disc utility supports the following operations.  

   o  Initialise 'raw' discs with an empty file system.

   o  Perform self-consistency checks on the directories on a disc.

   o  Copying one disc straight onto another.

   o  Copy a disc, compressing the free space on the disc into a single area.
      (May have to deal with corrupt input discs).

   o  Compare the contents of two discs.  (Verify copy).

See:  Help Disc_initialise   Help Disc_Test       Help Disc_copy
      Help Disc_compress     Help Disc_Compare
+Disc_test
Checking of a disc is initiated by the command:

            Command: disc(test)          Program prompts for disc to test
    Or:-    Command: disc(test) xx       Disc to test specified in command line

'xx' is the disc unit to be tested: either a unit number '#n' or the name of
a loaded disc.  (See Help Disc units).
Any errors detected are logged on the console.  More logging output is
produced if a question mark '?' is appended to the command line.  The enquiry
facility (see Help ENQ) may be used to discover the directory currently under
test.
Examples:   Command: disc(test)          Program prompts for disc to test.
            Command: disc(test) #1       Test disc on unit one.
            Command: disc(test) Sys      Test disc with logical name "SYS".
+Disc_Initialise
&Disc_initialize
The command:         Disc(initialise) / xxxx
is used to start initialisation of the disc 'xxxx', which may be specified
either as the logical name of a loaded disc or as a unit number '#n' (see
under Help Disc units).  The program prompts for certain parameter values.
Sample dialogue:     Command: disc(initialise) /#1    {init disc on unit one}
                     Are you sure you want to overwrite OLD?
                     Yes/no? yes         {reply NO to abort program}
                     Phy. disc name: NEW {any four letters/digits}
                     Log. disc name: NEW {Logical name as used in LOAD etc}
                     System area? yes    {reserve an area for a system image?}
                     Disc type: Diablo   {or HELP/MSM80/CALCOMP/TELEFILE}
                     Description: any text supplied by the operator
                     ***WIPING NEW
                     Blocks: 9600
                     No errors
The valid replies to "Disc type:" are:
   DIABLO   10MB cartridge disc      MSM80    P-E 67MB drive
   TELEFILE 300MB drive              CALCOMP  67MB drive with TDC controller
   UNKNOWN  Specify no. of tracks, blocks per cylinder and heads by hand.
If the command line "Disc(initialise)" on its own is given, the program will
prompt "Output disc?" for the name of a unit to initialise.
+Disc_Copy
The command:   Disc(copy) xxxx / yyyy
will cause the program to copy the contents of disc 'xxxx' block by block over
the contents of disc 'yyyy'.  No interpretation is placed on the blocks, i.e.
non-MOUSES discs may be copied.  The disc identifiers 'xxxx' and 'yyyy' are
either logical disc names or disc unit numbers (see Help Disc units).  Either
may be omitted, in which case the program prompts for "Input disc?" or "Output
disc?".After the program starts it will prompt the operator for the type of
disc to be copied.  (Answer DIABLO for cartridge discs, MSM80 for P-E 67MB
drives, CALCOMP for TDC 67MB drives or TELEFILE for 300MB drives).
Examples:      Command: Disc(copy) Sys/#3
               DISC COPY V2.0
               Disc type: Diablo
               Command: disc(copy) /#4
               DISC COPY V2.0
               Input disc? #3
               Disc type: MSM80
               Command: DISC(copy) Fred/Jim
               DISC COPY V2.0
               Disc type: telefile
+Disc_Compare
&Disc_Verify
&verify
&disc verify
To discover whether two discs are identical, use the command:

               DISC(COMPARE) xxxx, yyyy

'xxxx' and 'yyyy' are logical disc names or disc unit numbers '#n', see
Help Disc units.
Either may be omitted, in which case the program prompts for "Input disc?" and
"Output disc?".  The program will prompt "Disc type:" to find out how many
blocks are to be compared.  Reply DIABLO for cartridge discs, MSM80 for
Perkin-Elmer 67MB drives, CALCOMP for TDC 67MB drives or TELEFILE for 300MB
drives.
Examples:      Command: disc(compare) #1, #2
               Command: DISC(COMPARE) SYS0, SYS1
+Disc_Compress
&Disc_squeeze
The command:   DISC(COMPRESS) xxxx / yyyy
will copy all user directories and files from disc 'xxxx' to disc 'yyyy'.
'xxxx' and 'yyyy' may be either the logical names of two loaded discs or
disc unit numbers '#n' (see Help Disc units).  Either may be omitted, in which
case the prompts "Input disc?" or "Output disc?" will be output.
A listing of the contents of the generated output disc can be produced:
               DISC(COMPRESS) xxxx / yyyy, listing-file
If the file system on the input disc is not self-consistent, the program
stops with the message:
               ***FAULTY INPUT DISC
If it is necessary to attempt to 'rescue' a corrupt disc, append an exclamation
mark "!" to the command line, and the program will attempt to copy any good
data remaining on the faulty disc:
               DISC(COMPRESS) xxxx / yyyy, listing !
(The ", listing" part is optional).
The operation of the program can be inspected using the ENQ facility (see
Help ENQ).
Examples:      Command: disc(compress)            {Prompts for disc names}
               Command: disc(compress) user/arch
               Command: Disc(compress) DEAD / #5, LP:listing !
               Command: disc(compress) user/back, List
+Ctrl+D
&EOT
&end of file
&end of input
The end of file condition can be signalled to a program reading from a terminal
by striking the Ctrl+D (EOT) key.  This is echoed by the system as "[]". 
+Ctrl+H
&Backspace
&rubout
&DEL
&erase
DEL and Ctrl+H (backspace) have identical effects.  The last character on the
current input line is erased.  Pressing DEL 'n' times erases the last 'n'
characters from the current line.  This is obvious on a VDU.  On hardcopy
devices the characters cannot be physically rubbed out, so the group of
characters being erased are echoed on the terminal (backwards as they are
deleted), enclosed between a pair of backslash "\" characters.
+Can
&Ctrl+X
This character causes the whole of the current line to be erased.  On fast
VDU terminals, the line is visibly erased.  On slower hardcopy terminals, a
'#' is printed, a carriage return/line feed sequence is output and the command
prompt is reissued.  (See also:  Set_erase)
+CR
&return
&newline
Striking the CR (carriage return, RET) key causes the current line to be
entered and processed by the system.  A carriage-return/linefeed is output
to put the cursor at the start of the next line.  An IMP program reading from
the console will read this as a single NEWLINE (LF) character,  Pascal and
FORTRAN programs see 'end of record' (EOLN).
+LF
&linefeed
&Ctrl+Q
&DC1
Linefeed and Ctrl+Q have identical properties.  Output to the terminal is
re-initiated after being suspended for one of the following reasons:

      o  End of page on VDU.   See:  Help Set_Page

      o  Output suspended manually by user pressing Ctrl+S.  See: Help Ctrl+S

      o  Output being discarded.   See:  Help Ctrl+T

+Ctrl+S
&DC3
&hold output
Striking the Ctrl+S key causes output to the terminal to be immediately
paused.  (Output is resumed by pressing linefeed, LF, or Ctrl+Q).
+Ctrl+R
&DC2
&retype
The current line being input by the user is retyped by the system.  This is
most useful on hardcopy terminals where a proliferation of '\' characters
echoed by DEL can obscure the meaning of the line.
+Ctrl+T
&DC4
This character causes the system to start THROWING AWAY terminal output.
Output is resumed either by pressing Ctrl+Q or Linefeed (LF), or when the 
running program stops to ask for input from the console.
+Ctrl+I
&TAB
&tabulation
&tabs
The system provides a 'tab stop' facility for user console input.  By default
pressing TAB (i.e. Ctrl+I) is equivalent to entering three space characters.
The user may alternatively set tab stops at particular columns,
see:   Help Set_Tabs
       Help Set_Tab
+Ctrl+E
&ENQ
Pressing ENQ (Ctrl+I) causes the system to display a short message indicating
the operation that is currently being performed in the form:

                  ***System: text

By default, "text" is the name of the program currently running or null if the
system is waiting for a command.  User programs and utilities (e.g. the IMP-77
compiler, the DISC utility etc) may set this string to indicate the operation
currently being performed.  E.g. the compiler indicates which pass it is 
performing.

There is no restriction on when ENQ may be used, during console output, while
the system is waiting for input or while there is no console activity.
+Ctrl+U
&NAK
The current line is erased as for CAN (Ctrl+X).  Additionally any lines which
have been typed ahead by the user and have not yet been processed by the system
are discarded.  NAK (Ctrl+U) echoes as '#', CR, LF.
+Ctrl+O
&SI
The console is shifted into the normal (default) mode, where upper and lower
case letters are distinct.  (Although all system programs treat upper and lower
case identically).  See also:  Help SO
+Ctrl+N
&SO
The console is shifted out of normal mode.  Henceforth, all lower case letters
typed will be echoed as the corresponding upper case character and any program
reading from the terminal will see the upper case character.  This effect may
be cancelled by striking the SI (Ctrl+O) key to shift back into normal mode.
+Ctrl+P
&DLE
&Binary input
To allow the input of any ASCII character to a program reading from the console
it must be possible to disable the standard interpretation of characters like
ESC and TAB.  Any character may be entered in thsi way by prefixing it with
DLE (Ctrl+P). 
Examples:      <dle> <esc>               - to enter the ESC character
               <dle> <dle> <dle> <dle>   - to enter two consecutive DLE chars.
               <dle> F <dle> <bel>       - to enter 'F' BEL.  (The <dle> before
                                           the 'F' is redundant since 'F' has
                                           no special significance.
               <dle> <eot>               - EOT normally causes end-of-file.
+Operator commands
&ops
The operator has access to several privileged commands:

   Catalog              - List usernames on a particular disc.
   State                - Gives status of system/discs/spoolers.
   Broadcast            - Send a short message text to all terminals.
   Close                - Prevent users from logging in.
   Shutdown             - Automatically close after broadcasting warnings.
   Open                 - Stop any pending shutdown, and allow user logins.
   Dateis               - Set the date and time counters used by the system.
   Protect              - Set software protection on a disc unit.
   Hazard               - Reset software protection on a disc unit.
   Load                 - Make a disc unit available to users.
   Unload               - Used before putting a disc offline.
   Pass                 - Set a global system password.
   Reprime              - All spooled files are revoked.
   Restart              - Reboot the system.

Type: Help 'command' for further information, e.g.  Help broadcast
See also:  Help utilites  Help disc units
+Catalog

The command:   CATALOG disc              
will generate a listing of the names of all users whose directories
reside on the specified disc.  'Disc' is either the name of a logical disc
unit, or a disc unit number "#n" in which case the analysis is of the disc
mounted on unit "n".  (See also:  Help disc units). 

Examples:      Command: catalog sys      what users are on the system disc?
               Command: catalog #1       Who is on the disc mounted on unit 1?
+Disc units
&discs
MOUSES accesses discs internally by 'logical disc unit number'.  More than one
logical disc may be mapped onto a single physical disc unit. (E.g. a 67MB drive
is normally partitioned into three logical discs). Usually, the operator will
refer to discs by name, but it is possible with most commands to quote the unit
number instead in the form "#n".  The correspondance between the numbers and
real disc drives varies from system to system.  For example:

   #1:  Cartridge disc C6:               #5:  67MB drive, first partition.
   #2:      "      "   C7:               #6:    "    "    second   "
   #3:      "      "   D6:               #7:    "    "    third    "
   #4:      "      "   D7:
+State
&Status
This command has several forms:
Command: state          - This form produces information about the user who
                          runs it (e.g. amount of CPU time used, username etc).
Command: state system   - This displays information about all active users.
Command: state discs    - This lists the names of the online discs.
Command: state discs!   - As above with extra information - free blocks etc.
Command: state discs?   - As for STATE DISCS, with disc description displayed.
Command: state queues   - Display a list of all spooled files.
+Broadcast
The command:   BROADCAST text
causes the message "text" to be displayed on all terminals in the form:

               ***OPER: text

Text longer than 23 characters will be truncated on the right.
+Close
The command:  CLOSE
will prevent users other than OPER logging in to the system.  Attempts to do so
will produce the "No user service" message.
See also:  Help open   Help shutdown
+Open
The command:  OPEN
allows users other than the operator to log in to the system.  The system is
normally opened automatically as part of the startup sequence.  It should
therefore only be necessary to use the OPEN command:

    o   After an explicit CLOSE

    o   If the normal startup sequence has been bypassed by logging in as OPER
        in the interval between system startup and the message "OPER starts"
        appearing on the system log.

OPEN also cancels the effect of any pending SHUTDOWN command.

See also:  Help close   Help shutdown
+Shutdown
&Shut
&Closedown
The command:   SHUTDOWN  nn
causes an orderly shutdown of the system in 'nn' minutes.
A warning message is sent to all terminals when the command is entered, and
after successively shorter intervals before the deadline.  The messages are
of the form:
               ***OPER: Close in nn minutes

When the deadline is reached, processing of the spooler queues is halted
and a final warning is issued:

               ***OPER: Closing down NOW!!

After a further minute of grace all logged on users except OPER are forcibly
logged off.
+Protect
&write protect
&prot
When the system starts up, all discs whose logical names start with "SYS" and
all hardware-protected discs are automatically software-protected. To software
write-protect a disc manually, use the command:

               PROTECT disc

'Disc' is either the logical name of the disc (e.g. Sys, User) or a unit number
'#n' (see Help disc units).  After execution of the command, users may no
longer create or alter files on the disc in question.  The disc need not be
hardware protected.  Note that if a disc is hardware protected but is NOT
software protected then attempts to write to the disc cannot be detected at the
user level, but will be reported on the logging device as disc errors. (The
attempted write will be retried until either the disc is made unprotected again
or the fifteenth retry fails, in which case the attemped operation is
abandoned).  Disc protection can be reset using the HAZARD command.
Examples:      Command: Protect SYS
               Command: protect #1

The protection status of the discs can be displayed with the STATE DISCS
command.  See also:  Help state  Help Hazard 
+Hazard
&unprotect
&deprotect
To remove any software write-protection on a disc, use the command:

               HAZARD  disc

'Disc' is either the logical name of a disc, or a disc unit number '#n'.
Hazarding a hardware-protected disc is not advised, since any user who then
attempts to write to the disc will not be trapped until the lowest level of the
system is reached, where the attempted write will be rejected by the hardware,
resulting in a series of up to fifteen retries before it fails). The PROTECT
command is used to set software protection.
Examples:      Command: hazard sys
               Command: hazard #5

The current protection status of the discs may be inspected by the STATE DISCS
command.  See also:  Help state  Help protect
+Load
&mark on
&mark
Not all discs physically online to the system are available to users.  To make
a disc available, the operator must LOAD it.  This is done automatically at
system startup for all discs online at the time.  Discs can be made
inaccessible by UNLOADing them (see 'help unload').  The form of command is:

               LOAD  disc

'Disc' is either the logical name of the disc to be loaded or a unit number of
the form '#n'.  The system will report the fact that the disc has been loaded
on the logging device.  If the name of the disc begins with "SYS", or the disc
device is hardware protected, the loaded disc will automatically be software
protected.  The command STATE DISCS (see "help state") will display a list of
the discs which are currently loaded.

Examples:      Command: load pak2
               Command: load #1
+Unload
&Mark off
To make a disc which is currently online inaccessible to user processes, use 
the command:   UNLOAD disc
where 'disc' is either the logical name of the disc to be unloaded or a disc
unit number '#n'.  (See "help disc units"). The command STATE DISCS (see "help
state") will display a list of the discs which are currently loaded.

Examples:      Command: unload arch
               Command: unload #5
+Pass
The command:   PASS ...
allows the operator to set a global system password.  The text string "..."
should be from one to six letters or digits.  After execution of this command
a user may log in to ANY user's account by quoting either its the correct
password, or the global password.  A user may also log in when the system is
closed (see 'help close') by quoting the system password.  If the command PASS
is entered on its own (with no "..." part) the global password is removed.

Examples:      Command: pass twit
               Command: pass xyz123
               Command: pass             {revoke global password}

Note: For security reasons this command should be used infrequently and with
      caution.
+Reprime
The command:   REPRIME
causes all files spooled to any queue (e.g. LP:, PP:, BATCH:) to be deleted.
The spoolers are reinitialised.  It should not normally be necessary to use
this command unless the queues become corrupt.
+Restart
&Reboot
&rebooting
&boot
&bootstrap
&booting
&reloading
The system can by booted either from the front panel with the 50-sequence
loader and the MOUSES bootstrap papertape/magtape or while the system is
running (e.g. to test new versions of the system).  To boot from disc 'xx'
from a running system, use the command:
                RESTART xx               (See also: Help disc units).
Examples:       RESTART #1
                Restart SYS
The system will go into an loop waiting for a valid system disc to be put
online on the nominated disc.
(See: Help 50-sequence  for details of front panel booting)
+50-Sequence
&50 sequence
To boot from the high speed paper tape reader or the magnetic tape unit, set up
the store locations using the front panel, then run from location X'50' after
clearing the PSW (press DTA ADR FN SEL on the front panel).

      Address  Contents   (both hexadecimal)
         50    D500
         52      CF
         54    4300
         56      80
         78    1399     {To boot from the high speed paper tape reader}
         78    85A1     {To boot from the default magnetic tape drive}
         7A    dd00     {'dd' is the cartridge disc address, e.g. C6}
         7C    ccss     {'cc': disc controller address, normally B6
                        {'ss': SELCH address, normally F0
         7E       0
+Dateis
&set date
&time
&date
The current date and time (as displayed by the STATE program, see: Help state)
are set using the operator command:

               DATEIS  date  

'Date' is of the form:   dd-mmm-yy    e.g.  15-Sep-81

      Or       DATEIS  date  time

'Time' has the form:     hh:mm        e.g.  13:10    (ten past one PM)
                 or:     hh:mm:ss     e.g.  10:11:30

Examples:      Command: dateis 25-Dec-81
               Command: DateIs 13-Jun-79 11:30
               Command: Dateis 13-Jul-80 12:00:02
+COMMANDS
&Command
&Command format
&format
The general form of a command line is:-

     CommandVerb {command parameter} {stream definition}

If no stream definition is required the rest of the command line may be used to
specify the parameter by using the form:

     CommandVerb-{command parameter}

Examples:      E file1/file2
               COPY file2/LP:file
               SET TIME=10
               SET-stack=32,password=FRED

The way in which the command line is interpreted may be controled
by options set in the object file corresponding to the command.

See also:   Help Streams            Help Option             Help ?
            Help Stream Definition  Help Command parameter
+Creating files
&Create
&Creation
&new files
Files are created automatically when they are specified as outputs for programs.
Commonly files are created using either the COPY program or the editor.
See also:   Help Copy   Help Files
            Help Edit   Help Filenames
+EDIT
&Editing
&Editing files
&E
&ECCE
The Edinburgh Compatible Context Editor, ECCE, is called using a command of
the general form:     E     input,input2/output
where:   input:   is the primary or only input stream (default N:).
         input2:  is an optional secondary input (defaults to input).
         output:  the file for the edited output (defaults to input).
E.g.     e    fred            modify existing file called fred
         e    fred/jim        modify fred - output into jim
         e    /fred           create a new file fred
         e    tom,dick/harry  produce harry from pieces of tom & dick
         e    fred/n:         examine FRED without being able to modify it.
For full information on ECCE see separate documentation.
Help about individual Ecce commands may be obtained by typing:
      Help E_command-letter         e.g.  Help E_M
Ecce commands are:  B   C   C-  D   E   E-  F   G   I   J   K
                    L   M   M-  P   R   S   T   U   V   X   Y   Z
                    %C  %F  %L  %M  %N  %Q  %S  %U  %X  %Y  %Z
                    ,   *   0   ?   ()  \
+E_B
Editor command BREAK: B breaks the current line at the file pointer.
+E_C
Editor command CASE SHIFT: C Moves right and inverts the case of letters.
+E_C-
Editor command CASE SHIFT BACK: C- Moves left and inverts the case of letters.
+E_D
Editor command DELETE: D/text/ deletes the next occurrance of text on the
                               current line.
+E_E
Editor command ERASE: E erases the character to the right of the pointer.
+E_E-
Editor command ERASE BACK: E- erases the character to the left of the pointer.
+E_F
Editor command FIND: F/text/ locates the next occurrance of text.
+E_G
Editor command GET: G inserts the next complete line typed at the console
                      in front of the current line.  G* to input multiple lines
                      terminated by a colon.
                    Failure Condition: The line starts with a colon (:).
+E_I
Editor command INSERT: I/text/ inserts the text to the left of the pointer.
+E_J
Editor command JOIN: J joins the next line onto the end of the current line.
+E_K
Editor command KILL: K deletes the current line.
+E_L
Editor command LEFT SHIFT: L moves the pointer left one character.
+E_M
Editor command MOVE: M  moves the pointer is moved the the start of the
                        next line.
+E_M-
Editor command MOVE BACK: M- moves the pointer to the start of the
                             previous line.
+E_P
Editor command PRINT: P prints the current line on the console.
                        When repeated (e.g. P4) a MOVE is performed before the
                        second and subsequent printings.
+E_R
Editor command RIGHT SHIFT: R moves the pointer right one character.
+E_S
Editor command SUBSTITUTE: S/text/ substitutes text for the text string last
                                   located using F, V, or U.
+E_T
Editor command TRAVERSE: T/text/ moves the pointer past the next occurrance
                                 of text.
+E_U
Editor command UNCOVER: U/text/ deletes characters up to but not including
                                the next occurrance of text.
+E_V
Editor command VERIFY: V/text/ does nothing.
                       Failure condition: the pointer is not immediately to the
                                          left of the given text.
+E_X
&E_Y
&E_Z
User-defined editor command: X,Y and Z  replaced by the string previously
 specified by an editor command %X=.......,
                                %Y=.......,
                             or %Z=.......
+E_%C
Editor command CLOSE: %C terminates the editing session and causes the
                         updated output file to be generated.
+E_%F
Editor command FULL MONITORING: %F enables full command monitoring.
+E_%L
Editor command LOWER CASE: %L causes subsequent text locating commands to
                              distinguish between upper and lower case letters.
+E_%Q
Editor command QUIET: %Q turns off command monitoring.
+E_%S
Editor command SWITCH INPUTS: %S switches between primary and secondary input.
+E_%X
&E_%Y
&E_%Z
Editor macro definition commands: %X, %Y and %Z are used to specify strings
                                  to be used whenever X, Y, or Z are used
                                  as commands. E,g, %X=f/jim/s/bert/
+E_()
&E_(
&E_)
Editor brackets: A sequence of editor commands in brackets is treated as
                 a single command for the interpretation of failure conditions
                 of commands within the brackets.
+E_,
Editor comma: A comma separates alternative command sequences.
+E_*
&E_0
Editor indefinite repetition: A repetition count of * or 0 causes the
                              command to be repeated until it fails.
+E_\
Editor failure inversion: \ after a command produces a new command which
                           has the same effect as the original command except
                          that the new command fails if the original
                          command would have succeeded.
+E_?
Editor ignore failure: Any failure condition caused by the previous
                       command is ignored.
+COMPARE
&Comparing files
&File comparison
&Differences
&changes

This command causes the contents of the two text files specified as  inputs to
be compared and any discrepancies to be noted on the output stream.
   COMPARE file.new,file.old
   Compare file.new,file.old/lp:differs
+Compilation
&Compilers
&compiling
&compiling programs
&compiling programmes
Source programs may be compiled using a general command of the form:
   Compiler(parameters) Source/Object,Listing
where 'compiler' stands for one of the supported compilers.
The currently supported compilers are:
      Imp      - The IMP77 compiler
      Fortran  - The Fortran77 compiler (pre-release only)
      Pascal   - The Pascal compiler    (pre-release only)

See also:   Help Imp
            Help Fortran
            Help Pascal
            Help Compilation parameters
            Help Run
+IMP
The IMP compiler is called using a command of the form:
            IMP(compilation parameters)  source/object,listing
The executable object file is given the same name as the source file but with
the extension .EXE unless explicitly specified otherwise.
If the source file specifed does not exist and has no extension, .IMP is
appended then that file is tried.
+Compilation parameters
&Compilation parameter
&Compiler parameters
&Compiler parameter
&compiler options
&Compiler option
&Compilation options
The optional parameter to commands which invoke the standard compilers
comprises a list of options.
Three basic compilation options specify an initial state which may be modified
by further options - the order is thus significant.
   Initial states are defined by:
      DEFAULT:   include all checking code and full diagnostic data tables
      OPT:       remove all checking code and reduce size of diagnostic tables
      TRUSTED:   as OPT but diagnostic tables completely removed
   Modifiers are:                        (can be inverted by prefix NO)
      ASSIGN:    check for use of unassigned variables
      ARRAY:     check for array subscripts out-of-bounds
      CAPACITY:  check for truncation when storing strings, shorts, bytes
      BRIEF:     generate a summary listing with only procedure headings
   For example:    IMP(ARRAY,NOASSIGN,BRIEF)   pgm1/,t:
+Fortran77
This command is not generally available yet.
+Pascal
This command is not generally available yet.
+run
&running programs
&running programmes
&execute
&executing programmes
&executing programs
&do
Programs are run by giving a command of the form:
      PROG ...............
which causes the file "PROG.EXE" to be loaded and run.
The interpretation of the remainder for the line (.......) is
dependent on the options set in the object file (PROG.EXE);
By default the interpretation is the the line is either of the form:-      
             (parameter) <stream definition>
 or:-        <stream definition>
         or:-        -parameter
The parameter (or the null string) is made available to the program and the
required streams are set up.
Input stream 1 and output stream 1 are selected before the program is entered.
See also:   Help Streams     Help Set
            Help Option      Help Files
+STOP
&Stopping
&logging off
&finishing
&QUIT
&quitting
&BYE
The command STOP stops the process and logs the user off.
All temporary and volatile files are deleted.
However, if this command is given from within a command file,
see HELP COMMAND FILE, the effect is simply to terminate the execution of that
file. Subsequent commands are taken from the user's terminal.
+FILES
&Files
&DIRECTORY
&index
The format of the FILES command is:
      FILES            - for a listing of the names of all of your own files
      FILES fred:      - for a listing of another user's files.

The command produces the listing in alphabetical order in several columns across
the page. The output produced may be altered (with both of the above forms), by
appending a '!' or '?' to the command, as shown below:
   FILES!  or  FILES fred: !  - An extended listing is produced, one file
                                per line, with additional information.
   FILES?  or  FILES jim: ?   - A '2-D' listing: filenames vertically,
                                with extensions horizontally.
A star (*) may be used as a wild-card to select the owner, filename or
extension for all the files which match the rest of the parameter.
E.g. Files *.imp  will list the names of all of the files in the current
directory with the extension .imp;  Files  *:RULES.*  will list the names of all
the files in the whole file system with filename RULES and any extension.

See also:      Help Fileinfo      Help Filenames    Help Temporary files
+FILEINFO
A FILE is an ordered collection of data bytes (8 bit quantities).
The interpretation of these bytes is totally dependant on the program
using the file; the system imposes no restrictions on the contents of files.
See also:      Help Creating files      Help Editing
               Help Delete              Help Rename
               Help Files               Help Dump
               Help Filenames           Help Directory
+MAIL
&Messages
&MESSAGE
Text messages may be sent between users.  (See HELP TELL). If a message is
received while a user is logged on, the line "***ACOUNT: mail from ???" will be
displayed on the recipient's console. (Where "???" is the sender's username).
   Messages sent to users when they are not logged on are queued up. When the
user next logs on a the message "You have new mail" will be displayed on the
console.
   Mail sent at any time may be read by giving the command MAIL. The program
steps through all pending messages.  Once a message has been read it may be
deleted.  If it is not deleted it will continue to appear when the MAIL program
is run in future.
   Two variants of the MAIL command are provided.

MAIL?      -   This simply displays the number of queued messages
MAIL!      -   This shows when and from whom any pending messages were sent.

+TELL
&SEND
&NOTIFY
The command TELL may be used to send messages to other users.
            Command: TELL username      e.g.  TELL ALAN  or  TELL THU5
The user is then invited to type a message in on the console.  No prompt is
issued for the lines of the message.  When the entire message has been typed
the program is stopped by typing Ctrl+D.

To mark a message as being about a particular subject, use:
            Command: TELL(subject) username   e.g. TELL(bug report) FRED

To send files to other users, the full form of the TELL command is:
            Command: TELL(subject) file / username
      e.g.  Command: tell(compiler bug) testprog / IMPD
        or  Command: tell /fred:   {file defaults to T:, the user's console,
                                    colons in usernames are optional}
For very short messages consisting only of a 'subject' line that the user
wishes broadcast immediately to the recipient's console rather than being
queued as normal mail, use:
   Command: TELL(up to 19 chars) username!  e.g. TELL(coffee time?) fred!
+FILENAME
&Filenames
&file
&NAME
In general filenames take the form:      UNIT_OWNER:FILE.EXT
where:  UNIT    is the name of the disc unit on which the file resides
        OWNER   is the name of the owning process
        FILE    is the file name, which comprises a letter or a dollar
                optionally followed by up to seven letters or digits.
        EXT     is an optional extension of up to 3 letters or digits.

Within filenames lower case letters are treated as upper case. If the UNIT is
not specified all available units are searched until the specified OWNER is
discovered. If the OWNER is not specified the current user is assumed. On
creation the system marks files as being volatile by following the name with a
hash(#). Only when the file is closed will the file be renamed properly and any
old version deleted. Filenames starting with a dollar are considered temporary.
Temporary and volatile files are deleted when the process logs off, or the
command PURGE is given.
Examples of filenames:          DATA                      NEWS.TXT
                                PETER:prog.IMP            SYSTEM:NEWS
                                arch_system:help.txt      ARCH_PETER:VERSION1
                                $program.tst
+Ctrl
&Ctrl+
&Control
&Control characters
&Control Character
The notation  Ctrl+A  is used to specify characters generated at the terminal
by typing the letter specified (in this case A) while holding down the
CONTROL shift key (commonly marked CTRL).
E.g. Ctrl+X is generated by holding down CTRL and typing X.
+rename
&newname
&change
   The command RENAME may be used to change the name of a file.
The form of the command is:   RENAME oldname/newname
The command will fail with an error message if file NEWNAME already exists.
Wildcards may be used: 
   Command: rename *.imp/*.old           All .IMP files become .OLD files
   Command: rename xxx.imp/yyy.*         XXX.IMP renamed YYY.IMP
+CONSOLE
&Keyboard
&console conventions
&TT
&T
&TTY
&input
&terminal
Information about the special characters which are used to control the operation
of interactive terminals may be obtained by giving the command 
HELP special-character, where 'special-character' is one of the following
mnemonics:  Backspace     BS           CAN         Cancel
            CR            Ctrl+D       Ctrl+E      Ctrl+G
            Ctrl+N        Ctrl+O       Ctrl+P      Ctrl+Q
            Ctrl+R        Ctrl+S       Ctrl+T      Ctrl+X
            DC1           DC2          DC3         DC4
            DEL           DLE          ESC         Escape
            LF            Line feed    Return      SI
            SO            TAB
+Copy
&copying files
&C
&transfer
The command COPY may be used to copy any input stream to any output stream. 
Data from a second input stream, if specified, will be concatenated onto the end
of the output stream.
The command takes the form:
      COPY input1,input2/output

The files take defaults as follows:
              input1 = T:       the user's terminal
              input2 = N:       the null file
              output = T:       the user's terminal

Examples:    Copy file1/file2
             Copy heading,letter/final
             Copy t:/newfile

+Be
&become
&change hats
The system allows a user to pretend to be logged on as a different user. This
is useful if a lot of work is to be done in a short period on another user's
files.  The command:  BECOME Fred  will prompt you for Fred's  password (which
is not echoed).  Subsequently all unqualified filenames refer to files in
FRED's directory.  Your own files may be referred to by using the "USER:file"
notation.   To remind you of the changed state of the process, the subsystem
command prompt becomes the appropriate username.  In the example, the prompt
would change to "Fred:".  The STATE command will indicate the directory
currently in use at any time. 
The command:  BECOME  with no username parameter specified will return the
process to its 'home' directory.  The command prompt is restored to its
original value.
The form:  BECOME user,pass  may be used for brevity. 

+line printer
&lp:
&lp
&printer
Any output files specified as having the owner LP: will be offered to the
printer spooler when the file is closed.
e.g.       COPY FRED.IMP/LP:OUTPUT.XXX
will send a copy of the file "FRED.IMP" to the printer and label it
           "OUTPUT.XXX".
If no name is required on the output the form "LP:" may be used.
      e.g. COPY FRED.IMP/LP:

A file may be sent to the printer without copying (resulting in the file being
deleted) by offering the file to the printer using the command OFFER.
 e.g.      OFFER FRED.IMP/LP:OUTPUT.XXX
+paper tape punch
&pp:
&pp
&punch
&paper punch
&paper tape
Files may be sent to the paper tape punch in a manner analogous to that from
sending files to the printer; see HELP LP.
   e.g.   COPY FILE/PP:FILE
          OFFER TAPE.TMP/PP:OUT.ABC
+stream
&Streams
&environment
&Logical units
The environment for a program may be specified in the command which invokes the
program. This is done using a stream specification of the form:
   INPUT1,INPUT2,INPUT3/OUTPUT1,OUTPUT2,OUTPUT3
where INPUTx defines input stream 'x' and OUTPUTx defines output stream 'x'.
If any of the streams is not specified the default stream assignment is taken.
The defaults are:  T:, Null:, Null: / T:, Null:, Null: 
+PASSWORD
&PASS
The user's password may be changed by a command of the form:
      SET PASSWORD=<new password>
<new password> is any sequence of up to 6 letters or digits starting with a
letter.
   e.g.   SET PASSWORD=SECRET
+delete
&destroy
&remove
&del
&purge
&kill
&deleting files
&destroying files
&removing files
The command:      DELETE <file name list>
where <file name list> is a list of file names separated by commas, can be used
to delete unwanted files. If the command is given as DELETE *, a prompt is
given for every file in the owner's index. A reply of YES causes the file to be
deleted, any other reply leaves the file alone.
The command PURGE may be used to delete temporary and volatile files.
+null
&Null:
&n:
&n
&null stream
&null file
&null input
&null output
&Drain
&Sink
The null file is represented by N: or Null:. On input it immediately signals
end-of-file, and any output sent to it is discarded.
+ESC
&Escape
&BEL
&Ctrl+G
ESC and BEL (Ctrl+G) are equivalent.  Both signal to the system that the user
wants to interrupt the currently executing program, either to halt it or to
convey some information to it asynchronously.  The system responds to ESC by
prompting "Int:" at the start of a new line.  See "Help int" for details of
the valid replies to this prompt.  (The normal reply is "." full stop followed
by carriage return, which aborts the currently executing program).
+interrupt
&Interrupts
&int
&Break
The replies to the prompt Int: (see HELP ESC) are normally made available to
a process in the external string variable Console Int.
However several of the replies are reserved  for use  by the system. These are:
      Int:.         (Int full stop)
                    Terminates the running program and returns the process to
                    command level.
      Int:?         (Int question mark)
                    Terminates the running program and invokes the run-time
                    monitor to produce diagnostics (if they are available).
      Int:!         (Int exclamation mark) 
                    For convenience this interrupt may be generated by striking
                    the escape key (<esc>) twice in which case no <return> is
                    necessary. It has the normal significance of any other
                    interrupt, except that it is used in the editor to force the
                    command currently being executed to fail, and hence request
                    another command.
+option
&Options
&command interpretation
The command OPTION may be used to modify the interpretation of the command line
associated with the execution of an object file.
The command takes the form:  OPTION(<option list>) FILE
where FILE is the name of an EXE file (i.e. .EXE assumed).
The current options are:

     Decode              Open              Upper          Spaces 
   NoDecode            NoOpen            NoUpper        NoSpaces
     Stack=              Time=

See also:  Help Option_Decode         Help Option_Open
           Help Option_Upper          Help Option_Spaces
           Help Option_Stack=         Help Option_Time=
+Option_Upper
&Option_NoUpper
The UPPER option causes all lower-case letters in the command parameter
to be converted to their upper-case equivalents.
NOUPPER causes letters to be left as typed.
+Option_Spaces
&Option_nospaces
The NOSPACES option causes all spaces to be removed from the command parameter.
SPACES causes the spaces to be retained.
+Option_Decode
&Option_nodecode
DECODE specifies that the command line is to be interpreted by the usual syntax
rules.
NODECODE specifies that the remainder of the command line is to be passed to the
program as a parameter.
+Option_Open
&Option_noopen
OPEN specifies that the files in the stream definition part of the command are
to be opened before the program is entered.
NOOPEN results in the stream definition part being decoded but the files
will not be opened before the program is entered.
The OPEN option is ignored if NODECODE is selected.
+Option_Stack=
&Option_Stack
The stack option is used to control the size of workspace made available
to a command.
If NN is positive it specifies the minimum size of stack (work area) required by
the program. If the value specified by a previous SET-STACK= command is greater,
that value will be used.
If NN is negative its absolute value represents the exact size of stack
required, regardless of the value defined by a SET-STACK= command.
NN is specified in Kilobytes.
+Option_Time=
&Option_Time
The Time option is used to control the total execution time allowed for the
command. NN specifies the time limit (in seconds) to be imposed on the program.
If NN is negative its absolute value represents the time limit in seconds
which overrides any SET TIME= command currently in effect.
If NN is positive it specifies a minimum time limit which will be extended to
the current value of SET TIME= if necessary.
+SET
&Prompts
&prompt
&cpulimit
&cpu
&stack
&width
&time
&space
&timelimit
The command SET may be used to set various system parameters. The form
of the command is:
          SET <value list>
where <value list> is a list of value settings separated by commas.
The current parameters are:
   Time=         Stack=    Password=    Width=   Errorfile=
   Timelimit=    TAB=      Tabs         Quick    Dump
   Monitor       Verify    Prompt=

See Also:   Help Set_Time      Help Set_Stack      Help Set_Password
            Help Set_Width     Help Set_Tab        Help Set_Tabs
            Help Set_Quick     Help Set_Dump       Help Set_Errorfile
            Help Set_Monitor   Help Set_Verify     Help Set_Prompt
+Set_Prompt
The command: Set Prompt=....
causes the system to use the string "..." as the prompt it issues when
asking for a command line from a terminal.  (The default prompt is
"Command:").  The command "BE" also changes the command prompt, see
Help Be
+Set_Quick
&Set_Noquick
&Quick
&Noquick
The command: Set Quick causes subsequent external references to be
satisfied by examining the standard subsystem first, with the
files in the library list being examined last.
The command: Set NoQuick causes the library list to be examined first,
with the standard subsystem being searched last.
Note that in general the NoQuick option will slow down the loading
of most system-provided commands and programs.
See also:   Help Lib
+Set_Dump
The command: Set Dump   enables a dump of register contents and the code area
about the failing instruction on a contingency. This facility is usually only
of interrest to fairly experienced programmers. 
The command: Set NoDump disables the dump.
+Set_Monitor
The command: Set Monitor  causes each command execution to be followed by a
report of the time of day and the processor time used by the last command (or
since the previous Set NoDump command).
The command: Set NoMonitor  disables the facility.
+Set_Errorfile
&Errorfile
&Errorfile=
&SET_Errorfile=
The command: Set Errorfile=filename  causes subsequent diagnostic output to be
sent to the nominated file. A message is sent to the terminal whenever such
output is generated.
Giving a null filename (i.e. SET ERRORFILE= ) causes diagnostic output
to be sent to the terminal.  This is the default case.
+Set_Verify
The command: Set Verify  causes command lines to be echoed onto the report
stream after being expanded (for aliases etc.). This is useful when command
files are being obeyed.
The command: Set NoVerify inhibits the echoing. Note that for interactive users
Set NoVerify is the default while for Batch jobs Set Verify is the Default.
+Set_Time
&Set_Time=
&Set_Timelimit=
&Set_Timelimit
Set Timelimit=nnn  sets the program execution time limit to nnn seconds.
                   (default=30 seconds).
                   TIMELIMIT may be abbreviated to TIME.
This setting may be overridden for any particular command by use of
the Option(TIME=...)  command.
The command SET TIME=? will cause the current value of the time limit
to be output.

See also:   Help Option      Help Option_Time=
+set_Stack
&Set_Stack=
Set STACK=nn       sets the stack size to nnK bytes (default=60K bytes).
This setting may be overridden for any particular command by use of the
Option(STACK=...) command.
The command SET STACK=? will cause the current value of the stack size
to be output.

See also:   help Option      help Option_Stack=
+Set_Password
&Set_Pass
Set PASSWORD=pppppp    makes "pppppp" the user's password.
+Set_Width
&Set_Width=
Set WIDTH=nnn          sets the terminal output line limit to nnn characters
                       (default=72).
Lines longer than this will be broken on output after each nnn characters.
Set Width=0   inhibits any such extra line-breaks in terminal output.
+Set_Tab
Set TAB=a+b+c...       Defines up to 10 tab stops incrementally.
                       I.e. the first tab stop is at column a,
                            the second is at column a+b,  etc.
Initially the tab stops are set by:  Set TAB=3+3+3+3+3+3+3+3+3+3
The interpretation of TAB on input is furthur controlled by the
SET TABS and SET NOTABS commands.

See also:   Help Set      Help Set_Tabs
+Set_Tabs
&Set_Tab
&Set_NoTab
&Set_NoTabs
Set TABS               Enables tab stops. On input from the keyboard
                       Tab will be converted into as many spaces (at least one)
                       as necessary to move to the next tab stop as defined
                       by SET Tab=....
                       Once the 10'th tab stop has been reached each TAB will
                       be converted into 3 spaces.
Set NOTABS             Disables tab stops. On input, the TAB character
                       will be replaced by three spaces.

See also:   Help Set      Help Set_Tab
+topic
The parameter to help should be the name of a command or a particular topic for
which information is required.
+PERMIT
&Permissions
&permission
&access
The command: PERMIT FILE=<permissions> may be used to alter the accessibility of
the specified file. Each user of the system has a set of access rights given by
the system manager; the rights are denoted by the letters A-H. Access to other
users' files is only permitted if that file has been given any permission
corresponding to the rights of the requesting user. In order to prevent
inadvertent destruction of files, the user must give files the permission D
before they may be deleted. Access to directories may be given by giving
DIRECTORY in place of a file name.  E.g.
      PERMIT DATA.1=ABC
      PERMIT DATA.2=D
      PERMIT DIRECTORY=G
The commands STATE, FILES, and ANALYSE may be used to discover the current
settings of access rights and directory and file permissions.

See also:   Help Files      Help Analyse      Help State
+OFFER
&SEND
&GIVE
&Spooling
A file may be sent to a queue for future processing by giving a command
of the form:     OFFER FILE/QUEUE:NEWNAME
The queues which are currently available are:
                 LP:       - the line-printer queue.
                 PP:       - the paper-tape punch queue.
                 BATCH:    - the batch (background) job queue.

The file will be destroyed when the queue server takes the file.

For example:   OFFER BOOK.TXT/LP:BOOK  sends the file BOOK.TXT to
                                       the line-printer.
+OS32MT
&OS-32MT
&OS32-MT
&EMULATE
&EMULATOR
&FORTRAN
&BASIC
 The command OS32MT may be used to enter the OS-32MT emulator.   The commands
so made available are:
   BASIC
   CAL
   COBOL   (not yet implemented)
   FORTGO  (compile and go Fortran 5)
   FORTRAN (compile and assemble FORTRAN 5)
   LINK    (build store image 'task')
   TET     (gives direct access to TET)
   RUN
   SET     (modify emulator parameters e.g. time, store, i/o streams etc)
   STOP    (return to standard subsystem)
This utility can also run off-line work prefixed by //OS32 instead of the
standard //JOB card.
For further details:  COPY OS32:DOCUMENT.
+TAB
Tab stops may be set using the command: SET TAB=a+b+c+d......
where a, b, c, d.... are increments in spaces from the previous tab stop
(initially 0).
 e.g. SET TAB=6+4+4  sets tabs at columns 6, 10 and 14.
There are 10 tab stops in all; any not specified are filled in
increments of 3. Once the final tab stop has been passed the tab key
acts as three spaces.
 Before the tab settings may be used the feature must be enabled by the
command: SET TABS. The feature is disabled by the command: SET NOTABS
after which the TAB character will cause three spaces to be input  (the
default condition).
+list
&listing
A line-numbered listing of a source file may be produced by
giving the command:   LIST filename
By default the listing is sent to the printer.
In the near future the command will accept a parameter
containing a list of directives:-
   lines=????       to set the number of lines on a page
   width=????       to set the number of characters on a line
   columns=???      to set the number of columns to be printed.

The default settings are (lines=60,width=120, columns=1)
+CLEAN
The CLEAN command causes the system to prompt the user with the name of
each file in the users' directory.  A null reply (just typing RETURN)
moves on to the next file.  A set of commands are available within CLEAN
to delete, rename etc. the current file. To start the program, just
type:
                  CLEAN
   Information about the commands available is available within the
program, by typing HELP in reponse to its prompt.
   If a user has access to another's directory, it may be CLEANed using
the following form of the command:
                  CLEAN   (username )
   After CLEANing, the user is automatically returned to his home
directory.
   Appending a '!' to either form of command will cause CLEAN to output
extra information about the physical placement of files on the disc.
Examples:         CLEAN                  clean out home directory
                  CLEAN (EXTN_ENGINR)    clean another users' directory
                  CLEAN!                 clean with extra info
                  CLEAN (FRED)!          poke elsewhere
+Link
&Linking
&tet
&tasks
Mouses supports dynamic linking, that is references to an external
subroutine are only satisfied when it is called for the first time.
At this point the loader automatically searches a list of object files
defined by the LIB command for the procedure.  (If it is not found, an
event is signalled).
See also: Help Lib
          Help Compiling
          Help Run
          Help Events
+Library
&lib
&libraries
&external routines
&externals
&External
The LIB command is used to maintain a list of up to seven program files
containing external extry points. When the loader receives a request for
an external object this list is searched in order. If the entry is not
found the current subsystem procedures are checked.
The command has three forms:
   1:   Lib .none              - this clears the list
   2:   Lib                    - this prints the current list of files
   3:   Lib item-list          - this inserts or removes items.

Item-list is a list of items separated by commas, where each item is:
    File   in which case FILE.EXE is added to the list,
or -File   in which case FILE.EXE is removed from the list (if possible)

Whenever an item is added to the list it is added at the end, and any
duplicates are removed. In this way the library list may be reordered.

   E.G.   Lib Maths,Hypers,-testlib
+Let
&Alias
&assign
&Abbreviation
&Abbreviations
Abbreviations for commands may be defined using the LET command.
e.g.      Let F=Files
Once an abbreviation has been defined its occurrence in the command-verb
position of a command line results in the expansion being used.
e.g. Given the definition of F above, the command line:  F System:
will result in the execution of the command: Files System:
Abbreviations may be redefined at any time, and may be removed
by assigning a null definition e.g.  Let F=
Note that the definition is never expanded furthur so that the following
sequence will swop the definitions of the commands A and B:
   Let A=B
   Let B=A
The form:   LET Abbr   will display the expansion of the abbreviation Abbr
while:      LET        will display the expansions of all abbreviations.
An abbreviation embedded in a command line is expanded if prefixed by '@'.
e.g. Command: let L=$longfile
     Command: copy @L/Lp:@L  =>  copy $longfile/lp:$longfile
+Command Files
&Command File
&Css
&Css Files
&Css File
A file of commands may be executed by giving the file the extension .COM
and giving the filename (without the .COM) as a command verb.
E.g. Assume a file SHOW.COM contains:
Files
Lib
Let
The command: SHOW will cause the three commands FILES, LIB and LET to be
executed in order.
A command file may be given parameters: a list of strings separated by
commas. Within the command file each string may be referred to by '@n'
where 'n' is the position in the list of the required parameter. E.g.  
SHOW User, P   will result in @1 being the four characters User, and @2
being the character P. By convention @0 is always replaced by the
nesting level of command files, i.e. the first command file has @0 as 1,
any command file invoked from within the first will have @0 as 2, and so
on. The order of execution of the commands in a command file may be
controlled by special directives. See Help Sequence Control
+Sequence Control
Looping and branching is available within command files,  see:

   Help $IF      Help $ELSE      Help $FINISH      Help $EXIT
   Help $UNLESS  Help $LABEL     Help $GOTO        Help comments

+comments
Comment lines prefixed with an exclamation mark "!" are permitted within
command files.  They are ignored.
+$IF
Inside a command file the $IF command may be used to select one of two
alternative command sequences. If the condition following $IF is
satisfied the group of statements up to the matching $ELSE or $FINISH is
executed. If $ELSE is found the statements following it up to the
matching $FINISH will be executed.
 If the condition is not satisfied the statements up to the matching
$ELSE or $FINISH are skipped and then statements after an $ELSE are
executed.
 There are two forms of condition:
   1:   EXISTS Filename    - this is satisfied if the file exists.
   2:   string .EQ. string - this is satisfied if the two strings
                             are identical ignoring case dictinctions.

E.g.   $IF exists Data.txt
       $IF @1 .EQ. do it all
+$UNLESS
This is the same as $IF except that the condition is inverted.
+$ELSE
See $IF
+$FINISH
See $IF
+$EXIT
This causes the command file to terminate immediately.
+$LABEL
$LABEL tag   causes the character string 'tag' to identify the current
             point in the command file.
See also HELP $GOTO
Jumping to a label outwith the current command file is not allowed.
Label tags are shared between all command files and nesting levels.  To
generate unique labels within recursive command files add '@0' as a suffix
to the label.  This is expanded as the current nesting level and will make
the labels unique.

Example:     $Label top
                Printstring Hello
                !In an infinite loop
             $goto top
+$GOTO
$GOTO tag    causes control to be transferred to the point in the command
             file identified by the character string 'tag'.
See also HELP $LABEL
+Events
&Errors
&Event
&Subsystem events
The following events are signalled by the subsystem:
Event   Subevent  Extra
  3         1       Sym     Symbol Sym in numeric data (from READ)
  5         5       Type    Illegal type of parameter to READ
  8         8               Load fails (cannot find an external subroutine)
  9         1               Input Ended  (end of file encountered)
  9         2       St      Illegal stream St
  9         3       St      Illegal Direct Access Channel
  9         4               Invalid filename in OPEN
  9        10       N       Director Error N
 10         1               Pack fails -- illegal filename
 10         2               Rename fails
 10         3               Create fails
 10         4               Entry to file of externals
+Dump
&Filedump
The command DUMP may be used to examine the contents of files.
The general form of the command is:   DUMP(parameters) Filename/Output
Where 'parameters' is a list of items of the form:
   HEX            - the dump is wanted in hexadecimal
   OCTAL          - the dump is wanted in octal
   ASCII          - the dump is wanted interpreted as being ASCII characters
   EBCDIC         - the dump is wanted interpreted as being EBCDIC characters
   PAGED          - the output is to be paginated
   PAGE=n         - each output page contains 'n' lines
   WIDTH=n        - each output line can hold 'n' characters
   DISC=dev       - dev specifies a unit which is to be dumped
   n..m           - dump blocks 'n' to 'm' inclusive
   ..m            - dump blocks 0 to 'm' inclusive
   n..            - dump from block 'n'
   n              - dump block 'n'
If the command is followed by an exclamation mark, each line of the dump
will be followed by the interpretation of each byte as an ASCII character.
Similarly, following the command with a question mark will cause interpretation
of each halfword as a "packed" 3-character string.
For Example:   DUMP(HEX,1..5) Testfile
+God
&god almighty
&jesus
Please apply to deities directly, not via MOUSES.
+Love
&Sex
MOUSES, being of neutral gender, can offer no advice on this subject.
+Buses
What is this that roareth thus?
Can it be a Motor Bus?
Yes, the smell and hideous hum
Indicat Motorem Bum...
How shall wretches live like us
Cinci bis Motoribus
Domine, defende nos
Contra hos Motores Bos!
+SVCs
&SVC
&SVC list
This is a short summary of the parameters taken by and the general effect of
the supervisor calls (SVCs) supported by the MOUSES supervisor.
SVCs with numbers greater than 100 may only be executed by a privileged
process.

   1  - stop
   2  - prompt flags<p1> text<sp2>
   3  - console input
   4  - console output text<sp1>
   5  - locate process id<p1>
   6  - kill i/o
   7  - date & time  -> date<sp1> time<sp4>
   8  - create segment size<p2> seg<p3>
   9  - destroy segment n<p1>
  10  - load file
  11  - segment info seg<p1>
  12  - performance info
  13  - unpack date
  14  - get proc info proc<p1> -> powner<p1>,cputime<p2>, store<p3>,
                                  uptime<p6>
  15  - load file
  16  - poff   sact = reply wanted (0 = any)
  17  - pack   file<sp1> -> p1,p2,p3<owner>
  18  - unpack p1,p2,p3<owner> -> file<sp1>
  19  - info seconds<p1> users<p2> cpu<p3>
             date<p4> owner<p5> version<p6>
  20  - to director & wait
  21  - set time limit <p1> seconds from now
  22  - message to potter
  23  - wake after p1 .01 secs.
  24  - stack contingency vector<p1>
  25  - unstack contingency to<p1>
  26  - fire contingency weight<p1> at<p2>
  27  - resume from contingency vector<p1> repeat<p2>
  28  - info 2 users<p1> clevel<p2> console<p3> priv<p4>
  29  - set param<p1> value<p2>
  30  - validate addr<p1> size<p2>
  31  - detach process
  32  - protect segment<p1>
  33  - delete segs<p1>
  34  - pack date <sp1> -> <p1>
  35  - unpack time <p1> -> <sp1>
  36  - user message to account
  37  - priv
 101  - disc read discaddr<p1> storeaddr<p2> disc<p3> process<p4>
 102  - disc write     ""            ""       ""         ""
 103  - set swop disc
 104  - operator message
 105  - MT operation
 106  - read segment
 107  - write segment
 108  - disc status unit<p3>
 109  - start process console<p1> owner<p2> disc<p3>
                      pass<p4>file<p5> reason<p6>
 110  - get resident buffer
 111  - lp demon
 112  - pt demon
 113  - broadcast
 114  - get unit no
 115  - pon (no wait)
 116  - pon
 117  - read real <p1>
 118  - write real addr<p1> value<p2>
 119  - define potter
 120  - tell process<p1> text<p2>
 121  - inhibit service<p1>
 122  - uninhibit service<p1>
 123  - boot  dev<p1> restart<p2>
 124  - privilege process<p1> priv<p2>
 125  - hazard/protect dev<p1> prot<p2>
 126  - stop process<p1>
 127  - lk demon
 128  - define accountant
 129  - resume & time out
 130  - CR demon
 131  - SHUTDOWN process P1
 132  - claim terminal P1
+Yourself
Thank you.
+42
Tricky!
+Reincarnation
First, drop dead,
Then,  it's all up to you.
+$
