
<hr><h3><A name="13">local</A> ( task user-variable -- adr )</h3>
<br>
task is the address of the private data area of a task, as left by the &lt;name&gt; 
of a task.  user-variable is the address of a user variable in the currently 
executing task's user area.  adr is the address of the other task's copy of that 
user variable.  
<p>
 <code><A href="_smal_AT#13"> local </A></code> allows one task to poke around 
in another task's private data space, to see what is going on there.  

<hr><h3><A name="43">swp</A> ( r-dest r-base r-source --  )</h3>
<br>
assembles a swp instruction if Arm3-code is allowed by <strong>arm3</strong> 

<hr><h3><A name="73">"create</A> ( pstr -- )</h3>
 Extra: M
<br>
A defining word which takes its name argument from the stack instead of from the 
input stream.  pstr is the address of a packed string which is a name.  A 
dictionary entry is created for that name.  After the name is created, the next 
available dictionary location is the first byte of that name's parameter field.  
When that name is subsequently executed, the address of the first byte of its 
parameter field is left on the stack.   <code><A href="_smal_AT#73"> "create </A></code> 
does not allocate space in the parameter field.  

See:  <code><A href="_smal_BD#19b"> create </A></code> 

<hr><h3><A name="a3">(endcase)</A> ( selector -- )</h3>
<br>
The run-time word compiled by  <code><A href="_smal_BX#1df"> endcase </A>.</code> 
At run time, the selector value is removed from the stack and discarded.  

<hr><h3><A name="d3">-trailing</A> ( addr +n1  --  addr +n2 )</h3>
 Extra: 83Std
<br>
The character count +n1 of the text string beginning at addr is adjusted to 
exclude trailing spaces.  If +n1 is zero, then +n2 is also zero.  If the entire 
string consists of spaces, then +n2 is zero.  

<hr><h3><A name="103">2/</A> ( n1 -- n2 )</h3>
 Extra: ANS,83Std
<br>
n2 is the result of shifting n1 toward the least-significant bit, leaving the 
most-significant bit unchanged.  

<hr><h3><A name="133">?dup</A> ( n  --  n n | 0 )</h3>
 Extra: 83Std
<br>
Duplicates n if it is non-zero.  

<hr><h3><A name="163">blank</A> ( addr u -- )</h3>
 Extra: 83Std
<br>
u bytes of memory beginning at addr are set to the ascii character value for 
space (hex 20).  No action is taken if u is zero.  

<hr><h3><A name="193">constant</A> ( n -- )</h3> <kbd>name</kbd> 
 Extra: M,83Std
<br>
A defining word used in the form: 
<br><code>    n constant &lt;name&gt;</code><br>
to create a dictionary entry for &lt;name&gt; so that when &lt;name&gt; is later 
executed, n will be left on the stack.  

<hr><h3><A name="1c3">do</A> ( n1 n2 -- )</h3>
 Extra: compiling
<br>
 ( -- sys )<br>
<br>
Used in the form: 
<br><code>                 do  ...  loop</code><br>
<br><code>             or</code><br>
<br><code>                 do  ... +loop</code><br>
Begin a loop which terminates based on control parameters.  The loop index 
begins at n2, and terminates based on the limit n1.  See  <code><A href="_smal_BC#25a"> loop </A></code> 
and  <code><A href="_smal_AN#cd"> +loop </A></code> for details on how the loop 
is terminated.  The loop is always executed at least once.  For example: n  <code><A href="_smal_BP#1d7"> dup </A></code>  <code><A href="_smal_AT#1c3"> do </A></code> 
...   <code><A href="_smal_BC#25a"> loop </A></code> executes either 65,536 
times or 4,294,967,295 times, depending on the size of a "normal".  sys is 
balanced with its corresponding  <code><A href="_smal_BC#25a"> loop </A></code> 
or  <code><A href="_smal_AN#cd"> +loop </A>.</code> 

<hr><h3><A name="1f3">fclose</A> ( fd -- )</h3>
<br>
fd is the file descriptor (as returned by a previous OPEN) of an open file.  
That file is closed so that it may no longer be accessed using that file 
descriptor.  
<p>
Since the number of file descriptors is limited, a file should be closed when it 
is no longer being used, so that the file descriptor may be re-used.  

<hr><h3><A name="223">if</A> ( flag -- )</h3>
 Extra: compiling
<br>
 ( -- sys )<br>
<br>
Used in the form: 
<br><code>    flag if  ...  else  ...  then</code><br>
<br><code>       or</code><br>
<br><code>    flag if  ...  then</code><br>
If flag is true, the words following  <code><A href="_smal_AT#223"> if </A></code> 
are executed and the words following  <code><A href="_smal_BR#1d9"> else </A></code> 
are skipped.  The  <code><A href="_smal_BR#1d9"> else </A></code> part is 
optional.  
<p>
If flag is false, words from  <code><A href="_smal_AT#223"> if </A></code> 
through  <code><A href="_smal_BR#1d9"> else </A>,</code> or from  <code><A href="_smal_AT#223"> if </A></code> 
through  <code><A href="_smal_BL#2f3"> then </A></code> (when no  <code><A href="_smal_BR#1d9"> else </A></code> 
is used), are skipped.   <code><A href="_smal_AT#223"> if </A></code> -  <code><A href="_smal_BR#1d9"> else </A></code> 
-  <code><A href="_smal_BL#2f3"> then </A></code> conditionals may be nested.  
sys is balanced with its corresponding  <code><A href="_smal_BR#1d9"> else </A></code> 
or  <code><A href="_smal_BL#2f3"> then </A>.</code> 

<hr><h3><A name="253">literal?</A> ( pstr -- pstr false | n true )</h3>
 Extra: Deferred
<br>
A deferred word which is executed from  <code><A href="_smal_AR#71"> "compile </A></code> 
if the word under consideration was not found in the dictionary.  If the packed 
string is a number,  <code><A href="_smal_AT#253"> literal? </A></code> leaves 
the number and true; if not,  <code><A href="_smal_AT#253"> literal? </A></code> 
leaves the packed string and false.  

See:  <code><A href="_smal_BG#ae"> (literal? </A></code>  <code><A href="_smal_AX#1c7"> do-literal </A></code> 
"Text Interpreter" 

<hr><h3><A name="283">octal</A> ( -- )</h3>
<br>
Sets the input-output numeric conversion base to eight.  

<hr><h3><A name="2b3">rm</A> ( -- )</h3> <kbd>filename</kbd> 
<br>
Removes the named file from the disk.  Same as  <code><A href="_smal_AJ#1b9"> delete </A>.</code> 

<hr><h3><A name="2e3">string-fopen</A> ( addr len -- fd )</h3>
<br>
fd is a file descriptor which may be used to access the bytes within the memory 
buffer beginning at addr and continuing for len bytes.  

<hr><h3><A name="313">um*</A> ( u1 u2 -- ud )</h3>
<br>
ud is the unsigned double product of u1 times u2, both unsigned cell numbers.  

<hr><h3><A name="343">[char]</A> ( -- char )</h3> <kbd>ccc</kbd> 
 Extra: compiling
<br>
 ( -- )<br>
<br>
Used in the form: 
<br><code>    [char] ccc</code><br>
where the delimiter of ccc is a space.  char is the ascii character value of the 
first character in ccc.  compile char as a literal so that when the colon 
definition is later executed, char is left on the stack.  
