home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
utility
/
disk
/
ashell
/
ash.doc
next >
Wrap
Text File
|
1985-11-19
|
40KB
|
1,057 lines
ASH V0.70
Copyright (c) 1986,1987 CSL/jdn
INTRODUCTION:
This is Version 0.70 of the ASH document file. If the program you're using
isn't V0.70 there's a good chance some of the features won't work as
documented in this file.
ASH is an acronym for 'A SHell'. It has some of the features I like best
from the shell I use the most. This is the only formal documentation for
ASH. The HELP key also provides a few screens of information that are
helpful if pressed while ASH is running. That information is contained in
the 'ash.hlp' file.
ASH is shareware and you're welcome to copy it and pass it along to as many
people as you want. Please include the copyright notice above in all
associated files. To contact me about ASH use the following address:
CSL, ATTN: ASH
Jerry Nowlin
318 N. Center Street
Plano, IL 60545
ASH may never be really 'finished' so any and all comments are welcome.
It's something that some of us (me), who prefer typing to clicking, needed
to be productive. It isn't perfect so please report any problems. If you
like ASH, you can report that too. If you like it enough to use it on a
regular basis please send along a few bucks. This will put your name on
the registered ASH user list and will enable me to notify you of any major
bug fixes or new releases. It will also help my wife appreciate the hours
I spend in front of my ST.
CONTENTS
INTRODUCTION ........................................................ 1
QUICK COMMANDS ...................................................... 2
BUILT-IN COMMANDS ................................................... 4
COMMAND HISTORY ..................................................... 8
HISTORY EDIT COMMANDS ............................................... 8
I/O REDIRECTION ..................................................... 11
COMMAND LINES ....................................................... 11
SET VARIABLES ....................................................... 12
ASH INITIALIZATION .................................................. 13
COMMAND SELECTION ................................................... 13
ASH SCRIPTS ......................................................... 14
LIMITATIONS ......................................................... 14
MISCELLANEOUS ....................................................... 15
V0.70 NOTES ......................................................... 15
- 1 -
ASH V0.70
QUICK COMMANDS:
The following list describes the ASH quick or single keystroke commands.
NOTE: these commands DO NOT go into the command history buffer.
ESC The escape key (ESC) puts ASH into history edit mode. In this
mode the current command line can be edited or previous commands
in the history buffer can be pulled back and edited. The editing
commands are explained in a later section of this document.
^L The control-L key (^L) will cause a listing of the command
history buffer to be displayed on the screen. There can be up to
23 command lines in the history buffer. The number preceding a
command line in the history buffer can be used with the ^R
command (see below) to repeat execution of the line.
^R [n-m] The control-R (^R) key will cause either the previous command
line, the 'n'th command line or the 'n'th through 'm'th command
lines to be re-executed. Unlike the other quick commands, a ^R
has to be followed by a carriage return. Due to the way the
history buffer is numbered, a sequence of command lines can be
repeated by repeating ^R's with the same value of 'n'. For
example, in the develop/debug cycle for the Icon language you
edit, translate and execute. The beginning of the history
listing generated with a ^L might look like this:
history list:
1 - iconx mortgage loan.dat
2 - icont mortgage.icn
3 - vix mortgage.icn
...
To repeat these three steps after completing the first cycle you
just keep invoking ^R with an 'n' of 3.
An alternative method would be to invoke ^R with the range '3-1'.
This would automatically execute command lines 3 through 1 in
that order. Due to the way command lines are numbered in
history, the high number in a range should be first if you want
the commands to be executed in the same order as they were
originally. If you want the commands to execute in reverse order
you can use '1-3'. Both orders are acceptable as long as the
history numbers in the range are valid.
^W The control-W (^W) key causes a what and who message about ASH to
be displayed on the screen. This information is similar to the
initial section of this document.
^P The control-P (^P) key causes the prompt to toggle back and forth
between simply displaying the current drive and displaying the
current drive and the current directory path. For example if you
- 2 -
ASH V0.70
were in the AUTO folder on drive A you could toggle your prompt
back and forth between:
[A:\AUTO]
and
[A:]
The default is to display the drive and path.
^V The control-V (^V) key makes the cursor visible. Some programs
that can be invoked from ASH cause the cursor to become
invisible. For instance MicroEMACS 3.7 and ASH itself assume
you're going back to the desktop when they exit so the cursor is
turned off. The ^V is a simple way to make it reappear.
BS/^H The backspace and control-H (^H) keys will cause the last
character typed to be erased.
^X/^U The control-X (^X) and the control-U (^U) keys will cause the
line currently being typed to be aborted. The aborted command
will NOT be included in the history buffer.
^C The control-C (^C) key will SOMETIMES cause the current running
command or program to abort. This doesn't always work and
repeated ^C's will sometimes cause ASH itself to abort. When a
program does abort its exit code is frequently munged into a
GEMDOS error that causes the 'Invalid Function' message to be
printed. ASH scripts can be aborted by typing a ^C after a pause
command has suspended a script.
^D/^Z The control-D (^D) and the control-Z (^Z) keys will cause ASH to
exit to the desktop fast with no looking back.
UNDO The UNDO key will cause ASH to ask the user if they want to exit
to the desktop. A 'y' will cause the program to exit. Any other
character will abort the exit.
CLR/HOME The CLR/HOME key will clear the screen and move the cursor to the
upper left corner of the screen.
HELP The HELP key will cause one of two different help messages to be
displayed. When in normal command mode a summary of the quick
and the built-in commands is displayed. When in the history edit
mode a list of the history editing commands is displayed.
Any other control characters typed to ASH are considered an error. You'll
be beeped and the character will be ignored. In addition TAB characters
(^I) typed as part of an ASH command line are automatically changed to
spaces.
- 3 -
ASH V0.70
BUILT-IN COMMANDS:
The following commands are ASH built-in commands. They are very similar to
equivalent UN*X commands where that comparison applies. This version of
ASH has I/O redirection built into the built-in commands. See the I/O
REDIRECTION section for details.
Invoking any of the built-in commands with a '-?' argument will result in a
usage message for that command. These usage messages are more informative
than the simple HELP summary but not as detailed as this document. All
built-in commands are lower case. They will not be recognized if typed as
upper case. This is a trap door to let you execute external commands that
might have the same name as a built-in command.
date [mm/dd/yy] [hh:mm:ss]
This command will display the current date and time. If a new date or
time specification or both are included as parameters, the new values
are used to set the date and/or time. Both the GEMDOS clock and the
intelligent keyboard clock are set by this command. The GEMDOS clock
is used to display the date and time.
set [var=value ...]
This command lists all the defined set variables when invoked with no
parameters. If it's invoked with one or more 'var=value' parameters,
they're added to the list of defined set variables.
unset var [var ...]
The unset command deletes variables from the list of defined set
variables.
echo [-n] [arg ...]
This command echos its arguments back to the screen. The default is
to terminate the display of arguments with a carriage return and a
line feed. The '-n' flag will cause the arguments to be echoed
without a CR/LF.
Echo recognizes the sequence of a backslash (\) followed by three
octal digits in its arguments and will replace that sequence with the
corresponding ASCII character. For example, the ASCII BELL character
is \007 and the ASCII TAB character is \011. The escape sequence to
home the cursor and clear the screen is ESC-H-ESC-J. To generate this
sequence with echo you would use:
echo "\033H\033J"
This same method of generating ASCII characters is used for the
pattern argument of the find command, the OPRINIT set variable and the
F1-F10 function key set variables.
pause
The pause command is mainly for use inside ASH scripts. It will cause
- 4 -
ASH V0.70
ASH to suspend execution until a carriage return is typed. If you
respond with a ^C instead of a CR all currently running scripts will
be aborted and you'll be left at the interactive level of ASH. This
is a handy trap door to abort scripts that have had problems.
find [-n] pat file [file ...]
The find command takes a pattern as its first argument. Upper and
lower case letters in the pattern are unique. A pattern can contain
no special characters to signify regular expressions, but it can
contain backslash ASCII character sequences like those explained in
the description of the echo command. Find searches for lines in the
files given as arguments that contain the pattern. The lines that
match are printed to the screen with the file name prepended to them.
If the '-n' flag is used the line numbers of any matching lines are
inserted between the file name and the line.
rez {-l | -m}
The rez command changes the screen resolution to medium or low. Since
you can't change to high resolution from medium or low there's no
option for changing to high and if you're in high resolution you won't
be allowed to change to low or medium.
There is a possibly confusing side effect of this command. When you
change resolution the color pot that's used to paint the foreground
color changes too. In low resolution pot 15 is the foreground. In
medium it's pot 3. If you aren't satisfied with the foreground color
after changing resolutions use the color command (see below) to change
it.
One last caveat. There are some programs that check the system
resolution and work fine after ASH has changed resolution. There are
others that don't detect the fact that the resolution has changed and
continue to complain about the system being in medium even when it's
obvious that the screen is in low. Any hints as to how I can make ASH
convince everyone the resolution has changed are welcome.
color {-f | -b} [RGB]
The color command is used to report or change the foreground and
background colors of the screen. The '-f' and '-b' screen section
flags stand for foreground and background respectively. When invoked
with only a screen section flag this command reports the current color
mix for that section. You can select a new color mix for the
foreground and background color pots by including a 'RGB' parameter in
the color command.
The 'RGB' parameter must be a 3 digit number with each digit ranging
from 0 to 7. The first digit is the intensity level of RED used to
compose the new color. The second digit is the GREEN intensity level
and the third is the BLUE. This gives you access to 512 possible
colors. A value of 000 will generate BLACK, 777 will generate WHITE,
070 will be intense GREEN and so on. It can be interesting mixing
- 5 -
ASH V0.70
your foreground and background colors but be careful not to make them
identical or you'll be flying blind.
ls [-s] [-l] [-h] [d:][file]
The ls command lists directory information about the files specified
or about all files on the current drive and directory if no files or
any other type of file specification is given. You can use drive
specifications or directories as arguments to ls and the entire
contents of that drive or directory will be listed.
The '-s' flag causes the sizes of the files to be listed in addition
to the file names. The '-l' flag causes a long listing with the
names, sizes, times and dates of the last modification, etc. included
in the output. The '-h' flag causes hidden files to show up in the
listing. The order of the files is exactly their order in the
directory. At this time there is no option to sort the files listed
by name, extension, size or time stamp.
df [-t] [d: ...]
The df command will display the free space remaining on the drives
specified. If no drives are specified then the free space on the
current drive is given. The '-t' flag will cause the total amount of
space on a drive to be listed as well.
cat [-n] file [file ...]
The cat command will cause the files specified to be sent to the
screen in a paginated form. You will be prompted to hit a key after
every screen full of output. When using output redirection, or if cat
is invoked from a script, pagination is turned off. The '-n' flag
will cause line numbers to be included in the display.
opr [-n] [-oN] file [file ...]
The opr command will print the specified files on the printer. The
'-n' flag will cause line numbers to be included in the output. The
'-oN' flag will cause the left margin to be offset or padded by 'N'
spaces. The set variable OPRINIT can be used to initialize the
printer for a given invocation of opr. See the section on SET
VARIABLES below for details.
cp file1 file2
The cp command will copy 'file1' to 'file2' if there are only two
arguments and both are files.
cp file1 ... filen dir
This invocation of the cp command will copy the first through the next
to last arguments, which must be files, to the last argument, which
must be a directory or drive specification. New files created with cp
have a time stamp corresponding to the time they were copied.
WARNING: Unlike the desktop copy routine (dragging to another window),
the cp command does not care if there are conflicting file names. It
- 6 -
ASH V0.70
will copy over a file with the same name in the target directory or
drive without any warning.
mv file1 file2
The mv command will move or rename 'file1' to 'file2' if there are
only two arguments and both are files.
mv file1 ... filen dir
This invocation of the mv command will move the first through the next
to last arguments, which must be files, to the last argument, which
must be a directory or drive specification. Files moved with mv
retain their original time stamp even when physically created on a new
drive.
WARNING: Unlike the desktop rename routine (SHOW INFO), the mv command
does not care if there are conflicting file names. It will move over
a file with the same name in the target directory or drive without any
warning.
rm [-i] file [file ...]
The rm command removes or erases the files specified. If you're the
cautious type the '-i' flag will cause rm to work interactively. In
this mode rm will prompt you with each file name and wait for you to
respond with a 'y' or 'n' before removing the file. If you respond
with a 'q' the rm is aborted but the files already removed are gone.
WARNING: Unlike the desktop remove routine (dragging to the TRASH),
the rm command does not prompt you to verify if you got the file name
right. It will remove your files with no remorse if asked to do so.
If you want to verify the expansion of a wildcard argument before
using it with rm, try it with echo first and make sure you aren't
specifying some files you want to keep.
attr {-w | -r} file [file...]
The attr command allows you to set the read and write or read only
attributes of a file. Most files default to read and write. For
example, if you execute an ls command with the '-l' flag on a file
with read and write permission you'll see the attributes as 'R/W'. A
file with read only permission will have 'R/O' in the attributes
column. A file with read and write attributes can be removed or
modified. A read only file is protected. It can be copied or printed
but it can't be removed or modified.
cd dir
The cd command is used to change the current working directory. You
can change to directories on the same drive or you can change to
directories that cross drive boundaries. Don't confuse the latter
with changing the current drive. To change drives you simply type the
drive specification of the drive you want to change to. For example
to change to drive A you would type:
- 7 -
ASH V0.70
a:
If you had previously been in the AUTO folder on A you would then be
back in A:\AUTO. If you executed the command:
cd a:
you would be placed in the base directory of the A drive. In general,
to get to A:\AUTO you should explicitly execute:
cd a:\auto
Remember that directory paths on the ST use backslashes (\) instead of
slashes (/).
pwd
The pwd command will display the current working directory. This can
be redundant if the default of having the current directory included
in your prompt is on. (See the ^P command above.)
mkdir dir [dir ...]
The mkdir command is used to create new directories. Directory names
have the same restrictions as file names.
rmdir dir [dir ...]
The rmdir command is used to remove EMPTY directories. Notice the
EMPTY. You must remove the contents of a directory before you can
remove the directory itself.
COMMAND HISTORY:
ASH uses a command history buffer that holds up to the last 23 command
lines typed from the keyboard. The command lines in this buffer can be
listed (^L), repeated (^R) and edited (ESC) with a set of simple line
editing commands. The command lines in the history buffer are numbered
from 1 to 23 with the most recent command line being number 1 and the
oldest being number 23. Each new command line causes the lines already in
the buffer to age by one. Once a command line has aged past 23 it's gone
for good.
HISTORY EDIT COMMANDS:
When you've put ASH in the history edit mode with the escape (ESC) key,
there are a number of single key commands available with which you can call
back previous commands and modify them. You have to be in history edit
mode for these commands to work. I've abbreviated the up, down, left and
right arrow keys as UA, DA, LA and RA respectively.
- 8 -
ASH V0.70
UA/-/k These three keys let you browse backwards through the commands in
the history buffer. When you get to the end you'll be beeped.
DA/+/j These three keys let you browse forwards through the commands in
the history buffer. When you get to the beginning you'll be
beeped.
LA/BS/h Any of these three keys cause the cursor to move backwards or
left one character on the current command line. You can't move
past the first character of the command line.
RA/SP/l Any of these three keys cause the cursor to move forwards or
right one character on the current command line. You can't move
past the last character of the command line.
0 This key (zero) causes the cursor to move to the first character
of the currently displayed command line.
^ This key causes the cursor to move to the first visible character
of the currently displayed command line. If there are spaces at
the beginning of the command line this will skip over them.
$ This key causes the cursor to move to the last character of the
currently displayed command line.
In the next three commands the distinction is made between a word and a
WORD. For this discussion a word is delimited by any non-alphanumeric
characters like punctuation marks, spaces or other special symbols. A WORD
is delimited by only white space.
w/W These two keys cause the cursor to move right or forward to the
beginning of a word or a WORD respectively.
e/E These two keys cause the cursor to move right or forward to the
end of a word or a WORD respectively.
b/B These two keys cause the cursor to move left or back to the
beginning of a word or a WORD respectively.
~ This key will change the case (if alphabetic) of the current
character from upper to lower case or from lower to upper case.
The cursor moves forward past the character changed. Non-
alphabetic characters are simply skipped over.
r This key will cause the current character to be replaced with
another single character. The next character typed will be used
as the replacement.
x This key will cause the current character to be crossed out or
deleted.
- 9 -
ASH V0.70
d This key will cause the current character to be deleted. It's
functionally the same as the 'x' command.
D This key will cause the rest of the command line including the
current character to be deleted.
The next seven keys cause the history editor to go into insert mode where
you can add multiple characters to the command line. To stop adding
characters you must hit the ESC key. You will then be back in history edit
command mode.
s This key lets you substitute multiple characters for the current
character.
c This key lets you change the current character for multiple new
characters. It's functionally the same as the 's' command.
C This key will cause the rest of the command line including the
current character to be changed for multiple new characters.
i This key lets you start inserting characters before the current
character on the command line. The INSERT key, in the group with
the arrow keys, works just like 'i'.
I This key lets you start inserting characters before the first
character in the command line.
a This key lets you start appending characters after the current
character in the command line.
A This key lets you start appending characters after the last
character in the command line.
CR/LF These keys cause the history editor to be exited and the
currently displayed command line to be executed.
^C/^U/^X These keys cause the history editor to be aborted without
executing the currently displayed command line.
HELP This key will cause a brief summary of all the history editing
commands to be displayed.
There has to be a caveat to history editing. The history editing commands
will work on lines that wrap around the screen but the display is not
adjusted in any way. In other words, editing command lines that are longer
than one physical line can be interesting.
- 10 -
ASH V0.70
I/O REDIRECTION:
This version of ASH has I/O redirection built into the built-in commands.
The standard '<file', '>file' and '>>file' arguments will cause standard
input to be redirected from file, standard output to be redirected to
overwrite or create file and standard output to be redirected to append to
or create file respectively. There can be NO SPACE between the redirection
characters and the redirection file name. The redirection arguments to
built-in commands can appear anywhere in the list of command arguments.
The redirection of standard input is of dubious value since none of the
built-in commands currently use standard input. NOTE: standard error is
not redirectable at this time.
Redirection for external commands that get executed by ASH depends entirely
on how those commands were created. If they were created with most of the
standard C development packages they should support similar redirection
arguments. Megamax, Lattice, Mark Williams and the Developers Kit all
support I/O redirection for programs that are built with them. Some
require that the main() function be declared with argc and argv as
arguments and some require the redirection arguments to be the first
arguments on the command line. You'll have to refer to the documentation
that comes with the programs you use or try them to see how they work.
COMMAND LINES:
Command lines can be up to 255 characters long. Built-in commands can use
the entire 255 characters. External commands that are invoked by the
Pexec() GEMDOS call are limited to a command tail of 127 characters. The
command name itself isn't included in this 127 characters so the effective
length of an external command is over 127 characters but not too much. If
the command tail limit is exceeded ASH will print an error message and
ignore the command.
You can enter multiple ASH commands on one command line by separating them
with semi-colons (;). Everything on a command line after a pound sign (#)
is treated as a comment. Command separators and comment characters can be
quoted with apostrophes (') or double quotes (") if they're needed as part
of a command's arguments. If you want a double quote or apostrophe to be
included in an argument you must quote it with the other quoting character.
For example, this echo command will generate an error:
echo this won't work
The apostrophe is parsed as a mismatched quote. The following command
works because the apostrophe is quoted:
echo "this won't work (yes it will)"
The same quoting mechanism is applicable to the wildcard characters * and
?. ASH expands all arguments containing wildcards before passing them on
- 11 -
ASH V0.70
to external programs. If you want an external program to do the expansion
then you must quote ambiguous file specifications like '*.NEO' or
'BUFF?.TMP'.
SET VARIABLES:
The number of set variables is limited to 32 and the size of a single
'variable=value' string is limited to 255 characters. Set variables can be
used in command lines by putting a dollar sign in front of them. Some set
variables have special meanings to ASH.
The ECHO set variable is used to turn command echoing on in scripts. If
ECHO is set to 'ON' or 'on' commands will be echoed before they're
executed. If ECHO isn't set, or is set to any other value, scripts run
silently. Scripts are silent by default.
The set variable OPRINIT can be defined with a printer initialization
sequence that will be sent to the printer before any other output when the
opr command is executed. The expansion of backslash ASCII character
sequences, like those explained in the description of the echo command, is
done on the OPRINIT value before sending it to the printer. This allows
escape sequences and other control characters to be used. For example, I
have an Epson FX80 and I frequently set OPRINIT like this:
set OPRINIT=\033M
This backslash sequence is converted to ESC-M and sets the printer to elite
or 12 character per inch mode.
The set variables F1, F2, ... F9 and F10 can be used to program the
corresponding function keys. For example, if the F2 set variable were set
to 'ls -l' then that string would be added to the command line when you hit
function key F2. Since there's no CR or LF in that string you would have
to hit a CR after hitting F2 in order to execute the 'ls -l'. To terminate
a function key set variable with a CR or LF use the backslash sequence for
it. For example, if F2 were set to 'ls -l\012' then hitting function key
F2 would execute the 'ls -l'. The backslash sequence for CR is \015 and
the backslash sequence for LF is \012.
The PATH set variable is used to decide where ASH looks for commands that
aren't built-in, for the ASH initialization file and for the ASH help file.
The same syntax is used as in the MS-D*S PATH, where semi-colons (;)
separate the various drives and directories in a PATH. When setting PATH
semi-colons must be quoted so they're not interpreted as command
separators.
- 12 -
ASH V0.70
ASH INITIALIZATION:
When ASH is first invoked interactively PATH is set to the base of all the
installed drives on the system. This setting is then used to look for the
ASH initialization file. The ASH initialization file is named 'ash.ini'
and must be in the current directory or on one of the drives in the initial
PATH. Since GEMDOS considers both the A and B floppies to be installed,
even if there's only one floppy drive physically attached to the computer,
it's a good idea to have your 'ash.ini' file on the floppy from which you
invoke ASH. If you invoke ASH from a folder on a hard disk you should have
your 'ash.ini' file in that folder.
The ASH initialization file can contain any valid ASH commands. It's handy
for redefining the PATH value or adding to the initial PATH. For example,
you can avoid having to keep a floppy in your floppy drive by defining the
floppy drives out of PATH. The following 'ash.ini' file will modify PATH,
display it, define some function keys and turn on echoing in scripts:
set PATH="c:\bin;$PATH"
echo "PATH=$PATH"
set F1='ls -l\012' # F1 executes a 'ls -l'
set F2='df -t\012' # F2 executes a 'df -t'
set F3='set ECHO=off\012' # F3 turns off echoing
set F4='set ECHO=on\012' # F4 turns on echoing
set ECHO=on
Notice the quotes used with PATH to override the interpretation of semi-
colons as command separators.
COMMAND SELECTION:
ASH initially checks each command it parses to see if it's built-in. If
it's built-in ASH executes it. If a command isn't built-in ASH checks for
a file suffix. If there's no suffix it will try each of the four standard
command suffixes (.prg, .ttp, .tos and .ash) in that order. It first
checks for a command in the current directory. If it's not found in the
current directory it then looks in the directories specified with the PATH
set variable as explained above.
As an example, say the command 'FORMAT' was parsed by ASH. It would first
check to see if there was a built-in command 'FORMAT'. Since there isn't
it would then search for the command 'FORMAT.PRG' in the current directory.
If that failed it would look for a command 'FORMAT.TTP' in the current
directory. If that failed it would look for 'FORMAT.TOS' and 'FORMAT.ASH'
in that order in the current directory. If all these failed it would then
look for the same commands in the same order in the first directory
specified in PATH. If all the directories in PATH were exhausted and a
command that fit this name had still not been found ASH would give up and
state that the command wasn't found.
- 13 -
ASH V0.70
ASH SCRIPTS:
Commands with the .ash suffix are ASH scripts. They're invoked by
executing ASH on the script recursively. Scripts can also be used with ASH
by invoking it with the name of a script as the first argument. Up to 9
arguments can be included on a script command line. They're parsed inside
the script the way positional arguments are parsed in UN*X; $0 through $9.
Since that's 10 arguments I should explain that $0 is set to the name of
the script that's executing. Scripts that call other scripts cause ASH to
recurse and use up memory in the process stack. I've tested V0.70 to 9
levels deep with no problems. After that the results are undetermined but
probably not what you want.
Because of the recursive nature of scripts, the set variables from the
calling invocation of ASH are available to scripts. Scripts can make
changes to the set variables or change the current drive and directory but
those changes are only in effect during the life of the script. If you
want a script to make lasting changes you must invoke it with the dot
command. For example to run the script 'clean.ash' you have two options.
If you want the current set variables and the current drive and directory
to be unchanged when it exits invoke it like this:
clean
If you want any changes to the set variables or the current drive and
directory to stick around after 'clean.ash' exits, invoke it like this:
. clean
LIMITATIONS:
Some of the limits in ASH are listed below. If your normal use of ASH
exceeds them please let me know. The program can allocate more memory for
some of these values while others are fixed by the underlying Atari ST
operating system.
23 - commands in the history buffer
127 - characters per external (Pexec) command tail
255 - characters per built-in command
255 - characters per command line
64 - arguments per command line including the command name
127 - characters per argument
32 - possible set variables
255 - characters per set variable
- 14 -
ASH V0.70
MISCELLANEOUS:
Any time you're confronted with the '[more...]' prompt at the bottom of the
screen you can type a 'q' to avoid seeing whatever there's more of.
In some instances after switching floppy disks you may have to execute a df
or ls on the drive to make the system recognize the change. You should
also be careful about changing floppies when the current working directory
on the floppy being removed isn't the base directory.
The mouse cursor is normally hidden while ASH is running. If you jiggle
the mouse a block of background color and a busy bee will show up but they
will scroll off the screen with normal use. The mouse is kept alive for
any GEM programs that need it and don't turn it on themselves.
The ASH help file is called 'ash.hlp'. When help is requested ASH first
looks for the help file in the current directory and then in each of the
directories in PATH. If you want to save disk space ASH will run without
the help file.
V0.70 NOTES:
Version 0.70 of ASH was compiled with the Megamax C Language Development
System. It now has dynamic memory allocation and several other
improvements that weren't in V0.52. Some of the more noticeable changes
are:
- I/O redirection is supported for built-in commands.
- The . and .. files are ignored in rm commands whether they're
explicitly specified on the command line or generated through wildcard
expansion. They can't be removed so there isn't much point in trying.
They're also ignored at appropriate times in cp and mv commands.
- The intelligent keyboard clock is now set by the date command.
- The mv command doesn't change a file's time stamp.
- The arrow keys and the INSERT key are now active for history editing.
- The 'ash.ini' initialization file handling has improved since any
valid ASH commands are now allowed.
- Script speed and memory usage has improved since ASH recurses now.
- Scripts inherit the calling ASH's set variables and can modify them if
called with the dot command.
- The cp command works much faster now. It's comparable to desktop
drags.
- 15 -
ASH V0.70
- The ls command now has a -h option for hidden/system files.
- The opr command now has a -oN option to offset the left margin.
- The opr command now has a way to initialize the printer with the
OPRINIT set variable.
- The mkdir and rmdir commands now take multiple directory arguments.
- If you ever wondered what to do with those slanty function keys ASH
now gives you the ability to program them using set variables. See
the SET VARIABLES section above.
- There is a new attr command which allows you to change the read and
write attributes of a file to read only and back again. This
implements file protection as requested by several people.
- There is a new unset command which allows you delete variables from
the defined list of set variables.
- You now have the ability to repeat (^R) a range of command lines from
the command history buffer.
I plan to add several more features to ASH in the future. Aliasing of
command names and some type of flow control commands like IF/FOR/WHILE are
on my list. I'm willing to consider suggestions for other improvements.
Please mail your suggestions to the address in the beginning of this
document. Thanks.
- 16 -
əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə