
<hr><h3><A name="1c">ip</A> ( -- n )</h3>
<br>
portable name for the instruction pointer 

<hr><h3><A name="4c">handle-breakpoint</A> ( --  )</h3>
 Extra: Deferred, System
<br>
This handler is executed whenever a OS_Breakpt instruction was trapped.  Use 
this for more advanced debugging tools.  

See:  <code><A href="_smal_BD#4b"> handle-address </A></code> 

<hr><h3><A name="7c">#fbufs</A> ( -- n )</h3>
<br>
n is the number of file buffers; currently 16.  

<hr><h3><A name="ac">(leave)</A> ( -- )</h3>
<br>
The run-time word compiled by  <code><A href="_smal_AF#245"> leave </A>.</code> 
At run time, the next enclosing  <code><A href="_smal_AT#1c3"> do </A></code> ..   <code><A href="_smal_BC#25a"> loop </A></code> 
is exited.  

<hr><h3><A name="dc">.dir</A> ( -- )</h3>
<br>
Displays the current directory name.  Same as  <code><A href="_smal_AC#2a2"> pwd </A>.</code> 

<hr><h3><A name="10c">2variable</A> ( -- )</h3>
 Extra: M,83Std
<br>
A defining word used in the form: 
<br><code>    2variable &lt;name&gt;</code><br>
A dictionary entry for &lt;name&gt; is created and space for two "normal" sized 
numbers is  <code><A href="_smal_BT#14b"> allot </A></code> ted in its parameter 
field.  This parameter field is to be used for contents of the variable.  The 
application is responsible for initializing the contents of the variable which 
it creates.  When &lt;name&gt; is later executed, the address of its parameter 
field is placed on the stack.  

See:  <code><A href="_smal_BN#325"> variable </A></code> 

<hr><h3><A name="13c">?pairs</A> ( n1 n2 -- )</h3>
<br>
Aborts if n1 is not equal to n2, printing the message "Conditionals not paired".  
This is used to ensure that conditionals such as  <code><A href="_smal_AT#223"> if </A></code> 
...   <code><A href="_smal_BL#2f3"> then </A></code> are properly matched and 
nested.  The way this works is: The beginning word of a conditional (such as  <code><A href="_smal_AT#223"> if </A>)</code> 
leaves a magic number (n1) on the stack.  The ending word of the conditional 
uses  <code><A href="_smal_BE#13c"> ?pairs </A></code> to check that the magic 
number on the stack is the correct one.  

<hr><h3><A name="16c">buffer:</A> ( n -- addr )</h3>
<br>
A defining word used in the form: 
<br><code>    n buffer &lt;name&gt;</code><br>
to create a dictionary entry for &lt;name&gt; so that when &lt;name&gt; is later 
executed, the address of a buffer addr will be left on the stack.  This  <code><A href="_smal_BE#16c"> buffer: </A></code> 
is allocated at once.  Also the it is known to the memory manager initializing 
word, so this  <code><A href="_smal_BE#16c"> buffer: </A></code> will be 
allocated automatically in saved forth-systems i.e.  your application.  This 
behaved somewhat like a  <code><A href="_smal_BD#19b"> create </A></code>  <code><A href="_smal_BT#14b"> allot </A></code> 
sequence, but the  <code><A href="_smal_BE#16c"> buffer: </A>s</code> memory is  <code><A href="_smal_BS#14a"> allocate </A>d</code> 
in the heap memory.  

<hr><h3><A name="19c">creset</A> ( byte-mask addr -- )</h3>
<br>
The byte at address addr is logically AND'ed with the ones complement of the 
mask byte-mask, thus clearing the bits in the byte at addr corresponding to the 
"one" bits in the mask.  

See:  <code><A href="_smal_BH#19f"> cset </A></code>  <code><A href="_smal_BK#1a2"> ctoggle </A></code> 

<hr><h3><A name="1cc">dodoesaddr</A> ( -- addr )</h3>
<br>
A variable containing the address of the <strong>dodoes</strong> routine.  This 
is used by  <code><A href="_smal_BF#1cd"> does&gt; </A></code> to assemble a JSR 
instruction to <strong>dodoes</strong> .  

<hr><h3><A name="1fc">file!</A> ( byte n.addr fd -- )</h3>
<br>
byte is stored into the open file whose file descriptor is fd, at the position 
indicated by n.addr.  The file pointer is moved to n.addr+1.  

<hr><h3><A name="22c">input-file</A> ( -- addr )</h3>
<br>
A user variable containing the file descriptor of the input file that the Forth 
interpreter is using as the source of its input stream.  
<p>
It is usually a bad idea to change this variable interactively.   <code><A href="_smal_BE#22c"> input-file </A></code> 
is changed by  <code><A href="_smal_BH#af"> (load </A>,</code>  <code><A href="_smal_AU#74"> "load </A>,</code> 
or  <code><A href="_smal_BM#204"> fload </A>,</code> which take care to save  <code><A href="_smal_BE#22c"> input-file </A>s</code> 
previous contents and to restore it afterwards.  

<hr><h3><A name="25c">lower</A> ( addr len -- )</h3>
 Extra: F83
<br>
Converts the character array specified by addr and len to lower case; only upper 
case letters are changed.  

<hr><h3><A name="28c">order</A> ( -- )</h3>
 Extra: 83Std
<br>
Displays the vocabulary names forming the search order in their present search 
order sequence.  Also displays the vocabulary into which new definitions will be 
placed (the  <code><A href="_smal_BL#1a3"> current </A></code> vocabulary).  

<hr><h3><A name="2bc">rs-size</A> ( -- n )</h3>
<br>
n is the maximum size in bytes of the return stack 

<hr><h3><A name="2ec">sys-type</A> ( addr +n -- )</h3>
 Extra: M,Default
<br>
The Default implementation of the deferred word  <code><A href="_smal_AI#308"> type </A>.</code> 
Transfers +n characters to the current output stream from memory, beginning with 
the character at address addr and continuing through consecutive addresses.  No 
action is taken if +n is zero.  

See:  <code><A href="_smal_AI#308"> type </A></code> OS_WriteN is used for this.  

<hr><h3><A name="31c">up!</A> ( addr -- )</h3>
<br>
addr is the new starting address of the  <code><A href="_smal_BK#322"> user </A></code> 
area.  
<p>
Warning: The new user area must have been already initialised before  <code><A href="_smal_BE#31c"> up! </A></code> 
is done, otherwise the system will probably crash.  
