view docs/nitros9guide/shell.refentry @ 2772:0a3f4d8ea6d5

Found ENDC in wrong location in dwread.asm and dwwrite.asm. Corrected. Moved the native 6309 code in dwread.asm and dwwrite.asm into the H6309 labeled area and changed IFEQ H6309 to IFNE H6309. Also moved the 57600bps 6809 code to the default location. This change had been done in the old dwread.asm and dwwrite.asm files to make it easier to follow. Though these two files were overwritten from the HDBDOS project dwread.asm and dwwrite.asm files. So this conversion needed to be done again so it made the source easier to follow.
author drencor-xeen
date Wed, 23 Jan 2013 12:36:55 -0600
parents bc28c3bc3769
children
line wrap: on
line source

<refentry id="shell">
<refnamediv>
<refname>SHELL</refname>
<refpurpose>OS-9 Command Interpreter</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>shell</command>
<arg choice="plain"><replaceable>arglist</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>

<refsect1><title>Description</title>
<para>
The <command>shell</command> is OS-9's command interpreter program. It reads data from
its standard input path (the keyboard or a file), and interprets the
data as a sequence of commands. - The basic function of the shell is
to initiate and control execution of other OS-9 programs.
</para>
<para>
The shell reads and interprets one text line at a time from the
standard input path. After interpretation of each line it reads
another until an end-of-file condition occurs, at which time it
terminates itself. A special case is when the shell is called from
another program, in which case it will take the parameter area (rest
of the command line) as its first line of input. If this command
line consists of &quot;built in&quot; commands only, more lines will be read
and processed; otherwise control will return to the calling program
after the single command line is processed.
</para>
<para>
The rest of this description is a technical specification of the
shell syntax. Use of the <command>shell</command> is described fully in Chapters 2
and 4 of this manual.
</para>
</refsect1>
<refsect1><title>Shell Input Line Formal Syntax</title>
<synopsis>
<replaceable>pgm line</replaceable> := <replaceable>pgm</replaceable> {<replaceable>pgm</replaceable>}
<replaceable>pgm</replaceable> := [<replaceable>params</replaceable>] [ <replaceable>name</replaceable> [<replaceable>modif</replaceable>] [<replaceable>pgm params</replaceable>] [<replaceable>modif</replaceable>] ] [<replaceable>sep</replaceable>]

Program Specifications

<replaceable>name</replaceable> := <replaceable>module name</replaceable>
           := <replaceable>pathlist</replaceable>
           := ( <replaceable>pgm list</replaceable> )

Parameters

<replaceable>params</replaceable>:= <replaceable>param</replaceable> { <replaceable>delim</replaceable> <replaceable>param</replaceable> }
<replaceable>delim</replaceable> := space or comma characters
<replaceable>param</replaceable> := ex <replaceable>name</replaceable> [<replaceable>modif</replaceable>] chain to program specified
         := chd <replaceable>pathlist</replaceable>    change working directory
         := kill <replaceable>procID</replaceable>     send abort signal to process
         := setpr<replaceable>procID</replaceable> <replaceable>pty</replaceable> change process priority
         := chx <replaceable>pathlist</replaceable>    change execution directory
         := w                                   wait for any process to die
         := p                                   turn &quot;OS9:&quot; prompting on
         := -p                                  turn prompting off
         := t                                   echo input lines to std output
         := -t                                  don't echo input lines
         := -x                                  dont abort on error
         := x                                   abort on error
         := * <replaceable>text</replaceable>          comment line: not processed
<replaceable>sep</replaceable>   := ;     sequential execution separator
         := &amp;     concurrent execution separator
         := !     pipeline separator
         := <replaceable>cr</replaceable> end-of-line (sequential execution separator)


Modifiers

<replaceable>modif</replaceable> := <replaceable>mod</replaceable> { <replaceable>delim</replaceable> <replaceable>mod</replaceable> }
<replaceable>mod</replaceable>   := &lt; <replaceable>pathlist</replaceable> redirect standard input
        := &gt; <replaceable>pathlist</replaceable> redirect standard output
        := &gt;&gt; <replaceable>pathlist</replaceable> redirect standard error output
        := # <replaceable>integer</replaceable> set process memory size in pages
        := # <replaceable>integer</replaceable> K   set program memory size in 1K increments
</synopsis>
<!--
.. A new way to describe the syntax ..
<productionset><title>Program Line</title>
<production id="shell.line">
  <lhs>pgm line</lhs>
  <rhs><nonterminal def="shell.pgm">pgm</nonterminal> 
       {<nonterminal def="shell.pgm">pgm</nonterminal>}
  </rhs>
</production>
<production id="shell.pgm">
  <lhs>pgm</lhs>
  <rhs>[<nonterminal def="shell.params">params</nonterminal>]
[ <nonterminal def="shell.name">name</nonterminal>
[<nonterminal def="shell.modif">modif</nonterminal>]
[<nonterminal def="shell.pgmparams">pgm params</nonterminal>]
[<nonterminal def="shell.modif">modif</nonterminal>] ]
[<nonterminal def="shell.sep">sep</nonterminal>]
  </rhs>
</production>
</productionset>
<productionset><title>Program Specifications</title>
<production id="shell.name">
  <lhs>name</lhs>
  <rhs>
<nonterminal def="shell.name">module name</nonterminal>
| <nonterminal def="shell.pathlist">pathlist</nonterminal>
|( <nonterminal def="shell.pgmlist">pgm list</nonterminal> )
  </rhs>
</production>
</productionset>
<productionset><title>Parameters</title>
<production id="shell.params">
  <lhs>params</lhs>
  <rhs><nonterminal def="shell.param">param</nonterminal>
{ <nonterminal def="shell.delim">delim</nonterminal>
<nonterminal def="shell.param">param</nonterminal> }
</rhs>
</production>
<production id="shell.delim">
  <lhs>delim</lhs>
  <rhs>space or comma characters</rhs>
</production>
<production id="shell.param">
  <lhs>param</lhs>
  <rhs>ex <nonterminal def="shell.name">name</nonterminal>
[<nonterminal def="shell.modif">modif</nonterminal>]
<lineannotation>chain to program specified</lineannotation>
<sbr/>
chd <nonterminal def="shell.name">pathlist</nonterminal>
<lineannotation>change working directory</lineannotation>
</rhs>
</production>




<production id="shell.param">
  <lhs>param</lhs>
  <rhs>space or comma characters</rhs>
</production>
</productionset>
-->
</refsect1>
</refentry>