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