@.
. -- execute command file in current shell
Usage: . comfile
Reads comfile as if it were typed in to the current level of msh.
Commands such as `set' and `cd' in comfile have effect after comfile is done.
@ar
ar -- maintain archives
Usage:	ar option[modifier] [ position ] archive [ member ... ]
Options:
	d	Delete given members
	m	Move member to indicated position (default: end)
	p	Print each member
	q	Quick append--put members at end with no checking
	r	Replace each member specified in the archive
	t	Print a table of members (default: all)
	x	Extract the specified members (default: all)
Modifiers:
	a	Place new member after 'position' in archive
	b	Place new member before 'position' in archive
	c	Suppress message when new archive is created
	i	Insert new member before 'position' in archive
	k	Preserve modify time of file (with options r, q, or x)
	s	Update ranlib header even if not present (with options r, m, d)
	u	Update--replace members only if newer than those in archive
	v	Print extra information when used with certain options
@as
as -- assembler for 68000
Usage:	as [ options ] file ...
Options:
	-g	Make all undefined symbols global
	-l	Output assembly listing to standard output
	-o dest	Rename output file 'dest' (default: 'l.out')
	-x	Strip local symbols from symbol table
@cat
cat -- concatenate/print files
Usage:	cat [ file ... ]
File '-' indicates the standard input.
If no 'file' is specified, the standard input is used.
@cc
cc -- C compiler
Compiles files ending '.c'; assembles files ending in '.s';
passes other options and files to the linker 'ld'.
Usage:	cc [ options ] file ...
Options:
	-A		Run EDITOR if errors encountered (Default micro-emacs)
	-c		Compile only--no link
	-Dname[=value]	Tell cpp to define 'name' with 'value'
	-E		Run cpp only and send its output to stdout
	-f		Include floating point output routines in link
	-Iname		Look for cpp include files in directory 'name'
	-K		Keep intermediate files
	-lname		Pass /lib/libname.a to linker
	-M string	Use alternative machine versions
	-N[p012sdlrt]string
			Rename specified pass to 'string';
			'p' indicates preprocessor, etc.
	-q[p012s]	Quit after specified pass; 'p' indicates
			preprocessor, etc.
	-Q		Quiet option:  suppress all messages
	-S		Produce assembly language output
	-Uname		Tell cpp to remove any initial definition of 'name'
	-V		Run verbosely; send to stdout messages on each phase
	-Vname		Toggle variant 'Vname'.  See Lexicon for list of
			of variants.
@cd
cd -- change directory
Usage:	cd [ directory ]
If no directory specified, $HOME is assumed.
msh executes cd directly.
@chmod
chmod -- change mode of a file
Usage: 	chmod +modes file ...
		or
	chmod -modes file ...
where '+' sets the mode and '-' clears it.
The modes are as follows:
	s - system file (hidden from normal directory searches)
	h - hidden file (" ")
	m - backed-up (shows up as "m" in ls -l)
	w - write allowed (shows up as "w" in ls -l)
@cmp
cmp -- compare bytes of two files
Usage:	cmp [ -ls ] file1 file2 [ skip1 skip2 ]
Options:
	-l	Print byte number and the bytes at each difference
	-s	Return status (do not print anything)
If 'file1' is '-', use standard input.
If 'skip1' and 'skip2' are present, they indicate the number of bytes
to skip before comparing in 'file1' and 'file2', respectively.
@cp
cp -- copy files
Usage:	cp oldfile newfile
	cp file ... directory
The first usage copies 'oldfile' to 'newfile'; if newfile exists, its
contents are replaced with those of 'oldfile'.
The second usage usage copies a number of files into 'directory'; each
file retains its old name.
@cpp
cpp -- C preprocessor
Usage:  cpp [ option ] [ file ... ]
Options: -Dname[=value]
		Define 'name' to equal 'value'; same as '#define' directive.
	 -E	Strip comments and line numbers from source.
	 -Idirectory
		Look for header files in 'directory'
	 -o name
		Write output into file 'name'.  Default is 'l.out'.
	 -Q	run quietly
	 -Uvariable
		Undefine 'variable'; same as '#undef' directive.
	 -V	Print messages about what cpp is doing
	 -3	Translate ANSI trigraphs in text
@cursconf
cursconf -- set cursor's configuration
Usage:	cursconf task [period]
    task:
	0	hide the cursor
	1	show the cursor
	2	set cursor to blink
	3	set cursor to steady
	4	set the cursor to toggle every `period' frames
	5	print the current blink rate on standard output
@date
date -- print/set date and time of day
Usage:	date [ -u ] [ [yymmdd]hhmm[.ss] ]
Options: -u	Print/set date in Greenwich Mean Time
	 -i	Print current time in setting format
When used with no arguments, 'date' prints the time and date.  When used
with arguments, it resets the date; for example, to reset the date and
time to July 15, 1986, 2:47 PM, type: 'date 8607151447'.  "date" reads the
keyboard clock and sets both the GEMDOS and keyboard clocks.
@df
df -- summarize how much of the disk is free.
Usage:  df [ -a ] device
Option:	-a	Print space left on all devices
This commands prints the amount of space left on one or more physical
devices.  When the command is given without an argument, it checks the
current physical device; when the name of a physical device is given
as an argument, df checks that device; and the option -a tells df to
check all devices.
@drvprs
drvprs -- check if a drive is present in the system
Usage:	drvprs [ -q ] device
Option:	  -q	Supress printing of drive present message
This command checks for the presence of a drive and sets the msh variable
"status" to -1 if it is not, otherwise sets it to 0.  If -q is not specified,
a message is also printed on standard output.
@diff
diff -- summarize differences between two files
Usage:	diff [ -b ] [ -c sym ] file1 file2
Options:
	-b	Ignore trailing blanks; all strings of blanks are equal
	-c sym	Produce C pre-processor input conditionalized on 'sym'
If either 'file1' or 'file2' is '\-', the standard input is used.
If one of the files is a directory, then the other file name
within that directory is used.
@echo
echo -- print/expand arguments
Usage:	echo [ -n ] [ argument ... ]
Option:	-n	Do not print terminal newline
Copies all command arguments to the standard output.  Metacharacters
and variables are expanded.
@egrep
egrep -- extended pattern search
Usage:	egrep [ option ... ] [ pattern ] [ file ... ]
Options:
	-b	Each output line has the block number of the match
	-c	Print only a count of the number of matching lines
	-e	The next argument is the pattern
	-f	The next argument is a file containing one pattern per line
	-h	Suppress the printing of file names on matched lines
	-l	Print only the names of files containing matches
	-n	Print line number of file with each matched line output
	-s	Suppress output, just return status
	-v	Negate the sense of the match
	-y	Lower-case letters in the pattern match upper- and lower-case
If no 'file' is specified, the standard input is used.
@equal
equal -- check if two strings are the same
Usage:	equal string1 string2
Sets msh variable "status" to 0 if string1 and string2 are the same,
otherwise, sets it to -1.
@exit
exit -- exit from msh
Usage:	exit [ status ]
exit closes the micro-shell msh and returns to the program that invoked
it: the GEM desktop, another copy of msh, or a utility (e.g., MicroEMACS).
The previous status is retained if none is specified.
msh executes exit directly.
@file
file -- guess type of a file
Usage:	file name ...
@getcol
getcol -- get a color map entry value
Usage:	getcol position
Prints color map value for position (0-15) to standard output.
@getpal
getpal -- get the current color palette
Usage:	getpal
Prints current color palette values to standard output.
@getphys
getphys -- get the current physical display base
Usage:	getphys
Prints current screen display base to standard output.
@getrez
getrez -- get screen resolution
Usage:	getrez
Prints current resolution to standard output.
@help
help -- print concise command description
Usage:	help [ option ... ] [ command ... ]
Options:
	-V	Verbose -- print informational messages
	-R	Rebuild -- rebuild index file if missing or older than helpfile
@hidemouse
hidemouse -- hide the mouse pointer
Usage:	hidemouse
@htom
htom -- convert screen image from high to medium resolution
Usage:	htom
Rearranges the bits of the screen display from high to medium resolution.
@if
if -- conditionally execute a command
Usage:	if (command) (true-commands) (false-commands)
Execute command. if command has a return status = 0, execute true-commands
else execute false-commands.
@inherit
inherit -- inherit msh variables from parent shell
Usage:	inherit variable ...
Sets msh variable to value in next higher shell invocation, if any.
@is_set
is_set -- check to see if shell variable is set.
@kbrate
kbrate -- set keyboard repeat rate
Usage:	kbrate start interval
Set the key repeat delay to `start' ticks, and the repeat interval to
every `interval' ticks after that.  Each tick is 20ms long.
@kick
kick -- force media change on floppy
Usage:	kick drive
Forces the media change status on a floppy.
@lc -- produce a wide listing
Usage:	lc [-adrtlwf]
Same as "ls -wf".  Option -l overrides the wide listing function.
See "ls".
@ld
ld -- link relocatable object files
Usage:	ld [ option ... ] file ...
Options:
	-d	Define commons (even if undefined symbols)
	-e ent	Set entry point to given symbol or octal number
	-i	Bind output sepid
	-lname	Use standard library libname.a; e.g., -lm calls 'libm.a'
	-n	Bind output shared, force -i option
	-o file	Write output into 'file' (default: 'l.out')
	-r	Retain relocation information
	-s	Discard symbol table
	-u sym	Undefine 'sym' (forcing library search)
	-X	Discard C internal local symbols
	-x	Discard all local symbols
@ls
ls -- list directory contents
Usage:	ls [ -adlrt ] [ file ... ]
When used without options or arguments, ls prints on stdout the names
of all files in the current directory, sorted alphabetically.  If used
with argument 'file', it prints only 'file' if found, or an error message
if not.
Options:
	-a	List all files (including '.' and '..')
	-d	Treat directories like files
	-f	Flag directories with trailing "\"
	-l	Use long format; give full information on file type and date
	-r	Reverse the order of all sorting
	-t	Sort by times, normally newest first (default: sort by name)
	-w	produce wide listing (defeated by l)
@ltom
ltom -- convert screen image from low to medium resolution
Usage:	ltom
Rearranges the bits of the screen display low to medium resolution.
@make
make -- program building discipline
Usage:	make [ option ... ] [ argument ... ] [ target ... ]
make can also be invoked from the GEM-DOS desktop.  It reads and
executes the instructions in 'makefile', and cannot accept options.
Options:
	-d	Debug: verbose description of everything it does.
	-f file	Make instructions are in 'file' (default: [mM]akefile)
	-i	Ignore command error returns
	-n	Test: do all but execute commands
	-p	Print macro definitions and target descriptions
	-q	Only return exit status (zero if files up to date)
	-r	Ignore built-in rules
	-s	Do not print command lines when executed
	-t	Update times of files without regenerating object modules
@me
MicroEMACS -- interactive screen editor
Usage:	me [ options ] [ file ... ]
Options:
	-e errorfile
		load error buffer with errorfile
	-t	Use 50 line mode on monochrome system
For a summary of commands, see the Lexicon.
@mf
mf -- check amount of memory left
This command checks the amount of volatile memory not
being used.  It takes no options.
@mkdir
mkdir -- make a new directory
Usage:	mkdir directory ...
@mousehidden
mousehidden -- get mouse hidden count
Usage:	mousehidden
Prints mouse hidden count to standard output.
@msh
msh -- command processor
Usage: command [ arguments ] [ redirection ]
The characters * ? [ ] specify patterns that match file names.
Each 'token', unless quoted, is checked for substitutions.
@mshversion
mshversion -- display current msh release version
Usage:	mshversion
Prints the version number of the release which the version of
msh that is running is from.
@msleep
msleep -- suspend execution for an interval
Usage:	msleep interval
Suspends processing for `interval' milliseconds.
@mtoh
mtoh -- convert screen image from low to medium resolution
Usage:	mtoh
Rearranges the bits of the screen display from medium to high resolution.
@mtol
mtol -- convert screen image from low to medium resolution
Usage:	mtol
Rearranges the bits of the screen display from medium to low resolution.
@mv
mv -- move/rename files and directories
Usage:	mv oldfile newfile
	mv file ... directory
The first usage renames 'oldfile' to 'newfile'; if 'newfile' already exists,
it is removed and 'oldfile' given its name.
The second usage moves one or more files into 'directory'; each file retains
its old name.
@mwtomw
mwtomw -- convert old MWC executable to new format
Usage:	mwtomw file [...]
Moves the Mark Williams n.out header from the end of the executable image to
the GEMDOS symbol segment.  This allows the Mark Williams utilities nm, size,
strip, and db to access the symbol tables and header information from
executables created with MWC versions prior to 3.0.
@nm
nm -- print symbol table for executable program or archive
Usage:	nm [ options ] [ file ... ]
Options:
	-a	Print all symbols
	-d	Print only definitions
	-g	Print only global symbols
	-n	Sort numerically (default: sort by name)
	-o	Prepend file or member name to each line
	-p	Print in symbol table order (no sort)
	-r	Reverse order of sort
	-t	Append type string to each symbol
	-u	Print undefined symbols
	-x	Print numeric values in octal (default: hexadecimal)
@not
not -- logical negation for evaluation
Usage:	not (expression)
Executes expression then sets msh variable `status' to logical negation
of the returned status from expression.
@od
od -- file dump
Usage:	od  [ options ]  [ file ]  [ [ + ] offset[.][b] ]
Options:
	-b	Dump bytes in the hexadecimal
	-c	Dump bytes as ASCII characters
	-d	Dump words in decimal
	-o	Dump words in octal
	-x	Dump words in hexadecimal
The offset must be preceded by '+' if 'file' is omitted.
The offset is decimal if '.' is present;
'b' implies 512-byte blocks instead of bytes.
@pr
pr -- paginate and print files
Usage:	pr [ options ] [ file ... ]
Options:
	+n	Skip the first 'n' pages of input before printing
	-n	Print the input in 'n' columns
	-h	The next argument is the header (default: file name)
	-ln	Page size is set to 'n' lines (default: 66)
	-m	Print each input 'file' in a separate column
	-n	Number the output lines
	-sc	Separate each column with character 'c'
	-t	Suppress top and bottom margins and header
	-wn	Page width is set to 'n' columns (default: 80; maximum: 256)
A 'file' named '-' means standard input.
@pwd
pwd -- print current working directory
Usage:	pwd
Warning: This is currently not a binary built-in, but is set up in .cmd by the
profile.  It may not be available in shells spawned from the other programs.
@rm
rm -- remove files
Usage:	rm file ...
@rmdir
rmdir -- remove directory
Usage:	rmdir directory ...
@rsconf
rsconf -- configure rs232 port
Usage:	rsconf speed flow ucr rsr tsr scr
See the Lexicon for details.
@set
set -- set/display an msh variable
Usage:  set [ VARIABLE=value ]
Using 'set' without an argument displays all msh variables already set.
msh executes set directly.
@setcol
setcol -- set color map table entry
Usage:	setcol index value
Sets colormap entry `index' to `value'.
@setenv
setenv -- set/display an environmental variable
Usage:  setenv VARIABLE=value
Using 'setenv' without an argument displays all environmental variables
already set.
msh executes setenv directly.
@setpal
setpal -- set color palette
Usage:	setpal val0 ... val15
Sets the color palette to the values specified.
@setphys
setphys -- set physical display base
Usage:	setphys address
Sets the screen base to address.
@setprt
setprt -- set printer configuration
Usage:	setprt configuration
See Lexicon for more information.
@setrez
setrez -- set display resolution
Usage:	setrez res
Set screen resolution to `res': 0 = high, 1 = medium, 2 = low
@show
show -- display a screen image file
Usage:	show picture
@size
size -- print size of an object file
Usage:	size [ -ctx ] [ file ... ]
Option:	-c	Print size of common areas
	-t	Print total size of each segment summed over all files
	-x	Print the total size in octal rather than hexadecimal
@sleep
sleep -- stop executing for a specified time
Usage:	sleep seconds
msh executes sleep directly.
@snap
snap -- create a disc file of the current screen image
Usage:	snap picture.ext
Creates a picture file in Degas(tm), Neochrome(tm), or COLR-Object Editor(tm)
bitmap file format, based on file extension. (PIx, NEO, or MUR, respectively)
@sort
sort -- sort lines of text
Usage:	sort [ options [modifiers] ] [ [ +beg [ -end ] ] ... [ file ... ]
Options:
	-c	Check if input is already ordered
	-m	Merge already-sorted input files
	-o name	Write output into 'name' rather than standard output
	-tc	Use 'c' to separate columns rather than white space
	-u	Output only records for which keys are unique
Options for key variables:
	-b	Ignore leading white space in fields
	-d	Dictionary ordering for keys
	-f	Fold upper case into lower case in key comparison
	-i	Ignore control characters in key comparison
	-n	Numeric comparison
	-r	Reverse sort ordering, i.e., sort from largest to smallest
Position:
	+m.nf	Key starts 'm' fields into record and 'n' characters
		into that field;  'f' may contain optional flags from
		the above key options which apply only to that positional
	-m.nf	Optional ending position of key (same form as above)
If no position options are used, entire line is used as key.
If no 'file' is given, the standard input is sorted.
@tail
tail -- print the end of a file
Usage:	tail [ +n[bcl] ] [ file ]
	tail [ -n[bcl] ] [ file ]
Options:
	+n	Print first 'n' lines of a file
	-n	Print last 'n' lines of a file
	b	'n' is in blocks rather than in lines
	c	'n' is in characters (bytes) rather than lines
	l	'n' is in lines (default)
If no option is specified, tail prints the last ten lines of 'file'.
@time
time -- time the execution of a command
Usage:	time "command"
	time
If used alone, prints the current date and time.
@touch
touch -- update modification time of a file
Usage:	touch [ -c ] file ...
Option:	-c	Do not create 'file' if it does not exist
@uniq
uniq -- remove/count repeated lines in a sorted file
Usage:	uniq [ options ] [ infile [ outfile] ]
Options:
	-c	Print duplication count with lines
	-d	Print only duplicated lines
	-u	Print only non-repeated lines
	-n	Skip 'n' fields during comparison
	+n	Skip 'n' characters (after skipping fields)
By default, uniq behaves as if both -d and -u were specified.
@unset
unset -- erase an msh variable
Usage: unset variable
@unsetenv
unsetenv -- erase an environmental variable
Usage: unsetenv variable
@version
version -- read/create a version number
Usage:  version executable ...
	version directory executable sourcefile ...
In the first usage, version reads the 'executable  and prints its
version number on stdout.
In the second usage, version looks in 'directory' for 'sourcefile',
then writes in 'directory' a brief c-language module that, when
compiled and linked with 'sourcefile', inserts a unique version number
into 'executable'.  It does not matter if 'executable' exists.
@wc
wc -- count words, lines, and characters in files
Usage:	wc [ -clw ] [ file ... ]
Options:
	-c	Print count of characters
	-l	Print count of lines
	-w	Print count of words
If no 'file' is given, wc uses the standard input.
If more than one 'file' is given, wc also prints a total for all files.
@while
while -- msh loop construct
Usage:	while (command) (commands)
Repeatedly execute `command' until the msh variable `status' is non-zero.
For each time `command' results in a zero status, execute `commands'.
@
