
<hr><h3><A name="10">pause</A> ( --  )</h3>
 Extra: Deferred
<br>
The currently executing task relinquishes control and the round-robin task queue 
is scanned for the next task that is awake.  When other tasks have been given 
their chance to run, eventually control will be returned to this task, which 
will begin execution immediately following the  <code><A href="_smal_BN#295"> pause </A>.</code> 
<p>
Pause is deferred so that multi-tasking may be disabled by setting  <code><A href="_smal_BN#295"> pause </A></code> 
to execute  <code><A href="_smal_AL#27b"> noop </A>.</code> To enable 
multitasking,  <code><A href="_smal_AP#f"> (pause </A></code> is installed in  <code><A href="_smal_BN#295"> pause </A>.</code> 
<p>
 <code><A href="_smal_AP#f"> (pause </A></code> is itself the multitasking 
scheduler.  It is only 5 ARM instructions long! 

<hr><h3><A name="40">str</A> ( r-data r-adr operand2 --  )</h3>
<br>
r-data is stored to memory, the default is word (32-bit) wide, but the modifier  <code><A href="_smal_BQ#28"> byte </A></code> 
sets this byte-wide access.  
<p>

See:  <code><A href="_smal_AG#36"> ldr </A></code> 

<hr><h3><A name="70">"cat</A> ( start-pstr end-pstr -- )</h3>
<br>
The packed string at start-pstr is appended to the end of the packed string at 
end-pstr.  The buffer at end-pstr is assumed to be long enough to hold the 
concatenation of the two strings.  
<p>
For example: 
<br><code>                 create sbuf 100 allot</code><br>
<br><code>                 "" hello,  sbuf "copy</code><br>
<br><code>                 "" world   sbuf "cat</code><br>
<strong>sbuf</strong> now contains the packed string "hello,world" 

<hr><h3><A name="a0">(delete</A> ( filename-pstr -- )</h3>
<br>
Deletes the file named by the packed string filename-pstr.  You can find more 
help in the chapter "Files" in this manual.  

<hr><h3><A name="d0">,"</A> ( -- )</h3> <kbd>ccc"</kbd> 
 Extra: compiling
<br>
Used in the form: 
<br><code>    ," ccc"</code><br>
Accepts a string of characters ccc, delimited by a double-quote character, from 
the input stream, stores it in the dictionary at  <code><A href="_smal_AM#21c"> here </A></code> 
as a packed string, and  <code><A href="_smal_BT#14b"> allot </A>s</code> enough 
space for the string.  

<hr><h3><A name="100">2*</A> ( n1 -- n2 )</h3>
 Extra: ANS,83Std
<br>
n2 is the result of shifting n1 left one bit.  A zero is shifted into the 
vacated bit position.  
<p>
Note: This should  <code><A href="_smal_AM#27c"> not </A></code> be used to 
convert an index into an offset, since that is not portable, uses  <code><A href="_smal_BW#17e"> cells </A></code> 
instead.  

<hr><h3><A name="130">?cr</A> ( -- )</h3>
<br>
If the length of the current line is past the right margin, a new line is 
started, spacing over to the left margin.  Otherwise does nothing.  Equivalent 
to "0 ?LINE".  

See:  <code><A href="_smal_AV#255"> lmargin </A></code>  <code><A href="_smal_AU#2b4"> rmargin </A></code>  <code><A href="_smal_BB#139"> ?line </A></code> 

<hr><h3><A name="160">bitset</A> ( bit# addr -- )</h3>
<br>
The bit at offset bit# from the start of the array at addr is set.  

<hr><h3><A name="190">compile-do-defined</A> ( acf n -- )</h3>
 Extra: Compiling
<br>
 <code><A href="_smal_AQ#190"> compile-do-defined </A></code> is an 
implementation of the deferred word  <code><A href="_smal_AU#1c4"> do-defined </A>.</code>  <code><A href="_smal_AU#1c4"> do-defined </A></code> 
is executed from  <code><A href="_smal_AR#71"> "compile </A></code> after the 
word under consideration has been found in the dictionary.  acf is the 
compilation address of the word that was found, and n is 1 if that word is 
immediate, or -1 if it isn't.  
<p>
 <code><A href="_smal_AQ#190"> compile-do-defined </A></code> is used while 
compiling.  While interpreting,  <code><A href="_smal_BK#232"> interpret-do-defined </A></code> 
is used instead.   <code><A href="_smal_AQ#190"> compile-do-defined </A></code> 
executes the word acf if n is 1, and compiles it if n is -1.  
<p>

See:  <code><A href="_smal_AU#1c4"> do-defined </A></code>  <code><A href="_smal_BK#232"> interpret-do-defined </A></code> 
"Text Interpreter" 

<hr><h3><A name="1c0">dir</A> ( -- )</h3> <kbd>pattern</kbd> 
<br>
Displays all filenames which match the pattern.  Same as  <code><A href="_smal_BI#200"> files </A></code> 
or  <code><A href="_smal_BF#25d"> ls </A>.</code> 

<hr><h3><A name="1f0">expect</A> ( addr +n -- )</h3>
 Extra: M,83Std,Deferred
<br>
A deferred word which receives a line of characters from the keyboard and stores 
them into memory, performing line editing as the characters are typed.  The 
transfer begins at addr proceeding towards higher addresses one byte per 
character until either a "return" is received or until +n characters have been 
transferred.  No more than +n characters will be stored.  The "return" is not 
stored into memory.  No characters are received or transferred if +n is zero.  
All characters actually received and stored into memory will be displayed.  

See:  <code><A href="_smal_AO#2de"> span </A></code>  <code>(<A href="_smal_AQ#1f0"> expect </A></code>  <code><A href="_smal_AQ#220"> history-expect </A></code> 
<p>
The Forth 83 Standard specifies that the "return" character is displayed as a 
space, but Risc-OS Forthmacs displays it as a "return".  

<hr><h3><A name="220">history-expect</A> ( addr +n -- )</h3>
 Extra: Default
<br>
The Default implementation of the deferred word  <code><A href="_smal_AQ#1f0"> expect </A>.</code> 
Receives a line of characters from the keyboard and stores them into memory, 
performing line editing as the characters are typed.  The transfer begins at 
addr proceeding towards higher addresses one byte per character until either a 
"return" is received or until +n characters have been transferred.  No more than 
+n characters will be stored.  The "return" is not stored into memory.  No 
characters are received or transferred if +n is zero.  All characters actually 
received and stored into memory will be displayed, with the "return" displaying 
as a space (see note).  

See:  <code><A href="_smal_AO#2de"> span </A></code>  <code><A href="_smal_AQ#1f0"> expect </A></code> 

<hr><h3><A name="250">link@</A> ( alf -- link )</h3>
<br>
link is the address of the word which is linked to the word whose link field 
address is alf.   <code><A href="_smal_AQ#250"> link@ </A></code> is provided in 
order to make dictionary manipulation utilities independent of the 
implementation of the dictionary structure.  

<hr><h3><A name="280">number</A> ( pstr -- d )</h3>
 Extra: Deferred
<br>
A deferred word which converts the packed string at pstr to a signed double 
number d, using the value of  <code><A href="_smal_AJ#159"> base </A>.</code> If 
the string contains unconvertible characters,  <code><A href="_smal_AQ#280"> number </A></code> 
aborts.  The default implementation is  <code><A href="_smal_BM#b4"> (number </A>.</code> 

See:  <code><A href="_smal_BM#b4"> (number </A></code>  <code><A href="_smal_AR#281"> number? </A></code> 

<hr><h3><A name="2b0">restore-output</A> ( -- )</h3>
 Extra: Deferred
<br>
 <code><A href="_smal_AI#1e8"> error-output </A></code> is called before an 
error message is printed.   <code><A href="_smal_AQ#2b0"> restore-output </A></code> 
is called after an error message is printed.  The intention is to select a 
separate error stream for the message.  

See:  <code><A href="_smal_AI#1e8"> error-output </A></code> 

<hr><h3><A name="2e0">state</A> ( -- addr )</h3>
 Extra: 83Std
<br>
The address of a  <code><A href="_smal_BK#322"> user </A></code> variable 
containing the compilation state.  A non-zero content indicates compilation is 
occurring, but the value itself is system dependent.  A Standard Program may not 
modify this variable.  
<p>
In this implementation  <code><A href="_smal_AQ#2e0"> state </A></code> contains 
-1 during compilation.  

<hr><h3><A name="310">u&gt;</A> ( u1 n2 -- flag )</h3>
<br>
flag is true if u1 is greater than u2 (unsigned integer compare).  

<hr><h3><A name="340">[""]</A> ( -- pstr )</h3> <kbd>ccc</kbd> 
 Extra: compiling
<br>
 ( -- )<br>
<br>
Used in the form: 
<br><code>    [""] ccc</code><br>
Accepts a sequence of characters not containing spaces from the input stream.  
Stores the characters in the dictionary as a packed string so that when the 
colon definition is later executed, the address of the string will be left on 
the stack.  The space after  <code><A href="_smal_AQ#340"> [""] </A></code> , 
and any other spaces that may be between  <code><A href="_smal_AQ#340"> [""] </A></code> 
and the first non-space character of ccc are skipped.  
