23 lines
973 B
Markdown
23 lines
973 B
Markdown
|
# Shells
|
||
|
|
||
|
Turaco-DOS reserves a portion of main memory for a "shell", a
|
||
|
program which exists to load and run other programs, and handle
|
||
|
their return values. This shell might be a command line, or some
|
||
|
other program that manages other programs, such as a batch file
|
||
|
interpreter.
|
||
|
|
||
|
The active shell has a "resident" portion of memory, which stays
|
||
|
in memory as long as the shell is active, and a "transient" portion
|
||
|
of memory which is only used while the shell is not running an
|
||
|
external program.
|
||
|
|
||
|
When the shell runs a program, and that program exits, its main
|
||
|
function returns a two-byte value; this value is stored in a
|
||
|
specific memory address, and used by the shell as the "status"
|
||
|
code for the program's exit. Like Unix, a zero value is considered
|
||
|
a normal exit, with any positive value being some type of error.
|
||
|
|
||
|
Additionaly, when running a program, the shell can provide the
|
||
|
program with a sequence of arguments, which populate the two
|
||
|
arguments to the main() function.
|