
<hr><h3><A name="7">start</A> ( acf task --  )</h3>
<br>
task is the address of the private data area of a task, as left by the &lt;name&gt; 
of a task.  acf is the compilation address of a high-level Forth word that the 
task is to execute.  The data and return stacks of the task are cleared, and the 
task is set so that it will begin execution of that word when it is awakened and 
its turn comes.  
<p>
The word that a task executes should never return.  It should either contain an 
endless loop, or should execute  <code><A href="_smal_AO#e"> stop </A></code> 
when it is done, thus putting itself to sleep.  
<p>
 <code><A href="_smal_AH#7"> start </A></code> should only be executed by one 
task in order to initialise a different task.  A task should not try to  <code><A href="_smal_AH#7"> start </A></code> 
itself (this effect may be had from within a task by explicitly clearing the 
stacks and executing the desired word).  
<p>
A task may  <code><A href="_smal_AH#7"> start </A></code> another at any time.  
STARTing an already-running task will make it immediately stop what it is doing 
and instead execute the new action (acf).  

<hr><h3><A name="37">little-endian</A> ( -- )</h3>
<br>
Switches assembler to little-endian target code 

<hr><h3><A name="67">step</A> ( -- )</h3>
<br>
Used when the system is stopped at a breakpoint, to execute the next assembly 
language instruction.  

See:  <code><A href="_smal_AI#68"> steps </A>,</code>  <code><A href="_smal_AF#65"> hop </A>,</code>  <code><A href="_smal_AG#66"> hops </A>.</code> 

<hr><h3><A name="97">(abort</A> ( -- )</h3>
 Extra: 83Std,Default
<br>
The Default implementation of the deferred word  <code><A href="_smal_BJ#141"> abort </A>.</code> 
Clears the data stack and performs the function of  <code><A href="_smal_AD#2a3"> quit </A>.</code> 
No message is displayed.  

See:  <code><A href="_smal_BJ#141"> abort </A></code>  <code><A href="_smal_BK#142"> abort" </A></code> 

<hr><h3><A name="c7">*/</A> ( n1 n2 n3  -- n4 )</h3>
 Extra: ANS,83Std
<br>
n1 is first multiplied by n2 producing an intermediate double result.  n4 is the 
floor of the quotient of the intermediate double result divided by the divisor 
n3.  The product of n1 times n2 is maintained as an intermediate double result 
for greater precision than the otherwise equivalent sequence: 
<br><code>    n1 n2 * n3 /</code><br>
An error condition results if the divisor is zero or if the quotient falls 
outside of the number range.  

See: "Glossary Notation - division, floored" 
<p>
Implementation note: Versions below 3.0 -- 1.84 only have a 32-bit intermediate 
result.  

<hr><h3><A name="f7">0&lt;&gt;</A> ( n  --  flag )</h3>
<br>
flag is true if n is not equal to zero.  

<hr><h3><A name="127">&gt;resolve</A> ( addr -- )</h3>
 Extra: C,83Std
<br>
Used at the destination of a forward branch.  Calculates the branch address (to 
the current location in the dictionary) using addr and places this branch 
address into the space left by  <code><A href="_smal_AD#123"> &gt;mark </A>.</code> 
Used by control structure compiling words such as  <code><A href="_smal_BL#2f3"> then </A>.</code> 

<hr><h3><A name="157">available</A> ( -- size )</h3>
<br>
Look for the largest block available by  <code><A href="_smal_BS#14a"> allocate </A></code> 
in the main heap.  

See:  <code><A href="_smal_BS#14a"> allocate </A>,</code>  <code><A href="_smal_BX#20f"> free </A></code> 

<hr><h3><A name="187">code</A> ( -- )</h3> <kbd>name</kbd> 
 Extra: M,83Std
<br>
A defining word executed in the form: 
<br><code>    code &lt;name&gt; .... end-code or c;</code><br>
Creates a dictionary entry for &lt;name&gt; to be defined by a following 
sequence of assembly language words.  Words thus defined are called code 
definitions or primitives.  This newly created word definition for &lt;name&gt; 
cannot be found in the dictionary until the corresponding  <code><A href="_smal_BV#1dd"> end-code </A></code> 
or  <code><A href="_smal_BJ#171"> c; </A></code> is successfully processed.  
Executes  <code><A href="_smal_AD#153"> assembler </A></code> .  

See:  <code><A href="_smal_AD#153"> assembler </A></code>  <code><A href="_smal_BV#1dd"> end-code </A></code> 

<hr><h3><A name="1b7">definitions</A> ( -- )</h3>
 Extra: 83Std
<br>
The compilation vocabulary  <code><A href="_smal_BL#1a3"> current </A></code> is 
changed to be the same as the first vocabulary in the search order.  

<hr><h3><A name="1e7">errno</A> ( -- addr )</h3>
<br>
 <code><A href="_smal_BK#322"> user </A></code> variable holding the last 
operating system error identifier.  

See:  <code><A href="_smal_AD#333"> why </A></code> 

<hr><h3><A name="217">getenv</A> ( fstr -- fstr/0 )</h3>
<br>
Try to find out the value of the Risc OS system variable &lt;fstr&gt;.  If it is 
not found  <code><A href="_smal_AS#1f2"> false </A></code> is returned.  

<hr><h3><A name="247">length</A> ( addr -- addr+2 len )</h3>
 Extra: F83
<br>
addr+2 is the address and len the length of the funny packed string stored at 
addr.  A "funny" packed string is like a packed string except that the length 
field is 16 bits instead of 8 bits.  
<p>
 <code><A href="_smal_AH#247"> length </A></code> is not used anywhere else in 
this system.  It is included only for compatibility with the Laxen/Perry F83 
system.  

<hr><h3><A name="277">negate</A> ( n1 -- n2 )</h3>
 Extra: 83Std
<br>
n2 is the two's complement of n1, i.e., the difference of zero less n1.  

<hr><h3><A name="2a7">read</A> ( -- n )</h3>
<br>
n is the number signifying to OPEN that the file is to be opened for reading.  
For example: <strong>"" test.fth read open</strong> 

<hr><h3><A name="2d7">skipstr</A> ( -- addr len )</h3>
<br>
 <code><A href="_smal_AH#2d7"> skipstr </A></code> is used to implement run-time 
words which use character arrays that are compiled in-line.  The address and 
length of the following in-line array are left on the stack, and the array is 
skipped.  For example,  <code><A href="_smal_AB#91"> (.") </A></code> is 
implemented as: 
<br><code>    : (.") skipstr type ;</code><br>

<hr><h3><A name="307">tuser</A> ( -- )</h3> <kbd>name</kbd> 
<br>
A defining word used in the form: 
<br><code>    tuser &lt;name&gt;</code><br>
When name is later executed, it leaves the address of its data storage area, 
which is in the  <code><A href="_smal_BK#322"> user </A></code> area.  Enough 
space to store an address is allocated.  This is similar to the standard word  <code><A href="_smal_BK#322"> user </A>,</code> 
except that the user doesn't have to keep track of which  <code><A href="_smal_BK#322"> user </A></code> 
area locations have already been used.  

<hr><h3><A name="337">word-bounds</A> ( acf -- apf addr )</h3>
<br>
apf is the beginning and addr the end of the body of the colon definition whose 
compilation address is acf.  
