
<hr><h3><A name="2d">conditions</A> ( --  )</h3>
<br>
All instruction are executed only if the correct condition is met, the 
assemblers default is <strong>al</strong> (always), but these are also 
available: 
<p>
<strong>eq ne cs cc mi pl vs vc hi ls ge lt gt le al</strong> 

<hr><h3><A name="5d">+bp</A> ( adr -- )</h3>
<br>
Adds the address adr to the breakpoint list.  Currently the list contains space 
for 20 breakpoints.  

See:  <code><A href="_smal_BR#59"> .bp </A></code>  <code><A href="_smal_BW#5e"> -bp </A></code> 

<hr><h3><A name="8d">("s)</A> ( -- pstr )</h3>
<br>
The run-time word compiled by  <code><A href="_smal_AQ#340"> [""] </A>.</code> 
At run time, pstr is the address of the packed string which is compiled just 
after  <code><A href="_smal_BV#8d"> ("s) </A>.</code> 

<hr><h3><A name="bd">(see)</A> ( acf -- )</h3>
<br>
The Forth word whose compilation address is acf is decompiled.  

<hr><h3><A name="ed">/c*</A> ( n1 -- n2 )</h3>
 Extra: 32
<br>
n2 is the result of multiplying n1 by the length in bytes of a byte.  This is 
useful for converting an index into a byte offset.  On a byte-addressed machine, 
this doesn't do anything.  

<hr><h3><A name="11d">&gt;</A> ( n1 n2  --  flag )</h3>
 Extra: 83Std
<br>
flag is true if n1 is greater than n2, using signed comparison.  

<hr><h3><A name="14d">and</A> ( n1 n2 -- n3 )</h3>
 Extra: 83Std
<br>
n3 is the bit-by-bit logical 'and' of n1 with n2.  

<hr><h3><A name="17d">chars</A> ( n1 -- n2  )</h3>
 Extra: 32
<br>
Calculates the number of n1 characters.  

<hr><h3><A name="1ad">d2/</A> ( d1 -- d2  )</h3>
<br>
d2 is the result of shifting d1 one bit toward the least-significant bit, 
leaving the most-significant bit unchanged.  

<hr><h3><A name="1dd">end-code</A> ( -- )</h3>
 Extra: 83Std
<br>
Terminates a code definition and allows the &lt;name&gt; of the corresponding 
code definition to be found in the dictionary.  
<p>
The  <code><A href="_smal_AU#194"> context </A></code> vocabulary is set to the 
same as the  <code><A href="_smal_BL#1a3"> current </A></code> vocabulary (which 
removes the  <code><A href="_smal_AD#153"> assembler </A></code> vocabulary from 
the search order, unless you have explicitly done something funny to the search 
order while assembling the code).  
<p>
The "next" routine is  <code><A href="_smal_AM#27c"> not </A></code> 
automatically added to the end of the code definition.  Usually you want "next" 
to be at the end of the definition, but sometimes the last thing in the 
definition is a branch to somewhere else, so the "next" at the end is not 
needed.  
<p>
In Risc-OS Forthmacs, there is an alternate word for this function which is 
highly recommended.   <code><A href="_smal_BJ#171"> c; </A></code> is like  <code><A href="_smal_BV#1dd"> end-code </A></code> 
except that it automatically executes  <code><A href="_smal_AK#3a"> next </A></code> 
before executing  <code><A href="_smal_BV#1dd"> end-code </A>.</code> With  <code><A href="_smal_BV#1dd"> end-code </A>,</code> 
it is quite easy to forget to do the  <code><A href="_smal_AK#3a"> next </A></code> 
, and if you forget, the code definition will probably crash the system if you 
try to execute it.  
<p>
 <code><A href="_smal_BV#1dd"> end-code </A></code> is defined in the  <code><A href="_smal_AD#153"> assembler </A></code> 
vocabulary.  

See: "Assembler"  <code><A href="_smal_AH#187"> code </A></code>  <code><A href="_smal_BJ#171"> c; </A></code> 

<hr><h3><A name="20d">fputc</A> ( byte fd -- )</h3>
<br>
The least significant 8 bits of byte are written to the open file whose file 
descriptor is fd.  The byte is put at a position within the file determined by 
the current value of the file pointer.  The file pointer is then incremented.  

<hr><h3><A name="23d">keys-forth</A> ( -- )</h3>
<br>
A vocabulary containing keystroke definitions for the command line editor.  The 
definitions in this vocabulary name control keys and escape sequences, and 
associate those keys with editing commands.  The keys used to invoke line 
editing commands may be changed by changing the definitions in  <code><A href="_smal_BV#23d"> keys-forth </A>.</code> 

<hr><h3><A name="26d">mkdir</A> ( -- )</h3> <kbd>directory</kbd> 
<br>
Makes a new directory.  Same as  <code><A href="_smal_BT#26b"> md </A>.</code> 

<hr><h3><A name="29d">printable?</A> ( char -- flag )</h3>
<br>
flag is true if the character char is printable.  Printable characters are those 
between hex 40 and hex 7e inclusive.  

<hr><h3><A name="2cd">settype</A> ( -- )</h3> <kbd>filename filetype</kbd> 
<br>
Sets an objects file type, &lt;filename&gt; can be any filename including masks 
or even a complete directory.  
<p>
&lt;filetype&gt; can be the hexadecimal number or the textual equivalent.  
<p>

<hr><h3><A name="2fd">toggle</A> ( addr byte-mask -- )</h3>
<br>
The byte at address addr is logically XOR'ed with the mask byte-mask, thus 
changing the bits in the byte at addr corresponding to the "one" bits in the 
mask.  
<p>
This is like  <code><A href="_smal_BK#1a2"> ctoggle </A>,</code> except the 
order of the operands is reversed.  

<hr><h3><A name="32d">warning</A> ( -- addr )</h3>
<br>
A  <code><A href="_smal_BK#322"> user </A></code> variable controlling "isn't 
Unique" messages.  If a word is created, but there is already a word with the 
same name in the  <code><A href="_smal_BL#1a3"> current </A></code> vocabulary, 
the message "&lt;name&gt; isn't Unique" is displayed if  <code><A href="_smal_BV#32d"> warning </A></code> 
contains a non-zero value.  This is most easily set with  <code><A href="_smal_BV#32d"> warning </A></code>  <code><A href="_smal_BA#288"> on </A></code> 
or  <code><A href="_smal_BV#32d"> warning </A></code>  <code><A href="_smal_AW#286"> off </A>.</code> 
