********************************************************************************
**                                                                            **
**    EEEEEE                           SSSS    tt                     tt      **
**    EE                              SS  SS   tt                     tt      **
**    EE       aaaa    ssss   yy  yy  SSS     ttttt   aaaa   rrrrr   ttttt    **
**    EEEE        aa  ss      yy  yy   SSSS    tt        aa  rr  rr   tt      **
**    EE       aaaaa   ssss   yy  yy     SSS   tt     aaaaa  rr       tt      **
**    EE      aa  aa      ss   yyyy   SS  SS   tt    aa  aa  rr       tt      **
**    EEEEEE   aaaaa  sssss     yy     SSSS     ttt   aaaaa  rr        ttt    **
**                             yy                                             **
**                                                                            **
********************************************************************************


EasyStart v1.12  8/1992 by Andreas Krebs (released at 08-Aug-92)


Index:
======

A list with all parts of the chapters is located in the file "Index", therefore
this list only contains the chapters itself. The following chapters are
described in this documentation:

1. Introduction

2. The ESConfig-program
3. The GroupEdit-subprogram
4. The ItemEdit-subprogram
5. The 'Key combinations'-subprogram
6. The ItemFunc-subprogram
7. The ESPrefs-subprogram
8. The 'Set command keys'-subprogram

9. The MasterProcess

10. Der PopMenu-Task
11. The PopScreen-task
12. The WBMenu-task
13. The WBButtons-task
14. The FuncKeys-task
15. The ARexx-task
16. The KeyList-task

17. The 'Command line'-window
18. The AwakeES-program

19. Appendix
20. Address of the author


In the chapters 2 to 8 the ESConfig-program is discused, and explains detailed
how to create your own personal configuration file.
In chapter 9 the MasterProcess, the main part of EasyStart, is discribed.
Each of the chapters 10 to 16 describes one of the Start-tasks, which allow you
to start other programs.
In chapter 17 finally the 'Command line'-window is described.



1. Introduction:
================

1.1 About EasyStart:
~~~~~~~~~~~~~~~~~~~~
EasyStart is, as it's name says, a program to simplyfy the starting of other
programs, by doing almost all work for you. But EasyStart not only starts this
programs it also allows you to start this programs with a lot of options and
in many different ways.

In short some of EasyStart's powerful functions:

   - start programs with a popup-menu
   - start programs with a popup-screen
   - start programs with menu items in the WorkBench-menu
   - start programs with a window containing gadgets
   - start programs with key combinations
   - start programs with ARexx-commands

   - a very comfortable configuration program
   - simply control of all function with gadgets or key combinations
   - a list with all key combinations built in
   - start programs as a CLI-command
   - start programs as a WorkBench-process
   - command line for CLI- and WorkBench-programs
   - use active (selected) icons as parameters for programs

   and much more.


EasyStart itself is totally written in assembler and therefore it is very
compact and needs little memory and CPU time.
The configuration program "ESConfig" is written in C and therefore it is with a
size of more than 40 kbyte much larger than EasyStart itself, but this doesn't
matter because in difference to EasyStart the config program is only used
occasional and can be loaded when needed.


1.2 Hardware requirements:
~~~~~~~~~~~~~~~~~~~~~~~~~~
EasyStart runs on all Amigas with KickStart 1.2 or higher. EasyStart only needs
between 30 and 70 kbyte of memory, depending on the size of the config-file and
the status of EasyStart.
EasyStart it totally compatible with KickStart and WorkBench 2.0 and acts
exactly the same under 1.3 and 2.0, except of two functions, that are not
present under 1.3 (see chapter 6.3.6 and 6.13).

Some of EasyStart's functions require an open WorkBench-screen, therfore you
should only use EasyStart after the 'LoadWB'-command and while the WorkBench is
open, if you want to use all of EasyStart's functions.
Espescially if you want to use the WBMenu-task (see chapter 12), because this
task may crash your Amiga if the WorkBench-Screen is missing.


1.3 Installation of EasyStart:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The installation of EasyStart is very simple, all you have to do, is copying
the directory with EasyStart on your harddisk or disk, because all needed files
are in this directory.
So click on the icon of the EasyStart directory, keep left mouse button
pressed, move the icon into the destination directory and release the mouse
button. READY
Or if you prefer to do it from CLI:
Place EasyStart disk into the first internal drive and type in the following:
  copy df0:EasyStart <destination> ALL [RETURN]

If you insert EasyStart into your "startup-sequence", make sure that EasyStart
is placed after the "LoadWB"-command and is only startet with the WorkBench
already open.
Suppose you've installed EasyStart in the directory "DH0:EasyStart", so you
have to add the line "DH0:EasyStart/EasyStart" somewhere behind the "LoadWB"-
command and now each time you start your Amiga EasyStart is automatically
loaded. Additional commands like "RUN", "ASSIGN" or stuff like that is not
necessary, cause all needed files are in the same directory as EasyStart.

If you're using WorkBench 2.0 or higher, you can copy the AwakeES-program to
the "WBstartup" directory of your WorkBench and change the "COMMAND=" tooltype
as needed (see chapter 18.3). In this case you don't have to change the
"startup-sequence" and it's guaranteed that EasyStart is only then started,
when the WorkBench is opened.

1.4 Starting EasyStart:
~~~~~~~~~~~~~~~~~~~~~~~
You can start EasyStart in three different ways, first from the WorkBench by
a double click on EasyStart's icons, or secondly from the CLI. If you start
EasyStart from the CLI, you have to type in the full path.
Suppose you've installed EasyStart in the directory "DH0:EasyStart", so you
have to type in "DH0:EasyStart/EasyStart" or EasyStart won't be able to find
the files it needs.
It's also possible to change the current direcotry and than start EasyStart,
in this case you'd have to type in "CD DH0:EasyStart" and afterwards type in
"EasyStart" to start EasyStart.
It's NOT enough to add the path to the path list by "PATH ADD", cause in this
case EasyStart will be found, but EasyStart won't know where it's located and
so it won't be able to find the files it needs.
The third way to start EasyStart is by starting the AwakeES-programm (see
chapter 18), cause this program normally tries to open the MasterProcess-
Window (see chapter 9), but if EasyStart isn't started, AwakeES starts it
automatically.

1.5 How EasyStart works:
~~~~~~~~~~~~~~~~~~~~~~~~
This section contains some details about EasyStart and how it works.
EasyStart consists not of one program, but of a number of different "programs".
This programs cooperate perfectly, so that you as user normally won't notice
the single programs.
The "most important program" is the so called MasterProcess, it's a Process
that is created and started by the program EasyStart. EasyStart also provides
some important informations for the MasterProcess. Sometimes the MasterProcess
is called MasterTask, because as process he is also a task.
After starting the MasterProcess the program EasyStart finishes it's work, this
is the reason why you don't need the "RUN"-command when you start EasyStart
from the CLI, cause EasyStart returns almost immediatly to the CLI.

In the following the word EasyStart stands not for the program, which is
already finished, but for the MasterProcess and all other Tasks as a unity,
when it's not necessary to emphasize which task is meant.

The MasterProcess is the heart of EasyStart, cause he does the most important
thing starting programs, and that's what EasyStart is for. Beyond that the
MasterProcess is controlling the other tasks. But without the other tasks the
MasterProcess would be useless, cause he is indeed able to start programs, but
he offers no possiblity to user to select a program to start, except to the
tasks.
At this point the 6 tasks are needed, cause they allow the user to select which
programs the MasterProcess should start, whereas each tasks stands for one
special way of selecting a program. The tasks alone could not exist, cause they
need a special enviroment to "live in" and this enviroment provides the
MasterProcess by sending informations and datas to this tasks.

Besides this 6 tasks another task is existing, but this task is not able to
start a program. He only displays a list of all key combination, so that you
don't have to learn all this combinations by heart. This task also depends on
the MasterProcess.


Probably you'll now ask, why all this expense with tasks and process ?

Well, think all tasks are a single program, in this case each program would
need the complete starting-routine and a lot of other routines, which would
lead to a much higher consumption of memory and CPU-time.

Of course you could now take the view that it'll be easier combine the
MasterProcess and the tasks into a single program, so that there is no need for
double routines. This problem would be solved, but a new one is created, cause
now always the whole program is loaded into memory and so all routines
regardless if they are needed or not, which would again lead to a higher
memory consumption.
Beyond that the multi tasking would be affected, cause now only one of the
earlier tasks could be used at one time, whereas all the others can't be used.


If you haven't understood everything in this section, this doesn't matter. The
most important you have to remember is, that EasyStart consists of a Master-
Process and several tasks with some functions. All other things you have to
know are explained later in details.



2. The ESConfig-program:
========================

In this chapter the ESConfig-program is explained, which is used to create a so
called config-file. This file contains all informations about the programs
EasyStart is able to start. Therefore you should first create a config-file
before starting EasyStart.
The config-file has the name "ES-Configuration" and is located in the same
directory as EasyStart and ESConfig. EasyStart automatically loads this file
when started, therefore this file has to be in the same directory as EasyStart.

You can start ESConfig from WorkBench by a double click on it's icon, or direct
from the MasterProcess (see chapter 9.10).
After the start ESConfig opens a screen containing the main window. You're now
in the main program, which provides you the following gadgets on the main
window (from top to bottom).


2.1 The Screen-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~
This gadgets are located in the free line above the main window and are the
standard screen-gadgets, each screen contains. A drag-gadget to move the screen
and two resp. one (under KickStart 2.0) depth-gadget to place the screen into
the foreground or background.
For the main window starting in the second line, this gadgets are almost
covered, but the one line is enough to use them.


2.2 The Close-gadget:
~~~~~~~~~~~~~~~~~~~~~
This gadget is place in the left top corner and is used to quit ESConfig. If
you've changed the config-file, you'll be asked whether to save the file or
not. Afterwards ESConfig is immediatly quitted.


2.3 The Group-gadgets:
~~~~~~~~~~~~~~~~~~~~~~
With this gadgets you can change and work with the program-groups, located in
the list below this gadgets.
A program-group conists of some program, being collected in one group. The
group itself contains no program information, it's only used to classify the
program datas.
But now to the gadgets themself:

2.3.1 The Edit-gadget:
----------------------
This gadget is used to change to currently active group, therefore the
GroupEdit-subprogram is activated (see chapter 3).
The currently active group is in the group list marked by a semicircle in front
of it's name and by a inverted graphic representation.

2.3.2 The New-gadget:
---------------------
This gadget also ativates the GroupEdit-subprogram, but now a new group is
created in difference to the Edit-gadget.
When the GroupEdit-subprogram has finished, the new group is added to the group
list as last element.

2.3.3 The Move-gadget:
----------------------
With this gadget you can move the active group within the group list. The group
itself isn't changed by this, but only it's position within the list.
After clicking on this gadget this stays pressed and the mouse pointer changes
to a triangle with the text "TO" beside it. Now select the group before resp.
behind that the active group should be placed. To place it before this group
press the left mouse button. With the right mouse button the active group is
placed behind this group.
If you click on any other gadget the "TO"-mouse pointer disappears and the
Move-gadget becomes inactive again, without anything happening.

2.3.4 The Del-gadget:
---------------------
When clicking on this gadget the currently active group is deleted, whereby all
programs in this group and the group itself get unrecoverably lost.

2.3.5 The Scroll-gadgets:
-------------------------
With this 3 gadgets you can scoll the group list, if it contains more than 12
groups.

With the arrow-gadgets (triangle to top resp. bottom) you can scroll the list
in the direction of the arrow. The scrolling goes on until you release the
gadget or the end of the list is reached.

With the proportional-gadget the list is scrolled by clicking on the rectangle
inside the gadget and subsequently moving it in the direction you'd like to
scroll.


2.4 The Status-fields:
~~~~~~~~~~~~~~~~~~~~~~
This fields are the 6 squares behind each group in the group list. If you click
on one of this squares a check appears and disappears if you click on it again.
If the check is visible the corresponding group is used by the task, whose
identification is above the square.
The identifications are: PM = PopMenu; PS = PopScreen; WM = WBMenu; WB =
WBButtons; FK = FuncKeys; AR = ARexx.
Each identification stands for a Start-task, that allows you to select programs
to start. (see chapter 10 - 15)
This function allows you to start certain programs in a special way, resp. in
several ways if more than one check is behind a group. If a group has no check
the programs in it can't be started.


2.5 The Item-gadgets:
~~~~~~~~~~~~~~~~~~~~~
With this gadgets you can manage and edit items. Each item stands for a program
and contains all information about how this program should be started. The
items are displayed in the 2 columns below this gadgets.

The single gadgets are:

2.5.1 The Func-gadget:
----------------------
With this gadget you activate the ItemFunc-subprogram (see chapter 6), which
allows you to set the program datas for the active item. The active item is
displayed inverted and has a semicirle in front of it's name.

2.5.2 The Edit-gadget:
----------------------
With this gadget the ItemEdit-subprogram is activated (see chapter 4), which
allows you to set additional information about how the item is displayed.
But in difference to the ItemFunc-subprogram, no program datas are change with
this subprogram.

2.5.3 The New-gadget:
---------------------
This gadget also activates the ItemEdit-subprogram, but now a new item is
created. When the subprogram has finished, the new item is added to the item
list as last element.

2.5.4 The Move-gadget:
----------------------
With this gadget you can move the active item inside the item list. The item
itself isn't change by this only it's position within the list.
The procedure to move a item is identical to that of the Move-gadget for groups
(see chapter 2.3.3).

2.5.5 The Swap-gadget:
----------------------
With this gadget you can exchange the position of two item within the item
list. First click on the first item, so that it becomes the active item, then
click on the Swap-gadget and afterwards click on the second item. After this
the 2 items are exchanged, but the datas of the items stay unchanged.
After you've clicked on the Swap-gadget this stays also pressed and the "TO"-
mouse pointer appears. By clicking on any other gadget the process is broken
off.

2.5.6 The Clone-gadget:
-----------------------
If you click on this gadget, the active item is "cloned" meaning that a totally
identical item is created and added to the end of the item list.

2.5.7 The Export-gadget:
------------------------
With this gadget it's possible to move the active item from the ative group to
another group.
After you've clicked on this gadget it stays pressed and the "TO"-mouse pointer
appears. If you now click on a group, the active item is removed from the the
item list of the active group and added to the end of the item list of the
selected group. By clicking on any other gadget you can break off this process.

2.5.8 The Del-gadget:
---------------------
This gadget deletes the currently active item, wherby all program datas and
other information in this group get unrecoverably lost and the item is removed
from the item list.

2.5.9 The Scroll-gadgets:
-------------------------
With this 3 gadgets you can scroll the item list, if it contains more than 24
items. The scrolling is done in the same way as the scrolling of groups (see
chapter 2.3.5).


2.6 The ESPrefs-gadget:
~~~~~~~~~~~~~~~~~~~~~~~
This gadget activates the ESPrefs-subprogram, which allows you to set a great
number of parameters. (see chapter 7)


2.7 The 'Save Config'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you click on this gadget, the currently active parameters on ESConfig are
saved into the config-file "ES-Configuration", whereby the config-file, that
was active before ESConfig was started, is overwritten and gets lost.


2.8 The 'Undo All'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~
When clicking on this gadget, the at last saved config-file is loaded again,
whereby all changes made since the last saving get lost.


2.9 The 'UpDate ES'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
This function first saves the active parameters into the config-file and
afterwards a message is send to the MasterProcess, that a new config-file is
existing. After this the MasterProcess completly reinitiates itself (see
chapter 9.12), meanwhile the ESConfig-program quits and EasyStart is immediatly
reactivated.


2.10 The About-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget opens the information window. To close it simply click into it or
press any key.


After the main window now the first subprogram is described, namely the
GroupEdit-subprogram, which can be activated from the main window. With this
subprogram you can create a new resp. change an existing group.



3. The GroupEdit-subprogram:
============================

Whether a new group is created or an existing group is changed, is shown in the
title line of the GroupEdit-window. Depending on the function the title is
"Create a new group:" or "Edit an existing group:".
But now the gadgets in the GroupEdit-window (from top to bottom):


3.1 The Name-gadget:
~~~~~~~~~~~~~~~~~~~~
This string gadget contains the name of the active group, whereby the length of
the name is limited to 37 characters. To long names are not completly displayed
(that means: EasyStart uses intern the full name, but if necessary EasyStart
only displays the beginning of the name.)


3.2 The SetColor-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~
With this 6 gadgets the color of the text and the background is defined.

3.2.1 The Color-gadgets:
------------------------
This gadgets are the 4 colored gadgets with the numbers 0 to 3 in it. Each
number stands for a color, in that the text or background of the active group
can be displayed.

3.2.2 The 'Text color'-gadget:
------------------------------
With this gadget you can define the color of the group name, therefore you can
enter the number of the color, or if the gadget is active (the cursor is
visible in the gadget) you can click on one of the Color-gadgets to select a
color.

3.2.3 The 'Bg color'-gadget:
----------------------------
This gadget defines the color of the background of the group name, whereby the
color is selected in the same way as done with the 'Text color'-gadget.


3.3 The Style-gadgets:
~~~~~~~~~~~~~~~~~~~~~~
With this 4 gadgets you can select the printing style of the group name,
whereby several styles can be combined.
The 4 gadget are:

3.3.1 The Underl-gadget:
------------------------
When this gadget is activ (the gadget contains a check), the group name is
printed underlined. If you click a second time on this gadget the function is
activated resp. inactivated.

3.3.2 The Bold-gadget:
----------------------
When this gadget is activ, the group name is printed bold.

3.3.3 The Italic-gadget:
------------------------
When this gadget is activ, the group name is printed italics.

3.3.4 The Normal-gadget:
------------------------
When this gadget is activ, the group name is printed "normal", meaning that
all other styles are inactivated.


3.4 The 'Text font'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you can select the font for the group name, whereby two fonts
are possible (Topaz60 and Topaz80). The currently active font is shown inside
the gadget. The font can be changed by clicking on this gadget.


3.5 The 'Text pos'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you can define the position of the group name. The possible
positions are Left, Middle (centered) and Right, whereby the active position is
shown inside the gadget. The position is changed by clicking on this gadget.


3.6 The Okay-gadget:
~~~~~~~~~~~~~~~~~~~~
With this gadget you can exit the GroupEdit-subprogram, whereby the changed
parameters are taken over into the main program, resp. a new group is created,
depending on the function that called the GroupEdit-program.


3.7 The Cancel-gadget:
~~~~~~~~~~~~~~~~~~~~~~
With this gadget you also exit the GroupEdit-subprogram, but now all changed
parameters resp. new parameters get lost, cause neither a group is changed nor
a new one created.


After the GroupEdit-subprogram now the ItemEdit-program is described, which is
very similar to the GroupEdit-subprogram and has a similar function.



4. The ItemEdit-subprogram:
===========================

The title line of the ItemEdit-window shows, whether an existing group is
changed or a new one is created. Depending on the function the title is "Edit
an existing item:" or "Create a new item:".

The ItemEdit-window contains some gadgets, that also appear in the GroupEdit-
window and therefore they aren't explained again. This gadgets are:

 - The Name-gadget         (see chapter 3.1)
 - The SetColor-gadgets    (see chapter 3.2)
 - The Style-gadgets       (see chapter 3.3)
 - The 'Text font'-gadget  (see chapter 3.4)
 - The 'Text pos'-gadget   (see chapter 3.5)
 - The Okay-gadget         (see chapter 3.6)
 - The Cancel-gadget       (see chapter 3.7)

Everything said about this gadgets in the GroupEdit-subprogram (see chapter 3)
now applies to the ItemEdit-subprogram, except that this gadgets now deal with
items instead of groups.

But now to the gadgets the ItemEdit-window is additionally containing. This
gadgets are:


4.1 The 'High mode'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you can define the display mode of this item for the WBMenu-
task (see chapter 12), it it's selected. Therefore EasyStart uses the normal
display modes of Amiga-menus.
By clicking on this gadget the mode is changed, whereby following modes are
possible:

 - HIGHCOMP: The item is displayed inverted
 - HIGHBOX:  A border is drawn around the item
 - HIGHNONE: The item isn't changed at all, that means you can only recognize
     by the position of the mouse pointer, whether a menuitem is selected or
     not.


4.2 The Key-gadgets:
~~~~~~~~~~~~~~~~~~~~
This gadgets deal with the key combination for this item. This combination is
used by the FuncKeys-task (see chapter 14) to start the program defined with
this item. The single gadgets are:

4.2.1 The 'Wait for key'-gadget:
--------------------------------
This gadget defines, whether FuncKeys waits until the key combination is
pressed (DOWN) or until it's released again (UP). The active mode is displayed
inside the gadget. The mode can be changed by clicking on this gadget.

4.2.2 The 'Key code'-gadget:
----------------------------
This gadget contains the raw keycode for the key, that has to be press to start
the program. The value in this gadget is hexadecimal and can be set by hand,
which isn't necessary.
A value of $7F is illegal and means, that no key combination is used for this
items. Items with this value are ignored by the FuncKeys- and KeyList-task (see
chapter 14 and 16).

4.2.3 The 'Key qualifier'-gadget:
---------------------------------
This gadget contains the qualifier value for the qualifier keys, that have to
be pressed together with the key defined by the raw keycode. The value in this
gadget is also hexadecimal and can be set by hand, but it's not necessary.
The values for the possible qualifier keys are:

  - $0001 left Shift-key
  - $0002 right Shift-key
  - $0004 Capslock is on
  - $0008 Ctrl-key
  - $0010 left Alt-key
  - $0020 right Alt-key
  - $0040 left Amiga-key
  - $0080 rigth Amiga-key
  - $1000 middle mouse button (if you have one)
  - $2000 right mouse button
  - $4000 left mouse button

Values not combined out of the values above are converted into possible values
by performing a logical and between the value an $70FF.

4.2.4 The 'Key combinations'-gadget:
------------------------------------
This gadget are the texts 'Key code:' and 'Key qualifier:', when selected this
gadget activates the 'Key combinations'-subprogram (see chapter 5). This sub-
program allows you to enter key combinations in a very simple way without
entering the keycodes and qualifier values by hand, so that you don't have to
look after each code.


4.3 THe 'Edit function'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget activates the ItemFunc-subprogram (see chapter 6), with this sub-
program you can change the program datas for the active item. The function of
this gadget is identical to that of the main window's Func-gadget (see chapter
2.5.1).


After the ItemEdit-subprogram now the 'Key combinations'-subprogram is
discribed, which is activated from the ItemEdit-subprogram.



5. The 'Key combinations'-subprogram:
=====================================

With this subprogam you can define key combinations to start programs resp.
tasks. Therefore this subprogram opens a window and waits until you enter a key
combination or cancel the input by clicking on the Close-gadget in the left top
edge.
Afterwards the window is closed again, and the values for the new key
combination are set in the 'Key code'- and the 'Key qualifier'-gadget.
A key combination has to consist out of a keyboard key or a mouse button and
the qualifier keys. The key is defined by the keycode value and the qualifier
keys by the key qualifier value.
EasyStart uses the same values as the Amiga operating system, therefore this
values can be found in any keycode list.

Possible qualifier keys are the following keys:

 - Crtl-Key
 - Caps Lock (on or off ?)
 - left and right Shift-Key
 - left and right Alt-Key
 - left and right Amiga-Key
 - the 3 mouse buttons (if you have a 3-button mouse)

(For a list of all qualifier keys and there values see chapter 4.2.3)

If you enter a illegal qualifier value, EasyStart converts it automatically
into a valid value. The keycode value isn't checked at all, so that you have to
make sure that the key you entered is really existing. The value $7F is treated
in a special way, this value is used to define that not key combination should
be used.



Now that you can define all datas for an item it's time, that the really
important datas are discribed, namely the datas for the programs that you wish
to start. Exactly this is described now in the ItemFunc-subprogram.



6. The ItemFunc-subprogram:
===========================

This subprogram can be activated by the main program (see chapter 2.5.2) or by
the ItemEdit-subprogram (see chapter 4.3).
After it has been activated this subprogram opens a window, which allows you to
enter all information about a program. The gadgets in this window are (from top
to bottom):


6.1 The Path-gadget:
~~~~~~~~~~~~~~~~~~~~
In this string gadget you have to type in the path of the program you wish to
start. Because if no path or the wrong path is given, EasyStart won't be able
to find the program.


6.2 The Function-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~
This string gadget contains the name of the program, followed by parameters as
a usual command line for CLI-commands.
Because EasyStart is able to add resp. insert files and directories, whose
icons are selected, as parameters to the command line (see chapter 6.13), the
command line is automatically created before the program is started.

If the text "{ARG}" is used in the command line, this text is at all positions
replaced by a selected file or directory as parameter. If more parameters are
existing than "{ARG}" texts, the remaining parameters are added to the end of
the command line separeted by a space (' ').
If the text "{END}" is used, everything behind this text is ignored and cut off
before the program is started. So everything behind this text could be used as
comment.
If the text "{ALL}" is used, all remaining parameters are inserted at this
position of the command line.
If more "{ARG}" or "{ALL}" texts are used than parameters are existing, the
remaining texts are replaced by a space (' ').

Beside this parameters you can also use control characters, which are converted
into the equivalent ASCII characters. The following list contains all control
characters, parameter texts and their ASCII number in decimal and hexadecimal.

  control character | ASCII number | comment
  ------------------------------------------
  '\b'    '\B'      |   8     $08  | backspace
  '\t'    '\T'      |   9     $09  | vertical tab
  '\n'    '\N'      |  10     $0A  | carriage return (RETURN-key)
  '\f'    '\F'      |  12     $0C  | form feed
  '\r'    '\R'      |  13     $0D  |
  '\\'              |  92     $52  | the character '\' itself
  '\$hh' '\xhh'     |         $hh  | the character's hexadezimal number hh
  '\ooo'            |              | the character's octal number ooo
                    |              |
                    |   0     $00  | end of the string
  '{ARG}'           |   1     $01  | one parameter
  '{END}'           |   2     $02  | end of the command line
  '{ALL}'           |   3     $03  | list of parameters

e.g.: The string "{ARG} is a {ARG} for {ALL}.\nEND{END} comment" and the
parameters "This", "test", "control characters", "and", "parameters" would
create the following output: (if send to a console window)

This is a test for control characters and parameters.
END


6.3 The Start method-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is located behind the Function-gadget and defines how the program
should be startet. The following start methods are available:

6.3.1 The 'No function'-method:
-------------------------------
This method means that the program will not be started, therefore this method
is almost meaningless. It's only usefull if you want a program not to be
started, whereby you still want to keep it in the item list, so that you later
can activate it again.

6.3.2 The 'Executable'-method:
------------------------------
This means, that a executable program should be startet, whereby it can either
be started as CLI- or WorkBench-program.

6.3.3 The 'Batch'-method:
-------------------------
With this method you start batch files, therefore the CLI command "Execute" is
used.

6.3.4 The 'ARexx'-method:
-------------------------
This method is used for ARexx program. This programs are started woth the "rx"-
command of ARexx, therefore the "rx"-command has to be in the logical device
"C:".

6.3.5 The 'ES-Msg'-method:
--------------------------
This method is similar to the 'ARexx'-method, but now the string in the
Functions-gadget is used as message and send to the ARexx-Task, whereby the
Rexx-program isn't needed, cause it's an EasyStart intern message, which only
emulates a ARexx message.
With this start method you can create items, to control EasyStart and start
internal actions, e.g. you can define new or additional key combinations and
things like that. The used commands are the same as used by the ARexx-Task (see
chapter 15.1 and 15.2).

e.g.: to start ESConfig the string in the Function-gadget has to be:
"configure{END}"

6.3.6 The 'String'-method:
--------------------------
If this method is active, EasyStart converts the string in the Functions-gadget
in a number of messages about pressed keys, so that this string appears in an
active CLI-window or editor, as if it was entered directly thru the keyboard.
This method is only available under KickStart 2.0, because EasyStart needs for
this method the "MapANSI"-function of the "keymap.library".


The following gadgets doesn't have to be set, to start a program, but they
provide a lot of additional functions and allow you to adjust the start
proceedings exactly to a program.


6.4 The Stack-gadget:
~~~~~~~~~~~~~~~~~~~~~
With this gadget the size of the program stack in bytes is defined. The stack
is allocated before the program is started. If a size of 0 is given, the
standard size of 4000 bytes is used.


6.5 The Priority-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you can define the priority of the program, whereby the
priority has to be between -128 and 127. The standard value is 0 ans should
only be changed little, cause with to small values the program may never be run
and with to large values the whole multitasking may be stop, cause now only
this program is run.


6.6 The 'Close delay'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you define how long (in seconds) EasyStart should wait before
it closes the window of a program (see chapter 6.7 and 6.11). This is very
important if a program returns messages, that you like to read before the
window closes.


6.7 The 'Open window'-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this 2 gadgets a window is defined, that is opened when the program is
started and afterwards it's automatically closed, when the program has
finished.

The first gadget is the little square in front of the text "Open window:", with
this gadget you can activate and deactivate this function. The function is
active, when a small check is visible in the gadget.

The second gadget contains a text, that describes the window to be opened.
(e.g.: "CON:0/0/600/100/test window" or "RAW:0/10/400/200/test window 2")
This text has to be arranged as usual for the Amiga (see AmigaDOS manual).

If you're program is a WorkBench-program, than this function is identical with
a ToolType "WINDOWS=" (e.g.: WINDOWS="CON:0/0/600/100/test window") in the
ToolTypes list of the corresponding item.

If you're program is a CLI-program, than this function is used together with
the NewCLI-command (e.g.: NewCLI "CON:0/0/600/100/test window"), whereby also a
new CLI-process is created, which is automatically removed after your program
has finished.


6.8 The 'Output to'-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadgets you can define where to outputs of you're program should be
send to. This function can only be used for programs, that are started thru
CLI (see chapter 6.14), otherwise you're not able to activate this gadget.

The first gadget is again used to activate and deactivate this function.

The second gadget contains the file the outputs should be send to, beside files
also the printer ('PRT:') or another logical devices can be used.
This function is identical to adding a ">FILENAME" parameter to the command
line (see AmigaDOS manual).


6.9 The 'CD path'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~
When this gadget is activ, the current path is changed before the program is
started. As new current path the directory described in the Path-gadget is
used.


6.10 THe 'Input from'-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this 2 gadgets you can define from where the program should get it's
inputs. For this function the program has to be started thru CLI (see chapter
6.14).

With the first gadget you can activate and deactivate this function.

The second gadget contains the file from which the inputs should be read,
whereby beside files also logical devices can be used (e.g.: 'NIL:', this
causes all inputs to be answered with a <RETURN>).
This function is identical to adding a "<FILENAME" parameter to the command
line (see AmigaDOS manual).


6.11 The 'Open NewCLI'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If this gadget is aktiv, a new CLI-process is started before the program is
started. This CLI-process isn't closed after the program has finished, so that
you can further use it.
If the 'Output window'-function is used (see chapter 6.7) no new CLI-window is
opened, instead the window defined here is used, but at the end it isn't
closed. By the CLI command "endcli" you can stop the CLI-process and close the
CLI-window.
This function can also be used, when the program is started thru CLI (see
chapter 6.14).


6.12 The 'Workbench to front'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If this gadget is aktiv, the WorkBench is automatically placed in the fore-
ground when the program is started.


6.13 The 'Selected icons'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If this gadget is active, EasyStart uses all selected icons as parameters when
the program is started. The icons are inserted into the parameter list at all
places, where a "{ARG}" or "{ALL}" text is located or at the end of the list
(see chapter 6.2).
This function allows you to start CLI- or WorkBench-programs together with
files or directories as parameters in a very comfortable way. This function is
only available under WorkBench 2.0, because EasyStart needs the
"workbench.library" for this function.

If the program is a WorkBench-program the parameters are send to the program as
if you've selected them you with a pressed Shift-Key and and afterwards startet
the program with a double click.

If the program is a CLI-program the parameters are send to the program as
a command line, like that of "normal" CLI-commands.


6.14 The 'CLI startup'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you activate this gadget your program is started a CLI-program, that means
a CLI-process is created for this program and used by it while it runs.
If the 'Open window' or 'Open NewCLI'-gadget is activated (see chapter 6.7 and
6.11) also a CLI-window is opened, otherwise no window is opened.
This gadget as the 'WB startup'-gadget exclude each other, therefore only one
of this gadgets can be active.


6.15 The 'WB startup'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If this gadget is active the program is started as WorkBench-program. Therefore
EasyStart emulates a WorkBench-start, because the program is not really started
thru a double click on it's icon. This starting method is only available for
executable programs and should only be used if the program is made for a start
from the WorkBench.
This gadget and the 'CLI startup'-gadget exclude each other.

If possible this starting method should be prefered, cause it's faster compared
to an CLI-start and it needs less effort. But it has less preferences than a
CLI-start.


6.16 The 'ARexx commands'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When this gadget is active, you can use parameters behind a program name if you
start a program thru the ARexx-task (see chapter 15). The parameters are
inserted or added to the command line.
If this function is deactivate, all parameters are ignored resp. cut off.

This function is only usefull for a program being started thru the ARexx-task
or as 'ES-Msg' (see chapter 6.3.4, 6.3.5 and 15), if it's started thru any
other starting method this function is ignored.


6.17 The 'Command line'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If this gadget is activated, EasyStart opens a window this the command line
(program name + parameters) of the program before it's started, so that you can
edit and complete the command line yourself. (see chapter 17)

If this function is deactivated, the program is started together with the
complete command line, without the 'Command line'-window to be opened.
This function can also be used, if you wish to control the command line.



Now that you're able to set all parameters for programs, the following chapter
describes the parameters for the Start-tasks.


7. The ESPrefs-subprogram:
==========================

This subprogram is started thru the ESPrefs-gadget (see chapter 2.6) and is
used to set "some" parameters for the Start-tasks and the MasterProcess.
The Gadgets on the ESPrefs-window are:


7.1 The Palette-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~
With this gadgets you can define the color palette used by EasyStart, whereby
you can use your own personal colors.

7.1.1 The Color-display:
------------------------
This display is located behind the text "Palette:" and contains a rectangle
filled with the active color.

7.1.2 The Color-gadgets:
------------------------
This 4 gadgets are located behind the Color-display and represent the 4 colors.
If you click on one of this gadgets the corresponding color is activated and
the Color-display and the R/G/B-gadgets are changed according to the new
values of this color.

7.1.3 The R/G/B-gadgets:
------------------------
With this 3 proportional-gadgets you can change the (R)ed, (G)reen and (B)lue
values of the active color. The changed are immediately shown in the Color-
display and at the whole screen.

In front of each gadget the corresponding character is written followed by a
number between 0 and 15, representing the active color value.


7.2 The MasterTask-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadgets the parameters for the MasterProcess are defined and some
additional parameters, that are connected with the MasterProcess.

7.2.1 The 'Window pos'-gadgets:
-------------------------------
With this two gadgets the x and y position of the MasterProcess-window on the
WorkBench-screen is defined (see chapter 9), whereby EasyStart uses the
greatest possible values if the values are to great.

7.2.2 The Palette-gadget:
-------------------------
With this gadget you can define which color palette the MasterProcess-window
should used. By clicking on this gadget the palette is changed, whereby
following palettes are possible:

  - EStart: The palette of EasyStart, that was defined with the Palette-gadgets
            (see chapter 7.1).
            When this palette is active, the WorkBench palette is changed each
            time the window is opened resp. closed.

  - Active: The active palette of the WorkBench is used, that means the
            WorkBench palette isn't changed.

7.2.3 The NewCLI-gadget:
------------------------
This string gadget contains the name of the CLI-command used instead of the
"NewCLI"-command (e.g.: NewWSH or NewShell). This command is used by EasyStart
to start a CLI-process, but therefore the template has to identical to that of
the "NewCLI"-command.
The command has to be located in the logical device 'C:', or EasyStart won't be
able to use it. If no name is given EasyStart automatically uses the "NewCLI"-
command.

7.2.4 The Status-gadget:
------------------------
With this gadget the status of the MasterProcess after the start of EasyStart
is defined, whereby following statuses are:

 - Window: The window is automatically opened after the start

 - Iconified: The Iconify-window is opened instead of the MasterProcess-window
   (see chapter 9.4)

 - Wait: No window is opened, but the MasterProcess enters the wait status (see
   chapter 9.3)

7.2.5 The 'Output to'-gadget:
-----------------------------
With this gadget you can define where EasyStart should send it's messages and
the outputs of the started programs (see chapter 9.9), whereby following
output channels are possible:

 - Custom: EasyStart opens the file defined in the Custom-gadget and sends all
   outputs to this file.

 - StdOut: EasyStart sends all outputs to the standard output channel, that was
   activ when EasyStart was started (e.g. a CLI-window).

 - NIL:: EasyStart sends all outputs to the logical device "NIL:", so that no
   outputs are displayed.

7.2.6 The Custom-gadget:
------------------------
This gadget contains the file the outputs should be send to, if the custom
output channel is selected.
Some examples for output "files" are:

 - "PRT:": The outputs are send to the printer.
 - "CON:0/0/100/50/IO": The outputs are displayed in the corresponding window.
 - "RAM:IOs": The outputs are saved to the file "IOs" on the RAM-Disk.
 - etc.


7.3 The PopMenu-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~
With this gadgets you can define the start parameters for the PopMenu-task (see
chapter 10).

7.3.1 The Status-gadget:
------------------------
This gadget exists for each task therefore it's only once described detailed.
With this gadget you can define the status (see chapter 9.6.7) of the
corresponding task after the start of EasyStart, whereby following statuses
are possible:

 - UNLOADED: The task is not loaded.

 - LOADED: The task is loaded, but not started.

 - ACTIVE: The task is loaded, started and afterwards shifted into the wait
     status.

 - RUNNING: The task is loaded, started and is still active, so that you can
     use it. (This status is not possible for the PopMenu-task.)

7.3.2 The Screen-gadget:
------------------------
With this gadget you can define on which screen the popup-menu of the PopUp-
task should appear (see chapter 10), if it's activated. The following statuses
are possible:

 - Active: The currently active screen is used, that means the popup-menu is
   drawn on the screen, that is located in the foreground, whereby also screens
   of opened from other programs can be used.

 - WBench: The WorkBench-screen is placed in the foreground and afterwards the
   popup-menu is drawn on it.

7.3.3 The Palette-gadget:
-------------------------
This gadget is identical to the Palette-gadget of the MasterProcess (see
chapter 7.2.2), but now the palette is only changed if the popup-menu is opened
or closed.


7.4 The PopScreen-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is a Status-gadget like that of the PopMenu-task (see chapter
7.3.1), but now the status of the PopScreen-task (see chapter 11) is defined.


7.5 The WBMenu-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget is a Status-gadget like that of the PopMenu-task (see chapter
7.3.1), but now the status of the WBMenu-task (see chapter 13) is defined.


7.6 The FuncKeys-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is a Status-gadget like that of the PopMenu-task (see chapter
7.3.1), but now the status of the FuncKeys-task (see chapter 14) is defined.


7.7 The ARexx-gadget:
~~~~~~~~~~~~~~~~~~~~~
This gadget is a Status-gadget like that of the PopMenu-task (see chapter
7.3.1), but now the status of the ARexx-task (see chapter 15) is defined.


7.8 The WBButtons-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadgets the parameters for the WBButtons-task (see chapter 13) can be
defined and changed.

7.8.1 The Status-gadget:
------------------------
This gadget is a Status-gadget like that of the PopMenu-task (see chapter
7.3.1), but now the status of the WBButtons-task is defined.

7.8.2 The Palette-gadget:
-------------------------
This gadget is identical to the Palette-gadget of the MasterProcess (see
chapter 7.2.2), but now the palette is only changed if the WBButtons-window is
opened or closed.

7.8.3 The Scroll-gadget:
------------------------
With this gadget you can define where the scroll bar should be loacted in the
WBButtons-window, whereby following positions are available:

 - Vertical: The bar is vertically drawn at the right border of the window, so
   that the buttons in the window can be scrolled vertically.

 - Horizontal: The bar is horizontally drawn at the bottom border of the
   window, so that the buttons in the window can be scrolled horizontally.

7.8.4 The Vertical-gadgets:
---------------------------
This 4 gadget are used to define the size and position of the WBButtons-window,
if it's scrolled vertically. The first 2 gadgets are the Size-gadgets and
define the size of the window in rows and columns of buttons (see chapter
13.3). The other 2 gadgets define the position of the window in pixels on the
WorkBench-screen, whereby the first one contains the x- and the second the y-
position.
If you enter to large values EasyStart automatically reduces them to the
greatest possible values.

7.8.5 The Horizontal-gadgets:
-----------------------------
This gadgets are identical to the Vertical-gadgets, except that they define the
WBButtons-window if it's scrolled horizontally.


7.9 The KeyList-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget the parameters for the KeyList-task (see chapter 16) are
defined.

7.9.1 The Status-gadget:
------------------------
This gadget is a Status-gadget like that of the PopMenu-task (see chapter
7.3.1), but now the status of the KeyList-task is defined and at this task you
can only choose between the 2 statuses UNLOADED and RUNNING.

7.9.2 The Pos-gadgets:
----------------------
With this 2 gadgets the position of the KeyList-window in pixels is defined,
whereby the first gadget contains the x- and the second the y-position.
The large values, are reduced to the greatest possible values.

7.9.3 The Listed-gadget:
------------------------
With this gadget you can define, what the KeyList-task should display if it's
started from EasyStart, whereby the following two statuses are available:

 - Programs: All key combinations for programs (see chapter 16.5), that can be
   started thru the FuncKeys-task, are displayed.

 - Commands: All key combinations for the different commands of the Master-
   Process are display (see chapter 16.4 and 8).

7.9.4 The Palette-gadget:
-------------------------
This gadget is identical to the Palette-gadget of the MasterProcess (see
chapter 7.2.2), but now the palette is only changed if the KeyList-window is
opened or closed.


7.10 The 'Set command keys'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you activate the 'Set command keys'-subprogram (see chapter
8), that allows you to define the key combinations for different commands of
the MasterProcess.


7.11 The Okay-gadget:
~~~~~~~~~~~~~~~~~~~~~
With this gadget you leave the ESPrefs-subprogram and get back to the main
program, whereby all changed parameters are used as new parameters.


7.12 The Cancel-gadget:
~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you leave the ESPrefs-subprogram and get back to the main
program, but now all changed parameters get lost, so that still the parameters
are active, that were active before the ESPrefs-subprogram was started.



Now the last subprogram of the ESConfig-program is described, it's the 'Set
command keys'-subprogram, that allows you to define key combinations for the
different commands.


8. The 'Set command keys'-subprogram:
=====================================

This subprogram allows you to select key combinations for the commands of the
MasterProcess and the tasks in a very simple way. THerefore the following
gadgets are visible in this window (from top to bottom):


8.1 The Task-gadget:
~~~~~~~~~~~~~~~~~~~~
With this gadget you can define the active task, whose key combination can be
changed. Possible tasks are:

 - MasterTask: The MasterProcess (see chapter 9)

 - PopMenu   : The PopMenu-task (see chapter 10)
 - PopScreen : The PopScreen-task (see chapter 11)
 - WBMenu    : The WBMenu-task (see chapter 12)
 - WBButtons : The WBButtons-task (see chapter 13)
 - FunkKeys  : The FuncKeys-task (see chapter 14)
 - ARexx     : The ARexx-task (see chapter 15)

 - KeyList   : The KeyList-task (see chapter 16)


8.2 The Start-gadgets:
~~~~~~~~~~~~~~~~~~~~~~
With this gadgets the start key combination of the active task is defined. With
this key combination you can later start the corresponding task (see chapter
9.7.1).

8.2.1 The 'Start command'-gadget:
---------------------------------
This gadget is the text 'Start command:' itself and activates the 'Key
combination'-subprogram (see chapter 5), if you click on it. This subprogram
allows you to define the key combination that should later be used to start
the active task.

8.2.2 The Code-gadget:
----------------------
This gadget contains the rawcode of the key, that should be pressed to start
the active task. The value is in hexadecimal and can be set by hand, but that's
not necessary.
A value of $7F is illegal and means, that no key combination should be used to
start this task. Items with this value are ignored by the FuncKeys- and
KeyList-task (see chapter 14 and 16).

8.2.3 The Qual-gadget:
----------------------
This gadget contains the qualifier value for the qualifier keys, that have to
be pressed together with the key defined by the raw keycode. The value in this
gadget is also hexadecimal and can be set by hand, but it's not necessary.
(For a list of all qualifier keys and there values see chapter 4.2.3)

8.2.4 The Wait-gadget:
----------------------
This gadget defines, whether FuncKeys waits until the key combination is
pressed (DOWN) or until it's released again (UP). The active mode is displayed
inside the gadget. The mode can be changed by clicking on this gadget.


8.3 The Stop-gadgets:
~~~~~~~~~~~~~~~~~~~~~
With this gadgets the stop key combination of the active task is defined. With
this key combination you can later stop the corresponding task (see chapter
9.7.3).

This gadgets are identically arranged as the Start-gadgets (see chapter 8.2)
and have the same function, so they're not described again.


8.4 The Okay-gadget:
~~~~~~~~~~~~~~~~~~~~
With this gadget you finish this subprogram and get back to the ESPrefs-
subprogram, whereby all changed key combinations are used.


8.5 The Cancel-gadget:
~~~~~~~~~~~~~~~~~~~~~~
With this gadget you finish this subprogram and get back to the ESPrefs-
subprogram, whereby all changed key combinations get lost, so that still the
old key combinations are used, that were active before this subprogram was
activated.



Now that all subprograms of the ESConfig-program are described, you should use
what you've learned and create your own config-file.
After you have created your own config-file, you now get chances to test and
use it, cause in the following the MasterProcess is described.


9. The MasterProcess:
=====================

The MasterProcess is the most important part of EasyStart, cause he not only
controls all other tasks but also starts other programs and that's what
EasyStart is for. After the EasyStart-program is started (see chapter 1.4), the
MasterProcess enters the status defined with the ESConfig-program (see chapter
7.2.4).

As in the following the MasterProcess-window is described, you should open it
if it's not open yet. If the MasterProcess is in the Iconfiy- or Wait-status
(see chapter 9.3 and 9.4) press the start key combination of the MasterTask
(see chapter 8) or start the AwakeES-Program (see chapter 18) by a double click
on it's icon. Now the MasterProcess-window should be opened and the description
of the gadgets (from top to bottom) can begin.


9.1 The Close-gadget:
~~~~~~~~~~~~~~~~~~~~~
If you click on this gadget EasyStart is immediatly terminated, whereby the
MasterProcess and all loaded tasks are stopped and removed from the memory. The
same is done if you press the stop key combination for the MasterTask.

You should use this function carefully, cause NO request is done, so that
EasyStart is terminated immediatly after the click. The key combination allows
you to terminate the key combination at any time, if you for e.g. run out of
memory or got any other problem. This is also the reason why there's no request
before EasyStart is terminated.


9.2 The Move-gadget:
~~~~~~~~~~~~~~~~~~~~
This gadget is the title line of the MasterProcess-window. If you click on this
gadget and keep the left mouse button pressed, you can move the window by
moving the mouse arround, as you're used to it by normal Amiga-windows.


9.3 The Wait-gadget:
~~~~~~~~~~~~~~~~~~~~
This gadget is the small "w" behind the title line, if you click on it the
MasterProcess-window is closed and the MasterProcess enters the Wait-status,
that means he's not really waiting, cause he's still doing his work, but for
the user it seems as if the MasterProcess is waiting for him.
To open the MasterProcess-window again you have to press the start key
combination (see chapter 8) or if you've forgotten your combination run the
AwakeES-program (see chapter 18). In this status you normally use EasyStart,
cause you don't recognize EasyStart and it stays in the background until you
need it.


9.4 The Iconfiy-gadget:
~~~~~~~~~~~~~~~~~~~~~~~
This gadget is located right of the Wait-gadget and has a simmilar function. By
clicking on this gadget the MasterProcess enters the Iconify-status. This
status is identical to the Wait-status, except that additional a small window
(the Iconify-window), containing the text "EasyStart", is opened in the right
top of the WorkBench-screen.

To open the MasterProcess-window again, you can act in same way as done in the
Wait-status or click on the Iconify-window and afterwards press the right mouse
button.


9.5 The Depth-gadget:
~~~~~~~~~~~~~~~~~~~~~
This gadget is located at the right end of the title line and is used to place
the MasterProcess-window in the foreground resp. in the background.
This gadget acts in the same way as the Depth-gadget of WorkBench 2.0, that
means if the window is in the foreground it's placed in the background and
vice versa.
In difference to the normal Depth-gadget this gadget also works under KickStart
1.2 and 1.3.


9.6 The StartTask-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~~
This 5 gadget represent the the 5 Start-task, whereby each gadget contains the
name of a task and it's status (see chapter 9.6.7). If you click on a gadget
the corresponding task is activated (that means his gadget is displayed
inverted). The old active gadget is automatically deactivated. But now the
gadgets and the Start-tasks they represent:

9.6.1 The PopMenu-gadget:
-------------------------
This gadget stands for the PopMenu-task, that offers a popup-menu to start
programs. (see chapter 10)

9.6.2 The PopScreen-gadget:
---------------------------
This gadget stands for the PopScreen-task, that offers a popup-screen to start
programs. (see chapter 11)

9.6.3 The WBMenu-gadget:
------------------------
This gadget stands for the WBMenu-task, that adds menuitems to the menu of the
WorkBench-screen to start programs. (see chapter 12)

9.6.4 The WBButtons-gadget:
---------------------------
This gadget stands for the WBButtons-task, that opens a window with a program
list on the WorkBench-screen to start programs. (see chapter 13)

9.6.5 The FuncKeys-gadget:
--------------------------
This gadget stands for the FuncKeys-task, that allows to start programs by
pressing key combinations. (see chapter 14)

9.6.6 The ARexx-gadget:
-----------------------
This gadget stands for the ARexx-task, that allows you to control EasyStart and
to start programs by a ARexx-port. (see chapter 15)

9.6.7 The Task-status:
----------------------
Now that all StartTask-gadgets are described, the statuses in the status part
of the gadget are left and they're described now, possible statuses are:

 - UNLOADED: The corresponding task in not loaded and is not available, so that
   is uses no memory. If you want to use this task it has to be loaded first.

 - LOADED: The corresponding task is loaded, but not started, he's also not
   available, but needs memory. If you want to use this task, you can start is
   directly without loading it.

 - WAITING: The corresponding task is loaded and started, so that he needs
   memory, but he's also not available cause he's in the Wait-status. As soon
   as he get's a message from the MasterProcess he continues his work and is
   available again.

 - RUNNING: The corresponding task is loaded, started and is running in the
   moment, so that he needs memory and CPU-time, but therefore he's able to
   advice the MasterProcess, which program he should start. If you wish to work
   with a Start-task, it has to be in this status, cause in all other statuses
   he's not able to start programs.

Now that all statuses are described, you'll probably ask how you can change the
status of a Start-task. One possiblity you've already learned, namely the
different Status-gadgets of the ESPrefs-subprogram (see chapter 7). Another
possiblity provide the Commands-gadget, that are described in the following.


9.7 The Commands-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~~
This gadgets are located under the text "Commands:", whereby the number of and
the type of the gadgets is changed depending on the currently active Start-
task. Therefore behind each gadget in the list is written, at which statuses
it's available.

9.7.1 The Start-gadget:                 (UNLOADED, LOADED, WAITING)
-----------------------
With this gadget the active task is started, that means it's loaded, if it's
not loaded yet, and afterwards it's started by the MasterProcess, so that you
can work with this task. When the starting process is finished, the task is in
the status RUNNING.

If you press the start key combination (see chapter 8.2) the same function is
done, but now you didn't have to open the MasterProcess-window to start a task.

9.7.2 The Unload-gadget:                (LOADED, WAITING, RUNNING)
------------------------
With this gadget the active task is removed from the memory, that means it's
stopped and afterwards removed from the memory. The memory is freed, so that it
can be used by other applications. After it's unloaded the task is in the
status UNLOADED.

9.7.3 The Stop-gadget:                  (WAITING, RUNNING)
----------------------
With this gadget the active task is stopped, that means it quits work, but it's
not removed from the memory, so that you don't have to load this task again if
you wish to us it again. After this function the task is in the status LOADED.

Pressing the stop key combination (see chapter 8.3) of the task does the same
function, but now you didn't have to open the MasterProcess-window to stop a
task.

9.7.4 The Update-gadget:                (WAITING, RUNNING)
------------------------
With this gadget the active task is updated, that means if meanwhile the
config-file or other parameters have changed, then this is told to task.
Therfore the task is first stopped and and afterwards startet again, so that
it's afterwards in the same status as before the update, but now the new
parameters are use.
If you start a task from the status UNLOADED or LOADED, than all new parameters
are automatically send to the task, so that in this case no update is
necessary.

9.7.5 The Sleep-gadget:                 (RUNNING)
-----------------------
With this gadget the active task is placed into the Wait-status, that means the
task is placed into the status WAITING, so that it only waits for a message of
the MasterProcess to continue it's work.

9.7.6 The Restart-gadget:               (RUNNING)
-------------------------
With this gadget the active task is started again, that means he again gets a
start message from the MasterProcess, but this is only usefull for the
PopScreen-, WBMenu-, and WBButtons-task, all other tasks doesn't act if you try
to start them again.
At the WBMenu this causes the menu to be redisplay, for the case that it has
been "damaged".
At the two other tasks the restart causes the screen resp. the window to be
placed in the foreground again, if it was located in the background.
After the restart the task is still in the status RUNNING.



Now that all Commands-gadgets are described another gadget is described, that's
a combination out of Command- and Task-gadget. This gadget is the KeyList-
gadget.

9.8 The KeyList-gadget:
~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you can control the KeyList-task (see chapter 16). The
KeyList-task displays all key combinations of EasyStart (see chapter 16).
The MasterProcess supports this task in the same way as all other tasks, but
this task is not able to start programs, it can only display informations.
Because this task is less used, it's with less effort supported than the other
tasks.

The KeyList-task has only to statuses, namely the status RUNNING, that is show
by the gadget displayed inverted, and the status UNLOADED, that is shown by the
gadget displayed normal. To change the status, that means to remove the task
from memory resp. to start if, you have to click on this gadget, so that the
currently active status is changed (that means UNLOADED becomes RUNNING and
vice versa).
You could also use the corresponding start resp. stop key combination to change
the status (see chapter 8).


9.9 The 'Output to'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you can define where EasyStart should send the output of
started programs (especially error messages) and it's own outputs. With the
ESPrefs-subprogram of the ESConfig-program you can also define the output
channel (see chapter 7.2.5). By clicking on this gadget the output channel is
changed, whereby the following channels are possible:

 - Custom: EasyStart opens the file defined in the Custom-gadget of the
   ESConfig-program (see chapter 7.2.6) and sends all outputs to this channel.
   This function is usefull, if you've started EasyStart from the WorkBench,
   but also want to get error messages and outputs from programs or from
   EasyStart.

 - StdOut: EasyStart sends all outputs to the standard output channel, that was
   active when EasyStart was started (e.g. a CLI-window). So you don't need a
   additional channel for the outputs, but if no standard output channel is
   existing you won't get outputs.

 - NIL:: EasyStart sends all outputs to the "NIL:", so that no outputs are
   made. This status is the normal, cause in this status you don't get any
   disturbing messages from EasyStart or from the started program. The other
   two status are only needed if something goes wrong resp. a error is occured.


9.10 The Configure-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~
If you click on this gadget, the ESConfig-program (see chapter 2) is
automatically started, so that you can change or extend your config-file.
Therefore it's necessary that the ESConfig-program is located in the same
directory as the EasyStart-program, because otherwise the MasterProcess won't
be able  to find and start the ESConfig-program.


9.11 The Snapshot-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you can define the statuses of the Start-tasks and a lot of
other parameters in a very simple way, that means the statuses and parameters
that are activated when EasyStart is started. Therefore EasyStart simply saves
all this parameters to the config-file, if you click on this gadget.
This method allows you to change the parameters faster and easier than with the
ESPrefs-subprogram of the ESConfig-program (see chapter 7), but therefore you
can't define all parameters, cause only such parameters can be defined, that
can be changed during EasyStart is running. A exception is the status of the
MasterProcess, cause he can only be defined with the ESPrefs-subprogram.


9.12 The 'Update all'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you click on this gadget, EasyStart is completly new updated, this is
identical to quit EasyStart and afterwards start it again.
Therfore first the config-file is loaded again and afterwards the MasterProcess
is completly updated and after this all currently started tasks are updated
(see chapter 9.7.4).
The same procedure is done, if you update EasyStart from the ESConfig-program
by clicking on the 'Update ES'-gadget (see chapter 2.9).


9.13 The About-gadget:
~~~~~~~~~~~~~~~~~~~~~~
If you click on this gadget, the About-window is opened at the same position as
the MasterProcess-window. This window contains some information about EasyStart
and is identical to the About-window of the ESConfig-program (see chapter
2.10). To close the window simply press a mouse button or any key on the
keyboard.



Now that the MasterProcess is described there are "only" the verious tasks left
and with this tasks are described in the following chapters.
If you haven't created a config-file yet, you should really do it now, because
if you want to use a Start-task, at least one group has to be active for this
task. How you can created a config-file is explained in the chapter about the
ESConfig-program (see chapter 2).
In the following the Start-tasks are described in the same order as they are
listed in the StartTask-gadgets (see chapter 9.6).


10. Der PopMenu-Task:
=====================

This Start-task opens a popup-menu on the screen defined with the ESConfig-
program (see chapter 7.3.2). THe position of the menu is always below the
current mouse position. If the menu can't be opened a error message appears.
This menu contains all groups, that are activates for the PopMenu-task (see
chapter 2.4), listed below each other.
The currently active group is displayed inverted and with a border, in addition
behind the group another list with the items of this group is displayed. The
active item is also displayed with a border around it.

To start a program you only have to select the corresponding item, therefore
the following key combinations are available:


10.1 Moving the mouse pointer:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By moving the mouse pointer you can easily select the active group and item,
cause always the group resp. the item below the mouse pointer is activated.
If the mouse pointer is located outside the menu, than the last active item
stays active. If a new group is activated, always the first item activated
automatically.


10.2 Pressing the cursor-keys:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By pressing a cursor-key or the corresponding key on the numericpad you can
change the active group resp. item, whereby the keys have the following
functions:
(The number in brackets "[]" ist the corresponding key on the numericpad.)

10.2.1 Cursor down [2]:
-----------------------
The next item (below the active one) is activated, if the last item is reached,
the first item is activated.

10.2.2 Cursor up [8]:
---------------------
The preceding item (above the active one) is activated, if the first item is
reached, the last item is activated.

10.2.3 Cursor right [6]:
------------------------
The next group (below the active one) is activated, if the last group is
reached, the first group is activated.

10.2.4 Cursor left [4]:
-----------------------
The preceding group (above the active one) is activated, if the first group is
reached, the last group is activated.


10.3 Pressing the ESC-key:
~~~~~~~~~~~~~~~~~~~~~~~~~~
If you press the ESC-key, the popup-menu is cancelled and the PopMenu-task is
entering the status WAITING (see chapter 9.6.7), therefore also no program
start is done.


10.4 Pressing the RETURN-key or the left resp. right mouse button:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you press the RETURN-key the program is started, that's defined by the
active item. Afterwards the PopUp-Menu is quitted, so that the PopMenu-task
enters the status WAITING.
If the mouse pointer is located above a item, when you click one of the mouse
buttons, than the corresponding program is started. Otherwise the popup-menu is
cancelled.



11. The PopScreen-task:
=======================

After the start this task opens a screen, on which the program groups and their
items (see chapter 2.3 and 2.5) are displayed. The group names are displayed in
the 3. line from top, whereby only 4 groups can be displayed at once. If more
than 4 groups exist, than they can be scrolled.
The items of a group are displayed below the group name. If a group contains
more items as can be displayed, then right of this group another group is
created, that has no name and contains the remaining items.
By clicking on a it you can select a item and start the corresponding program,
whereby the PopScreen stays open and active until you close it.

But now a describtion of the other gadgets, that are located on the PopScreen
(from top to bottom):


11.1 The Screen-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~~
This gadgets are located in the free line above the PopScreen-window and are
the standard screen-gadgets, each screen contains. A drag-gadget to move the
screen and two resp. one (under KickStart 2.0) depth-gadget to place the
screen into the foreground or background.
For the main window starting in the second line, this gadgets are almost
covered, but the one line is enough to use them.


11.2 The Close-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget is located in the top left edge of the window, and allows you to
close the PopScreen-screen by clicking on it. After this the PopScreen-task
enters the status WAITING.


11.3 Pressing the right mouse button:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you press the right mouse button inside the PopScreen, the screen is
automatically placed in the background, whereby the PopScreen-task is sill
active and in the status RUNNING, therefore you only have to place it in the
foreground again, if you wish to use it.
If you start the PopScreen-task again, it's again placed in the foreground (see
chapter 9.7.1).


11.4 The Beg- resp. End-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is located in the left resp. right end of the line below the title
line and is used to scroll the group list to the begin resp. to the end, so
that the first group is displayed left resp. the last group is displayed right.


11.5 The Left- resp. Right-scrollgadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is also located in the second line and contains a arrow that points
left resp. right. If you click on this gadget, the group list is scroll left
resp. right, if more than 4 groups exitst.
If the begining resp. the end of the list is reached, you can't continue
scrolling.


11.6 The Proportional-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is loacted between the two scrollgadgets and contains a scroll bar,
that shows which part of the group list is displayed at the moment. If the bar
is at the left resp. right end the beginning resp. the end of the list is
displayed. You can also use the bar to scroll the list, by clicking on it and
then moving it in the direction you want to scroll the group list.



12. The WBMenu-task:
====================

When started this task adds some new menus to the menu strip of the WorkBench-
screen. This menus represent groups that are activated for the WBMenu-task (see
chapter 2.4) and also have their names.
The menuitems are the names of the items of the corresponding group. To start a
program you only have to select the corresponding menuitem. After the start the
WBMenu-task stays active, so that you can start further programs.
How the items are displayed, if they're selected, can be defined with the 'High
mode'-gadget of the ESConfig-program (see chapter 4.1).

As long as the WBMenu-task is in the status RUNNING, you should not close the
WorkBench-Screen, cause you machine may crash if you try to use the WBMenu-task
while the WorkBench is closed.

Beside the group menus the WBMenu-task also adds another menu to the menu strip
of the WorkBench-Screen. This menu is used to control the WBMenu-task and is
represented by the symbol "!". This menu contains two menuitems are the "WBMenu
off" and the "Quit WBMenu" item, this items have the following function:


12.1 The "WBMenu off"-menuitem:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you select this item, the additional menus are removed from the menu strip
of the WorkBench and the WBMenu-task enters the status WAITING.
With this menuitem you can switch of the menus, if you want to close the
WorkBench.


12.2 The "Quit WBMenu"-menitem:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you select this menuitem, all additional menus are also removed, but
afterwards the WBMenu-task is stopped, so that it's in the status LOADED.
The same can be done by using the Stop-gadget (see chapter 9.7.3) or by
pressing the stop key combination (see chapter 8.3).



13. The WBButtons-task:
=======================

When started this task opens a window on the WorkBench-screen, that contains
all active groups (see chapter 2.4) of this task and the items of this groups,
whereby the groups look pressed compared to the items.
The size of the window and the arrangement of the items can be defined with the
WBButtons-gadgets of the ESConfig-program (see chapter 7.6). If you use to
large values, EasyStart reduces them to the greatest possible values. But now
the single gadgets in the WBButtons-window (from top to bottom).


13.1 The Close-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget is located in the top left edge of the window, and allows you to
close the WBButtons-window by clicking on it. After this the WBButtons-task
enters the status WAITING.


13.2 The Move-gadget:
~~~~~~~~~~~~~~~~~~~~~
This gadget is the title line of the WBButtons-window with the text "WBBs",
"WBButtons" resp. "WBButtons  8/1992 by Andreas Krebs" depending on the size
of window. If you click on this gadget and keep the left mouse button pressed,
you can move the window by moving the mouse arround, as you're used to it by
normal Amiga-windows.


13.3 The 'Scroll way'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is located at the right end of the Move-gadget and contains to
rectangles. If you click on this gadget the arragement of the groups and items
is changed, whereby two arrangements are possible. First vertical, that means
the items are displayed in rows below each and can be scrolled up and down,
whereby the Scroll-gadgets are located at right window border.
Second horizontal, that means the items are displayed in columns besides each
otherand can be scrolled left and right, whereby the Scroll-gadgets are located
at the bottom border of the window.
Well, simply try it and you'll know what is meant.


13.4 The Depth-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget is located in the top right edge of the window and is used to place
the WBButtons-window in the foreground resp. in the background.
This gadget acts in the same way as the Depth-gadget of WorkBench 2.0, that
means if the window is in the foreground it's placed in the background and
vice versa.
In difference to the normal Depth-gadget this gadget also works under KickStart
1.2 and 1.3.


13.5 The Left-/Up- bzw. Right-/Down-scrollgadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is located at the corresponding place of the bottom/right window
border, depending on the currently active arrangement, and contains a arrow
that points left/up resp. right/down.
If you click on this gadget the list of items and groups is scrolled left/up
resp. right/down, when more items exist than can be displayed at once.
If the begin resp. the end of the list is reached, you can't scroll any
further.


13.6 The Proportional-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is loacted between the two scrollgadgets and contains a scroll bar,
that shows which part of the list is displayed at the moment. If the bar is at
the left/top resp. right/bottom end the beginning resp. the end of the list is
displayed. You can also use the bar to scroll the list, by clicking on it and
then moving it in the direction you want to scroll the items.


13.7 The Items-gadgets:
~~~~~~~~~~~~~~~~~~~~~~~
This gadgets are loacted inside the window and contain the names of groups and
their items. For better differentiation the groups look pressed compared to the
items. If a name is to long, it's simply cut down.
The group-gadgets are displayed, but they can't be selected. In difference the
the item-gadgets can be selected and start the corresponding program, if you
click on it. After the start the WBButtons-window stays open and further
programs can be started.



14. The FuncKeys-task:
======================

This task creates an inputhandler and uses it, to check if a key combination
has be entered, that's used by EasyStart (see chapter 8), that means this task
checks if this key combination is used from an items in one of the active
groups (see chapter 2.4).
If the used key combination is found, EasyStart starts the corresponding
program. If two items have the same key combination, than that item is started,
whose combination was found first.
After the start of the program the FuncKeys-task stays active, until you stop
it (see chapter 9.7.3).

The FuncKeys-task is not responsible for the start and stop key combinations of
the Start-tasks. This key combinations are controlled by the MasterProcess and
therefore also work if the FuncKeys-task is not available. But all other key
combinations require the FuncKeys-task and are only available is this task is
in the status RUNNING (see chapter 9.6.7).



15. The ARexx-task:
===================

In the following chapter the word ARexx is used in many cases, whereby you have
to mind, that ARexx-task stands for the STart-task as part of EasyStart. The
word ARexx itself is used for the language ARexx and the therefore needed
program RexxMast. (Now all mix ups should be avoided, or ?)

This task creates an ARexx-port with the name 'EasyStart', so that you can
control EasyStart by ARexx. The ARexx-task doesn't check, if ARexx is already
loaded, cause the ARexx-task is also needed for the starting method 'ES-Msg'
(see chapter 6.3.5) and therefore can also be usefull with ARexx.
To start a program you have to send the name of the corresponding item to the
ARexx-task, whereby no difference is made between lower and upper case
characters. Possible parameters have to appended to the name separated by a
space ' '.
The ARexx-task only checks the items of groups, that are activated for the
ARexx-task (see chapter 2.4). If two items have the same name, than the first
found item is used, whereby the items doesn't have to be in the same group.
After the message is analyzed EasyStart starts the corresponding program or
returns an error to ARexx. After this the ARexx-task still has the status
RUNNING (see chapter 9.6.7).
Besides starting programs you can also control EasyStart with the ARexx-task
and therefore the following commands are available:


15.1 The Starttask-commands:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This commands are identical with the Commands-gadgets (see chapter 9.7) and
also allow you to control the Start-tasks. The format of this commands is
'COMMAND TASK'. The possible commands are:

 - 'START'  : starts a task (see chapter 9.7.1)
 - 'RESTART': restarts a task (see chapter 9.7.6)
 - 'UPDATE' : updates a task (see chapter 9.7.4)
 - 'SLEEP'  : places a task into the Wait-status (see chapter 9.7.5)
 - 'STOP'   : stops a task (see chapter 9.7.3)
 - 'UNLOAD' : removes a task from the memory (see chapter 9.7.2)

Now the commands explained, only the parameter "TASK" is left. This parameter
can be:

 - 'POPMENU'  : The PopMenu-task (see chapter 10)
 - 'POPSCREEN': The PopScreen-task (see chapter 11)
 - 'WBMENU'   : The WBMenu-task (see chapter 12)
 - 'WBBUTTONS': The WBButtons-task (see chapter 13)
 - 'FUNCKEYS' : The FuncKey-task (see chapter 14)
 - 'AREXX'    : The ARexx-task (see chapter 15)
 - 'KEYLIST'  : The KeyList-task (see chapter 16)

At the end two short examples of the commands fromat:

'START POPMENU': starts the PopMenu-task
'UNLOAD WBMENU': stop the WBMenu-Task (if necessary) and removes it from the
                 memory


15.2 The EasyStart-commands:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This commands represent functions of the MasterProcess and as such they can
also be activated thru the corresponding gadgets. The most of this commands
have no parameters, therefore parameters are only possible if they are
described specially. The possible commands are:

 - 'UPDATE ALL' : EasyStart is completly updated (see chapter 9.12)
 - 'CONFIGURE'  : The ESConfig-program is started (see chapter 9.10)
 - 'SNAPSHOT'   : The actual parameters are saved (see chapter 9.11)
 - 'ABOUT'      : The informations-window is opened (see chapter 9.13)
 - 'OUTPUT'     : The output channel is defined (see chapter 9.9)
   Possible parameters are:
    + 'CUSTOM': The outputs are send to a file
    + 'STDOUT': The outputs are send to the standard output channel
    + 'NIL'   : No outputs are made
 - 'ICONIFY'    : The MasterProcess gets iconified (see chapter 9.4)
 - 'WAIT'       : The MasterProcess is palced into the Wait-status (see chapter
                  9.3)
 - 'OPEN MASTER': The MasterProcess-window is opened (see chapter 9)
 - 'TOFRONT'    : The MasterProcess-window is placed into the foreground (see
                  chapter 9.5)
 - 'TOBACK'     : The MasterProcess-window is placed into the background (see
                  chapter 9.5)
 - 'EXIT'       : EasyStart is terminated (see chapter 9.1)


15.3 Example program:
~~~~~~~~~~~~~~~~~~~~~
Now that all commands of the ARexx-task are described, a small example program
is listed below, which can be started thru the 'RX' command.

/* some EasyStart commands */

address 'EasyStart'	/* get host-address */

'start popscreen'	/* start PopScreen-task */
'open master'		/* open MasterProcess-window */
'configure'		/* start ESConfig-program */

/* assume you have the program DeluxePaint defined with an item, whose */
/* name is DPaint and 'ARexx commands' is activated (see chapter 6.16) */

'dpaint ram:Picture1'	/* start DeluxePaint and load the image ram:Picture1 */



16. The KeyList-task:
=====================

In difference to all other tasks this task is not able to start programs, it's
able to display the key combinations used by EasyStart. Therefore this task
opens a window on the WorkBench-screen at the position defined with the
ESConfig-program (see chapter 7.9.2). This window contains following gadgets
and displays:

16.1 The 'key combinations'-display:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The KeyList-window contains up to 4 of this displays, whereby they are located
inside the window. Each of this displays provides following informations:

16.1.1 The Key-function:
------------------------
This is the title of the display, which is always written underlined and is
made out of the text "-Start" resp. "-Stop" followed by the name of the
corresponding group item (see chapter 2.5) resp. Start-task (see chapter 10 -
16). The text "-Start" is used for key combinations, that start a program or a
Start-task. The text "-Stop" however is only used for Start-tasks and allows
you to stop a task by pressing the corresponding key combination (see chapter
8.3).

16.1.2 The Code- and Qual-values:
---------------------------------
This two values define the key combination and are identical to the values,
that EasyStart always uses (see chapter 8.2.2 and 8.2.3). This values are
displayed in the same line as the title and are located behind the
corresponding text, whereby the values are hexadecimal.

16.1.3 The Code-key:
--------------------
This is the key written below the title. This key has to be pressed together
with the qualifier keys, to enter the key combination. The character displayed
here is the same, that appears if you press this key alone. For keys that
create no character, as the function keys, the name of the key written instead
of a character.
If behind the key the text "(Numericpad)" is written, than this key is located
on the numericpad.
If '????' is used as key, than EasyStart was not able to find a key with the
corresponding code. (What kind of keyboard do you use ?????)
Behind each key the text '[DOWN]' or '[UP]' is written depending on whether
EasyStart should wait until the key is pressed or until it's released again.
The '+' character has no function, it only shows you, that there are also some
qualifier keys for this key combination.

16.1.4 The Qualifier-keys:
--------------------------
This are the keys, that are listed below the code key and have to be pressed
together with the code key, to enter the key combinbation. If more than one
qualifier keys exist, they are listed behind each other separated by a '|'
character.
If mouse buttons are used as qualifier keys, than they are displayed in the
same row as the code key.
(For a list of the qualifier key see chapter 4.2.3)

The used abbreviations are:

  - MMB:     middle mouse button
  - RMB:     right mouse button
  - LMB:     left mouse button
  - LShift:  left Shift-key
  - RShift:  right Shift-key
  - Caps ON: Capslock is on
  - Ctrl:    Ctrl-key
  - LAlt:    left Alt-key
  - RAlt:    right Alt-key
  - LAmiga:  left Amiga-key
  - RAmiga:  right Amiga-key


16.2 The Close-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget is located in the top left edge of the window, and allows you to
close the KeyList-window by clicking on it. When the window is closed, the
KeyList-task is automatically stopped andremoved from memory.
The same can be done by clicking on the KeyList-gadget (see chapter 9.8) or by
pressing the stop key combination (see chapter 8.3).


16.3 The Move-gadget:
~~~~~~~~~~~~~~~~~~~~~
This gadget is the title line of the KeyList-window with the text "List of
command key codes:" resp. "List of program key codes:" depending, on what is
displayed. If you click on this gadget and keep the left mouse button pressed,
you can move the window by moving the mouse arround, as you're used to it by
normal Amiga-windows.


16.4 The Cmds-gadget:
~~~~~~~~~~~~~~~~~~~~~
This gadget is located at the right end of the Move-gadget and contains the
text "Cmds". If you click on this gadget, the key combinations for the Start-
tasks are displayed, that means for each task the start and stop key
combination (see chapter 8) is displayed. Beside the key combiantions for the
Start-tasks also the key combinations for the MasterProcess and the KeyList-
task are displayed.


16.5 The Progs-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget is located right of the Cmds-gadget and contains the text "Progs".
If you click on this gadget, the key combinations for the group items (see
chapter 4.2) are displayed, that means for each items the key combiantion is
shown, that starts the corresponding program.
For EasyStart is only able to start program, but not to stop them, this list
only contains stop key combinations.


16.6 The Depth-gadget:
~~~~~~~~~~~~~~~~~~~~~~
This gadget is located in the top right edge of the window and is used to place
the KeyList-window in the foreground resp. in the background.
This gadget acts in the same way as the Depth-gadget of WorkBench 2.0, that
means if the window is in the foreground it's placed in the background and
vice versa.
In difference to the normal Depth-gadget this gadget also works under KickStart
1.2 and 1.3.


16.7 The Up- resp. Down-scrollgadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is loacated at the top resp. bottom end of the right border of the
KeyList-window and contains an arrow, that points up resp. down.
When you click on this gadget , the list with the key combinations is scrolled
up resp. down, if the list contains more than 4 key combinations.
If the begin resp. end of the list is reached, you can't scroll any further.


16.8 The Proportional-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is loacted between the two scrollgadgets and contains a scroll bar,
that shows which part of the list is displayed at the moment. If the bar is at
the top resp. bottom end the beginning resp. the end of the list is displayed.
You can also use the bar to scroll the list, by clicking on it and then moving
it in the direction you want to scroll the items.


With the KeyList-task all tasks are discribed, so that now only some additional
chapters follow.



17. The 'Command line'-window:
==============================

This window appears, if you start a program with the 'Command line' function
(see chapter 6.17) being activated. With this window you can change the
parameters, that are send to corresponding program, if it's started. Therefore
this window contains the following gadgets:


17.1 The 'Command line'-gadget:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gadget is the long string gadget in the middle of the window. This gadget
contains the active parameters in the format of a CLI command line, that means
first the program name (if necessary with path) followed by the parameters
(separated by a space ' '). You can change and complete this line, as you like
it.


17.2 The Okay-gadget:
~~~~~~~~~~~~~~~~~~~~~
With this gadget you close the 'Command line'-window and afterwards EasyStart
uses the new command line to start the program.


17.3 The Cancel-gadget:
~~~~~~~~~~~~~~~~~~~~~~~
With this gadget you also close the 'Command line'-window, but now EasyStart
doesn't use the new command line to start the program, but therefore the old
command line is used, that was active before the 'Command line'-window was
opened.


17.4 The Quit-gadget:
~~~~~~~~~~~~~~~~~~~~~
With this gadget you also close the 'Command line'-window, but the program
start is terminated, that means after the closing of the window no program
start is done.



18. The AwakeES-program:
========================

This program is used to open the MasterProcess-window, if EasyStart is already
loaded, otherwise this program starts the EasyStart-program. This program is
very usefull for starting EasyStart, cause it first checks if EasyStart is
already loaded, whereas a second start of the EasyStart-program causes an error
message.
This program also supports some tool types (see Amiga manual), which you can
set in icon of the AwakeES-program. To inactivate a tool type you don't have to
delete it from the list, but instead you write a semicolon ';' in front of it.
The ToolTypes only work if AwakeES was started from WorkBench. If you start
AwakeES from CLI, the standard parameters are used (the same as if no tool
types are set). The possible tool types are:


18.1 The "NOMSGWIN"-tool type:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If this tool type is set, AwakeES doesn't open it's message window, that means
if you've started AwakeES from the WorkBench, no outputs are made. Therefore
the annoying window doesn't appear each time you start AwakeES.
If you start AwakeES from the CLI, this tool type is useless, cause all outputs
appear in the CLI-window and not in a separate window.


18.2 The "OPENMASTER"-tool type:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When this tool type is set, AwakeES always opens the MasterProcess-window, that
means if EasyStart is not loaded, it's first loaded and afterwards the
MasterProcess-window is opened.
If this tool type is not set, EasyStart is loaded, but afterwards EasyStart
enters the status defined with ESConfig-program (see chapter 7.2.4).


18.3 The "COMMAND="-tool type:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
With this tool type you can define, where EasyStart is located. Suppose you've
installed EasyStart in the directory "DH0:EasyStart", then the entry has to be
"COMMANDS=DH0:EasyStart/EasyStart".
This tool type has to be set, if you copy the AwakeES-program to another
directory (e.g. the "WBStartup" directory).
If this tool type is not set, it's automatically supposed that AwakeES and
EasyStart are located in the same directory.



19. Appendix:
=============

19.1 Error messages:
~~~~~~~~~~~~~~~~~~~~
In this chapter all error messages are described, that EasyStart is able to
make, a possible cause and how it can be solved (if possible).

19.1.1 The "Can't load <TASK> !"-message:
-----------------------------------------
If this message appears EasyStart was not able to load the corresponding Start-
task (see chapter 9.7.1), whereby <TASK> stands for on of the following tasks,
PopMenu, PopScreen, WBMenu, WBButtons, FuncKeys, ARexx or KeyList.
Possible causes are:
  - a memory shortage (very unlikely)
  - EasyStart wrong started (without path, see chapter 1.4)
  - EasyStart wrong installed (the ESTasks directory or the corresponding task
    is not available, see chapter 1.3)

19.1.2 The "Can't open ES-Configuration !"-message:
---------------------------------------------------
This message means, that EasyStart is not able to open the config-file
"ES-Configuration", whereby this message appears not only if you want to load
this file, but also if you want to save it.
If it appears during you want to load it, EasyStart immediately terminates
after this error message, if you want to save to it nothing further happens.
Possible causes are:
  - a write protected disk (only possible if you save it)
  - EasyStart wrong started (without path, see chapter 1.4)
  - EasyStart wrong installed (the "ES-Configuration" file is not available,
    see chapter 1.3)

19.1.3 The "Can't open Window"-message:
---------------------------------------
This message appears, if EasyStart is not able to open a window.
Possible causes are:
  - a memory shortage (especially to less chip-ram)

19.1.4 The "Don't run EasyStart twice !"-message:
-------------------------------------------------
This message appears, if you try to start EasyStart again, although it's
already loaded. The second loaded EasyStart is terminated immediately after
this message, cause EasyStart is only allowed to be once loaded, because
otherwise a crash would happen.

19.1.5 The "Screen to small for PopMenu !"-message:
---------------------------------------------------
This message appears, if the screen you want to open the popup-menu on (see
chapter 10) is to small for the menu. This error appears mainly on small
screens (e.g. LORES) or if very much items and groups are displayed in the
popup-menu.
If you switch to a greater screen, the popup-menu works again.

19.1.6 The "WorkBench window not found !"-message:
--------------------------------------------------
This message appears, if the WBMenu-task (see chapter 12) has been started and
it was not able to find the WorkBench-window, therefore no menus were created.
Possible causes are:
Mgliche Ursachen sind:
  - the WorkBench-window is not opened yet

19.1.7 The "ARexx-Task not loaded !"-message:
---------------------------------------------
This message appears, if you try to start a program with the 'ES-Msg'-method
(see chapter 6.3.5), while the ARexx-task (see chapter 15) is not loaded or
inactive.

19.1.8 The "Can't open keymap library !"-message:
-------------------------------------------------
This message appears, if EasyStart isn't able to open the "keymap.library".
This library is needed to start programs with the 'String'-method (see chapter
6.3.6).
Possible causes are:
  - using EasyStart under Kickstart 1.3 (the "keymaps.library" is only
    available under Kickstart 2.0 or higher)
  - the file is missing (the "keymaps.library" is not located in the logical
    device 'LIBS:')

19.1.9 The "Can't open custom output !"-message:
------------------------------------------------
The file defined in the Custom-gadget (see chapter 7.2.6) can't be opened,
therefore EasyStart sends all outputs to the 'NIL:', so that all outputs get
lost.
Possible causes are:
  - a wrong writen file or device (e.g.: "COM:" instead of "CON:" or stuff like
    that)
  - write protected disk

19.1.10 Other error messages:
-----------------------------
Beside this messages, there can also appear errors during the start of a
program, this messages are send to the output channel (see chapter 9.9).
Because this messages are the normal CLI error messages, therefore they are not
explained here.



Now that you've reached the end of this documentation, I'd like to wish you
a lot of success with EasyStart.
If you have questions, problems or simply want to make a comment about
EasyStart (e.g.: improvements or stuff like that), please write to the address
below.

20. Address of the author:
==========================

Andreas Krebs
Mittelweg 9
7110 hringen 2
Germany

Phone.: 07948/2101  (at the weekend or in the holidays)
        0721/821356 (otherwise)

(In case of doubt try both and hope that I'm there.)

Or send a Email to the following address:

Email: s_krebs@iravcl.ira.uka.de
