******************  I'm no programmer.********************

    The following commands do not exist that I know of.
Not being a programmer I can only present the idea of what the
commands should do and make some suggestions about writing the
commands.

1.) I suggest the commands be written in a portable programming
    language for portability and that the source code be released
    with it.

2.) Stay with the specs. as to the abilities of the commands or at
    least don't take away any of the abilities (what may seem useless
    to you now, may not to another). If adding abilities, first
    carefully consider if your objective can be reached with the given
    abilities or other commands. Any changes to the syntax, suggested,
    should be kept simple to remember for ease of use.

3.) The commands should be as compatable as possible with AmigaDos
    standards (not conflict with other commands or system changes).
    Following Commodores specs. should insure compatability to any
    additional upgrades.

4.) The commands should be as fast and small in size as reasonably
     possible. Debugging, comments, and any other routines used for
     writing and checking the commands should be deleted in the final.

 Also,

I hope credit is given where credit is due, having spent many many
hours in thought about such commands and their uses, taking into
account I can't think of every use, so being open ended minded, as
were the developers of the Amiga.

*************** Public Domain / Shareware vs Sale for profit.****************

   Though the commands might make a good deal of money being sold
for profit, much more profit for all is to be had by them being in
the public domain. Being in the public domain will result in faster
and wider spread of the commands. The more they spread the more
they'll be used, resulting in more batch files and Indexs being
written and spread. This will result in much more user friendly and
interesting the Amiga line will become, resulting in more sales of
the Amiga. More Amigas out mean more programmers interested in
writing for the Amiga line. ETC...

   To give credit where credit is due, I propose these commands be
a PD/Shareware project of AAi. Giving anyone sending in funds some
club benifits (from several free newsletters to annual Memberships).

   It's really the only way to go, being the commands are intended for
the end users use. And our president, Andre, has done such a fine
job of helping the user, Commodore hired him. Also, as a Shareware
product, will help promote AAi and it's growth.

***************** The idea of Disk Operating System (DOS).******************

   The basic idea of DOS is to have a method of manipulating files
or programs. Sequencial or Batch files can be written to do a number
of things without help from the user. AmigaDos batch files can be
slow and even sometimes frustrating and repetative. But once written
can save the user alot of time and frustration. AmigaDos was designed
and written in a rather short time length, leaving much to be desired.
In efforts to improve it, programmers have made improvements and
additions to it, but not to such a degree that causes a compounded
or multiple effect as the following commands will. These commands are
truly DOS batch file oriented, therefore able to take advantage of
any improvements and additions yet to be made. Also opening up the
use of DOS to areas not so recognized, buy the end user, as really
functions of DOS in manipulating files and programs. In addition,
opens up uses of the DOS batch files in areas or way that DOS wasn't
intended or intentionally designed for, but work.

**********************  Basic Idea of Commands.***************************

   The basic idea behind the following commands, is that of
referencing lists or INDEXs for information, instructions, and/or
direction batch files takes. Along with ways to manipulate the Indexs.

 Three type of lists or Indexs are used.

1.) Index of .Key subnames, Names, and .Def Default-names
     to be passed, via subnames.

2.) Index of Action to take based on File or string type.

3.) Index of Action to take based on Filename or string.

   By using Indexs or lists, the repetitiveness, size and number of
Batch files can be decreased, while the ease of writing, speed, and
versatility of batch files increased.

************** Usefulness of commands (in progressive stages).**************

   Instead of giving examples, beyond examples for clarity, in this
document, I feel that just covering the basic areas or progressive
stages of the use for the commands is enough. I am willing to do
documentation of examples but see no need to do so until having
actual working commands, to be able to give proper syntax. Such
examples can easily become a large number of pages or "book of
examples" or perhaps an on going user group(s) project (involving
not just programers but those working and/or learning Cli operations).

   Not to mention the use of these commands with any improved or
additional commands, files, and programs yet to be written by others,
including that which is inspired by these commands.

   There seems to be at least four progressive stages of use of these
commands.

   1.) User friendliness - In prompting the user for specific input,
which will in turn determine on its own input a user might
otherwise need to remember and input in proper syntax. This
stage can also be used to teach a user, proper syntax
without the user becoming frustrated.

   2.) Multi-tasking - as a result of stage 1, it is possible to
prompt a user for all input needed from user, in reguards
to multi-tasking objectives, before begining multiple tasks.
This can also include setting task priority.

   3.) Hypertext or (hyperfile) - as a result of stage 1 and 2, it's
possible to open, say a text file, then another cli waiting
user input determined from text file, to be referenced to
Index(s) for process to follow. This can allow any type of
file to be hypered to and from. The front, back, and close
gadgets might become the chosen method of moving around open
hyped files, giving one way of hyping around.

  4.) Artificial Intelligence - as a result of the above and in
using the Indexs as rule base(s) both Eliza style and Expert
system AI can be accomplished, via batch files, to some
degree. The limits of AI through these commands, Indexes and
batch files, is mostly that of speed, though experimentation
and pratical applications can be accomplished. These commands
might very well inspire AI programs or modules to be written
that make use of these commands.



*********************** Upside Downside of AmigaDos **********************

   To help bring a clear understanding of the commands presented and
to cover commands and abilities of AmigaDos that might come to mind,
the upside downside of the following AmigaDos abilities are given.

Execute and AmigaDos Templates:

   Upside - the Execute command is useful for processing a batch or
 sequencial file(s). It also has the ability to put to use
 AmigaDos templates, creating directives or variables and
 what they represent to be passed and used in the batch file(s).
 Also having the option of using qualifiers to prevent
 execution without proper input.

   Downside - Using template directives is limited in that a user
 must remember and must use the template of the batch file
 with the execute command. This results in being very limited
 in the creation, manipulation, and use of directive or
 variable subnames and what they represent. Giving no way to
 prompt the user for a string to be represented by a subname
 or the ability to create, change, keep and use a list of
 subnames and what they represent. Also, no way of defining
 a subname and its qualifier(s) and/or what it represents
 during the execution of a batch file(s). This limits the
 versatility and/or possible directions a batch file might
 follow, causing a need to write more and/or larger batch
 files to do various things that have common elements.

Assign command:

   Upside - this command is useful for creating and using a subname
 for a file or directory and can be used in a batch file.

   Downside - the actual name the subname represents is not placed
 in the batch file as does the template directives used with
 the Execute command. Also, Assign subnames must be for a
 file or directory and not just a string, and in some cases
 cannot be used for a file.

Pause or Ask command:

   Upside - such commands as these prompt the user for input that
 can determine the direction a batch file takes, during its
 execution.

   Downside - these commands are limited in only presenting the user
 with the option of going one of two directions, requesting
 yes or no input. When there is more than two directions to
 go, using these commands can become time consuming and cause
 the computer to appear to be guessing at what the user wants
 to do. Not to mention the size a batch file grows to with
 the more directions the user might go.

IF-ELSE-ENDIF Commands and pattern matching:

   Upside - very useful in determining direction a batch file takes,
 allowing multiple conditionals to be used, two of which are
 a string comparasion (EQ) and a directory or file search
 (EXISTS). EQ compares strings not actual block IDs of files.
 It also recognizes subnames as the name they represent (due
 to the way execute deal with subnames throughout a batch file).

   Downside - IF does not use or recognize any pattern matching
 characters. This prevents the ability of EQing only part of
 a character string, which can be very useful in determining
 not only one step of direction a batch file takes, but several
 by EQing for different string parts (of the same string). A
 string might be plural or several words, etc... calling for
 additional or different routes to go. The EXISTS conditional
 cannot check for subnames existing.

Skip and Lab commands:

   Upside - these commands can do alot in determining the direction a
 batch file takes when used with the IF-ELSE commands.

   Downside - these commands are limited by the limits of the IF-ELSE
 commands and can result in a trade off of versatility for size
 of batch file. Repetitiveness can happen due to skipping a
 large part and then needing to do something that was skipped
 (not being able to back up).

Search command:

   Upside - Gives the ability to search file(s) for a character string
 and has the ability to direct the results to a device other
 than the console device. Having the ability to use pattern
 matching characters in determining files to search. The output
 being all lines containing the search string and line number.

   Downside - Presents all results - Line number, complete line, and
 all lines. This is not needed in such a case of just
 determining if a file contains the string or in using a file
 as an index, where the first word(s) are to be the keyed and
 the following text to be where to go or what to do (which may
 also contain key words not intended to be keyed). Also the
 Search command doesn't recognize pattern matching characters
 in the search string or file(s) searched. The Search command
 is very useful for many things, just not a useable route to
 take for doing other things.

********************* THE COMMANDS AFI and QCL *****************************

   Before going into the commands the following modifications need
or may need to be made to the Execute Command. For clarity the words
subnames, names, and default-names will stand for "subnames" used in
a batch file to represent and pass "names" or "default-names".
Names and default-names may be any valid AmigaDos character string
(including filenames and logical and physical devices. As is typical
of the Execute command).

Execute Mods.

1.) The only way to create .Key subnames, names, and .Def
 default-names is through the use of Execute and the dot (.)
 directives written in the batch file executed, as a combined
 effort of the two.

 This gives no way to create such subnames, names, and
 default-names before or during the execution of a batch file,
 nor the ability to see, edit, delete, or save the information
 for later use. The AFI command gives these abilities, but for
 such abilities to be possible, the Execute command may need
 to be modified to give access to the information, to the AFI
 command. Or modified to look to the Index created by the AFI
 command for needed information.

2.) It is my understanding that the Execute command, upon
 finding a (.) directive (subname), re-writes the whole batch
 file temporarly to the T Directory replacing all subnames with
 the names to be passed before processing the batch file
 (reason for the improvement of Execute in the 1.2 WB release,
 creating a T directory if one doesn't exist?). This Temporary
 file can easily become unessararly very large with the use of
 the QCL command.

    As a result of the QCL and AFI commands, it becomes
 important for the batch file to be processed one line at a
 time (in reguards to subnames). A better method would be for
 each line to be re-written in ram: where the subnames can be
 replaced, before the line is processed (otherwise the QCL
 command may not be possible). Going this route will save on
 writes to disk and can only take up as much ram: space as the
 maxium 255 characters allowed by a single CLI command line.
 And only those lines needing to be processed will be re-written
 and only as they are needed. This allows for changes to names,
 and default-names of the subnames during the execution of a
 batch file, in that the Subname Index is referenced for each
 line (to be processed) having subnames.

3.) Any changes or re-write of the Execute command should be
 renamed as example: "Process" command. And should only be
 changed in such a way as needed by the AFI and QCL commands,
 without changing any other function of it. Such as it's
 ability to create and use (.) directives (Being as compatable
 as possible with the Execute command and functions of).

4.) This may not be of concern. Using two or more CLI's or
 tasks and the AFI command, may call for different subname
 Indexes to be created and used. Both Indexes may contain the
 same subnames but represent different names and/or default-
 names. The Indexes would need to be ID'ed for the CLI or task.
 Again, I'm no programmer, and I'd think AmigaDos would take
 care of this, but I don't know. So I mentioned it, just in
 case AmigaDos doesn't. Also, It's possible that no mods.
 need to be made to the Execute command for AFI and QCL to
 work.

******************

AFI command  (Ask For Input, Information, or Instructions.)

Summary of AFI command.