The Full Manual To The Amiga`s DOS Commands AddBuffers(V1.3,2.x,3.x in C:) PaRt OnE NAME AddBuffers - Increase the sector cache for system disk drives. SYNOPSIS AddBuffers DRIVE/A BUFFERS/A D2 B2 D3 B3 D4 B4 DESCRIPTION This command increases the number of disk buffers used by the system for disk drive access. By increasing the number of buffers, you can reduce disk access time at the cost of losing memory to the sector cache (exactly 512 kilo-bytes per buffer). The buffers specified are used for a specific drive, and do not affect the performance of the other drives in the system. Commodore recommends not using more than 25-30 buffers with the standard filesystem, because more than this does not improve system performance by much. With the new FastFileSystem (and a hard drive), more buffers may increase performance, so more than 30 may be used to good effect if you have the memory. Starting with version 1.3 of AddBuffers allows you to set buffers for up to four disk drives with a single command line. The default number of buffers are 5 for floppy and 30 for hard drives. Those formatting using the Fast File System (2.x and above) will always benefit from more disk buffers. More likely than not, the buffers are allocated during the partitioning, and it is stored in the Rigid Disk Blocks (RDB). With buffer space more information will be read from the disk into memory, thereby making disk searches and transfers much quicker. So, you are sacrificing memory for programs in exchange for quicker disk access. For 2.x and 3.x ONLY: You can use this command to find out how many buffers are assigned to a drive. You can also subtract buffers to free up some memory. EXAMPLE 1. To add 15 buffers to the sector cache for drive df0 do: AddBuffers DF0: 15 2. To add 10 more buffers to df0:, and 20 to hard drive dh0: AddBuffers DF0: 10 dh0: 20 For 2.x and 3.x ONLY: 3. To subtract 10 buffers from df0:, and 20 to hard drive dh0: AddBuffers DF0: -10 dh0: -20 4. To Return the numbers of buffers assigned to df0: AddBuffers DF0: AddDataTypes (3.x Only in C:) NAME AddDataTypes - Adds additional data types after booting. SYNOPSIS AddDataTypes {files} [Quiet] [Refresh] DESCRIPTION This command is used to support the object oriented Data Type process used by MultiView. All data files that are processed by multiview are passed to system-standard libraries for that kind of data (for instance, a .gif is sent to a system-standard library that is coded for .gif). In order to be passed to a system-standard library (all of which are located in L: directory). If a library is added after boot-time, it can be used immediatly with the help of this command. This save you the hassle from having to reboot after adding new datatypes. EXAMPLES 1. To add a gif displayer for multiview AddDataTypes sys:Devs/Datatypes/GIF 2. To add a gif datatype without printing any output to the screen (useful in writing scripts) AddDataTypes sys:Devs/Datatypes/GIF Quiet 3. To scan the DEVS:DataTypes for new or updated entries AddDataTypes AddDataTypes Refresh Alias (1.x,2.x,3.x Internal Command) NAME Alias - Create short names for longer command strings. SYNOPSIS Alias [alias [string] ] DESCRIPTION This command lets you make short names (aliases) for longer command strings. When a word is typed on the CLI, AmigaDOS will subsitute a longer string for it. This longer string may also contain arguments as well as commands. It can also display a list of alias assignments. For an alias to become global it MUST be entered in the s:shell-startup script. Otherwise, it can only be used by the shell that created it or through the NewCLI command called from the same shell it was created. EXAMPLES 1. To shorten the Delete command to DL Alias DL Delete 2. To copy df0: to df1: using cop Alias cop Sys:System/Diskcopy df0: to df1: 3. To copy an entire directory (empty or not) Alias cp copy [] ALL (When you type cp directory it gets expanded to: copy directory All Ask(V1.3 in C:) (v 2.x & 3.x internal) NAME Ask - Query user interactively. SYNOPSIS Ask Prompt WARN OK TIMEOUT DESCRIPTION Ask is a program that allows you to get a simple form of input from a user. It is most useful in Execute scripts. You may specify a Prompt string, which will be displayed to the user, and you may also specify a string to match on for both YES and NO responses, as well as specifying a time limit on the users response in seconds. All of these strings have default values, the default for the WARN string is 'Y', the default for the OK string is 'N', and the default for the Prompt is a single question mark. If the user enters a string which matches the WARN string, Ask will exit with a return code that will cause an IF WARN statement to succeed. If the user enters a string which matches the OK string, exceeds the value given in TIMEOUT, or simply hits RETURN then Ask will exit with a ZERO return, suitable for the ELSE portion of such an IF statement. More simply: A 'yes' returns a 5. A 'no' returns a 0. If the user enters a string other than those specified in WARN and OK, then ASK will redisplay the prompt, urging the user to give a better answer. EXAMPLE Here is an example of an Ask command which will return a WARNING if the user types "Amiga", and an OK if the user types "BigBlue", or waits longer than 10 seconds to respond: Ask "Amiga or BigBlue?" "Amiga" "BigBlue" Timeout 10 IF WARN ; typed amiga! Echo "Obviously a person of quality" ELSE ; typed big blue? or couldn't decide Echo "You seem to be misguided" ENDIF Assign(V1.3, 2.x, 3.x in C:) NAME Assign - Binds a device name to a directory or file. SYNOPSIS 1.3 Assign Name Dir Etc/... LIST EXISTS REMOVE 2.x/3.x Assign Name Dir Etc/... LIST EXISTS DISMOUNT DEFER PATH ADD REMOVE VOLS DIRS DEVICES DESCRIPTION Assign causes NAME: to be a synonym for a directory or a pathname. This is referred to as a "logical" device, since it appears to the Amiga and the user as a device, but is in fact a directory. You can use this as a convenient shorthand to refer to lengthy pathnames, or to refer to a variety of different directories by the same name (just change the assignment when you want the program to change directories). You can remove assignments by giving only NAME:, or by giving a single minus ('-') as the directory or device name. There are also specifice keywords to remove assigns which will be covered later. In any case, all assigns are lost when the system is shut off or rebooted. In 2.x/3.x you can assign a single device name to many directories by simply listing all of the directories after the device name. S:, L:, C:, FONTS:, DEVS:, LIBS:, T:, and SYS: are all made during normal startups. All these assigns directly relate with system operation. Therefor, they should not be tampered with for any reason. If there is already a directory with an assignment, any new assignment will replace it. You cannot, however, assign the same name to a device that already exists. So an assign to device Work: if a disk whose name Work: is already mounted. OPTIONS LIST Lists the current assignments. Under 1.3, if you specify a single already assigned name on the command line with LIST, it will be removed from the device list. Under 2.x/ 3.x you can either make or remove assignments along with listing them. EXISTS Takes a logical device name as an argument. If the name exists, the device name and its assignment are displayed. If the name does not exist, then the condition flag is set to WARN (return flag 5). This will cause an IF WARN batch file statement to succeed. REMOVE For 1.3: Takes a logical device name as an argument, and removes it from the device list. This is useful largely to individuals writing handlers, careless use of this option can easily crash the Amiga. It will not, however free up the memory that was taken up with the assign. For 2.x/3.x: It can be used to delete one directory from a list of assigns. Opposite of ADD (see below). DISMOUNT 2.X/3.X ONLY: Used exactly like the REMOVE keyword for 1.3 to remove a device from a list of mounted devices. DEFER 2.x/3.x Only: Postpones the assign until a command tries to access that device. Defer will not throw out an error if it searches for a directory and it does not exist. PATH 2.x/3.x Only: This expands on the DEFER keyword. Whereas DEFER eventually binds the assign, PATH keeps the assign non-binding. Not only will it wait for a command to access that device, but it will reevaluate the assign every other time that device is requested for. (NB: This is very convenient if you are a floppy only user. You will not have to replace the Workbench each time FONTS: is requested. Instead, you can insert different floppy named fonts: each time that device is scanned for.) PATH will not accept multi directory assigns. ADD 2.x/3.x Only: Let's you add new directories to an existing assign. For instance, if you assign a device that is alread assigned you will lose your old assign. If you use the ADD keyword, you will add the new assign to the old assign. VOLS DIRS DEVICES 2.x/3.x Only: Limits the information that is displayed when you list your assigns. VOLS shows you only which volumes are assigned, DIRS shows you only which directories are assigned. DEVICES shows you only which devices are assigned. If none of these keywords are used then all three kind of information are displayed. CAUTIONS Random or careless assignments of the Amiga's pre-assigned devices can cause mass confusion. Random or careless use of the REMOVE option can cause a GURU. SEE ALSO Execute EXAMPLES 1. ASSIGN DICTIONARY: df1:usr/lib/dictionary DICTIONARY: may now be used as a synonym for the complete path df1:usr/lib/dictionary. If a program uses the logical device DICTIONARY: rather than a hardcoded directory name, then changing the DICTIONARY: assignment will change the dictionary that the program will use. Assign allows a practically infinite number of assignments or deletions to be made on one command line. You may remove an assignment by using a minus '-' sign instead of a logical directory or filename to subtract this assignment from the device list. 2. To return all the assignments made to your system just enter: Assign 3. 1.3 Only: To assign POOF: to the disk in DF0:, remove the assignments for PUF: and DUF: and assigns CRUFT: to HD0:. ASSIGN POOF: DF0: PUF: - DUF: - CRUFT: HD0: 4.2.x/3.x Only: To assign multiple paths to one device: Assign Music: Work:DeliTracker/Mods Work:OctaMed/Meds To assign Fonts: to df0:Fonts only when a program tries to access Fonts: Assign Fonts: Df0:Fonts DEFER Avail(V1.3, 2.x,3.x in C:) NAME Avail - Report memory statistics. SYNOPSIS 1.3 Avail CHIP/s FAST/s TOTAL/s 2.x/3.x Avail CHIP/s FAST/s TOTAL/s FLUSH/s DESCRIPTION Avail reports on the amount of memory available in the system, its type, how much of each type is in use and is free, and the largest single block of memory of each type (also known as contiguous memory). This command is useful with shell scripts to determine if there is enough memory available to load a program, file or graphic before you actually perform the load. OPTIONS CHIP Reports the total amount of free chip memory FAST Reports the total amount of free fast memory TOTAL Reports the total of all free memory, both fast and chip. FLUSH 2.x/3.x Only: This option will force all unused devices, libraries and other resources out of the system, which gives the most accurate report of available memory. This will free you as much memory as possible by killing all information in your memory not being used by any program. This is useful to kill off all the resedue of processes that exited but did not give you all your memory back. EXAMPLES 1. To get all available system ram: Avail 2. Show only Fast Memory Avail Fast BackTick (2.x/3.x ONLY) (CLI Function) NAME BackTick- Allows you to include the text output of one command to be the input of another command. SYNOPSIS SomeCLICommand `AnotherCommand` DESCRIPTION This is a new and important feature of 2.x/3.x. BackTick lets you insert the text output of one command to be the input of another command. For instance, if you wanted to print the contents of the Work:ESCOM directory with an informative header you would type this: ECHO >prt: "The directories in work are:" `Dir Work:ESCOM` It's a good idea to know where this key is, so I'll tell you. It is the key right above the Tab key. The unshifted version of that key is the BackTick (`), the shifted version is the Tilde (~). If you try to use the parenthesis key (') your command will fail. There is a difference between those two keys even though they look similar on the screen. The backtick command always evaluates itself at the time it is issued. If you wish to have the backtick command evaluated after several other commands have been issued you must place the asterix (*) escape character before each backtick. For instance, lets say you want to create an alias which displays the contents of the Gould:Loser directory. You would type: Alias grovel Echo "Contents of the Loser directory is: *`dir Gould:Loser*` Now, whenever you want to see what is in that directory you merely type 'grovel' and it will be shown. But, if you don't include the asterixes then any changes made to the Gould:Loser directory will not be reflected. You will only see what was in that directory when the Alias was first made. With some experimentation you will find this DOS function to be one of the most useful. BaseName(V1.3- arp component)) NAME BaseName - Display the Base (filename) of a pathname. SYNOPSIS BaseName Path/a Suffix DESCRIPTION Basename extracts the filename from a long pathname, displaying it to the standard output. You can also give BaseName a suffix to delete. The most common use for BaseName is in scripts, where it is used to generate new filenames from old. This command is most useful with a shell that supports command substitution and piping. EXAMPLE BaseName "DF0:Scoobie/Doobie/Foobar" Foobar BaseName "DF0:Scoobie/Doobie/Foobar.c" .c Foobar OTHER This command is new with V1.3 of Arp, it is not available with the Commodore distribution. It has been replaced by several internal calls in v2.x/3.x. Binddrivers (1.3,2.x,3.x) (location: C) NAME Binddrivers - Mounts device drivers residing in your Expansion Drawer. SYNOPSIS Binddrivers DESCRIPTION Locates device drivers reisiding in the Expansion drawer of your Workbench: disk. It then activates those drivers for use. This is useful to add devices to your system harddrives that are not mounted by the operating system. You will also find binddrivers in your startup-sequence. This way, it can mount any external devices during startup. If you don't have a device in your expansion drawer or if you want those devices mounted when you are ready for them, then you can remove this command from your startup-sequence. NB: This is not part of 1.2. EXAMPLE 1. To load the device drivers in the Expansion directory of sys: Binddrivers Break(V1.3, 2.x, 3.x: internal command) NAME Break - Send a signal to a background process. SYNOPSIS Break Process=T=Task/a A=ALL/s C/s D/s E/s F/s DESCRIPTION Many programs which run from the CLI will respond to the typing of one of the control characters C D E or F. By far the most common is control-C which usually causes a process to terminate. If you execute a task in the background (by using Run or ARun), you will not be able to send it a break signal from the keyboard, and that is where Break comes in. Once you know the CLI number of the process you wish to signal (available immediately after you run the process or by using the Status program), you can send one of these control signals to the background process. It simulates selecting a CLI process with the mouse and pressing the specified CTRL-key keystrokes. You may trigger up to four breaks at a time. EXAMPLE 1. To send a control C to background process number 2: Break 2 C or Break 2 (Break defaults to control C) 2. To send ALL control signals to background process number 3: Break 3 C D E F or Break 3 ALL 3. 2.x/3.x Only: To signal a break to a program running under the WAIT command: Break 'STATUS Com=Wait' CONSIDERATIONS Not all programs respond to break requests. SEE ALSO Status CD(V1.3 in C:) (2.x/3.x Internal) NAME CD - Report or change the current directory. SYNOPSIS CD Dir ROOT DESCRIPTION CD when given a valid directory name, makes that directory the current or default working directory. To display the current directory, type CD without any arguments. It's also supplied with the switch ROOT. By using ROOT in place of an actual directory name, an assignment to the root of the filing system will be made. This is the device you booted from, rather than a specific disk. For example, if you booted from Drive Df0:, CD ROOT will permanently assign your directory to any disk in drive Df0:. It also has a simple pattern matching capability. You may use a wildcard specification as an argument to CD, CD will make the first directory it finds that matches the pattern the current directory. Pattern matching is utilized with the Amiga wildcards). You can also move up one directory by using multiple slashes (/). For instance, if the current directory is: Work:Art/AGA by typing CD // you will change to the Work: directory. 2.x/3.x only: You can also change directories by simply typing the path name at the shell prompt. The CD command is only needed if there are any spaces in the path name. In this case you must place the entire path in quotes. NB: AmigaDOS handles default drives unlike any other personal computer. Let's say you insert a disk named Stuff: in df0: and type CD df0:. Then, you remove the disk and insert a disk named Things: and type dir df0:, you will be requested to insert Stuff: in df0:. To get around this, merely type Cd df0: whenever a new disk is inserted. This makes your Amiga read the new volume label and it forgets all about the old disk. EXAMPLE 1. To change directory to df0:libs CD DF0:LIBS 2. To report current directory CD 3. To make any disk in Drive 0 the current directory CD ROOT 4. To change back to your root directory (2.x/3/x only) CD : 5. To move back up two directories (2.x/3.x only) CD // SEE ALSO Prompt ChangeTaskPri(V1.3,2.x,3.x) Location: C:) NAME ChangeTaskPri - Change a tasks execution priority. SYNOPSIS ChangeTaskPri P=Pri,T=TASK=PROCESS DESCRIPTION By increasing/decreasing the priority of various tasks in the system, you can increase/decrease the amount of CPU time each task is allocated. The ARP version of this command checks the value of your priority, and also allows you to change task priorities of currently running tasks. This should be performed with care. If no task number is entered, this command uses the currently executing task. If executed with no arguments, ChangeTaskPri will return the priority of the currently executing process. This is useful in shell scripts. Your Amiga's operating system was created where each task that is running gets assigned a priority from -128 to 127. The processor asses this number and prioritises the tasks. The higher the number the more processing time will be alloted to it by the processor. WARNING: Never raise a task priority higher than 5 or less than -5. If you raise it above 5 you will override important system tasks such as the input handler (which checks the keyboard and the mouse). If the priority is below -5 it will be completely shut out of the CPU by the most trivial of instruction. EXAMPLE 1. To change task 3's priority to -5 ChangeTaskPri -5 Process 3 2. To Change current CLI's priority ChangeTaskPri 5 3. 2.x/3.x ONLY: To utilize the backtick feature to change the priority of the C:CONCLIP task to 5 ChangeTaskPri 5 Process 'Status com=c:conclip' Cmp(V1.3 ARP Only) NAME Cmp - Compare files and report differences. SYNOPSIS Cmp From With FULL QUICK ALL DESCRIPTION Use Cmp to display differences between binary or text files. When comparing single files, the return code will be set to WARN if the files do not match. This is useful in scripts with IF statements. The return code on complex pattern matches with more than one file will always be zero. When specifying directories as either the From or With arguments, you may use a dot which means "current directory". You can use either C-e (Control E) or C-f (Control F) to abort the comparison of the current files and move on to the next. This is most useful with multiple input files and the FULL (see below) option. As usual, a C-c (Control C) will abort the program all together. INPUT FILES You can specify the file or files to be compared quite easily and naturally with Cmp using simple pathnames or wildcard patterns or even directory names. When you specify wildcards and/or directories to be compared, Cmp will compare files with the same names in each directory. Cmp will not abort if it cannot find the second file, it will simply print an informative message and go on to the next file. If you need to compare files with different names, then you must specify each name in full as the With name and the From name. A more detailed explanation follows: If From is a file, then With may be either a directory or another file. If a directory is supplied, then Cmp looks for a file with the same name as the From file in that directory: So, to a compare File with RAD:Dir/File2 Cmp File RAD:dir/File2 And to compare File with DirName/File Cmp File DirName You may also use a wildcard pattern as the From file. In this case, the With name must be a directory. Cmp expands the wildcard specification and tries to find files with that name in the With directory: Cmp File RAD:Foo/$?.c DF0:c Finally, you can also use two directory names as the From and With specification. This will compare all the files of the same name in the From directory with all the files of the same name in the With directory: Cmp Dir1 Dir2 OPTIONS FULL This will display all points at which the two files differ. The display is of the form "Offset: Byte1 Byte2" where Offset is in decimal and Byte1 Byte2 are in hex. Use C-e or C-f to move to the next file in the series, or C-c to abort. QUICK The QUICK option will check to see if the two files appear to be identical, by first comparing the date stamps and file lengths, and if these are the same the file comparison is skipped saving some time. ALL If there are subdirectories within the directories you are comparing, the ALL switch will force Cmp to recursively descend these directories, comparing files as appropriate. NOTE This command is new with V1.3 of ARP, it is not available with the Commodore distribution. CONCLIP (2.X/3.X only) (location: C:) NAME Conclip- Directs console device to use the clipboard for cutting-and-pasting. SYNOPSIS CONCLIP [UNIT clipnum] [OFF] DESCRIPTION By default, the Amiga's console device only uses its own internal buffer for copying and pasting. This command directs the console device to use the clipboard for its copying and pasting. Copy-and-Paste lets you copy a block of text from a console window by drag-selecting it with the mouse then pressing RightAmiga-C. You can then paste this into another console window by activating that console and pressing the RightAMiga- V. Conclip not only lets you paste into other consoles but also into the window of any other application which supports the clipboard. It's an extremely good idea to make sure it is in your Startup-Sequence. This way, you will not have to worry about it. Note: Conclip requires the iffparse.library to be in your LIBS: drawer and the clipboard.device file to be in your DEVS: drawer. KEYWORDS UNIT Lets you specify the device unit number from 0 to 255. This designates the clipboard device number you wish to paste to. You do not have to add the word 'UNIT', you can merely specify the number. OFF Lets you turn off the clipboard device for that console. There is really no need to do this as it will never effect the operation of anything else. EXAMPLES 1. To direct the console to use the clipboard to copy-and-paste: Conclip 2. To change the clipboard unit number used by the console device to unit 3: Conclip 3 (By the way, the console device is utilized to accept keyboard and mouse strokes and print them to the screen. The output goes to a console window. The CLI has its very own console window.) Copy(V1.3,2.x,3.x) (in the C: directory)) NAME Copy - Copy files. SYNOPSIS Copy From To ALL QUIET BUF=BUFFER CLONE DATES NOPRO COM FLAGS QUICK DESCRIPTION COPY duplicates the contents of the file or files (if wildcards or a directory is given) of its FROM argument to the file or directory specified in its TO argument, overwriting any existing file or files of the same names. FILE SPECIFICATION The From argument may be a file, a directory or a wildcard pattern. You can use a dot '.' as either the From or To directory to indicate the current directory. Double quotes "" can be used to refer to the current directory. If you copy a file, you may give that file the same name or a different name as the original. If the destination has the same name as the original then the new copy will replace it. Copy can duplicate many copies of a file to the same directory if dirrerent names are used. It can also duplicate files to many different directories. If the From argument is a directory or a pattern, the To argument is assumed to be a directory or destination replacement pattern. If the directory specified in the To argument does not exist, it will be created for you. If you include wildcard characters in the To argument, these are taken to be a request to use a pattern substitution for the destination filename. The expected syntax is: | You may specify neither, one, or both of these optional tags. If you exceed the length of an AmigaDOS filename (30 characters as of this writing) the name will be silently truncated. You can also indicate which portion of the From filename you want to be replaced by using the wildcard characters in the source pattern. The rule followed is that any constant (i.e., non-wildcarded) portion of the source pattern is discarded. As an example, the command: Copy l#? start#?end will copy all files beginning with an 'l'. The destination names these will be copied to will be formed by removing the 'l', and sticking 'start' on the front, and 'end' on the back. So, for example, the file 'LXXX' would be copied to the file 'startXXXend'. If the start or end patterns are omitted, these are regarded as null strings. In 1.3 you CANNOT use wildcards for Directory names, only file names. 2.x/3.x allows this. 1.3 will not let you copy a file to a directory that does not exist. In 2.x/3.x COPY will create a directory if one does not exist. If you copy a file to the same directory it cannot have a file with that same name of the protection bit is set on the file being copied to. The from statement is not needed as long as the source and target files are in the appropriate order. If the orders are changed (Copy To filename FROM filename), the FROM is required. If you don't specify a directory, but the TO keyword is used, then the current directory is copied to the destination. For instance, COPY TO Work: will copy the entire contents of the current directory to Work:. Devices such as PRT: and SPEAK: can be designated as the destination of any file being copied. 2.x/3.x Only: You can chose multiple FROM files as well as multiple TO files. OPTIONS ALL Copies ALL the files from the source directory to the destination directory or device. This will recursively descend all subdirectories found in the From directory, and create them (if they do not already exist) in the To directory. Without this switch, only the first level of the directory hierarchy will be duplicated. QUIET Performs a Copy without reporting what it is doing. This is useful for doing copies in the background, when you do not wish to be disturbed by informative messages. Note that errors will still be reported. BUF=BUFFER This allows you to specify the number of 512 byte buffers used during the copy. Unlike the Commodore Copy, which uses a fixed number of buffers if this option is not specified (currently, 200 buffers), the ARP Copy sets its internal buffer size intelligently as a function of how much memory your system contains and the size of the file to be copied. Using this option overrides this intelligent behavior. CLONE This instructs Copy to duplicate the date, comments and protection bits (except the archive bit) of the original file. The default is to Copy only the protection bits. (also see Environment, below). This is the same as using both the DATE and COM keywords. DATE This option instructs Copy to duplicate the datestamp (also see Environment, below). NOPRO By default, Copy duplicates the protection bits of the file(s) (except the archive bit). Using this option will override this behavior, and cause the file to be created with the current system default protection (also see Environment, below). COM This forces Copy to duplicate the comment for the file. The default is not to duplicate the comment (also see Environment, below). QUICK This ARP addition is a highly useful option which will duplicate files only if the destination file does not exist or is not the same. Copy uses the Datestamp, Filesize, Protect bits, and also the Filenote (but only if you have enabled copying filenotes) to determine whether or not the file is the same. Since a byte by byte compare is not done, it is possible to fool Copy. However, in normal operation of the Amiga, this dramatically speeds up Copies between directories and is perfectly safe (also see Environment, below). FLAGS You can override the current setting of your environment flags using this keyword. Any option specified on the command line overrides the default settings specified by the copyflags environment variable. This keyword takes a string of the same type used for the copyflags variable. For a discussion of these flags, see Environment, below. NOREQ Normally, whenever you try to copy to a directory that does not exist a requestor will pop up asking you to insert it. If you do not want that little requestor, then use this keyword. This is useful for when you want to write a script for someone else who does not have a device you want to try to copy to (such as a printer or a speech device- speech devices were removed from the Workbench with 2.0). ENVIRONMENT If you prefer a behavior for copy other than the default, you can specify this behavior permanently by setting a value for the copyflags environment variable. This variable takes a string of characters composed of the following: N Always copy filenotes (see COM, above). C Always copy original datestamp (see DATES, above). Q Always copy QUICK (see QUICK, above). P Never copy protection flags (see NOPRO, above). O This flag does not correspond to any command line arguments. When this flag is set, Copy will only duplicate files which already exist in the destination directory, it stands for 'OLD', and essentially performs an update operation. This is extremely useful when trying to update old software with new software. These flags can be overridden by using a command line option, or by using the FLAGS keyword to specify new ones. Note also that case is not significant. You can set the copyflags variable using Set, SetEnv, or directly from the command line if you are using the Shell instead of the CLI. Set copyflags=CQ SetEnv copyflags=CQ copyflags=CQ ; This only works in ASH The settings shown above is perhaps the most common: it enables copying datestamps, protection bits, and the QUICK option. EXAMPLE 1. To perform an update from one directory to another without using copyflags, use: Copy NewDir OldDir FLAGS=O 2. To copy a file called TheFile to OtherFile in the same dir: Copy TheFile Otherfile or Copy TheFile to Otherfile or Copy To Otherfile From TheFile 3. To copy all the files from Df0: to Work: Copy Work: df0: 4. To copy all files and subdirectories from df0: to Work: Copy Df0: Work: ALL 5. Copy all the files in the current directory to Ram: Copy "" Ram: 6. To Copy a file called Dudes in the current directory to a file with the same name to a directory called :WildWest/Cowboys, which is on the same disk: Copy Dudes :WildWest/Cowboys 7. To Copy selected files from the current directory to the Stuff: directory. Copy "" (ThisFile|ThatFile|AnyFile|PickaFile) Stuff: CPU (V2.x & 3.x only) (located in the C: Directory) NAME CPU - Identifies which processor you have (68000, 68020,68030, or 68040...). It also sets the advanced options of non 68000 or 68010 processors. SYNOPSIS CPU Cache Nocache DataCache NoDataCache Instcache Noinstcache ExternalCache NoExternalCache CopyBack NoCopyBack Burst NoBurst InstBurst NoInstburst DataBurst NoDataBurst Trap NoTrap FastRom NoFastRom NoMMUText Check 68010|68020|68030|68040|68881|68882| FPU|MMU OPTIONS Cache Nocache DataCache NoDataCache Instcache Noinstcache ExternalCache NoExternalCache CopyBack NoCopyBack: These are used to control the cache features of all Motorola processors over 68010. These higher end processors all have higher end instruction caches, which stores processes inside the CPU itself. This allows those internal functions to perform lightening fast because they are inherant to the CPU and do not have to be retrieved from memory. Instcache/NoInstcache turns these functions on or off. The 68030 & 68040 have a data cache in addition to the instruction cache. These allow data to be retried from memory in one grand instruction, thereby lowering your CPU's overhead. DATACACHE / NODATACACHE turns this on or off. CACHE / NOCACHE can turn on or off all the caches. In 1.3 caches are off by default and should be turned on with the CPU command in your startup-sequence. 2.x/3.x has them turned on as a default. Some older programs (games mostly) that have problems running with the higher end processors. These problems may sometimes be solved by turning all the caches off. 2.1 has added the CopyBack and NoCopyBack flags. These help you manage the datacache on the 68040 which does not automatically update the cache as changes are made to the data. By default, this is off because it conflicts with too many programs to be of any use. In addition to internal caches, there are also external caches which can be turned on or off with the ExternalCache or NoExternalCache flags. Burst NoBurst InstBurst NoInstburst DataBurst NoDataBurst: If your Amiga's memory is configured to accept a special processor mode which feeds data at a superduper fast speed you can utilize the Burst mode. InstBurst and NoInstBurst turn on or off the instruction mode in databursts. DataBurst and NoDataBurst turn on or off the data mode in databursts. Burst and NoBurst control both the instruction and data modes. Trap/NoTrap: This is a programmer's debugging flag. These will set or clear the memory access trap which warns you if your program is trying to access the lower 256 bytes of memory or any memory above the 16 megabyte address (this 16 megabye hit is only noticed in the 68000 processor, 68010 and above allow higher end memory to be addressed). This illegal entry information is sent via the serial port. To use this function there must be a 9600 bps terminal hooked up to your serial port as well as the higher end processor. FastROM / NoFastROM: The 68000 processor is a 32-bit processor that is accessed 16-bits at a time. If you add an accelerator that has a full 32-bit processor and an MMU, you can remap the kickstart into that 32-bit RAM and the MMU will make it appear as though that is where the Kickstart really lives. The FastROM command moves the ROM image there, while the NoFastROM removes it from that area. NoMMUTest: Lets you remap kickstart to 32-bit ram without actually checking to see if it is being used. This is a function of the MMU (Memory Management Unit). Check 68010|68020|68030|68040|68881|68882|FPU|MMU This is used to check for the existence of why type of processor or co-processor you have installed. For example, if you type: "CPU Check 68000" and you have a 68000 installed, it will return a 1. If you have any other processor installed a 0 will be returned. EXAMPLE 1. To turn off the instruction cache, turn the data cache of, and move the Kickstart ROM image to protected 32-bit memory: CPU NoInstcache NoDataCache FastRom Date(V1.3, 2.x, 3.x) (Locatin C:)) NAME DATE - Set or display the system date. SYNOPSIS DATE Date Time TO=VER/k DESCRIPTION Date is used to set the systems idea of the current date and time, or to display the systems idea of the current date and time. To display the current system time simply use Date with no arguments. You may specify a TO or verification file to send the date to, if no TO file is specified, the date is displayed in the current window. To set the time you use the format HH:MM:SS where H stands for hours, M stands for minutes, and S stands for seconds. Leading zeroes are optional for all versions except 1.2. 1.2 requires that you include a leading zero before the 10th month. Both the display of the date and the setting of the date are determined by the 1.3 environment variable 'dateformat'. Under 2.x/3.x it is stored simply as 'name'. This veriable can be a file or an actual device such as a printer. This determines one of several international formats for displaying and setting the date. If 'dateformat' is not set or if its value is zero, the AmigaDOS format is used. Here is a list of the legal values for dateformat, and the corresponding input and output formats: 0 This is the default AmigaDOS format, DD-MMM-YY is used for both input and output. Note that if datetime is undefined, or the value is illegal, this will be the default option. 1 International format, YY-MM-DD is the format. 2 USA format, MM-DD-YY is the format. 3 Canadian format, DD-MM-YY is the format. Note that dateformat controls the format for the input string as well as the output display. You never have to enter leading zeros, and you may always use words like SATURDAY, YESTERDAY, TOMORROW, etc. Saturday, Sunday, Monday, and the rest of the days of the week can be used as flags. The system will evaluate the day then advance the system date to match the specified day of the week. So, if it is Monday and you specify Thursday, the system clock will advance by three days. FOR 1.3 Only: SETCLOCK is used in the startup-sequence to automatically read the system's hardware clock (if present). The A1000 and A500 did not come with a clock installed. Therefor, AmigaDOS would check the boot disk for the date of most recent file and sets the system date according to that. The Date command is then used to set the proper date and time. This was lost anytime you rebooted the computer or utilized the SETCLOCK SAVE command. FOR 2.x/3.x: The clock is read automatically by the system without utilizing the SETCLOCK command. Therefor, you will never see it listed anywhere. EXAMPLES 1. To use default AmigaDOS format. SET dateformat=0 2. To set the date, using AmigaDOS format Date 1-jan-88 3. To set the date to the next day's date and the time to 12:00 Date Tomorrow 12:00 Delete(V1.3, 2.x, 3.x...in C: directory)) NAME Delete - Delete any number of files or directories. SYNOPSIS Delete Files ALL Q=QUIET A=ASK DESCRIPTION Under 1.3 you can only delete up to ten files or directories with a single Delete command. Wildcards are acceptable. Under 2.x/3.x you can specify any number of files to delete on the command line, and you can also use wildcard patterns for any or all of these files. OPTIONS ALL By default, you can only Delete empty directories. If you wish to Delete a directory and everything it contains, you can specify this option on the command line. Note that directories may contain other directories, which themselves may contain directories or files: This option will delete that entire branch of the directory tree, including these additional directories and files. Q=QUIET If you use the ALL switch, or if you specify wildcard patterns, Delete displays a message with each file that it deletes. This option causes Delete to do its work silently, though error messages are still reported. A=ASK This enters interactive mode, where Delete will display the name of the file to Delete, and prompt you with a question mark. If you answer 'Y' or 'y', and then press return, the file will be deleted. Any other answer will preserve the file. Used with the ALL switch, ASK will ask you if you wish to enter any directories it encounters in its search. Again, typing a 'Y' or 'y' will enter these directories, any other character will proceed to the next entry in the current directory. FORCE If the 'd' protection bit is set for a file or directory then that file is protected from deletion. But, by using the FORCE keyword, any file will be deleted including the ones that are 'protected'. EXAMPLE 1. Delete all files in the current directory Delete #? 2. Ask about deleting each file and directory in the current directory, and each subdirectory and file. Delete #? ASK ALL 3. Deletes all files in the directory which start with this or that. Delete (This|that)#? Dir(V1.3, 2.x/3.x) (located in the C: directory) NAME Dir - Pretty display of files and directories. SYNOPSIS DIR Dir OPT [ADFHIS] SIZE INTER HILITE FILES DIRS ALL DESCRIPTION Dir by itself displays any files and directories in the current directory. By default, Dir will display any subdirectories, one per line, and then any files, in two columns, in sorted order. Directories are followed by the string "(dir)". You can specify an alternate directory to display as an argument, and you may also use wildcards. If you use wildcards, Dir will display all files that match that wildcard pattern. If it encounters a directory during the course of its search for matching patterns, it will display the name of the directory, and also its contents. OPTIONS OPT This flag along with a single letter can represent the option you desire, or you may use the clearer keyword equivalents supplied. The options and their keyword equivalents are described below: SIZE or OPT S This ARP option displays the names of the files and their sizes in two columns on the display device. If a directory is encountered, it is identified as usual with a "(dir)". HILITE or OPT H This ARP option enables pretty printing of Dirs output. All directory names will be displayed in inverse video. FILES or OPT F This displays only files, any directories found will will not be displayed. DIRS or OPT D This displays only directories, any files found will not be displayed. ALL or Opt A This option displays the complete contents of that branch of the directory tree. As Dir descends a level, the indentation is increased to make the organization of the disk clearer to the eye. You may use some of the other options or keywords along with ALL to generate the display you need. INTER or OPT I This allows interactive file browsing through a directory or a disk. Using this option, you will be presented with a file or directory name, followed by a question mark. You can find out what additional options are available to you at this point by typing another question mark '?', and pressing return. These are: B=BACK Moves backwards, up the directory tree. If you are at the top, this will exit the listing. DEL=DELETE This will delete the current file. E=ENTER This will enter a directory. Note that you must be at a directory entry in order for this option to be valid. Q=QUIT This will quit Dir. T=TYPE This will type the current file. C=COM This takes any command as an argument, and sends it to a subshell. Any shell command can be used here, including the IO Redirection operators (<, >, and >>). If you do not specify a command as an argument, you will be prompted for one. EXAMPLES 1. To get a listing of all directories on drive DF1: DIR DF1: ALL DIRS or DIR DF1: OPT AD 2. To get a listing of all directories and files and the sizes of the files on drive df0:, as well as displaying the directories in inverse video do: DIR DF1: ALL SIZES HILITE or DF1: OPT ASH DiskChange(V1.3, 2.x, 3.x) (located C:)) NAME DiskChange - Inform AmigaDOS that a 5 1/4 disk has been changed. SYNOPSIS DiskChange Dev DESCRIPTION 5 1/4 inch disk drives do not detect when there has been a disk swap, and therefore cannot inform AmigaDOS. After changing disks in the 5 1/4 inch disk drive, you must issue this command. You will also need to do this if you make a change to the disk's name using Relabel and you want the Workbench to hear about it. Note that DiskChange may also be useful with other types of media, such as removable media hard disks, or if you are running FFS on floppy drives. EXAMPLE 1. To inform AmigaDOS that you have changed a disk in an external 5 1/4 inch drive. Diskchange df1: 2. To inform AmigaDOS that you have changed a disk in an external 5 1/4 inch disk drive that is mounted right behind a 3 1/2 inch external drive: Diskchange df2: DiskCopy (1.2 in C: Directory) (1.3, 2.x, 3.x internal) NAME Diskcopy - Copies entire diskettes. SYNOPSIS DiskCopy FROM (source drive) TO (Destination drive) NAME (VolumeName) VERIFY MULTI Other computer systems require you to format a disk before you make copies of old data. The Amiga lets you copy to a disk that has information already stored on it. All that old information will be lost though. This lets you make backups of all important disk while helping you dispose of files that you no longer use. DiskCopy is very useful because it takes just as much time to format a blank disk as it does to perform a diskcopy. But, if you only have a few files you wish to copy, it may be quicker to just delete the files on the destination disk you don't need using the delete command then using the Copy command to transfer the ones you want. DiskCopy can also be used devices of different types. For instance you can copy between Ram: and Rad:. Or, df2: and Ram. But, for it to work with Rad:, Rad: must contain the same number of tracks (80) and blocks per track (11) as a floppy device. KEYWORDS FROM This is the source, or the device you are copying from. If you only have one disk drive, this will be df0: or the actual name of the disk mounted there (eg MyDisk:). It can also be df1:, df2:, df3:, or df4: (if you actually have these optional drives). OR, it can be the RAD: or RAM: drive as stated before. Remember you RAD: must be created in the same nature as a regular disk drive for this to work. TO This is the desitination, or the device you are copying to. If you have only one diskdrive the copy may take quite a few disk swaps. This is because the contents of the source disk gets buffered into ram: before getting transferred to the destination disk. If you have an original 256K A1000, this may take up to eight swaps. If you have an unexpanded A500, you're looking at about three swaps. If you have one meg of ram, you should not need to swap more than once. If you have two diskdrives you are the lucky one. This is because you will not have to make any swaps either because the data is passed straight through between the drives. If you have 1.3 the TO keyword is mandetory! The command will not function without it. But, under 2.x/3.x you do not need to put this keyword. NAME This is the name you are giving to the new copy. If you don't give a name, then the new volume will have the same name as the original. Despite the names being the same, there is some 'hidden' information on the disk which will distinguish the two disks from each other. When diskcopy is stared, and the disks are being copied a neat little status bar opens up on your window showing you the progress as all 80 tracks are copied. YOu can cancel this process at any time by hitting the control break keys: Ctrl-C and then Return. If you hit these keys after the copying has already started, all information on the destination disk will be lost. The destination disk will also be rendered useless until it is formatted or diskcopied again. NOVERIFY As AmigaDOS copies a disk, it verifies each sector after it formats it. If you don't want AmigaDOS to check its steps, then use this keyword. There is no point in using this keyword. It is better to be safe than sorry. And a few seconds of time spent verifying your copying will save you tons of hearache later. MULTI Lets you load the entire disk into memory (if there is at least 880k of free memory). You can then insert as many destination disks as you want making multiple copies. The system will prompt you when it is ready for the next disk. EXAMPLES 1. To make a copy from df0: to df1: Diskcopy from df0: to df1: ; for any version of AmigaDOS. Diskcopy from df0: df1: ; for 2.x/3.x only Diskcopy df0: df1: ; for 2.x/3.x only DiskDoctor (V 1.3 and 2.04. Omitted after 2.04) (in C: directory) NAME DiskDoctor - Reconstructs the file structure of corrupted disks. SYNOPSIS DiskDoctor (drivename) DESCRIPTION This can be described in two words: it sucks. It is useless. It has no purpose on any computer. That is why it was removed after 2.04. The concept was to repair directory and file structures that were destroyed for any number of reasons. These reasons can be anything from removing the disk while it is still being accessed to a nuclear explosion. When any type of magnetism comes in contact with your floppy the data is scrambled and AmigaDOS can't read anything there. You will get a variety of errors such as 'Volume is not validated', 'Not a DOS disk', 'Disk is unreadable', or the ever so present 'Checksum Error' if such damage occured. Diskdoctor attempts to correct the damaged data on the disk and save as much of it as it can. DiskDoctor can only attempt to repair FFS disks if the DEVS: Mountlist is set to 0x444F5301 under the DOSTYPE keyword. DiskDoctor is quite reckless when it repairs your disk. You see, after it retrieves what data it can salvage overwriting other information that may still be used on the disk. It does this over- writing indescriminatly without recognition of importance or existence. Therefor, if you ever use DiskDoctor, make sure you are trying to repair a copy of your disk. There is no reason to use this when there are so many fabulous disksalvage programs. The most notible is DiskSalv created by David Haynie (former Commodore engineer and all around Amiga Demi-God). His program along with the many other USEFUL salvage programs that actually work are listed in the 'Replacements' selection of this reference program. Quarterback Tools (no longer being developed) and AmiBack Tools by Intelligent Designs are both running close second to DiskSalv. EXAMPLES I'M NOT GIVING ANY. THIS PROGRAM IS TOO STUPID AND USELESS TO EVEN ACKNOWLEDGE IT WITH AN EXAMPLE. Echo(V1.3 in C:) (2.x/3.x internal)) NAME Echo - Echo a string to the terminal. SYNOPSIS Echo [string] NOLINE FIRST LEN DESCRIPTION Echo displays its argument to the current output, this can be the printer, a file or the terminal. Echo is typically used in scripts, but it can also be used (and useful) to send escape sequences to things like printers. 2.x/3.x only: You can use echo to output a file to the environment. This is shown in the example below. Note that with the added keywords, you MUST use double quotes to delimit a line to echo under 1.3. Under 2.x/3.x you don't need the quotes ONLY if it appears last on the command line. If you want to add a line feed, use the *N character. But, if you use this option in either 1.3, 2.x, or 3.x then quotes must be used. OPTIONS NOLINE This suppresses the newline which Echo automatically adds at the end of its argument. This is useful in that it allows you to build a single line of text using the output of two or more commands. FIRST This option takes a numeric argument, which indicates which character position to begin output at. Any character before FIRST will not be displayed. This is useful with LEN (see below). LEN This option takes a numeric argument, which indicates how many characters to output. If you also supply a FIRST argument (see above), character output will begin with that character, for LEN characters. If LEN is used without the FIRST keyword, then the final LEN characters will be displayed. EXAMPLES 1. To display "Hello World" on the terminal. Echo "Hello World!" 2. To advance the printer paper, and displays Hello World! on the printer. Note that you must have set your escape character to \ for this example to work. Echo >PRT: "\FHello World!" 3. To display "ello World!". Echo First 2 "Hello World!" 4. To display "rld!". Echo Len 4 "Hello World!" 5. To display "World!". Echo First 7 Len 6 "Hello World!" 6. To print the text file Ram:This.text to your screen. Echo Ram:This.text ø Ed (1.3, 2.x, 3.x located in C:) SYNOPSIS The Amiga's built in full-screen text editor. Ed is a complete text editor. Due to the huge scope of the available commands you should consult your Amiga System manual on how to exactly use Ed. If enough people contact me to include a full tutorial in DOSMan, I will write one. FORMAT 1.3: ED FROM (name) [SIZE (numchars)] 2.x/3.x: ED [FROM] name] [SIZE numchars] [WITH comfile] [TABS interval] [WINDOW device] [WIDTH columns] [HEIGHT rows] KEYWORDS FROM This is the name of the file you wish to edit. If the file does not exist, Ed will create it. This keyword is optional as long as it is the first arguement in the Ed statement. SIZE This sets the size of the buffer which ED uses. If this is the second arguement in the command line, then the keyword is optional, you only need to type the number. SIZE defaults to 40,000 bytes. If your buffer is not big enough to hold the file you are editing, then you will get a warning message informing you of this from Ed. WITH 2.x/3.x Only: This lets you make an Ed command file to execute automatically. This is a command file that contains a list of extended instructions for Ed that will execute when the file is run. This exists in the form of a script. See your Amiga's manual on how to set up this command script. TABS 2.x/3.x Only: This lets you set how many spaces will be skipped when you hit the Tab key. The default Tab is three spaces. WINDOW, WIDTH, HEIGHT 2.x/3.x Only: The combination of these three commands would allow you to open Ed on a remote terminal. Window lets you specify this device (for example, AUX:). The Width and Height lets you set the demensions of the new window. 2.x/3.x Only: You can also edit binary files, not just plain ASCI text. EXAMPLE 1. To edit a text file called ThisText in the Work:TextFiles directory. Ed Work:TextFiles/ThisText 2. To edit a really big file of 75,000 kbytes in the Work:TextFiles Ed Work:TextFiles/ReallyBig.txt SIZE 80000 EDIT (1.3, 2.x, 3.x) (Located in the C: Directory) SYNOPSIS An AmigaDOS line editor. FORMAT EDIT [FROM] fromname [TO] toname [WITH] withname [VER] vername [OPT W chars or WIDTH chars] [OPT P lines or PREVIOUS lines] EXPLANATION Unless you grew up with UNIX and really dig line editors you should really try a different program (even Ed) before you dive into Edit. What does set Edit apart from Ed (and most other text editors) is that it is able to edit binary files and it can execute a predefined list of line editor commands. Please note that starting with version 2 of Ed you can do the same thing, so there is really no need to keep both of these programs hanging around on your system disk. KEYWORDS FROM EDIT requires the FROM keyword. This will tell EDIT which file to edit. This filename must exist. EDIT will not create the file for you like Ed will. TO This will tell edit where to save the file to once you decide to finish. If this is the second command in your arguement, you do not need the TO keyword. EDIT is limited in the fact that it will not overwrite a file that already exists. If the TO filename is the same as the FROM filename then instead of overwriting the FROM filename it will be save the original as :t/edit.backup. The file you are working on then gets named and saved as the FROM filename. WITH This specifies a file which will be used as input to EDIT's command options. The contents of WITH must be a series of valid options for it to work. If WITH is the third argument in an EDIT command line, the keyword is optional. If you don't use this keyword you must manually input your parameters. Due to the huge scope of available commands you should consult your Amiga System manual on how to configure EDIT. If there is enough of an interest I will write a full tutorial on how to configure EDIT. VER This lets you specify where to send the output of EDIT to. You can send the output to any logical device including PRT: to print it. OPT W or WIDTH OPT P or PREVIOUS This lets you set the actual physical size of EDIT. WIDTH lets you set the actual line length. PREVIOUS lets you designate how many lines will be kept in EDIT's history buffer. The default for line length is 120 characters and the default history buffer is 40 lines. If you multiply the WIDTH by the PREVIOUS you will get the exact amount of RAM you need to reserve as a work buffer. This amount can be set with the STACK command. If you set the OPT W and OPT P options, you must use the OPT keyword with the W or P letters. EXAMPLES 1. To edit a file called MyText in the default directory: EDIT MyText 2. To edit a file called MyText and to save it under a file called YourText that is 5000 lines long: EDIT FROM MyText TO YourText OPT P5000 3. To edit a file called MyText and to use the editor commands located in the edit.prefs file (which you created earlier). The data will then be saved as YourText. And, to send all the messages and verifications from EDIT to your printer while setting the number of lines to 50 and a line width as 175: EDIT FROM MyText TO YourText WITH edit.prefs VER PRT: OPT W175 OPT P50 See also: STACK Else (1.3 in C:) (2.x/3.x internal) NAME Else - FALSE clause of IF conditional. SYNOPSIS Else DESCRIPTION Else is used in combination with IF to perform conditional testing. If the IF conditional fails, control will be passed to the commands following the ELSE. If the IF conditional succeeds, then the commands following the ELSE (up to the concluding ENDIF) will be skipped. Note that Workbench 2.x and above contains a builtin version of this command. The 1.3 of Else cannot be executed outside of a script, while the 2.x/3.x version of Else can be executed inside or out of a script file. SEE ALSO IF ENDIF Execute EndCLI (V1.3 in C:) (2.x/3.x internal) NAME EndCLI - Terminate a CLI or Shell. SYNOPSIS EndCLI DESCRIPTION EndCLI causes a shell process to terminate. The shell will shutdown, freeing all of its resources and closing its window (if it is interactive). Note that if another program is still using the console for a CLI, you may not be able to close a console CLI window even after running ENDCLI until you terminate that command. This is most likely to occur if you have "RUN" some command from the CLI and it is still executing when you try to EndCLI. 2.x/3.x Shell contains this command as a builtin. Also, you can press the CTRL-\ or click on the close button to exit your shell. SEE ALSO NewCLI NewSHELL EndIf(V1.3 in C:) (v 2.x/3.x internal) NAME EndIf - Show end of IF ELSE Conditional. SYNOPSIS EndIf DESCRIPTION This is used to mark the end of a conditional block in a script. Note that in 2.x/3.x this command is builtin. If the tested condition proves false then all commands after ELSE and before ENDIF are executed. If the tested condition is true, then all commands after the IF and before the ELSE keywords are executed. SEE ALSO IF ELSE Execute ENDSHELL (1.3: Alias) (2.x/3.x Internal) NAME ENDSHELL - Exactly like ENDCLI except it can close the CLI or Shell window. SYNOPSIS ENDSHELL DESCRIPTION This terminates the CLI or Shell window just like the ENDCLI command does. Under 1.3 this command does not actually exist. It is created in the startup-sequence with the Alias command. But, it acts exactly like ENDCLI. SEE ALSO ENDCLI EndSkip(V1.3 in C:) (2.x/3.x internal) NAME EndSkip - Unconditionally abort a SKIP in progress. SYNOPSIS EndSkip DESCRIPTION If EndSkip is encountered after executing a Skip command in a Script, the Skip will be aborted, and the fail level will be set to WARN. Note that in 2.x and 3.x this command is builtin. SEE ALSO Execute Skip Lab Eval(V1.3, 2.x, and 3.x in C:) NAME Eval - evaluate arithmetic and logical expressions. SYNOPSIS Eval Value1/a Op Value2 TO/k L=LFORMAT/k DESCRIPTION Eval computes the results of simple arithmetic and logical expressions as applied to two arguments, and displays the result on its standard output. Numeric arguments may be input as: Decimal This is the default, no extra qualifiers needed. Hexadecimal Enter hexadecimal numbers as 0x or #x, for example: 0x1A or #x1A. Octal Enter octal numbers as 0 or #, for example: 0777 or #777. Binary Binary numbers (in ARP eval only) may be entered with #B, for example: B1111 Character Characters are supported only by the Commodore Eval. The operations supported are given below: addition + not ~ subtraction - left shift << multiplication * right shift >> division / negation - mod mod exclusive or xor and & bitwise equivalence eqv or | Any fractional amounts that result from this process are discarded. OPTIONS TO You can send the output of Eval to a file which is indicated in the path with this keyword. L=LFORMAT You can control the output format of Eval using this keyword. There are four formats you specify: hexadecimal (%X) Octal (%O), Decimal (%N), or ASCII (%C). The hex and octal formats require a number after the letter to indicate how many letters you want to print. For example, to display a hexadecimal number in a field of 8, you can do LFORMAT="%08lx". You can also include escape characters (such as *n for a newline) inside your LFORMAT string. For this release of Eval, you also need to always use the 'l' (for long) format character with all format commands. The default is set to Decimal. You can also include any text you desire in the format string by using quotes. For example: LFORMAT = "There are %N widgets sold." EXAMPLE 1. To find the sum of 2 + 2 and print the answer as 2 octal digits followed by a new line character. EVAL 2 + 2 LFORMAT = "%O2*N" Execute(V1.3, 2.x, and 3.x in C:) NAME Execute - Cause the shell to execute commands from a file. SYNOPSIS Execute [Filename] [ARGS...] DESCRIPTION Execute causes the shell or CLI to read the commands from the filename specified as Execute's input argument. When the end of the file is reached, control returns to the keyboard. You can force the Shell to abort any script file processing by typing a C-d (Control D) sequence while the script is being executed. You can even include nest an Execute inside your script to cause one script to call another one during its execution. In AmigaDOS 1.3 and above, you can execute a script without typing EXECUTE and just typing name of the script if the 'S' bit is set. KEYWORDS FILENAME The name of the script to execute. ARGS Any arguments to be passed to the file. These may be any valid AmigaDOS string (including filenames and all sorts of devices. DIRECTIVES Execute recognizes several special commands known as Directives. Each of these Directives begins with a DOT '.', but this character can be redefined if needed. Execute is reasonably flexible in allowing you to redefine its special characters, which is quite fortunate, as you will soon see. In order for Execute to recognize these directives, the DOT character must be placed at the beginning of the line, and the directive name must follow immediately, with no intervening whitespace. You can also use the DOT (again, at the beginning of a line only) to introduce a comment. This usage is ".Anything" where whitespace is any of space, tab or newline. Many of these directives deal with passing arguments to scripts and establishing defaults for arguments. These are described below: .KEY and PARAMETERS The .KEY directive (which may be abbreviated as .K) is used to declare the names of parameters which will be used in the course of the script file. Note that these are not environment variables. If you intend to pass arguments to a script file, it is wise to use this directive as the first line of a file. If the first non-empty line (i.e., a line which contains anything other than a newline) does not contain a dot command (directive), then the arguments will not be processed. The .KEY directive accepts any legal template. These are the same kinds of templates you see all the time in the AmigaDOS commands. Note that currently, there is no support for multiargs (the /... template type) in scripts, and so you should not use this in your templates. All the usual processing associated with templates is active in scripts, including the '?' display of the template, and position independent arguments. When you use the .KEY directive, Execute matches up the users arguments with your template keywords, and if no error occurred, scans the file for any items surrounded with the BRA KET characters. These are initially '<' and '>', which is quite unfortunate, since these tend to conflict with the IO redirection operators. It is wise to change these to another character using the .BRA and .KET operators (see below). When a BRAKET sequence is encountered, Execute replaces the keyword inside the BRAKET with the users argument. If the user did not enter an argument for that keyword, and there is no default setting for this keyword, then Execute removes the argument all together, resulting in a NULL string. Arguments that do not take an argument, for example, switches (template type /S), are handled somewhat differently. If the user supplied the switch on the command line, then the braket sequence is replaced by the actual name of the switch, otherwise, it is null. DEFAULT VALUES FOR PARAMETERS This assigns the value string to all occurrences of the substitution argument described below. You can set default values for your variables in two ways. The first way is to use the .DEFAULT directive. .DEFAULT (which may be abbreviated as .DEF) takes a template keyword and a default value. If that keyword does not have a value at the time the .DEFAULT statement is scanned, then Execute binds the value to that keyword. Here is an example of its use: .DEFAULT Foobar "Testing123" Another way to set default values is by using the DOLLAR (initially each time the parameter is used, it does not set it permanently: Echo "" Note that a .DEFAULT statement will override all following DOLLAR defaults. The decision as to which to use is usually based on how many times you use that parameter. If you only use it once, then either will do. If you use it many times, then .DEFAULT is probably the simplest. Also note that there is not a conflict between this use of the DOLLAR and the use of the dollar during Shell environment expansion: The DOLLAR is special to Execute only inside of BRAKETS, and the shell expands the environment variables only after Execute has parsed the file. Unless you use environment variables inside of BRAKETs, there should be no need to change your .DOLLAR character. You can also use a double DOLLAR inside of brackets. This will be replaced by the current CLI number. CHANGING THE META CHARACTERS The following directives are used to change the default meta characters used by Execute. Each take a single character as their argument. .BRA and .KET These change the bracket characters (initially '<' and '>', respectively) to something else. It is highly recommended you make a habit of doing this, whether you think you need to or not. Good characters to use instead are the curly braces ('{' '}') since these are not needed for anything else, currently. .DOT This changes the DOT character (initially '.'). .DOL or .DOLLAR This changes the DOLLAR character (initially '$'). MISCELLANEOUS Execute may be nested, i.e., you may include Execute commands in scripts, which can also contain Execute commands. Execute will sometimes need to write a temporary file. If you have assigned a directory or device to T:, then this location will be used. If not, and there is a :T directory for the current directory, then Execute will create the assignment, and use this directory. Otherwise, it will attempt to create both the directory and the assignment in the current directory. EXECUTE uses <$$> with the task number of the CLI from which it is run to create this. EXAMPLES 1. To execute a script named RunThis located on Df0: EXECUTE df0:RunThis 2. Here is an example of a KEY directive which contains a switch. This illustrates a good way to handle and use /s style arguments in script files. .KEY MySwitch/s IF "" EQ "MySwitch" Echo "The switch is on!" ELSE Echo "The switch is off!" ENDIF If the user doesn't supply MySwitch as an argument on the command line, then the comparison will fail (the first argument will be ""), otherwise, the comparison will succeed (the switch is "on"). SEE ALSO If Skip Failat Lab Echo Quit Failat(V1.3 in C:) (2.x, 3.x internal) NAME Failat - To set a fail level for a batch file. SYNOPSIS Failat RCLim DESCRIPTION When using Execute to run scripts, any command that returns an error greater than the current value of the Fail level will cause the shell to abort the script with an error message. You can use Failat to increase or decrease this level to whatever you need. The shell will reset the Fail level (usually 5, 10, 20 but can be any number) at the end of every script execution, so scripts always start out in a known state. Under 2.x/3.x the result code is stored int the environment variable RC, which is represented by $rc. The bigger the return code, the bigger the error. If the severity of the error is higher than the number you set then the script stops running. Once your FAILAT has been run in the script, the FAILAT level returns to 10. You can use FAILAT to a very high number and test the return codes that any of your IF statements return. EXAMPLE 1. To temporarily set the failure level to 30 Failat 30 This now makes it possible to execute commands that return error codes greater than 20, which would ordinarily cause Execute to stop with an error message. 2. To display the current failure level threshold. Failat Fault(V1.3 in C:) (V2.x/3.x internal) NAME Fault - translate numeric error codes to ascii text. SYNOPSIS Fault Fault/... DESCRIPTION Normally when your Amiga has an error it returns a requestor telling you what you need to do. Many errors do not bother to open up this requestor, only a number (for example, 'Last command failed with error 330). This command accepts numeric those error codes and turns them into system error messages, or if the error code is not defined the numeric code is again displayed. Translates all the faults into English-lanuage explanations. The CLI and Shells (and many programs) call on Fault to report their errors for them. In 2.x/3.x this fault code is stored into the variable 'result 2'. The AmigaDOS command also does this but may not root out the exact problem. If the AmigaDOS command WHY does not satisfy your quiriosity of what the error was about, then using Fault directly after it will expound on it. EXAMPLE 1. To display the error message associated with fault code 220: FAULT 220 2. To display the error messages with fault codes 216, 220, and 330: FAULT 216 220 330 FF (ONLY in 1.3) (DOES NOT exist in 2.x/3.x) SYNOPSIS FF - Speeds up the text display. FORMAT FF [-O] [-N] [fontname] EXPLANATION This only exists in 1.3 because 2.x/3.x have fast text routines that are inherit with those systems. If you are using a standard 8x8 or 10x9 font FF will speed up the display of the text on 1.3 machines. Not only that, but you can use FF to replace the format system font as long as it is of the proper size and is fixed width. 2.x/3.x uses the Font Prefrences in the Prefrences drawer to perform this same task. KEYWORDS -O This tells FF to speed up the text. It is on by default. -N This tells FF to turn off the fast text routines and can be turned back on by reissuing the command. [fontname] This tells FF to replace the system default fonts (TOPAZ80 and TOPAZ60). The font you use to replace it must have the NewFont.font file as well a drawer which is associated with that font file containing the data for 8 or 9 size fonts, or both. If you designate a font that does not have those files available, the default Topaz fonts will be used. EXAMPLES 1. To turn on fast text routines: FF or FF -O 2. To turn on fast text routines while replacing the system fonts with the Neat.font: FF Neat.font Filenote(V1.3, 2.x, 3.x in C:) NAME Filenote - Sets a comment for a file. SYNOPSIS Filenote [File]filename Comment DESCRIPTION You can set a comment for a file of up to 79 characters using this command. You can also remove the comment for a file using this command by specifying a null comment string. Comments may be viewed with the list command. When you COPY a file, the note does not get copied with it. When you RENAME a file, the note stays attached to that file. If you change the file in any way, except COPYing it, the file note does not get effected. If you add another filenote to a a file that already has one, then the old one gets deleted and the new one replaces it. If you LIST a directory, these filenotes are displayed. The notes will appear right below the file name with a : in front of it. If there is an icon attached to that file, then you can read or a note through that icon's information window. These filenotes do not effect the file they are attached to in anyway what so ever. KEYWORDS FILE filename This is the file the note is to be attached to. If this is the first argument in the command string then the FILE keyword is optional. 1.3 only: Only one file can be annotated at a time. 2.x/3.x only: Wildcards are completely acceptable. You can also annotate as many files as you like at the same time. COMMENT string If this is the second argument in the command string then the COMMENT keyword is optional. This defines the note that is to be attached to it. The string must be enclosed in quotation. ALL 2.x/3.x only: Lets you add the same note to all the files in the specified directory and all its subdirectories. QUIET 2.x/3.x only: Does not list the files as the notes are being added. EXAMPLE 1. To attach a note that says "Here it is!" to your file ThisFile Filenote FILE ThisFile COMMENT "Here it is!" 2. To attach a note that says "Don't delete this no matter what!" to the File Important.text Filenote Important.text "Don't delete this no matter what!" SEE ALSO Copy List FORMAT (1.3, 2.x, 3.x in SYS:System) NAME Format- Initializes a disk as being blank. SYNOPSIS FORMAT DRIVE drivename NAME string NOICONS QUICK FFS DESCRIPTION FORMAT takes a disk and initialises it to make it empty. You can also specify a name for it, but it you don't it will name it 'empty. WARNING: All information on the disk will be erased while using this command. After typing FORMAT, you are prompted to insert a disk and hit the RETURN key. After you hit RETURN you cannot turn back. It can be interrupted by hitting the CTRL-C and then RETURN. But, some data will be lost. As the format occurs, the status of the format is displayed. Each cylinder number (0-79 for a double density floppy) clicks by on the screen until every cylinder is initialized then verified. After this entire process the volume name is assigned. If you are copying one disk to another DISKCOPY is a much faster command. This is because you must first FORMAT, then INSTALL, then COPY ALL the from between the disks. If you are using DISKCOPY all these steps are performed by the DISKCOPY command. The only time the FORMAT-COPY ALL routine is better than the DISKCOPY is when the information on the source disk have been deleted and rewritten so many times that the contents of the disk have become scattered. By formating the disk then copying all the files over, you are consolidating them. By consolidating them you will greatly speed up your disk accessing time. The only time DISKCOPY will be better on a scattered disk is if you optimize the disk first using one of the many optimizing programs available. KEYWORDS DRIVE drivename The drive which contains the disk to be formatted. The valid entries are df0: df1: df2: and df3:. FORMAT can be used on any logical device. These devices include harddrives, recoverable ram drives, or even removable media which is readable/writeable. WARNING: Make sure you are typing the write device name. By typing DH0: instead of DF0: my cause you lose the entire contents of your harddrive when you just wanted to format a floppy disk. NAME string This is the name you are giving to the disk you are formatting. The NAME keyword is absolutly mandatory. The NAME can be up to 31 characters long and if it contains spaces must be contained in quotes. NOICONS With this keyword prevents the Trashcan from getting created during the format process. QUICK This keyword makes FORMAT initialize only write over the root-block, the boot block, and the bitmap block, without formating the rest of the disk. This is good to do whenever you are formatting a disk that already has been formated before because it is many times faster. But, this keyword will not work if the disk has never been formatted before. FFS This keyword forces the disk to be formatted with the Fast File System (FFS). FFS lets you keept much more information on the disk than the OFS (Old File System). WB 1.3 cannot boot from FFS and may have trouble reading them. 2.x/3.x use this by default. EXAMPLES 1. To format a disk in Df1: and naming it My_Disk: FORMAT DRIVE df1: NAME My_Disk: GET (2.x/3.x Only) (Internal Command) NAME GET - Shows the contents of a local environment variable. SYNOPSIS GET varname DESCRIPTION A named text string that is stored in an environment space is a local environment variable. It can only be accessed through the shell it was created in or from a shell that was spawned from the shell it was created in. OK... so what's the difference between GET and SETENV. Well, SETENV is stored in the RAM disk and is global to all system functions. GET resides in some private (reserved) memory that may only be accessed as described above. By placing a dollar sign before the name, you can swap the value of a local environment variable on the command line. In other words, if you type 'ECHO $Peter' you are creating the same local environment variable as GET Peter. KEYWORDS varname This is the name of the environment variable to get. There are many local environment variables which are already created by the 2.x/3.x operating systems. The proper use of these makes AmigaDOS a very flexible and powerful scripting language. The more important and useful of these variables are: Process The process number of the current Shell Echo Decides whether or not the Shell will repeat each of the commands as they are executed. If 'SET Echo on', then the commands are repeated and displayed. Anyother use of Echo will not allow any commands to be repeated. Turning Echo on helps you to debug any scripts that you are having problems with, since there is no other way to tell how they failed. With Echo on, you can tell which line in the script failed to work. RC The return code of the last command that was executed. You can manipulate this return code instead of using IF WARN or IF FAIL commands structures. This is a more efficient programming algorythm routine. Result2 The error number of why the last command failed. You can use the FAULT and/or WHY commands to try to figure out the exact nature of the error. EXAMPLES 1. To print the contents of an environment variable named StupidMahedi: GET StupidMahedi GetEnv(V1.3, 2.x, 3.x) NAME GetEnv - display value of environment variable. SYNOPSIS GetEnv Name DESCRIPTION GetEnv displays the values of Environment variables. These variables are accessible to all tasks (unlike GET which is only accessible to the environment which created it). GetEnv searches both the older Environment variables and the new ENV: handler if it exists. (Note that ENV: is currently just a directory in RAM:, it is not a true handler). GetEnv prints the contents of this file. KEYWORDS varname The name of the environmental variable to get. This is the name of the file that is found in the ENV: direrectory located in RAM:. Kickstart/Workbench 2.x/3.x Only: These are created during startup. They contain the version of your Kickstart and Workbench that is currently being used by your system. Editor 2.x/3.x Only: Some Workbench programs such as MORE are able to recognize the environmental variables. If you set this variable to the pathname of your favorite text editor, then MORE allows you to bring up the program to edit the current file by pressing Shift-E. SEE ALSO Set Get IF(V1.3 in C:) (2.x/3.x Internal) NAME IF - Add intelligent branching to scripts. SYNOPSIS IF NOT WARN ERROR FAIL string1EQstring2 string1GTstring2 string1GEstring2 VAL EXISTS DESCRIPTION If the condition tested by IF evaluates to TRUE, then the commands immediately following the IF, up to the following ELSE or ENDIF, are executed. If the condition tested by IF evaluates to FALSE, it moves the execution of the file ahead to the command following the next ELSE command (if there is one), or to ENDIF, if there is no intervening ELSE. The ELSE command (if used) must show up between the IF and ENDIF statements. CONDITIONS Each of the following will evaluate to true or false: WARN This will be true if the return code value set by the last command is greater than or equal to 5. ERROR This will be true if the return code value set by the last command is greater than or equal to 10. FAIL This will be true if the return code value set by the last command is greater than or equal to 20. Note that you will have to use a Failat command to raise the default fail limit from 10 to above 20 if you wish to use this test. string1EQstring2 This takes two strings, and will be true if both arguments are the same (i.e., EQUAL). The default is a string comparison, but see VAL, below. The comparison is not case sensitive. The test can be reversed by using the NOT keyword with it. It can be a numberic comparison if you utilize the VAR keyword. Strings 1 & 2 are normally text, if there are spaces in the strings then quotes must be placed around it. Environmental variables may also substitute a string by using a dollar sign ($) directly before the the variable name (so, $Amount represents the variable Amount). string1GEstring2 Takes two arguments. This will be true if the first argument is Greater than or Equal to the second argument. This may be combined with NOT (see below) to perform a LT (less than) test. The default comparison is a string compare, use VAL to compare numbers. Strings 1 & 2 are normally text, if there are spaces in the strings then quotes must be placed around it. Environmental variables may also substitute a string by using a dollar sign ($) directly before the the variable name (so, $Amount represents the variable Amount). string1GTstring2 Takes two arguments. This will be true if the first argument is Greater than the second. This may be combined with NOT (see below) to construct a LE (less than or equal to) test. The default comparison is a string compare, but use VAL to compare numbers. Case sensitivity does not matter. Strings 1 & 2 are normally text, if there are spaces in the strings then quotes must be placed around it. Environmental variables may also substitute a string by using a dollar sign ($) directly before the the variable name (so, $Amount represents the variable Amount). EXISTS This takes one argument, which should be a device, file or directory. This will be TRUE if the device, file or directory exists. MODIFIERS The following options to IF modify the meaning of the above tests: NOT Inverts the sense of the test. This is always used in combination with another keyword. As an example, the line: "If NOT EQ" will be TRUE if the EQ is false. This modifier combines with any of the others. VAL This affects the type of compare done by the EQ GT and GE keywords. By default, the comparison is a string compare. However, if you specify this keyword, the comparison performed is numeric. If you don't use the VAL keyword then the string will be compared one numeral at a time from left to right. For instance the string 22 will be shown to be greater than 011 since the first character is 0 in the second string which is smaller than 2 in the first. OTHER 2.x/3.x contains this command is internal. The only other difference between the 1.3 & 2.x/3.x version is that the 2.x/3.x version can be executed directly from the command line, while the diskbased version cannot. EXAMPLE 1. If you are running Workbench 3.0, the CLI will say "An Execellent decsion. If you are running any other OS then you get a message saying "Why not?" IF EXISTS Workbench3.0 Echo "An excellent decision!" ELSE Echo "Why not?" ENDIF SEE ALSO Execute Assign Info(V1.3, 2.x, 3.x in C:) NAME Info - report information about mounted file system(s). SYNOPSIS Info NAME DATES DESCRIPTION This command displays important and useful information about each disk unit. INFO displays what disk volumes are in use and the amount of strorage they have. INFO also will display the name of all the disks residing in any physical disk drive. This is helpful if you in helping you remember what volumes are mounted where. You also get a list of available volumes is also listed (those mounted and unmounted). The 3 1/2 inch disk has 880k of space available to them. After you format it under OFS (Old File System) you only have 837k left. If you use FFS (Fast File System) you have a full 879k to use. If you are fortunate enough to have a high density drive, then you can use 1759k of disk space. The entire disk format is stored in sectors. There are 1758 usable sectors on the Amiga disk. OFS's divide each sector into 488 bytes whereas FFS has a full 512 bytes per sector. High Density disks use 3518 bytes per sector. INFO will report the number of sectors already used on the disk and how many are available for use. RAM: is dynamic. That means, it will always be reported as 100% full (even if it is empty) and will expand as needed until it is full. INFO will also report if there are any 'soft' errors on your disk. So, what is a soft error? Well, it is a temporary error. For example, an error reading information from a disk. If the system cannot read the information off the disk, it will retry a couple times. If all reads fail then you have a hard error. If one of your reads is successful then the original read that failed is flagged as a soft error. It also reports whether or not disk disk is write protected. If it is listed as 'Read Only' then your write protection tab is set. If it is listed as 'Read/Write' then it can be written to as well as read. The RAM: disk cannot be protected from reading or writing, but the files you put in there can be protected from deletion with the use of the PROTECT command. KEYWORDS NAME This keyword lets you get the information of one particular device without getting all the info for everything else. EXAMPLES 1. To show the information regarding the disk volumes known to the filing system: INFO 2. To print out the information regarding the disk volumes known to the filing system: INFO > PRT: 3. To show only the information pertaining to df1: INFO df1: Install(V1.3, 2.x, 3.x in C:) NAME Install - Do the magic which makes a disk bootable. SYNOPSIS Install Drive NOBOOT CHECK DESCRIPTION This command should be used on all formatted floppy disks that you might wish to startup the system with. INSTALL adds the minimum amount of information to make that disk bootable. If a blank disk is INSTALLed it will bring up the AmigaDOS prompt, but that's it. To invoke any AmigaDOS commands the entire path to that file must be included. If you boot with the INSTALLed disk, it becomes the Sys: directory. If you use INSTALL on a non-Amiga formatted disk, or one with a custom boot-block, you will probably destroy that disk. So, be careful how you use this command. The drive specified may be one of DF0:, DF1:, DF2: or DF3:. OPTIONS CHECK This option checks to see if a disk is bootable, and if standard bootblock code is installed on the disk. For use in script files, if the disk is bootable and contains standard bootblock code, the error code is set to zero, otherwise, the error code is set to WARN. NOBOOT This option removes any bootblock from a DOS disk, and may also be used to make a non-DOS diskette readable as a DOS diskette. This can be used to get rid of unwanted information (aka Virus's) that may be hanging out on your diskette. FFS The disk will usually be given the boot block associated with that particular file system (OFS- Old File System for 1.3 or FFS- Fast File System for 2.x/3.x). This will force your system to install an FFS disk in Workbenches under 2.1. After and including 2.1 you are unable to force an FFS disk on an OFS only system. SINGLE DISK DRIVE WARNING!!! If you're not careful with your this program you can ruin your Workbench disk. Here's how to INSTALL a disk on a single drive system. You will not be prompted to enter the disk after you type INSTALL. So, this makes using INSTALL on single disk systems very dangerous. Normally, your C: directory will be assigned to the Sys: disk in df0:. So, if you insert the Workbench disk in df0: then type INSTALL ?, you will then get a command template that looks like this: DRIVE/A. Now, eject your Workbench disk then put in the one you wish to install and then type DF0: after the template then return. Now, the disk you wanted to install will be installed. EXAMPLES 1. To install a boot file on the disk in df2: INSTALL DRIVE df2: IPREFS (ONLY in 2.x/3.x) (located in C: directory) NAME IPREFS - Managages the Preferences scheme in 2.x/3.x. SYNOPSIS IPREFS QUIT DESCRIPTION This command will read all the preference settings in the ENV:Sys directory and puts those settings into effect. IPREFS hangs out in memory and looks out for changes made to the preference settings. For IPREFS updating functions to work you must have all the windows of any process running closed that have opened up on the Workbench. You willknow if you have something open when you try to reset a Preference setting and get a message saying: 'Intuition is attempting to reset the Workbench screen. Please close all windows except drawers.' If you get this during bootup then you probably entered a command in the startup-sequence before IPREFS was run. This is a good reason why you should not alter your startup-sequence and make any extra programs run from your user-startup script. But, if you absolutly must enter a command before IPREFS, then run its output to NIL:. So, to run 'NeatProgram Keywords Arguments' before IPREFS, then you should enter it as 'NeatProgram >NIL: Keywords Arguments'. KEYWORDS QUIT Under 2.x only: This lets you quit IPREFS while not keeping all the Prefrences intact. This keeps anything from changing the preferences as they are updated. This was removed under 3.x. NOTE: IPREFS is started during system startup. If you try to run it again you will get an error message saying that you already have it runnig and that you can't run it again. Join(V1.3, 2.x, 3.x in C:) NAME Join - Combines (joins) many files into one larger file. SYNOPSIS Join name1 name2.... AS or TO destname DESCRIPTION This program combines several files into one larger file, which may also be a device such as a printer or modem. It accepts wildcards as its arguments. Wildcards are only supported under 2.x/3.x. 1.3 MUST have more than one name. This command will alphabetize the wildcarded filenames before using them. If you specify only one name, then a simple Copy will result. Any number of files may be specified in the command line, and each one may be a wildcard specification. KEYWORDS name1 name2... These are the files you will combine. Under 1.3 you must place at least two names here, with a space between each name (up to 15). AS or TO This is the name of the new file into which the contents of the other files are placed. This can be a new file or an old file, but it can't be any of the files which precede the AS or TO keyword. ADDITIONAL CONSIDERATIONS You may prefer to use TYPE for joining files rath than JOIN. JOIN is included for backward's compatibility with batch scripts. The one advantage of Join is that it runs a bit faster than TYPE concatenating large files. EXAMPLE 1. To combine the three files File1 File2 and File3 into one large file named FILES1-3. Note that the original files are unharmed. Join File1 File2 File3 AS FILES1-3 Lab(V1.3 in C:) (2.x, 3.x in C:) NAME Lab - Define a label for Skip. SYNOPSIS Lab label_name DESCRIPTION Lab is used to define a label for use with skip. Lab by itself defines a null label. Note that if an EndSkip is encountered by Skip before the Label Skip is searching for is found, the search will be aborted at that point. EXAMPLE 1. In this example, only "But this will" will display on the CLI. Just type this script out and run it to see exactly how it works: Skip DODAH Echo "This will not display" Lab DODAH Echo "But this will" SEE ALSO Skip EndSkip CAUTION With the V1.3 version of SKIP, you should NOT indent a LAB statement or that label will not be found. List(V1.3, 2.x, 3.x in C:) NAME List - List contents of a directory. SYNOPSIS List listname Dir P=PAT/k KEYS/s DATES/s NODATES/s SUB/k SINCE/k SORT/s TO/k UPTO/k QUICK/s BLOCK=BLOCKS/s NOHEAD/s FILES/s DIRS/s LFORMAT/k DESCRIPTION List displays the contents of a given directory. By contents, we mean the names of the subordinate files and directories, not the file data. Typing the List command by itself with no parameters generates a listing of the current directory. It also lists any comments attached by a FILENOTE command. THE LISTING DISPLAY List displays your files and directories one per line, with all the protection flags currently turned on right next to the filename. The fields which may appear in a Listed file are name [KEY] size/type protection date time :comment Methods are provided for getting a selective listing of files, as well as suppressing/adding most of the above display elements. A description of each one of the above elements is given below: Name The name of the file or directory. This can be a device or volume name. AmigaDOS wildcards are supported 100%. The inclusion of wildcards eliminates the need for the P (or PAT) keyword. PAT is retained to keep compatiblility with older versions of AmigaDOS. KEY This is the actual block number of the file or directory block header. This is not displayed by default, you must use the KEYS switch to generate this element of the listing. size/type This element gives the size of the file in bytes, or the string "empty" if the file is empty. If this is a directory and not a file, then the directory indicator ("Dir") will appear here. protection The protection bits of the current file, in the order hsparwed. If any of these is disabled, a dash (-) will appear in its place. The protection bits stand for "hidden, script, pure, archived, read, write, execute and delete", respectively. date time The date and time of the last modification to the file or directory. The format of the date display is determined by the value of the environment variable dateformat. These elements of the listing appear by default, but may be selectively added or subtracted by using the DATES or NODATES keywords. comment The comment as set by Filenote. If no comment exists, this field will not be displayed. Note that it is displayed on a line by itself, preceded by a colon. SELECTIVE LISTING OF FILES The methods described in this section allow you to list a portion of the files and directories on your disks. Ways exist to generate a list of files that conform to a certain pattern, or that were created/modified before or after a certain date. You may also combine these options, for example, you may get a list of all files which end in .c and were created or modified since a certain date. These options are described below: Dir List this directory instead of the current directory. This parameter may be a filename, in which case the single file is shown. You may also use any legal AmigaDos pattern in this position, in which case the files and directories listed will be those which match the pattern, if any. (This feature was added to the BCPL List in the V1.3 enhancer.) PAT List only files and directories which match the pattern. You must specify the keyword PAT or its abbreviation P. This is no longer truly necessary with the expanded capabilities of AmigaDOS wildcards, since it is usually more convenient to simply include the pattern in the directory specification as described above. It is included for BCPL compatibility. SUB In this option the SUB keyword must come before the string. If spaces are in the string, it must be enclosed in quotes. With the inclusion of AmigaDOS wildcards, this keyword is really not needed. It searches for an occurence of the substring anywhere within the directory name or filename. Think of this as a short form of "List PAT *substring*" or a long form of "List *substring*". List will reject any attempts to combine the use of PAT and S. Wildcards in the initial DIR argument are matched and then checked again to match against the substring. SINCE While the pattern matching options above filter files and directories on the basis of their names, this option, and the following UPTO option, filter out files based on their last modification date. SINCE displays only files which have been created or modified on or later than the specified date. All older files are not displayed. You may specify the date in the currently defined dateformat (see Environment Variables) or you may use a word such as SUNDAY, TODAY, YESTERDAY, etc. UPTO The inverse of SINCE, this option displays only files and directories which have been modified or created on or before the specified date. Files younger than this date are not displayed. See SINCE for a description of the date format list expects. FILES Display only files, and not the directories. DIRS Display only directories, and not the files. CONTROLLING THE DISPLAY The options below allow you to alter the format of the display listing, or to send it to another file or output display device (that's usually a printer). TO You can specify a file or a device you wish the listing to be sent to using this keyword. If not specified, the default of the current screen will be used. If the file already exists then the old file will be replaced (and gone forever) while being replaced with this new file. If the protection bit is set on the old file LIST will not work. It is very useful to LIST TO prt: to get a hard copy of your disk listing. DATES Forces the date and time of creation to be displayed in the current dateformat. This keyword does not have to be used unless you are using the QUICK or NODATES keywords. NODATES Will not display time and date information, only the filename, size, protection and comment fields will be displayed. Using DATES with this will force the creation dates and times to display. QUICK Displays only the filename field, one filename per line, with no trailing spaces. You can LIST just the files or direcotries by using the FILES or DIR options. You can combine this with other options such as DATES and KEYS to selectively enable these fields. Under 2.x/3.x KEYS no longer works with this keyword. KEYS Displays the block number of each file header or directory header. All files are assigned using block numbers. This is how AmigaDOS keeps track of your files. Each file has a unique block number assigned to it. This is its address on the disk. The block number appears to the left of the file length. SORT Sorts the file and directory names into ascending alphabetical order. Case is disregarded. Note that this is an option available only with the ARP list. Sorts by DATE if you include the DATES keyword. BLOCK=BLOCKS Displays filesizes in blocks, rather than bytes. NOHEAD Suppresses the default "Directory..." header and the "x files -x directories -x blocks used" footer display. LFORMAT LFORMAT can be used to control the output of list, and especially to generate command lines to be fed to the shell. LFORMAT can is most useful when you want to generate a script file. To send the LIST output to a script file, you can either redirect LIST's output using the ">" or "TO" keywords. LFORMAT takes a string as an argument which can be any ascii string. The LFORMAT substring can be used multiple times. This allows you to use the listing name more than once per line. The second time you use the string the first relative path will be replaced by %S, and the path of the second argument will be used (BTW, a relative path is merely the list of directories you must traverse to get from the specified directory to the current one.) If you use three substrings, then the first will be replaced by the relative path, while the second and third will be the file or subdirectory names. If you use it four times, the first and third will be the relative paths, and the second and fourth will be the subdirectory or file names. To include the output of List in this string, you can use the "%S" sequence under 1.3 or 2.x/3.x as follows: "%S" Filename "%S%S" Pathname/Filename "%S%S%S" Pathname/FilenamePathname "%S%S%S%S" Pathname/FilenamePathname/Filename The following information may be substituted for the string as output and is for 2.x/3.x Only: %A :Attributes (protection flags) %B :Size of file in blocks %C :Comments attached to the file %D :Date of file creation or last update %F :The complete absolute path (starting with the volume name) %K :Key block number %L :Length of the file in bytes %N :Name of the file %P :The relative path(starting at the current directory) %T :Time of creation or last update The following information may be substituted for the string as output and is for 2.1/3.x Only: %E :Extension only (the part of the filename after the last period) %M :Filename minus the extension (everything up to the last period) ALL :Lists the contents of all the subdirectories of the specified directory, as well as the directory itself. The %S's may be separated by spaces, other ascii text or nothing, as above. Here is an example of LFORMAT that will create a script to Type each file: List LFORMAT="Type %S%S" Of course, to use this, you must save it in a file using TO or one of the IO Redirection operators ('>', '>>'). If you are using 2.x/3.x, you can also pipe the output of List directly into the Execute command. ENVIRONMENT VARIABLES The List uses the same dateformat variable as used by the Date command, and in essentially the same way. If it is not defined, or if it has an illegal value, the default AmigaDOS display and input is used. Otherwise, the display and the input of dates is determined as follows: 0 AmigaDOS format DD-MMM-YY. 1 International format YY-MM-DD. 2 U.S. format MM-DD-YY. 3 Canada DD-MM-YY If you prefix the above numbers with a dash, then the display of names like TODAY, MONDAY, FUTURE, etc., will be disabled and the format string as defined above will be used exclusively. Note that this governs the format that List expects as input as well as the format List uses for display. EXAMPLES 1. To display all files in df1: ending with the characters "#?.c" which were modified later than TUESDAY at 00:00 hours. List df1:#?.c SINCE WEDNESDAY 2. To output just the names and dates for items in the current directory beginning with the letters 'stuff' that were created or last updated on or before April 16, 1967. Sent the output out to a file called 'StuffOut' in the Ram:T directory. LIST stuff#? QUICK DATES UPTO 16-Nov-67 TO Ram:T/StuffOut 3. To list the information about the contents of the current CLI directory. LIST 4. To print the block number of all the files in the current directory. LIST KEYS to PRT: or LIST > PRT: KEYS 5. To display the information about the files in the directory art/adult whose names contain the string 'girls' LIST art/adult/#?girls#? (note: Information about both 'Really Ugly Girls' and PrettyGirls would be displayed) 6. To set the pure bit of every file in the stuff: directory. LIST >RAM:ThisFile stuff:#? LFORMAT "protect %S +p" (now you have a file called Ram:ThisFile which contains the commands to set the PROTECT bit on all the files in the stuff: directory. Now, just EXECUTE RAM:ThisFile LoadLib(V1.3 only) NAME LoadLib -- Explicitly load an Amiga library. SYNOPSIS LoadLib dev:dir/library-name DESCRIPTION THIS COMMAND IS NOT NEEDED BY 2.x/3.x. UNDER 1.3 ONLY: This is a new command which is occasionally very useful. If you should happen to boot from a disk that does not have arp.library in its libs directory you will not be able to use the ARP commands directly. This is an unusual situation, but it can happen. LoadLib presents the solution to this problem by allowing you to load the library directly from whatever directory you want. After a successful LoadLib of arp.library, you may use any ARP command you like. Note that you are not confined to loading arp.library, any diskloadable library may be brought into memory in this way, this can help a lot when your bootdisk gets too crowded. EXAMPLE 1. To boot from a disk without arp.library on it, and then insert your boot disk in drive 1, then type: LoadLib df1:libs/arp.library This will allow you to execute any ARP command. Note that LoadLib cannot use arp.library, and therefore it is missing some features, such as the advanced argument parsing, that most ARP supplied commands have. OTHER This command was donated to ARP by William Hawes. The founder of AREXX.ø LoadWB (V1.3, 2.X, 3.X in C:) NAME LoadWb -- To start the the WorkBench. SYNOPSIS 1.x: LoadWB DELAY -DEBUG 2.x/3.X: LoadWB DELAY -DEBUG CLEANUP NEWPATH DESCRIPTION Normally it is found in your statup-sequence so that your Workbench will be loaded when you start your Amiga. The Workbench will set and keep track of all search paths in effect as well as set the paths for each CLI or Shell started from a Workbench icon. Under 1.x the Workbench will reinitialize whenever you issue the LoadWB command. Under 2.x/3.x the Workbench is reinit- ialized after selecting 'Update All' from the Workbench menu. If you run LoadWB after it was already loaded under 2.x/3.x then you will get an error message saying that the Workbench is already loaded. KEYWORDS DELAY This makes a three second pause before the program is loaded. This lets all the disk activity to stop before going onto the next program in your startup-sequence to start. If there is not a pause, then both commands will try to access the floppy disk, this causes your floppy drive to make a thrashing noise and slows down you disk access tremendously. -DEBUG This adds a brand new menu item to your Workbench bar which is not normally displayed. There are two items on this menu. Debug (called ROMWack on 2.x/3.x) and Flushlibs. Debug (ROMWack) loads the ROMWACK debugger. This is a developer's tool which communicates to your Amiga via a 9600-baud terminal connection to the serial port. If this terminal is not connected, your Amiga will appear to lock up, since nothing will work until the remote terminal sends commands. Flushlibs lets the Workbench flush out all the libraries from memory that are not in use. This frees up a good deal of resources. This is useful for the programmer to check if his program exited cleanly and freed all memory that they allocated. 1.x ONLY: DELAY or -DEBUG may be used, but not at the same time. CLEANUP 2.x/3.x Only: This performs a 'CleanUp' of the Workbench window, making all your icons all neat and orderly. This may also be done via the Window/CleanUp while having the Workbench screen activated. NEWPATH 2.x/3.x Only: This lets you change the path that the Workbench uses. The Workbench usually remembers the CLI or Shell path that issued the LoadWB command. This path is automatically assigned to any Shell or CLI started from an icon. This path can be changed by using the NEWPATH keyword. The Workbench will then use the path associated with the Shell window from which the command was issued. EXAMPLES 1. Load the Workbench and close the CLI: LOADWB DELAY ENDCLI >NIL: 2. Load the Workbench with the DEBUG menu activated: LOADWB -DEBUG 3. Add the SYS:File directory to the path that the Workbench assigns to new Shell windows opened from icon: PATH SYS:File ADD LOADWB NEWPATH LOCK (1.X, 2.X, 3.X located in C:) NAME LOCK - Enables or disables the write protection of a harddrive partition formatted under the Fast File System (FFS). SYNOPSIS LOCK drive ON/OFF PASSWORD DESCRIPTION 1.x only lets you enable or disable the write protection of a FFS. 2.x/3.x it also enables or disables the write protection of every kind of disk including floppies. The drive is unlocked only when another LOCK command is sent or reboot the computer. KEYWORDS DRIVE The name of the disk or partition. For 1.x, it can only be a hard drive formatted with the FFS. 2.x/3.x lets you LOCK floppy disks too. LOCK works a little differently on floppies than other commands. Normally, when a command is set onto a floppy drive (eg. df0:) it will only effect that particular disk. But, with LOCK, it effects any and every disk inserted into the drive. ON/OFF This keyword lets you protect the disk (LOCK ON) or write enable (LOCK OFF). The default is for the disk to be write enabled. PASSWORD Under 1.2, this password had to be four characters long. On Operating Systems 1.3 and above it can be of any length.The password is considered to be a text string. Therefor, if there are spaces in it, it must be enclosed in quotes. If a a password was included in the LOCK ON command, the same password keyword must be used in the LOCK OFF command for the disk to be write enabled. EXAMPLES 1.To protect harddrive partition Dh1: with a password of saturn: LOCK DH1: ON saturn 2. To turn off the same: LOCK DH1: OFF saturn or LOCK DH1: saturn MAGTAPE (2.x/3.x Only) (Located in C:) NAME MAGTAPE [DEVICE devicename] [UNIT unitname] [RET or RETENSION] [REW or REWIND] [SKIP numfiles] SYNOPSIS MAGTAPE was added in 2.x to specifically control the A3070 tape backup unit. Computer tape drives are sequential. In other words, All computer tape drives, like video or audio tapes, must be manually "fast forward" or "rewind" to get to a particular file. Random-access devices such as floppy drives, harddrives, CDRoms, etc directly acess the information. KEYWORDS DEVICE devicename The devicename of unit to manipulate. UNIT unitname By default, MAGTAPE accesses SCSI unit four and utilizes the Commodore scsi.device. This is used because it is the factory defaults of the A3070. To change the SCSI unit number of the tape drive, or use a controlling device other than the scsi.device, you must specify both the device name of the SCSI controller (eg gvpscsi.device) as well as the unit number of the tape drive using both the DEVICE and UNIT keywords. There are usually dip switches in your unit that can be changed to correspond to any unit number you like. If you are unsure of the SCSI device driver your unit uses, then you should call the manufacturer. All SCSI drivers end in the extension: .device. RET or RETENSION This re-tensions the tape by fast-forwarding to the end then rewinding it. REW or REWIND Runs the tape to the beginning. SKIP numfiles Unit will run forward past a given number of files. The variable 'numfiles' tells how many files to skip. EXAMPLE 1. To rewind a scsi tapedrive attached to a GVP controller whose unit number is set to two: MAGTAPE DEVICE gvpscsi.device UNIT 2 REW MakeDir(V1.3, 2.x, 3.x in C:) NAME MakeDir - Create any number of directories. SYNOPSIS MakeDir Dir/... DESCRIPTION MakeDir creates a new directory with the name you give. There is no limit to the number of directories you may create with this command. The directories will be created in the order in which you supply them. Note that you cannot duplicate directories at the same level of the directory tree, nor can you create a subdirectory until its parent directory has been created. MakeDir allows you to create multi-tiered filing systems on the same disk volume. To delete the directories, you will use the DELETE command. EXAMPLE 1. To make a directory named Jim: makedir Jim 2. To make a directory named Mailbag inside the Jim directory and the directories Jan and Feb which will reside in the Mailbag directory of Jim that you just created with the first part of the template. makedir Jim/Mailbag Jim/MailBag/Jan Jim/MailBag/Feb MAKELINK (2.x and 3.x only) (located in C:) NAME MakeLink - Creates links which point to other files. SYNOPSIS MakeLink [FROM fromname] [TO toname] [HARD] [FORCE] DESCRIPTION When a program asks for a file, they will get the file linked to instead of that file itself. These links are handy whenever you have different programs who want to reference the same file in several different directories. Let's say you like to read your docs with ppmore. Well, many icons are configured to use More, Much More, Multiview, or any other text viewer. Well, to use your favorite reader (ppmore) you can make links that direct all other readers to access ppmore instead. The only problem with MakeLink is that you cannot make a link accross a devcice. Your link must reside on the same volume or partition. KEYWORDS FROM fromname The name of the link file to create. You only need to include the FROM keyword if you have the fromname and toname reversed. TO toname The name of the file which will be linked to. This must be on the same volume as fromname, and cannot be a directory name unless you use the FORCE option is used. HARD An optional keyword is used to indicate that the link and its target are on the same volume. A soft link is when the link is on a different volume. This is currently not supported. FORCE This is to create a directory link. This is where the link file will look for a particular directory instead of file. This is certain to cause confusion within your file system, especially if the target directory contains linked files. It will also cause havoc if you create a link to the parent directory of a target of another link. Even though MakeLink keeps you from making certain kinds of confusing links, you should be extra cautious when FORCING a link. EXAMPLES 1. To make a file run the program c:ppmore instead of C:more or C:muchmore MAKELINK c:ppmore c:more MAKELINK c:ppmore c:muchmore Mount(V1.3, 2.x, 3.x in C:) NAME Mount - Make a new device known to AmigaDOS. SYNOPSIS 1.3: MOUNT Dev [FROM filename] STARTPROC 2.x/3.x: MOUNT Devs [FROM filename] DESCRIPTION When AmigaDOS starts up, only a few devices are known to it. You can add new devices with the Mount command, which are then used just like any standard device. The devices might be actual hardware units, or they might be logical devices, such as a SPEAK: device, or a PIPE: device, or a buffered serial device SER:, or even a non-buffered serial device such as AUX:. The Assign command allows you to view or remove these added devices, as well as the standard system devices. Before using this command to Mount the device, you will need to create an entry for it in a file (this is referred to as a MountList entry). The details of doing this vary from device to device, but there should be documentation accompanying each device you intend to add that describes exactly how to do this. Ordinarily, you will make this entry in the file called DEVS:Mountlist on your system, but the FROM keyword gives you the option to specify another file to obtain the mountlist entry from. The 1.3 disk has a sample Mountlist file in the Devs: directory. This will form a good example of how to structure any mountlists you write. The size of the device is determined by the Surface, LowCyl, HighCyl, and BlocksPerTrack entries. Merely multiply these values together to get the available storage. For example, if you had a device with a Surface=2 (double sided), LowCyl= 0 and HighCyl=39 (40 tracks per side: 39 - 0 + 1), and with a BlocksPerTrack=11 (11 sectors, each sector being 512 bytes) you would end up with a 440k drive (.5k X 2 X 11 X 40= 440K). For non-memory devices such as SPEAK:, AUX:, SER:, or PIPE: the list simply shows where to find the handler. A handler is a program similar to a device driver. The CLI commands FORMAT and DISKCOPY work with all similar mounted devices. For instance, you can FORMAT or DISKCOPY between two 3.5 inch drives and two 5.25 inch drives, but not DISKCOPY between a 5.25-inch drive to a 3.5-inch drive. If you try, you will get an "Object Not Of Required Type" message. The MOUNT command looks for this Mountlist in the DEVS: directory. This file is a text file that shares some of the characteristics of the C programming language. For instance, hexadecimal numbers must start with the characters 0x. Semicolons must seperate multiple descriptions on a line. Comments must appear like in all AmigaDOS script comments, that is beginning with /* and ending with */. The Mountlist must end with the pound sign (ei #). 2.X/3.X Only: There is a completely new and user-friendly way to handle devices! There is a new drawer in your Workbench called "DOSDrivers" inside your DEVS: directory. These files are different from old mountlists in three ways: 1) They don't end in a pound sign, 2) They contain only one device name per file, and 3) the device name of the file is not specified in the list. To mount the device, you simply drag it into the DOSDrivers drawer and it will be mounted automatically when the Workbench is loaded. If you don't want the mountlist loaded automatically at startup, then simply place the mountlist in the DOSDrivers drawer of the Storage directory. KEYWORDS FOUND IN THE MOUNT LIST Handler= The name of the device handler file. Found in you l or devs directory of your workbench. EHandler= 2.x/3.x only: The name of the environment handler file found in your prefs/env-arc directory of your workbench. FileSystem= The name of the file system file. Usually found in your Devs or l directory of your Workbench. Device= The name of your device driver file found in the Devs drawer of your workbench. You can also specify a path to another device location if you to locate the driver in another drawer. Priority= The task priority of the process; 5 is typical of handlers, 10 is typical of file systems. Unit= The unit number of the device (ei 0 for df0: and 1 for df1:). Flags= Flags setting for the OpenDevice call (usually 0). Surfaces= Number of write surfaces. BlocksPerTrack: The number of disk blocks (eg sectors) per track (eg cylinder). Reserved= The number of blocks used for the boot block; 2 is the standard here. PreAlloc= The number of blocks reserved at the end of a partition; used with a few IBM-style (yuk!) hard drives. This is usually 0. Interleave= This value controls the AmigaDOS interleave, not the physical hard drive interleave. LowCyl= Starting cylinder to use for this device. HighCyl= Ending cylinder for this device. Total number of cylinders= HighCyl - LowCyl +1. StackSize= The amount of working memory to allocate to the process. Buffers= Number of cache buffers to use with the device. BufMem Type= Type of memory to use for cache buffers. Values are as follows: 0 or 1 = Any 2 or 3 = CHIP 4 or 5 = FAST Mount= If this value is positive, MOUNT loads the handler or driver software as soon as the device is MOUNTed, rather than the first time the device is accessed. 2.1/3.x utilizes the word ACTIVE as a synonym for this keyword. MaxTransfer= The maximum number of blocks transfered at one time; used with the Fast File System only. Mask= Address mask that specifies the memory range that can be used for DMA transfers; used only with the Fast File System. GlobVec= If the handler is written in BCPL, it needs a global vecotr. A value of 0 sets up a private global vector; anything else indicates that the handler is written in C or assembly language, and no global vector is needed. If this keyword isn't used, the shared AmigaDOS global vector is used. Startup= A string passed to the handler, device, or file system on startup. This string is passed as a BPTR to a BSTR. BootPri= The boot priority of a bootable device, expressed as a number between -129 and 127. A value of -129 indicates that the device is not bootable, as is appropriate for use with the recoverable RAM disk if you don't want to boot from that device on reset. DosType= Indicates the format of the file system used. If the Fast File System is used, this value should be set to 0x444F5301 (DOS/1). Other types introduced in 2.1 include 0x444F5302 (DOS/2), an international version of the old file system that allows mixed-case accented characters in filenames, and 0x444F5303 (DOS/3), an international version of the Fast File System. Baud= Serial device speed (in bits per second). Control= Serial device control parameters- word length, parity, and stop bits (eg 8N1, 7E1). ForceLoad= A new 2.1 option. When this value is 0 (default), the system will check the resource list to see if the file system named in the entry has already been loaded. If it has, the system will use that one, instead of loading a new one. Under 1.3 you can only MOUNT one device at a time with one MOUNT command. The 2.x/3.x version of Mount allows you to mount any number of devices with one Mount command, which can speed up the startup-sequence somewhat. OPTIONS FROM This takes one argument, which should be a filename. This filename will be used to obtain the Mountlist entry for the device you are adding. If this keyword is not used, the file DEVS:Mountlist will be used instead. STARTPROC Ordinarily, a mounted device will have its handler loaded when it is first accessed, not when mounted. This switch allows you to override the default action, which will load the handler at Mount time. Reasons for doing this could include having a few handlers on an alternate disk that you don't want to keep in a drive for the duration of your session. MOUNT KEYWORDS DEV The actual AmigaDOS device name, such as DF2:, DH0:, or SER:. This refers to either a hardware device like a disk drive or serial port, or a logical device such as a RAD or harddrive partition. The keyword must be the same as the label given in the Mountlist entry. The device mounted should also be available to the system. In 1.3 you can only specify one device per command. Under 2.x/3.x you can specify multiple devices with one command call. Wildcards may be used when specifying multiple devices. FROM Lets you specify a file other than DEVS:Mounlist as the place to look for the description of the device being MOUNTed. EXAMPLE 1. Assuming you have a mountlist for a device named FRANKIE: Mount FRANKIE: CAUTIONS Please note the following two differences between the V2.x/3.x Mount and the Commodore V1.3 Mount, which can cause problems in some cases if you are not aware of the differences. If you want to reboot from RAD: using the 2.x/3.x Mount, you must insert an explicit "BOOTPRI = 0" statement into the mountlist entry for RAD:, as compared with the Commodore Mount which automatically will reboot from RAD:. If you have a "MASK = nnnnn" statement in your mountlist, MAKE SURE THE MASK VALUE IS AN EVEN NUMBER. The 1.3 Mount automatically converts the mask value to an even value, but the 2.x/3.x Mount will pass through an odd value which can cause problems. You will probably only have a "MASK=nnnnnn" statement if you have memory that cannot be accessed by a DMA device, such as with a RONIN 68020 card. EnD Of PaRt OnE