<office:document-content  xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"  xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"  xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" > <office:scripts/> <office:body> <text:h><text:title>pfe Function List </text:title></text:h> <reference><title>pfe Function List</title>






 <text:p text:style-name="Preformatted_20_Text">_p4_access</text:p>
 <text:h text:style-name="Heading_20_3"> use as _P4_access, a #define from _missing.h  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/_missing.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">int
_p4_access</text:span><text:span text:style-name="Source_20_Text">(const char *fn, int how) 
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2000.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">_p4_rename</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/_missing.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">int
_p4_rename</text:span><text:span text:style-name="Source_20_Text">(const char *source, const char *target)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2000.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_asm_create_code</text:p>
 <text:h text:style-name="Heading_20_3"> CODE ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/assembler-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_asm_create_code</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  call <text:span text:style-name="Source_20_Text">ALSO</text:span> and add ASSEMBLER wordlist if available. Add PROC ENTER
  assembler snippet as needed for the architecture into the PFA. The
  CFA is setup (a) with the PFA adress in traditional ITC or (b)
  with an infoblock as for sbr-coded colon words.
</text:p><text:p text:style-name="Text_20_body">
  Remember that not all architectures are support and that the
  ASSEMBLER wordset is not compiled into pfe by default. Use always
  the corresponding <text:span text:style-name="Source_20_Text">END-CODE</text:span> for each <text:span text:style-name="Source_20_Text">CODE</text:span> start. The new
  word name is not smudged.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_asm_end_code</text:p>
 <text:h text:style-name="Heading_20_3"> END-CODE ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/assembler-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_asm_end_code</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  call <text:span text:style-name="Source_20_Text">PREVIOUS</text:span> and  add PROC LEAVE assembler snippet as needed
  for the architecture -  usually includes bits to "return from
  subroutine". Remember that not all architectures are support and
  PFE usually does only do variants of call-threading with a separate
  loop for the inner interpreter that does "call into subroutine".
  Some forth implementations do "jump into routine" and the PROC
  LEAVE part would do "jump to next routine" also known as 
  next-threading. The sbr-call-threading is usually similar to the
  native subroutine-coding of the host operating system. See <text:span text:style-name="Source_20_Text">CODE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_block</text:p>
 <text:h text:style-name="Heading_20_3"> BLOCK ( block-u -- block-addr ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_block</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  load the specified block into a block buffer
  and return the address of that block buffer
  - see also <text:span text:style-name="Source_20_Text">BUFFER</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_buffer</text:p>
 <text:h text:style-name="Heading_20_3"> BUFFER ( block-u -- block-addr ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_buffer</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the block buffer address for the specified 
  block - if it had not been loaded already it
  is <text:span text:style-name="Emphasis">not</text:span> filled with data from the disk
  unlike <text:span text:style-name="Source_20_Text">BLOCK</text:span> does.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_save_buffers</text:p>
 <text:h text:style-name="Heading_20_3"> SAVE-BUFFERS ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_save_buffers</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  write all modified buffer to
  the disk, see <text:span text:style-name="Source_20_Text">UPDATE</text:span> and
  <text:span text:style-name="Source_20_Text">FLUSH</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_empty_buffers</text:p>
 <text:h text:style-name="Heading_20_3"> EMPTY-BUFFERS ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_empty_buffers</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  unassign all block buffers, does not even <text:span text:style-name="Source_20_Text">UPDATE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_flush</text:p>
 <text:h text:style-name="Heading_20_3"> FLUSH ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_flush</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  call <text:span text:style-name="Source_20_Text">SAVE-BUFFERS</text:span> and then unassign all
  block buffers with <text:span text:style-name="Source_20_Text">EMPTY-BUFFERS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_list</text:p>
 <text:h text:style-name="Heading_20_3"> LIST ( block-u -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_list</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  display the block
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_load</text:p>
 <text:h text:style-name="Heading_20_3"> LOAD ( block-u -- ?? ) [FORTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_load</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">INTERPRET</text:span> the specified <text:span text:style-name="Source_20_Text">BLOCK</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_thru</text:p>
 <text:h text:style-name="Heading_20_3"> THRU ( block1-u block2-u -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_thru</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">LOAD</text:span> a number of block in sequence.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_update</text:p>
 <text:h text:style-name="Heading_20_3"> UPDATE ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_update</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  mark the current block buffer as modified,
  see <text:span text:style-name="Source_20_Text">FLUSH</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">P4_LISTWORDS</text:p>
 <text:h text:style-name="Heading_20_3">  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">P4_LISTWORDS</text:span><text:span text:style-name="Source_20_Text">(block) =
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_close_blockfile</text:p>
 <text:h text:style-name="Heading_20_3"> CLOSE-BLOCKFILE ( -- ) [FTH] w32for </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_close_blockfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  w32for-implementation:
</text:p><screen>  blockhandle -1 &amp;lt;&amp;gt; if flush close-file drop then
  -1 set-blockfile
</screen><text:p text:style-name="Text_20_body">  in pfe:
</text:p><screen>  : CLOSE-BLOCKFILE 
    BLOCK-FILE ?DUP IF FLUSH CLOSE-FILE DROP THEN 
    OFF&amp;gt; BLOCK-FILE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_open_blockfile</text:p>
 <text:h text:style-name="Heading_20_3"> OPEN-BLOCKFILE ( "filename" -- ) [FTH] w32for </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_open_blockfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  w32for-implementation:
</text:p><screen>    close-blockfile
    parse-word r/w open-file abort" failed to open block-file"
    set-blockfile
    empty-buffers 
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_create_blockfile</text:p>
 <text:h text:style-name="Heading_20_3"> CREATE-BLOCKFILE ( blocks-count "filename" -- ) [FTH] w32for </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_create_blockfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  w32for-implementation:
</text:p><screen>    close-blockfile
    parse-word r/w create-file abort" failed to create block-file"
    set-blockfile
    dup b/buf m* blockhandle resize-file
    abort" unable to create a file of that size"
    empty-buffers
    0 do i wipe loop 
    flush
</screen><text:p text:style-name="Text_20_body">  pfe does not wipe the buffers
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_create_blockfile</text:p>
 <text:h text:style-name="Heading_20_3"> USING-NEW ( "filename" -- ) [EXT] [obsolete] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_create_blockfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">USING</text:span> but can create the file
  OBSOLETE word, use <text:span text:style-name="Source_20_Text">CREATE-BLOCKFILE</text:span>
</text:p><screen>  : USING-NEW 0 CREATE-BLOCKFILE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_set_blockfile</text:p>
 <text:h text:style-name="Heading_20_3"> SET-BLOCKFILE ( block-file* -- ) [EXT] win32for </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_set_blockfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  win32forth uses a system-filedescriptor where -1 means unused
  in the BLOCKHANDLE, but we use a "FILE*"-like structure, so NULL
  means NOT-IN-USE. Here we set it.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_access</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_file_access</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *fn, int len)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_open_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_File *
p4_open_file</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *name, int len, int mode)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_create_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_File *
p4_create_file</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *name, int len, int mode)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_close_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_close_file</text:span><text:span text:style-name="Source_20_Text">(p4_File *fid)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_reposition_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_reposition_file</text:span><text:span text:style-name="Source_20_Text">(p4_File *fid, _p4_off_t pos)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_read_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_read_file</text:span><text:span text:style-name="Source_20_Text">(void *p, p4ucell *n, p4_File *fid)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_write_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_write_file</text:span><text:span text:style-name="Source_20_Text">(void *p, p4ucell n, p4_File *fid)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_resize_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_resize_file</text:span><text:span text:style-name="Source_20_Text">(p4_File *fid, _p4_off_t size)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_read_line</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_read_line</text:span><text:span text:style-name="Source_20_Text">(void* buf, p4ucell *u, p4_File *fid, p4cell *ior)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_read_write</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_read_write</text:span><text:span text:style-name="Source_20_Text">(p4_File *fid, void *p, p4ucell n, int readflag)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_load_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/block-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_load_file</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *fn, int cnt, int blk)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_else</text:p>
 <text:h text:style-name="Heading_20_3"> #ELSE ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_else</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  The implementation of #ELSE is done in C for speed and
  being less error prone. Better use the ANSI-compatible
  <text:span text:style-name="Source_20_Text">[IF]</text:span> <text:span text:style-name="Source_20_Text">[ELSE]</text:span> <text:span text:style-name="Source_20_Text">[THEN]</text:span> construct.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_endif</text:p>
 <text:h text:style-name="Heading_20_3"> #ENDIF ( -- ) [FTH]  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_sh_endif</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  end of <text:span text:style-name="Source_20_Text">#IF</text:span> <text:span text:style-name="Source_20_Text">#IFDEF</text:span> <text:span text:style-name="Source_20_Text">#IFNOTDEF</text:span> and <text:span text:style-name="Source_20_Text">#ELSE</text:span> contructs
</text:p><screen>    (a dummy word that does actually nothing, but #ELSE may look for it)
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_if</text:p>
 <text:h text:style-name="Heading_20_3"> #IF ( -- C: state-save-flag mfth-if-magic S: ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_if</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  prepares for a following <text:span text:style-name="Source_20_Text">#IS_TRUE</text:span> or <text:span text:style-name="Source_20_Text">#IS_FALSE</text:span>,
  does basically switch off compile-mode for the enclosed
  code. 
  better use the ANSI style <text:span text:style-name="Source_20_Text">[IF]</text:span> <text:span text:style-name="Source_20_Text">[ELSE]</text:span> <text:span text:style-name="Source_20_Text">[THEN]</text:span> construct.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_is_true</text:p>
 <text:h text:style-name="Heading_20_3"> #IS_TRUE ( C: state-save-flag mfth-if-magic S: test-flag -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_is_true</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  checks the condition on the <text:span text:style-name="Source_20_Text">CS-STACK</text:span>. 
  Pairs with <text:span text:style-name="Source_20_Text">#IF</text:span> 
  better use the ANSI style <text:span text:style-name="Source_20_Text">[IF]</text:span> <text:span text:style-name="Source_20_Text">[ELSE]</text:span> <text:span text:style-name="Source_20_Text">[THEN]</text:span> construct.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_is_false</text:p>
 <text:h text:style-name="Heading_20_3"> #IS_FALSE ( C: state-save-flag mfth-if-magic S: test-flag -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_is_false</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  checks the condition on the <text:span text:style-name="Source_20_Text">CS-STACK</text:span>. 
  Pairs with <text:span text:style-name="Source_20_Text">#IF</text:span> 
  better use the ANSI style <text:span text:style-name="Source_20_Text">[IF]</text:span> <text:span text:style-name="Source_20_Text">[ELSE]</text:span> <text:span text:style-name="Source_20_Text">[THEN]</text:span> construct.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_ifdef</text:p>
 <text:h text:style-name="Heading_20_3"> #IFDEF ( "word" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_ifdef</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  better use <text:span text:style-name="Source_20_Text">[DEFINED] word [IF]</text:span> - the word <text:span text:style-name="Source_20_Text">[IF]</text:span>
  is ANSI-conform.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_ifnotdef</text:p>
 <text:h text:style-name="Heading_20_3"> #IFNOTDEF ( "word" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_ifnotdef</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  better use <text:span text:style-name="Source_20_Text">[DEFINED] word [NOT] [IF]</text:span> - the word <text:span text:style-name="Source_20_Text">[IF]</text:span>
  and <text:span text:style-name="Source_20_Text">[ELSE]</text:span> are ANSI-conform, while <text:span text:style-name="Source_20_Text">#IFDEF</text:span> <text:span text:style-name="Source_20_Text">#ELSE</text:span> are not.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_backslash</text:p>
 <text:h text:style-name="Heading_20_3"> // ( [...&lt;cr;&gt;] -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">extern FCodep4_backslash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  a line-comment
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_define</text:p>
 <text:h text:style-name="Heading_20_3"> #define ( "name" "value" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_define</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create an alias, will actually make a <text:span text:style-name="Source_20_Text">DEFER</text:span>ed word,
  and it has the magic to handle number-arguments
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_pragma</text:p>
 <text:h text:style-name="Heading_20_3"> #pragma ( "word" "evaluate&lt;cr;&gt;" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/cdecl-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_pragma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  pass the word to <text:span text:style-name="Source_20_Text">ENVIRONMENT</text:span>?
  If the word does *not* exist, the rest of the line is parsed
  away with <text:span text:style-name="Source_20_Text">//</text:span> - therefore, if the executed word does not
  consume the line itself, the rest of the line is still executed.
  examples:
</text:p><screen>  #pragma warnings on // if warnings is a variable, ON can set it
  #pragma stack-cells 50 &amp;lt; [if] .( not enough stackcells ) [then]
  #pragma simply anything else you like to have in environment or not
 
</screen><text:p text:style-name="Text_20_body">  implementation:
</text:p><screen>  : #pragma ?exec
    bl word count environment? if exit then ( interpret the rest of the line )
    [compile] \               ( parse away the rest of the line as a comment )
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_link_comma</text:p>
 <text:h text:style-name="Heading_20_3"> link, ( some-list* -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/chain-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_link_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  : link,        here over @ a, swap ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_new_chain</text:p>
 <text:h text:style-name="Heading_20_3"> new-chain ( "name" -- ) [EXT] [DOES: -- new-chain* ] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/chain-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_new_chain</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   create a new chain and register in chain-link
</text:p><screen>  : new-chain create: 0 , ['] noop , chain-link link, ;
</screen><text:p text:style-name="Text_20_body">  layout of a chain:
  /cell field -&gt;chain.link
  /cell field -&gt;chain.exec
  /cell field -&gt;chain.next
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_chain</text:p>
 <text:h text:style-name="Heading_20_3"> .chain ( some-chain* -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/chain-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_chain</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show chain - compare with <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_chains</text:p>
 <text:h text:style-name="Heading_20_3"> .chains ( -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/chain-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_chains</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show all chains registered in the system - compare with <text:span text:style-name="Source_20_Text">VLIST</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_chain</text:p>
 <text:h text:style-name="Heading_20_3"> do-chain ( some-chain* -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/chain-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do_chain</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execute chain
</text:p><screen>  : do-chain being @ ?dup while dup&amp;gt;r cell+ @execute r&amp;gt; repeat ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_chain_add_before</text:p>
 <text:h text:style-name="Heading_20_3"> chain-add-before ( some-chain* "word-to-add" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/chain-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_chain_add_before</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  add chain item, for reverse chain like BYE
</text:p><screen>  : chain-add-before ' &amp;gt;r here over @ , r&amp;gt; , swap ! ;
  ( chain-add-before link, ' , )
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_chain_add</text:p>
 <text:h text:style-name="Heading_20_3"> chain-add ( some-chain* "word-to-add" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/chain-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_chain_add</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  add chain item, for normal setup, at end of do-chain
</text:p><screen>  : chain-add ' &amp;gt;r begin dup @ while @ repeat here swap ! 0 , r&amp;gt; , ;
  ( chain-add begin dup @ while @ repeat  here swap ! 0, ' , )
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_new_wordlist</text:p>
 <text:h text:style-name="Heading_20_3"> create a single-threaded wordlist - compare with p4_make_wordlist  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_Wordl* p4_new_wordlist</text:span><text:span text:style-name="Source_20_Text">(p4char* nfa)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_dot_words</text:p>
 <text:h text:style-name="Heading_20_3"> .WORDS ( some-wordlist* -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_words</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  print the <text:span text:style-name="Source_20_Text">WORDLIST</text:span> interactivly to the user
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : .WORDS ALSO SET-CONTEXT WORDS PREVIOUS ;
</screen><text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">WORDS</text:span> / <text:span text:style-name="Source_20_Text">ORDER</text:span> / <text:span text:style-name="Source_20_Text">NEW-WORDLIST</text:span> / <text:span text:style-name="Source_20_Text">DO-ALL-WORDS</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_all_words</text:p>
 <text:h text:style-name="Heading_20_3"> DO-ALL-WORDS ( some-wordlist* -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do_all_words</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">EXECUTE</text:span> each entry in the wordlist in the reverse order defined
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : DO-ALL-WORDS
       0 FIRST-NAME
       BEGIN ?DUP WHILE 
          DUP NAME&amp;gt; EXECUTE
          NAME-NEXT
       REPEAT
  ;
</screen><text:p text:style-name="Text_20_body">  to run the <text:span text:style-name="Source_20_Text">NEW-WORDLIST</text:span> in original order, use <text:span text:style-name="Source_20_Text">REDO-ALL-WORDS</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_redo_all_words</text:p>
 <text:h text:style-name="Heading_20_3"> REDO-ALL-WORDS ( some-wordlist* -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_redo_all_words</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">EXECUTE</text:span> each entry in the wordlist in the original order defined
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : REDO-ALL-WORDS
       0 FIRST-NAME
       0 SWAP ( under )
       BEGIN ?DUP WHILE 
          DUP NAME&amp;gt; SWAP ( under )
          NAME-NEXT
       REPEAT
       BEGIN ?DUP WHILE
          EXECUTE
       REPEAT
  ;
</screen><text:p text:style-name="Text_20_body">  to run the <text:span text:style-name="Source_20_Text">NEW-WORDLIST</text:span> in last-run-first order, use <text:span text:style-name="Source_20_Text">DO-ALL-WORDS</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_all_words_while_loop</text:p>
 <text:h text:style-name="Heading_20_3"> DO-ALL-WORDS-WHILE-LOOP ( some-wordlist* test-xt* -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do_all_words_while_loop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">EXECUTE</text:span> each entry in the wordlist in the reverse order defined
     but only as long as after EXECUTE of "word" a TRUE flag is left
     on the stack. The wordlist execution is cut when a FALSE flag is seen.
     (the current wordlist entry is _not_ on the stack!)
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : DO-ALL-WORDS-WHILE-LOOP &amp;gt;R
       0 FIRST-NAME
       BEGIN ?DUP WHILE 
          R@ EXECUTE 0= IF R&amp;gt;DROP DROP EXIT THEN
          DUP NAME&amp;gt; EXECUTE
          NAME-NEXT
       REPEAT R&amp;gt;DROP
  ;
</screen><text:p text:style-name="Text_20_body">  compare with <text:span text:style-name="Source_20_Text">DO-ALL-WORDS-WHILE</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_all_words_while</text:p>
 <text:h text:style-name="Heading_20_3"> DO-ALL-WORDS-WHILE ( some-wordlist* "word" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do_all_words_while</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">EXECUTE</text:span> each entry in the wordlist in the reverse order defined
     but only as long as after EXECUTE of "word" a TRUE flag is left
     on the stack. The wordlist execution is cut when a FALSE flag is seen.
     (the current wordlist entry is _not_ on the stack!)
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : DO-ALL-WORDS-WHILE ' 
       STATE @ IF LITERAL, COMPILE DO-ALL-WORDS-WHILE-LOOP EXIT THEN
       &amp;gt;R 0 FIRST-NAME
       BEGIN ?DUP WHILE 
          R@ EXECUTE 0= IF R&amp;gt;DROP DROP EXIT THEN
          DUP NAME&amp;gt; EXECUTE
          NAME-NEXT
       REPEAT R&amp;gt;DROP
  ;
</screen><text:p text:style-name="Text_20_body">  to run the <text:span text:style-name="Source_20_Text">NEW-WORDLIST</text:span> in original order, use <text:span text:style-name="Source_20_Text">REDO-ALL-WORDS</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_synonym</text:p>
 <text:h text:style-name="Heading_20_3"> DO-SYNONYM ( some-wordlist* "do-name" "orig-name" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do_synonym</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  create a <text:span text:style-name="Source_20_Text">SYNONYM</text:span> in the specified wordlist.
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : DO-SYNONYM GET-CURRENT SWAP SET-CURRENT SYNONYM SET-CURRENT ;
</screen><text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">DO-ALIAS</text:span> / <text:span text:style-name="Source_20_Text">DO-ALL-WORDS</text:span> / <text:span text:style-name="Source_20_Text">NEW-WORDLIST</text:span> / <text:span text:style-name="Source_20_Text">WORDLIST</text:span> / <text:span text:style-name="Source_20_Text">ORDER</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_alias_atexit</text:p>
 <text:h text:style-name="Heading_20_3"> ALIAS-ATEXIT ( some-xt* "name" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_alias_atexit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  create a defer word that is initialized with the given x-token.
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : ALIAS-ATEXIT ATEXIT-WORDLIST DO-ALIAS ;
</screen><text:p text:style-name="Text_20_body">                                         <text:span text:style-name="Source_20_Text">ATEXIT-WORDLIST</text:span> <text:span text:style-name="Source_20_Text">DO-ALL-WORDS</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_alias</text:p>
 <text:h text:style-name="Heading_20_3"> DO-ALIAS ( some-xt* definition-wordlist* "do-name" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do_alias</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  create an <text:span text:style-name="Source_20_Text">ALIAS</text:span> with the exec-token in the specified wordlist
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : DO-ALIAS GET-CURRENT SWAP SET-CURRENT SWAP ALIAS SET-CURRENT ;
</screen><text:p text:style-name="Text_20_body">                                                            <text:span text:style-name="Source_20_Text">DO-SYNONYM</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> Z@  ( addr --  f: z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_store</text:p>
 <text:h text:style-name="Heading_20_3"> Z!  ( addr f: z -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_x_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> X@  ( zaddr --  f: x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_x_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_x_store</text:p>
 <text:h text:style-name="Heading_20_3"> X!  ( zaddr f: x -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_x_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_y_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> Y@  ( zaddr --  f: y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_y_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_y_store</text:p>
 <text:h text:style-name="Heading_20_3"> Y!  ( zaddr f: x -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_y_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_dot</text:p>
 <text:h text:style-name="Heading_20_3"> Z.  (f: z -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Emit the complex number, including the sign of zero when
  <text:span text:style-name="Source_20_Text">signbit()</text:span> is available.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_s_dot</text:p>
 <text:h text:style-name="Heading_20_3"> ZS.  (f: z -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_s_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Emit the complex number in scientific notation, including the
  sign of zero when <text:span text:style-name="Source_20_Text">signbit()</text:span> is available.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_real</text:p>
 <text:h text:style-name="Heading_20_3"> REAL  (f: x y -- x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_real</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_imag</text:p>
 <text:h text:style-name="Heading_20_3"> IMAG  (f: x y -- y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_imag</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_conjg</text:p>
 <text:h text:style-name="Heading_20_3"> CONJG  (f: x y -- x -y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_conjg</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_drop</text:p>
 <text:h text:style-name="Heading_20_3"> ZDROP  (f: z -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_dup</text:p>
 <text:h text:style-name="Heading_20_3"> ZDUP  (f: z -- z z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_swap</text:p>
 <text:h text:style-name="Heading_20_3"> ZSWAP  (f: z1 z2 -- z2 z1 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_swap</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_over</text:p>
 <text:h text:style-name="Heading_20_3"> ZOVER  (f: z1 z2 -- z1 z2 z1 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_over</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_nip</text:p>
 <text:h text:style-name="Heading_20_3"> ZNIP  (f: z1 z2 -- z2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_nip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_tuck</text:p>
 <text:h text:style-name="Heading_20_3"> ZTUCK  (f: z1 z2 -- z2 z1 z2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_tuck</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_rot</text:p>
 <text:h text:style-name="Heading_20_3"> ZROT  (f: z1 z2 z3 -- z2 z3 z1 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_rot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_minus_z_rot</text:p>
 <text:h text:style-name="Heading_20_3"> -ZROT  (f: z1 z2 z3 -- z3 z1 z2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_minus_z_rot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_plus</text:p>
 <text:h text:style-name="Heading_20_3"> Z+  (f: z1 z2 -- z1+z2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_minus</text:p>
 <text:h text:style-name="Heading_20_3"> Z-  (f: z1 z2 -- z1-z2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_star</text:p>
 <text:h text:style-name="Heading_20_3"> Z*  (f: x y u v -- x*u-y*v  x*v+y*u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Uses the algorithm followed by JVN:
      (x+iy)*(u+iv) = [(x+y)*u - y*(u+v)] + i[(x+y)*u + x*(v-u)]
  Requires 3 multiplications and 5 additions.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_slash</text:p>
 <text:h text:style-name="Heading_20_3"> Z/  (f: u+iv z -- u/z+iv/z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan-like algorithm *without* due attention to spurious
  over/underflows and zeros and infinities.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_negate</text:p>
 <text:h text:style-name="Heading_20_3"> ZNEGATE  (f: z -- -z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_negate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_two_star</text:p>
 <text:h text:style-name="Heading_20_3"> Z2*  (f: z -- z*2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_two_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_two_slash</text:p>
 <text:h text:style-name="Heading_20_3"> Z2/  (f: z -- z/2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_two_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_i_star</text:p>
 <text:h text:style-name="Heading_20_3"> I*  (f: x y -- -y x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_i_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_minus_i_star</text:p>
 <text:h text:style-name="Heading_20_3"> -I*  (f: x y -- y -x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_minus_i_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_one_slash_z</text:p>
 <text:h text:style-name="Heading_20_3"> 1/Z  (f: z -- 1/z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_one_slash_z</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan algorithm *without* due attention to spurious
  over/underflows and zeros and infinities.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_hat_two</text:p>
 <text:h text:style-name="Heading_20_3"> Z^2  (f: z -- z^2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_hat_two</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan algorithm without removal of any spurious NaN created
  by overflow.  It deliberately uses (x-y)(x+y) instead of
  x^2-y^2 for the real part.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_abs_hat_two</text:p>
 <text:h text:style-name="Heading_20_3"> |Z|^2  (f: x y -- |z|^2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_abs_hat_two</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_hat_n</text:p>
 <text:h text:style-name="Heading_20_3"> Z^N  ( n f: z -- z^n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_hat_n</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_x_plus</text:p>
 <text:h text:style-name="Heading_20_3"> X+  (f: z a -- x+a y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_x_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_x_minus</text:p>
 <text:h text:style-name="Heading_20_3"> X-  (f: z a -- x-a y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_x_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_y_plus</text:p>
 <text:h text:style-name="Heading_20_3"> Y+  (f: z a -- x y+a ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_y_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_y_minus</text:p>
 <text:h text:style-name="Heading_20_3"> Y-  (f: z a -- x y-a ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_y_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_star_f</text:p>
 <text:h text:style-name="Heading_20_3"> Z*F  (f: x y f -- x*f y*f ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_star_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_slash_f</text:p>
 <text:h text:style-name="Heading_20_3"> Z/F  (f: x y f -- x/f y/f ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_slash_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_f_star_z</text:p>
 <text:h text:style-name="Heading_20_3"> F*Z  (f: f x y -- f*x f*y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_star_z</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_f_slash_z</text:p>
 <text:h text:style-name="Heading_20_3"> F/Z  (f: f z -- f/z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_slash_z</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan algorithm *without* due attention to spurious
  over/underflows and zeros and infinities.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_star_i_star_f</text:p>
 <text:h text:style-name="Heading_20_3"> Z*I*F  (f: z f --  z*if ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_star_i_star_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_minus_i_star_z_slash_f</text:p>
 <text:h text:style-name="Heading_20_3"> -I*Z/F  (f: z f --  z/[if] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_minus_i_star_z_slash_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_i_star_f_star_z</text:p>
 <text:h text:style-name="Heading_20_3"> I*F*Z  (f: f z -- if*z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_i_star_f_star_z</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_i_star_f_slash_z</text:p>
 <text:h text:style-name="Heading_20_3"> I*F/Z  (f: f z -- [0+if]/z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_i_star_f_slash_z</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan algorithm *without* due attention to spurious
  over/underflows and zeros and infinities.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_star_to_real</text:p>
 <text:h text:style-name="Heading_20_3"> Z*&gt;REAL  (f: z1 z2 -- Re[z1*z2] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_star_to_real</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Compute the real part of the complex product without
  computing the imaginary part.  Recommended by Kahan to avoid
  gratuitous overflow or underflow signals from the unnecessary
  part.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_star_to_imag</text:p>
 <text:h text:style-name="Heading_20_3"> Z*&gt;IMAG  (f: z1 z2 -- Im[z1*z2] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_star_to_imag</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Compute the imaginary part of the complex product without
  computing the real part.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_abs</text:p>
 <text:h text:style-name="Heading_20_3"> |Z|  (f: x y -- |z| ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_abs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_box</text:p>
 <text:h text:style-name="Heading_20_3"> ZBOX  (f: z -- box[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_box</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Defined *only* for zero and infinite arguments. This difffers
  from Kahan's <text:span text:style-name="Source_20_Text">CBOX</text:span> [p. 198] by conserving signs when only
  one of x or y is infinite, consistent with the other cases, and
  with its use in his <text:span text:style-name="Source_20_Text">ARG</text:span> [p. 199].
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_arg</text:p>
 <text:h text:style-name="Heading_20_3"> ARG  (f: z -- principal.arg[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_arg</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_to_polar</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;POLAR  (f: x y -- r theta ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_polar</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Convert the complex number z to its polar representation,
  where theta is the principal argument.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_polar_from</text:p>
 <text:h text:style-name="Heading_20_3"> POLAR&gt;  (f: r theta -- x y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_polar_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_ssqs</text:p>
 <text:h text:style-name="Heading_20_3"> ZSSQS  (f: z -- rho s: k ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_ssqs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Compute rho = |(x+iy)/2^k|^2, scaled to avoid overflow or
  underflow, and leave the scaling integer k.  Kahan, p. 200.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_sqrt</text:p>
 <text:h text:style-name="Heading_20_3"> ZSQRT  (f: z -- sqrt[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_sqrt</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Compute the principal branch of the square root, with
  Re sqrt[z] &gt;= 0.  Kahan, p. 201.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_ln</text:p>
 <text:h text:style-name="Heading_20_3"> ZLN  (f: z -- ln|z|+i*theta ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_ln</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Compute the principal branch of the complex natural
  logarithm. The angle theta is the principal argument.  This
  code uses Kahan's algorithm for the scaled logarithm
  <text:span text:style-name="Source_20_Text">CLOGS(z,J)</text:span> = ln(z*2^J), with J=0 and blind choices of the
  threshholds T0, T1, and T2.  Namely, T0 = 1/sqrt(2), T1 =
  5/4, and T2 = 3;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_exp</text:p>
 <text:h text:style-name="Heading_20_3"> ZEXP  (f: z -- exp[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_exp</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_hat</text:p>
 <text:h text:style-name="Heading_20_3"> Z^  (f: x y u v -- [x+iy]^[u+iv] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_hat</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Compute in terms of the principal argument of x+iy.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_cosh</text:p>
 <text:h text:style-name="Heading_20_3"> ZCOSH  (f: z -- cosh[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_cosh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_sinh</text:p>
 <text:h text:style-name="Heading_20_3"> ZSINH  (f: z -- sinh[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_sinh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_tanh</text:p>
 <text:h text:style-name="Heading_20_3"> ZTANH  (f: z -- tanh[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_tanh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan, p. 204, including his divide by zero signal
  suppression for infinite values of <text:span text:style-name="Source_20_Text">tan()</text:span>.  To quote the very
  informative "=&gt;'man math'" on our Darwin system about IEEE 754:
  "Divide-by-Zero is signaled only when a function takes
  exactly infinite values at finite operands."
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_coth</text:p>
 <text:h text:style-name="Heading_20_3"> ZCOTH  (f: z -- 1/tanh[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_coth</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_cos</text:p>
 <text:h text:style-name="Heading_20_3"> ZCOS  (f: z -- cosh[i*z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_cos</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_sin</text:p>
 <text:h text:style-name="Heading_20_3"> ZSIN  (f: z -- -i*sinh[i*z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_sin</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_tan</text:p>
 <text:h text:style-name="Heading_20_3"> ZTAN  (f: z -- -i*tanh[i*z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_tan</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_cot</text:p>
 <text:h text:style-name="Heading_20_3"> ZCOT  (f: z -- -i*coth[-i*z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_cot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_acos</text:p>
 <text:h text:style-name="Heading_20_3"> ZACOS  (f: z -- u+iv=acos[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_acos</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan, p.202.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_acosh</text:p>
 <text:h text:style-name="Heading_20_3"> ZACOSH  (f: z -- u+iv=acosh[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_acosh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan, p.203.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_asin</text:p>
 <text:h text:style-name="Heading_20_3"> ZASIN  (f: z -- u+iv=asin[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_asin</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan, p.203.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_asinh</text:p>
 <text:h text:style-name="Heading_20_3"> ZASINH  (f: z -- -i*asin[i*z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_asinh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan, p. 203, couth.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_atanh</text:p>
 <text:h text:style-name="Heading_20_3"> ZATANH  (f: z -- u+iv=atanh[z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_atanh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan, p. 203.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_atan</text:p>
 <text:h text:style-name="Heading_20_3"> ZATAN  (f: z -- -i*atanh[i*z] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_atan</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Kahan, p. 204, couth.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_constant</text:p>
 <text:h text:style-name="Heading_20_3"> ZCONSTANT ( "name" f: z -- )  "name" execution: (f: -- z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_constant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Define a word that leaves x+iy on the fp stack upon execution.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_literal</text:p>
 <text:h text:style-name="Heading_20_3"> ZLITERAL    Compilation: (f: z -- )  Run: (f: -- z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_literal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_z_variable</text:p>
 <text:h text:style-name="Heading_20_3"> ZVARIABLE  ( "name" -- )  "name" exection: ( -- zaddr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_variable</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Allocate aligned memory for an fp complex number, with the
  real part first in memory, and define a word that leaves
  the address on the data stack.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_store</text:p>
 <text:h text:style-name="Heading_20_3"> ! ( value some-cell* -- | value addr* -- [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store value at addr (sizeof <text:span text:style-name="Source_20_Text">CELL</text:span>)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh</text:p>
 <text:h text:style-name="Heading_20_3"> # ( n,n -- n,n' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see also <text:span text:style-name="Source_20_Text">HOLD</text:span> for old-style forth-formatting words
  and <text:span text:style-name="Source_20_Text">PRINTF</text:span> of the C-style formatting - this word
  divides the argument by <text:span text:style-name="Source_20_Text">BASE</text:span> and add it to the
  picture space - it should be used inside of <text:span text:style-name="Source_20_Text">&lt;#</text:span>
  and <text:span text:style-name="Source_20_Text">#&gt;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_greater</text:p>
 <text:h text:style-name="Heading_20_3"> #&gt; ( n,n -- hold-str-ptr hold-str-len ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_greater</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see also <text:span text:style-name="Source_20_Text">HOLD</text:span> for old-style forth-formatting words
  and <text:span text:style-name="Source_20_Text">PRINTF</text:span> of the C-style formatting - this word
  drops the argument and returns the picture space
  buffer
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sh_s</text:p>
 <text:h text:style-name="Heading_20_3"> #S ( n,n -- 0,0 ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sh_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see also <text:span text:style-name="Source_20_Text">HOLD</text:span> for old-style forth-formatting words
  and <text:span text:style-name="Source_20_Text">PRINTF</text:span> of the C-style formatting - this word
  does repeat the word <text:span text:style-name="Source_20_Text">#</text:span> for a number of times, until
  the argument becomes zero. Hence the result is always
  null - it should be used inside of <text:span text:style-name="Source_20_Text">&lt;#</text:span> and <text:span text:style-name="Source_20_Text">#&gt;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_tick</text:p>
 <text:h text:style-name="Heading_20_3"> "'" ( 'name' -- name-xt* ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_tick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the execution token of the following name. This word
  is _not_ immediate and may not do what you expect in
  compile-mode. See <text:span text:style-name="Source_20_Text">[']</text:span> and <text:span text:style-name="Source_20_Text">'&gt;</text:span> - note that in FIG-forth
  the word of the same name had returned the PFA (not the CFA)
  and was immediate/smart, so beware when porting forth-code
  from FIG-forth to ANSI-forth.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren</text:p>
 <text:h text:style-name="Heading_20_3"> "("  ( 'comment&lt;closeparen;&gt;' -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  eat everything up to the next closing paren - treat it
  as a comment.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_star</text:p>
 <text:h text:style-name="Heading_20_3"> "*" ( a# b# -- mul-a#' | a b -- mul-a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the multiply of the two args
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_star_slash</text:p>
 <text:h text:style-name="Heading_20_3"> "*\/" ( a# b# c# -- scale-a#' | a b c -- scale-a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_star_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  regard the b/c as element Q - this word
  has an advantage over the sequence of <text:span text:style-name="Source_20_Text">*</text:span>
  and <text:span text:style-name="Source_20_Text">/</text:span> by using an intermediate double-cell
  value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_star_slash_mod</text:p>
 <text:h text:style-name="Heading_20_3"> "*\/MOD" ( a# b# c# -- div-a# mod-a# | a b c -- div-a mod-a [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_star_slash_mod</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  has an adavantage over the sequence of <text:span text:style-name="Source_20_Text">*</text:span>
  and <text:span text:style-name="Source_20_Text">/MOD</text:span> by using an intermediate double-cell
  value.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus</text:p>
 <text:h text:style-name="Heading_20_3"> + ( a* b# -- a*' | a# b* -- b*' | a# b# -- a#' | a b -- a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the sum of the two args
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_store</text:p>
 <text:h text:style-name="Heading_20_3"> +! ( value# some-cell* -- | value some* -- [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_plus_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  add val to the value found in addr
</text:p><screen>  simulate:
    : +! TUCK @ + SWAP ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_loop_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((+LOOP))" ( increment# -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_plus_loop_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">+LOOP</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_loop</text:p>
 <text:h text:style-name="Heading_20_3"> +LOOP ( increment# R: some,loop -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_plus_loop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compile <text:span text:style-name="Source_20_Text">((+LOOP))</text:span> which will use the increment
  as the loop-offset instead of just 1. See the
  <text:span text:style-name="Source_20_Text">DO</text:span> and <text:span text:style-name="Source_20_Text">LOOP</text:span> construct.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_comma</text:p>
 <text:h text:style-name="Heading_20_3"> "," ( value* -- | value# -- | value -- [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store the value in the dictionary
</text:p><screen>  simulate:
    : , DP  1 CELLS DP +!  ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_minus</text:p>
 <text:h text:style-name="Heading_20_3"> "-" ( a* b# -- a*' | a# b* -- b*' | a# b# -- a#' | a* b* -- diff-b#' | a b -- a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the difference of the two arguments
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot</text:p>
 <text:h text:style-name="Heading_20_3"> "." ( value# -- | value* -- [?] | value -- [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print the numerical value to stdout - uses <text:span text:style-name="Source_20_Text">BASE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_quote_execution</text:p>
 <text:h text:style-name="Heading_20_3"> '((.\"))' ( -- ) [HIDDEN] skipstring </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_dot_quote_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by =&gt; ." string"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_quote</text:p>
 <text:h text:style-name="Heading_20_3"> '.\"' ( [string&lt;"&gt;] -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print the string to stdout
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash</text:p>
 <text:h text:style-name="Heading_20_3"> "/" ( a# b#  -- a#' | a b -- a' [???] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the quotient of the two arguments
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash_mod</text:p>
 <text:h text:style-name="Heading_20_3"> "/MOD" ( a# b# -- div-a#' mod-a#' | a b -- div-a' mod-a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash_mod</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  divide a and b and return both
  quotient n and remainder m
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_less</text:p>
 <text:h text:style-name="Heading_20_3"> 0&lt; ( value -- test-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_less</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a flag that is true if val is lower than zero
</text:p><screen>  simulate:
   : 0&amp;lt; 0 &amp;lt; ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_equal</text:p>
 <text:h text:style-name="Heading_20_3"> 0= ( 0 -- test-flag! | value! -- 0 | value -- test-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a flag that is true if val is just zero
</text:p><screen>  simulate:
   : 0= 0 = ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_one_plus</text:p>
 <text:h text:style-name="Heading_20_3"> 1+ ( value -- value' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_one_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the value incremented by one
</text:p><screen>  simulate:
   : 1+ 1 + ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_one_minus</text:p>
 <text:h text:style-name="Heading_20_3"> 1- ( value -- value' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_one_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the value decremented by one
</text:p><screen>  simulate:
    : 1- 1 - ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_store</text:p>
 <text:h text:style-name="Heading_20_3"> 2! ( x,x variable* -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  double-cell store
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_star</text:p>
 <text:h text:style-name="Heading_20_3"> 2* ( a# -- a#' | a -- a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  multiplies the value with two - but it
  does actually use a shift1 to be faster
</text:p><screen>  simulate:
   : 2* 2 * ; ( canonic) : 2* 1 LSHIFT ; ( usual)
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_slash</text:p>
 <text:h text:style-name="Heading_20_3"> 2/ ( a# -- a#' | a -- a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  divides the value by two - but it
  does actually use a shift1 to be faster
</text:p><screen>  simulate:
   : 2/ 2 / ; ( canonic) : 2/ 1 RSHIFT ; ( usual)
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> 2@ ( variable* -- x,x ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  double-cell fetch
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_drop</text:p>
 <text:h text:style-name="Heading_20_3"> 2DROP ( a b -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  double-cell drop, also used to drop two items
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_dup</text:p>
 <text:h text:style-name="Heading_20_3"> 2DUP ( a,a -- a,a a,a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  double-cell duplication, also used to duplicate
  two items
</text:p><screen>  simulate:
    : 2DUP OVER OVER ; ( wrong would be : 2DUP DUP DUP ; !!)
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_over</text:p>
 <text:h text:style-name="Heading_20_3"> 2OVER ( a,a b,b -- a,a b,b a,a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_over</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  double-cell over, see <text:span text:style-name="Source_20_Text">OVER</text:span> and <text:span text:style-name="Source_20_Text">2DUP</text:span>
</text:p><screen>  simulate:
    : 2OVER SP@ 2 CELLS + 2@ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_swap</text:p>
 <text:h text:style-name="Heading_20_3"> 2SWAP ( a,a b,b -- b,b a,a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_swap</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  double-cell swap, see <text:span text:style-name="Source_20_Text">SWAP</text:span> and <text:span text:style-name="Source_20_Text">2DUP</text:span>
</text:p><screen>  simulate:
    : 2SWAP LOCALS| B1 B2 A1 A2 | B2 B1 A2 A1 ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_colon_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "(NEST)" ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_colon_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">:</text:span>
  (see also <text:span text:style-name="Source_20_Text">(NONAME)</text:span> compiled by <text:span text:style-name="Source_20_Text">:NONAME</text:span> )
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_colon</text:p>
 <text:h text:style-name="Heading_20_3"> ":" ( 'name' -- ) [ANS] [NEW] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_colon</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a header for a nesting word and go to compiling
  mode then. This word is usually ended with <text:span text:style-name="Source_20_Text">;</text:span> but
  the execution of the resulting colon-word can also
  return with <text:span text:style-name="Source_20_Text">EXIT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_semicolon_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((;))" ( -- ) [HIDDEN] [EXIT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_semicolon_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">;</text:span> and maybe <text:span text:style-name="Source_20_Text">;AND</text:span> --
  it will perform an <text:span text:style-name="Source_20_Text">EXIT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_semicolon</text:p>
 <text:h text:style-name="Heading_20_3"> ";" ( -- ) [ANS] [EXIT] [END] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_semicolon</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiles <text:span text:style-name="Source_20_Text">((;))</text:span> which does <text:span text:style-name="Source_20_Text">EXIT</text:span> the current
  colon-definition. It does then end compile-mode
  and returns to execute-mode. See <text:span text:style-name="Source_20_Text">:</text:span> and <text:span text:style-name="Source_20_Text">:NONAME</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_less_than</text:p>
 <text:h text:style-name="Heading_20_3"> &lt; ( a* b* -- test-flag | a# b# -- test-flag | a b -- test-flag [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_less_than</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a flag telling if a is lower than b
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_less_sh</text:p>
 <text:h text:style-name="Heading_20_3"> &lt;# ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_less_sh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see also <text:span text:style-name="Source_20_Text">HOLD</text:span> for old-style forth-formatting words
  and <text:span text:style-name="Source_20_Text">PRINTF</text:span> of the C-style formatting - this word
  does initialize the pictured numeric output space.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_equals</text:p>
 <text:h text:style-name="Heading_20_3"> = ( a* b* -- test-flag | a# b# -- test-flag | a b -- test-flag [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_equals</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a flag telling if a is equal to b
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_greater_than</text:p>
 <text:h text:style-name="Heading_20_3"> &gt; ( a* b* -- test-flag | a# b# -- test-flag | a b -- test-flag [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_greater_than</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a flag telling if a is greater than b
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_body</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;BODY ( some-xt* -- some-body* ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_body</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  adjust the execution-token (ie. the CFA) to point
  to the parameter field (ie. the PFA) of a word.
  this is not a constant operation - most words have their
  parameters at "1 CELLS +" but CREATE/DOES-words have the
  parameters at "2 CELLS +" and ROM/USER words go indirect
  with a rom'ed offset i.e. "CELL + @ UP +"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_number</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;NUMBER ( a,a str-ptr str-len -- a,a' str-ptr' str-len) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_number</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  try to convert a string into a number, and place
  that number at a,a respeciting <text:span text:style-name="Source_20_Text">BASE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_r</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;R ( value -- R: value ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_r</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  save the value onto the return stack. The return
  stack must be returned back to clean state before
  an exit and you should note that the return-stack
  is also touched by the <text:span text:style-name="Source_20_Text">DO</text:span> ... <text:span text:style-name="Source_20_Text">WHILE</text:span> loop.
  Use <text:span text:style-name="Source_20_Text">R&gt;</text:span> to clean the stack and <text:span text:style-name="Source_20_Text">R@</text:span> to get the
  last value put by <text:span text:style-name="Source_20_Text">&gt;R</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_dup</text:p>
 <text:h text:style-name="Heading_20_3"> ?DUP ( 0 -- 0 | value! -- value! value! | value -- 0 | value! value! ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  one of the rare words whose stack-change is
  condition-dependet. This word will duplicate
  the value only if it is not zero. The usual
  place to use it is directly before a control-word
  that can go to different places where we can
  spare an extra <text:span text:style-name="Source_20_Text">DROP</text:span> on the is-null-part.
  This makes the code faster and often a little
  easier to read.
</text:p><screen>  example:
    : XX BEGIN ?DUP WHILE DUP . 2/ REPEAT ; instead of
    : XX BEGIN DUP WHILE DUP . 2/ REPEAT DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> @ ( value* -- value ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch the value from the variables address
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_abs</text:p>
 <text:h text:style-name="Heading_20_3"> ABS ( value# -- value#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_abs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the absolute value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_accept</text:p>
 <text:h text:style-name="Heading_20_3"> ACCEPT ( buffer-ptr buffer-max -- buffer-len ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_accept</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get a string from terminal into the named input
  buffer, returns the number of bytes being stored
  in the buffer. May provide line-editing functions.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_align</text:p>
 <text:h text:style-name="Heading_20_3"> ALIGN ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_align</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will make the dictionary aligned, usually to a
  cell-boundary, see <text:span text:style-name="Source_20_Text">ALIGNED</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_aligned</text:p>
 <text:h text:style-name="Heading_20_3"> ALIGNED ( addr -- addr' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_aligned</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  uses the value (being usually a dictionary-address)
  and increment it to the required alignment for the
  dictionary which is usually in <text:span text:style-name="Source_20_Text">CELLS</text:span> - see also
  <text:span text:style-name="Source_20_Text">ALIGN</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_allot</text:p>
 <text:h text:style-name="Heading_20_3"> ALLOT ( allot-count -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_allot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  make room in the dictionary - usually called after
  a <text:span text:style-name="Source_20_Text">CREATE</text:span> word like <text:span text:style-name="Source_20_Text">VARIABLE</text:span> or <text:span text:style-name="Source_20_Text">VALUE</text:span>
  to make for an array of variables. Does not
  initialize the space allocated from the dictionary-heap.
  The count is in bytes - use <text:span text:style-name="Source_20_Text">CELLS</text:span> ALLOT to allocate
  a field of cells.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_and</text:p>
 <text:h text:style-name="Heading_20_3"> AND ( value mask -- value' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_and</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  mask with a bitwise and - be careful when applying
  it to logical values.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_begin</text:p>
 <text:h text:style-name="Heading_20_3"> BEGIN ( -- ) [ANS] [LOOP] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_begin</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  start a control-loop, see <text:span text:style-name="Source_20_Text">WHILE</text:span> and <text:span text:style-name="Source_20_Text">REPEAT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_store</text:p>
 <text:h text:style-name="Heading_20_3"> C! ( value# variable#* -- | value# variable* [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store the byte-value at address, see =&gt; !
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_comma</text:p>
 <text:h text:style-name="Heading_20_3"> C, ( value# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store a new byte-value in the dictionary, implicit 1 ALLOT,
  see =&gt; ,
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> C@ ( value#* -- value# | value* -- value# [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch a byte-value from the address, see <text:span text:style-name="Source_20_Text">@</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cell_plus</text:p>
 <text:h text:style-name="Heading_20_3"> CELL+ ( value -- value' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cell_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  adjust the value by adding a single Cell's width
  - the value is often an address or offset, see <text:span text:style-name="Source_20_Text">CELLS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cells</text:p>
 <text:h text:style-name="Heading_20_3"> CELLS ( value# -- value#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cells</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  scale the value by the sizeof a Cell
  the value is then often applied to an address or
  fed into <text:span text:style-name="Source_20_Text">ALLOT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_char</text:p>
 <text:h text:style-name="Heading_20_3"> CHAR ( 'word' -- char# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_char</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the (ascii-)value of the following word's
  first character.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_char_plus</text:p>
 <text:h text:style-name="Heading_20_3"> CHAR+ ( value -- value' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_char_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  increment the value by the sizeof one char
  - the value is often a pointer or an offset,
  see <text:span text:style-name="Source_20_Text">CHARS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_chars</text:p>
 <text:h text:style-name="Heading_20_3"> CHARS ( value# -- value#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_chars</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  scale the value by the sizeof a char
  - the value is then often applied to an address or
  fed into <text:span text:style-name="Source_20_Text">ALLOT</text:span> (did you expect that sizeof(p4char)
  may actually yield 2 bytes?)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_constant_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "((CONSTANT))" ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_constant_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime compiled by <text:span text:style-name="Source_20_Text">CONSTANT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_constant</text:p>
 <text:h text:style-name="Heading_20_3"> CONSTANT ( value 'name' -- ) [ANS] [DOES: -- value ] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_constant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CREATE</text:span> a new word with runtime <text:span text:style-name="Source_20_Text">((CONSTANT))</text:span>
  so that the value placed here is returned everytime
  the constant's name is used in code. See <text:span text:style-name="Source_20_Text">VALUE</text:span>
  for constant-like names that are expected to change
  during execution of the program. In a ROM-able
  forth the CONSTANT-value may get into a shared
  ROM-area and is never copied to a RAM-address.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_count</text:p>
 <text:h text:style-name="Heading_20_3"> COUNT ( string-bstr* -- string-ptr' string-len | some* -- some*' some-len [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_count</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  usually before calling <text:span text:style-name="Source_20_Text">TYPE</text:span>
</text:p><text:p text:style-name="Text_20_body">
  (as an unwarranted extension, this word does try to be idempotent).
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cr</text:p>
 <text:h text:style-name="Heading_20_3"> CR ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cr</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print a carriage-return/new-line on stdout
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_decimal</text:p>
 <text:h text:style-name="Heading_20_3"> DECIMAL ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_decimal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the <text:span text:style-name="Source_20_Text">BASE</text:span> to 10
</text:p><screen>  simulate:
    : DECIMAL 10 BASE ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_depth</text:p>
 <text:h text:style-name="Heading_20_3"> DEPTH ( -- depth# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_depth</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the depth of the parameter stack before
  the call, see <text:span text:style-name="Source_20_Text">SP@</text:span> - the return-value is in <text:span text:style-name="Source_20_Text">CELLS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((DO))" ( end# start# -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_do_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">DO</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do</text:p>
 <text:h text:style-name="Heading_20_3"> DO ( end# start# | end* start* -- R: some,loop ) [ANS] [LOOP] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   pushes $end and $start onto the return-stack ( <text:span text:style-name="Source_20_Text">&gt;R</text:span> )
   and starts a control-loop that ends with <text:span text:style-name="Source_20_Text">LOOP</text:span> or
   <text:span text:style-name="Source_20_Text">+LOOP</text:span> and may get a break-out with <text:span text:style-name="Source_20_Text">LEAVE</text:span> . The
   loop-variable can be accessed with <text:span text:style-name="Source_20_Text">I</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_variable_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "((VAR))" ( -- pfa ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_variable_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the runtime compiled by <text:span text:style-name="Source_20_Text">VARIABLE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_builds_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "((BUILDS))" ( -- pfa ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_builds_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the runtime compiled by <text:span text:style-name="Source_20_Text">CREATE</text:span> which
  is not much unlike a <text:span text:style-name="Source_20_Text">VARIABLE</text:span>
  (in ANS Forth Mode we reserve an additional DOES-field)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_does_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "((DOES&gt;))" ( -- pfa ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_does_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime compiled by DOES&gt;
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_does_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "(DOES&gt;)" ( -- pfa ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_does_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">DOES&gt;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_does</text:p>
 <text:h text:style-name="Heading_20_3"> "DOES&gt;" ( -- does* ) [ANS] [END] [NEW] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_does</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  does twist the last <text:span text:style-name="Source_20_Text">CREATE</text:span> word to carry
  the <text:span text:style-name="Source_20_Text">(DOES&gt;)</text:span> runtime. That way, using the
  word will execute the code-piece following <text:span text:style-name="Source_20_Text">DOES&gt;</text:span>
  where the pfa of the word is already on stack.
  (note: FIG option will leave pfa+cell since does-rt is stored in pfa)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_builds</text:p>
 <text:h text:style-name="Heading_20_3"> &lt;BUILDS ( 'name' -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_builds</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   make a <text:span text:style-name="Source_20_Text">HEADER</text:span> whose runtime will be changed later
   using <text:span text:style-name="Source_20_Text">DOES&gt;</text:span>  &lt;br /&gt;
   note that ans'forth does not define <text:span text:style-name="Source_20_Text">&lt;BUILDS</text:span> and
   it suggests to use <text:span text:style-name="Source_20_Text">CREATE</text:span> directly. &lt;br /&gt;
   ... if you want to write FIG-programs in pure pfe then you have
   to use <text:span text:style-name="Source_20_Text">CREATE:</text:span> to get the FIG-like meaning of <text:span text:style-name="Source_20_Text">CREATE</text:span> whereas
   the ans-forth <text:span text:style-name="Source_20_Text">CREATE</text:span> is the same as <text:span text:style-name="Source_20_Text">&lt;BUILDS</text:span>
</text:p><screen>  : &amp;lt;BUILDS BL WORD HEADER DOCREATE A, 0 A, ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_drop</text:p>
 <text:h text:style-name="Heading_20_3"> DROP ( a -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  just drop the word on the top of stack, see <text:span text:style-name="Source_20_Text">DUP</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dup</text:p>
 <text:h text:style-name="Heading_20_3"> DUP ( a -- a a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  duplicate the cell on top of the stack - so the
  two topmost cells have the same value (they are
  equal w.r.t <text:span text:style-name="Source_20_Text">=</text:span> ) , see <text:span text:style-name="Source_20_Text">DROP</text:span> for the inverse
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_branch_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "(BRANCH)" ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_branch_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">ELSE</text:span> - just a simple <text:span text:style-name="Source_20_Text">BRANCH</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_else_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((ELSE))" ( -- ) OBSOLETE (FIXME: to be removed in pfe-34) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_else_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_else</text:p>
 <text:h text:style-name="Heading_20_3"> ELSE ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_else</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will compile an <text:span text:style-name="Source_20_Text">((ELSE))</text:span> <text:span text:style-name="Source_20_Text">BRANCH</text:span> that performs an
  unconditional jump to the next <text:span text:style-name="Source_20_Text">THEN</text:span> - and it resolves
  an <text:span text:style-name="Source_20_Text">IF</text:span> for the non-true case
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_emit</text:p>
 <text:h text:style-name="Heading_20_3"> EMIT ( char# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_emit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print the char-value on stack to stdout
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_environment_Q_core</text:p>
 <text:h text:style-name="Heading_20_3"> ENVIRONMENT? ( name-ptr name-len -- 0 | ?? name-flag! ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_environment_Q_core</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check the environment for a property, usually
  a condition like questioning the existance of
  specified wordset, but it can also return some
  implementation properties like "WORDLISTS"
  (the length of the search-order) or "#LOCALS"
  (the maximum number of locals)
</text:p><text:p text:style-name="Text_20_body">  Here it implements the environment queries as a <text:span text:style-name="Source_20_Text">SEARCH-WORDLIST</text:span>
  in a user-visible vocabulary called <text:span text:style-name="Source_20_Text">ENVIRONMENT</text:span>
</text:p><screen>  : ENVIRONMENT?
    ['] ENVIRONMENT &amp;gt;WORDLIST SEARCH-WORDLIST
    IF  EXECUTE TRUE ELSE  FALSE THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_evaluate</text:p>
 <text:h text:style-name="Heading_20_3"> EVALUATE ( str-ptr str-len -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_evaluate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">INTERPRET</text:span> the given string, <text:span text:style-name="Source_20_Text">SOURCE</text:span> id
  is -1 during that time.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_execute</text:p>
 <text:h text:style-name="Heading_20_3"> EXECUTE ( some-xt* -- ??? ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_execute</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  run the execution-token on stack - this will usually
  trap if it was null for some reason, see <text:span text:style-name="Source_20_Text">&gt;EXECUTE</text:span>
</text:p><screen>  simulate:
   : EXECUTE &amp;gt;R EXIT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_exit</text:p>
 <text:h text:style-name="Heading_20_3"> EXIT ( -- ) [ANS] [EXIT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_exit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will unnest the current colon-word so it will actually
  return the word calling it. This can be found in the
  middle of a colon-sequence between <text:span text:style-name="Source_20_Text">:</text:span> and <text:span text:style-name="Source_20_Text">;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fill</text:p>
 <text:h text:style-name="Heading_20_3"> FILL ( mem-ptr mem-len char# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_fill</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fill a memory area with the given char, does now
  simply call p4_memset()
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_find</text:p>
 <text:h text:style-name="Heading_20_3"> FIND ( name-bstr* -- name-bstr* 0 | name-xt* -1|1 ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_find</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  looks into the current search-order and tries to find
  the name string as the name of a word. Returns its
  execution-token or the original-bstring if not found,
  along with a flag-like value that is zero if nothing
  could be found. Otherwise it will be 1 (a positive value)
  if the word had been immediate, -1 otherwise (a negative
  value).
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_m_slash_mod</text:p>
 <text:h text:style-name="Heading_20_3"> "FM/MOD" ( n1,n1# n2# -- div-n1# mod-n1# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_m_slash_mod</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  divide the double-cell value n1 by n2 and return
  both (floored) quotient n and remainder m
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_here</text:p>
 <text:h text:style-name="Heading_20_3"> HERE ( -- here* ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_here</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  used with <text:span text:style-name="Source_20_Text">WORD</text:span> and many compiling words
</text:p><screen>  simulate:   : HERE DP @ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_hold</text:p>
 <text:h text:style-name="Heading_20_3"> HOLD ( char# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_hold</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the old-style forth-formatting system -- this
  word adds a char to the picutred output string.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_i</text:p>
 <text:h text:style-name="Heading_20_3"> I ( R: some,loop -- S: i# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_i</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns the index-value of the innermost <text:span text:style-name="Source_20_Text">DO</text:span> .. <text:span text:style-name="Source_20_Text">LOOP</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_q_branch_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "(?BRANCH)" ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_q_branch_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution word compiled by <text:span text:style-name="Source_20_Text">IF</text:span> - just some simple =&gt; ?BRANCH
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_if_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((IF))" ( -- ) OBSOLETE (FIXME: to be removed in pfe-34) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_if_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  use <text:span text:style-name="Source_20_Text">(?BRANCH)</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_if</text:p>
 <text:h text:style-name="Heading_20_3"> IF ( value -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_if</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  checks the value on the stack (at run-time, not compile-time)
  and if true executes the code-piece between <text:span text:style-name="Source_20_Text">IF</text:span> and the next
  <text:span text:style-name="Source_20_Text">ELSE</text:span> or <text:span text:style-name="Source_20_Text">THEN</text:span> . Otherwise it has compiled a branch over
  to be executed if the value on stack had been null at run-time.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_immediate</text:p>
 <text:h text:style-name="Heading_20_3"> IMMEDIATE ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_immediate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  make the <text:span text:style-name="Source_20_Text">LATEST</text:span> word immediate, see also <text:span text:style-name="Source_20_Text">CREATE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_invert</text:p>
 <text:h text:style-name="Heading_20_3"> INVERT ( value# -- value#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_invert</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  make a bitwise negation of the value on stack.
  see also <text:span text:style-name="Source_20_Text">NEGATE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_j</text:p>
 <text:h text:style-name="Heading_20_3"> J ( R: some,loop -- S: j# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_j</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the current <text:span text:style-name="Source_20_Text">DO</text:span> ... <text:span text:style-name="Source_20_Text">LOOP</text:span> index-value being
  the not-innnermost. (the second-innermost...)
  see also for the other loop-index-values at
  <text:span text:style-name="Source_20_Text">I</text:span> and <text:span text:style-name="Source_20_Text">K</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_key</text:p>
 <text:h text:style-name="Heading_20_3"> KEY ( -- char# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_key</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a single character from the keyboard - the
  key is not echoed.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_leave</text:p>
 <text:h text:style-name="Heading_20_3"> LEAVE ( R: some,loop -- R: some,loop ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_leave</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  quit the innermost <text:span text:style-name="Source_20_Text">DO</text:span> .. <text:span text:style-name="Source_20_Text">LOOP</text:span>  - it does even
  clean the return-stack and branches to the place directly
  after the next <text:span text:style-name="Source_20_Text">LOOP</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_literal_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((LIT))" ( -- value ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_literal_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">LITERAL</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_literal</text:p>
 <text:h text:style-name="Heading_20_3"> LITERAL ( C: value -- S: value ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_literal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if compiling this will take the value from the compiling-stack
  and puts in dictionary so that it will pop up again at the
  run-time of the word currently in creation. This word is used
  in compiling words but may also be useful in making a hard-constant
  value in some code-piece like this:
</text:p><screen>  : DCELLS [ 2 CELLS ] LITERAL * ; ( will save a multiplication at runtime)
</screen><text:p text:style-name="Text_20_body">  (in most configurations this word is statesmart and it will do nothing
   in interpret-mode. See <text:span text:style-name="Source_20_Text">LITERAL,</text:span> for a non-immediate variant)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_loop_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((LOOP))" ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_loop_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">LOOP</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_loop</text:p>
 <text:h text:style-name="Heading_20_3"> LOOP ( R: some,loop -- ) [ANS] [REPEAT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_loop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  resolves a previous <text:span text:style-name="Source_20_Text">DO</text:span> thereby compiling <text:span text:style-name="Source_20_Text">((LOOP))</text:span> which
  does increment/decrement the index-value and branch back if
  the end-value of the loop has not been reached.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_l_shift</text:p>
 <text:h text:style-name="Heading_20_3"> LSHIFT ( value# shift-count -- value#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_l_shift</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  does a bitwise left-shift on value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_m_star</text:p>
 <text:h text:style-name="Heading_20_3"> M* ( a# b# -- a,a#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_m_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  multiply and return a double-cell result
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_max</text:p>
 <text:h text:style-name="Heading_20_3"> MAX ( a# b# -- a#|b# | a* b* -- a*|b* | a b -- a|b [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_max</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the maximum of a and b
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_min</text:p>
 <text:h text:style-name="Heading_20_3"> MIN ( a# b# -- a#|b# | a* b* -- a*|b* | a b -- a|b [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_min</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the minimum of a and b
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_mod</text:p>
 <text:h text:style-name="Heading_20_3"> MOD ( a# b# -- mod-a# | a b# -- mod-a# [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_mod</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the module of "a mod b"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_move</text:p>
 <text:h text:style-name="Heading_20_3"> MOVE ( from-ptr to-ptr move-len -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_move</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  p4_memcpy an area
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_negate</text:p>
 <text:h text:style-name="Heading_20_3"> NEGATE ( value# -- value#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_negate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the arithmetic negative of the (signed) cell
</text:p><screen>  simulate:   : NEGATE -1 * ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_or</text:p>
 <text:h text:style-name="Heading_20_3"> OR ( a b# -- a' | a# b -- b' | a b -- a' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_or</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the bitwise OR of a and b - unlike <text:span text:style-name="Source_20_Text">AND</text:span> this
  is usually safe to use on logical values
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_over</text:p>
 <text:h text:style-name="Heading_20_3"> OVER ( a b -- a b a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_over</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the value from under the top of stack. The inverse
  operation would be <text:span text:style-name="Source_20_Text">TUCK</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_postpone_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((POSTPONE))" ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_postpone_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">POSTPONE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_postpone</text:p>
 <text:h text:style-name="Heading_20_3"> POSTPONE ( [word] -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_postpone</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will compile the following word at the run-time of the
  current-word which is a compiling-word. The point is that
  <text:span text:style-name="Source_20_Text">POSTPONE</text:span> takes care of the fact that word may be
  an IMMEDIATE-word that flags for a compiling word, so it
  must be executed (and not pushed directly) to compile
  sth. later. Choose this word in favour of <text:span text:style-name="Source_20_Text">COMPILE</text:span>
  (for non-immediate words) and <text:span text:style-name="Source_20_Text">[COMPILE]</text:span> (for immediate
  words)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_quit</text:p>
 <text:h text:style-name="Heading_20_3"> QUIT ( -- ) [EXIT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_quit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  this will throw and lead back to the outer-interpreter.
  traditionally, the outer-interpreter is called QUIT
  in forth itself where the first part of the QUIT-word
  had been to clean the stacks (and some other variables)
  and then turn to an endless loop containing <text:span text:style-name="Source_20_Text">QUERY</text:span>
  and <text:span text:style-name="Source_20_Text">EVALUATE</text:span> (otherwise known as <text:span text:style-name="Source_20_Text">INTERPRET</text:span> )
  - in pfe it is defined as a <text:span text:style-name="Source_20_Text">THROW</text:span> ,
</text:p><screen>  : QUIT -56 THROW ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_from</text:p>
 <text:h text:style-name="Heading_20_3"> R&gt; ( R: a -- a R: ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get back a value from the return-stack that had been saved
  there using <text:span text:style-name="Source_20_Text">&gt;R</text:span> . This is the traditional form of a local
  var space that could be accessed with <text:span text:style-name="Source_20_Text">R@</text:span> later. If you
  need more local variables you should have a look at <text:span text:style-name="Source_20_Text">LOCALS|</text:span>
  which does grab some space from the return-stack too, but names
  them the way you like.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> R@ ( R: a -- a R: a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch the (upper-most) value from the return-stack that had
  been saved there using <text:span text:style-name="Source_20_Text">&gt;R</text:span> - This is the traditional form of a local
  var space. If you need more local variables you should have a
  look at <text:span text:style-name="Source_20_Text">LOCALS|</text:span> , see also <text:span text:style-name="Source_20_Text">&gt;R</text:span> and <text:span text:style-name="Source_20_Text">R&gt;</text:span> . Without LOCALS-EXT
  there are useful words like <text:span text:style-name="Source_20_Text">2R@</text:span> <text:span text:style-name="Source_20_Text">R'@</text:span> <text:span text:style-name="Source_20_Text">R"@</text:span> <text:span text:style-name="Source_20_Text">R!</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_recurse</text:p>
 <text:h text:style-name="Heading_20_3"> RECURSE ( ? -- ? ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_recurse</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  when creating a colon word the name of the currently-created
  word is smudged, so that you can redefine a previous word
  of the same name simply by using its name. Sometimes however
  one wants to recurse into the current definition instead of
  calling the older defintion. The <text:span text:style-name="Source_20_Text">RECURSE</text:span> word does it
  exactly this.
</text:p><screen>    traditionally the following code had been in use:
    : GREAT-WORD [ UNSMUDGE ] DUP . 1- ?DUP IF GREAT-WORD THEN ;
    now use
    : GREAT-WORD DUP . 1- ?DUP IF RECURSE THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_repeat</text:p>
 <text:h text:style-name="Heading_20_3"> REPEAT ( -- ) [ANS] [REPEAT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_repeat</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  ends an unconditional loop, see <text:span text:style-name="Source_20_Text">BEGIN</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rot</text:p>
 <text:h text:style-name="Heading_20_3"> ROT ( a b c -- b c a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  rotates the three uppermost values on the stack,
  the other direction would be with <text:span text:style-name="Source_20_Text">-ROT</text:span> - please
  have a look at <text:span text:style-name="Source_20_Text">LOCALS|</text:span> and <text:span text:style-name="Source_20_Text">VAR</text:span> that can avoid
  its use.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_shift</text:p>
 <text:h text:style-name="Heading_20_3"> RSHIFT ( value# shift-count# -- value#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_shift</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  does a bitwise logical right-shift on value
  (ie. the value is considered to be unsigned)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_quote_execution</text:p>
 <text:h text:style-name="Heading_20_3"> '((S"))' ( -- string-ptr string-len ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_s_quote_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">S"</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'S"' ( [string&lt;"&gt;] -- string-ptr string-len) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if compiling then place the string into the currently
  compiled word and on execution the string pops up
  again as a double-cell value yielding the string's address
  and length. To be most portable this is the word to be
  best being used. Compare with <text:span text:style-name="Source_20_Text">C"</text:span> and non-portable <text:span text:style-name="Source_20_Text">"</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_to_d</text:p>
 <text:h text:style-name="Heading_20_3"> S&gt;D ( a# -- a,a#' | a -- a,a#' [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_to_d</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  signed extension of a single-cell value to a double-cell value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sign</text:p>
 <text:h text:style-name="Heading_20_3"> SIGN ( a# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sign</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  put the sign of the value into the hold-space, this is
  the forth-style output formatting, see <text:span text:style-name="Source_20_Text">HOLD</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_m_slash_rem</text:p>
 <text:h text:style-name="Heading_20_3"> SM/REM ( a,a# b# -- div-a# rem-a# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_m_slash_rem</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">/MOD</text:span> or <text:span text:style-name="Source_20_Text">FM/MOD</text:span> or <text:span text:style-name="Source_20_Text">UM/MOD</text:span> or <text:span text:style-name="Source_20_Text">SM/REM</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_source</text:p>
 <text:h text:style-name="Heading_20_3"> SOURCE ( -- buffer* IN-offset# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_source</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   the current point of interpret can be gotten through SOURCE.
   The buffer may flag out TIB or BLK or a FILE and IN gives
   you the offset therein. Traditionally, if the current SOURCE
   buffer is used up, <text:span text:style-name="Source_20_Text">REFILL</text:span> is called that asks for another
   input-line or input-block. This scheme would have made it
   impossible to stretch an [IF] ... [THEN] over different blocks,
   unless [IF] does call <text:span text:style-name="Source_20_Text">REFILL</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_space</text:p>
 <text:h text:style-name="Heading_20_3"> SPACE ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_space</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print a single space to stdout, see <text:span text:style-name="Source_20_Text">SPACES</text:span>
</text:p><screen>  simulate:    : SPACE  BL EMIT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_spaces</text:p>
 <text:h text:style-name="Heading_20_3"> SPACES ( space-count -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_spaces</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print n space to stdout, actually a loop over n calling <text:span text:style-name="Source_20_Text">SPACE</text:span> ,
  but the implemenation may take advantage of printing chunks of
  spaces to speed up the operation.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_swap</text:p>
 <text:h text:style-name="Heading_20_3"> SWAP ( a b -- b a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_swap</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  exchanges the value on top of the stack with the value beneath it
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_then</text:p>
 <text:h text:style-name="Heading_20_3"> THEN ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_then</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  does resolve a branch coming from either <text:span text:style-name="Source_20_Text">IF</text:span> or <text:span text:style-name="Source_20_Text">ELSE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_type</text:p>
 <text:h text:style-name="Heading_20_3"> TYPE ( string-ptr string-len -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_type</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  prints the string-buffer to stdout, see <text:span text:style-name="Source_20_Text">COUNT</text:span> and <text:span text:style-name="Source_20_Text">EMIT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_dot</text:p>
 <text:h text:style-name="Heading_20_3"> U. ( value# -- | value -- [?] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print unsigned number to stdout
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_less_than</text:p>
 <text:h text:style-name="Heading_20_3"> U&lt; ( a b -- test-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_less_than</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  unsigned comparison, see <text:span text:style-name="Source_20_Text">&lt;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_m_star</text:p>
 <text:h text:style-name="Heading_20_3"> UM* ( a# b# -- a,a#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_m_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  unsigned multiply returning double-cell value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_m_slash_mod</text:p>
 <text:h text:style-name="Heading_20_3"> "UM/MOD" ( a,a# b# -- div-a#' mod-a#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_m_slash_mod</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">/MOD</text:span> and <text:span text:style-name="Source_20_Text">SM/REM</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_unloop</text:p>
 <text:h text:style-name="Heading_20_3"> UNLOOP ( R: some,loop -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_unloop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  drop the <text:span text:style-name="Source_20_Text">DO</text:span> .. <text:span text:style-name="Source_20_Text">LOOP</text:span> runtime variables from the return-stack,
  usually used just in before an <text:span text:style-name="Source_20_Text">EXIT</text:span> call. Using this multiple
  times can unnest multiple nested loops.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_until</text:p>
 <text:h text:style-name="Heading_20_3"> UNTIL ( test-flag -- ) [ANS] [REPEAT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_until</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  ends an control-loop, see <text:span text:style-name="Source_20_Text">BEGIN</text:span> and compare with <text:span text:style-name="Source_20_Text">WHILE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_variable</text:p>
 <text:h text:style-name="Heading_20_3"> VARIABLE ( 'name' -- ) [ANS] [DOES: -- name* ] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_variable</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CREATE</text:span> a new variable, so that everytime the variable is
  name, the address is returned for using with <text:span text:style-name="Source_20_Text">@</text:span> and =&gt; !
  - be aware that in FIG-forth VARIABLE did take an argument
  being the initial value. ANSI-forth does different here.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_while</text:p>
 <text:h text:style-name="Heading_20_3"> WHILE ( test-flag -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_while</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  middle part of a <text:span text:style-name="Source_20_Text">BEGIN</text:span> .. <text:span text:style-name="Source_20_Text">WHILE</text:span> .. <text:span text:style-name="Source_20_Text">REPEAT</text:span>
  control-loop - if cond is true the code-piece up to <text:span text:style-name="Source_20_Text">REPEAT</text:span>
  is executed which will then jump back to <text:span text:style-name="Source_20_Text">BEGIN</text:span> - and if
  the cond is null then <text:span text:style-name="Source_20_Text">WHILE</text:span> will branch to right after
  the <text:span text:style-name="Source_20_Text">REPEAT</text:span>
  (compare with <text:span text:style-name="Source_20_Text">UNTIL</text:span> that forms a <text:span text:style-name="Source_20_Text">BEGIN</text:span> .. <text:span text:style-name="Source_20_Text">UNTIL</text:span> loop)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_word</text:p>
 <text:h text:style-name="Heading_20_3"> WORD ( delimiter-char# -- here* ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_word</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  read the next <text:span text:style-name="Source_20_Text">SOURCE</text:span> section (thereby moving <text:span text:style-name="Source_20_Text">&gt;IN</text:span> ) up
  to the point reaching $delimiter-char - the text is placed
  at <text:span text:style-name="Source_20_Text">HERE</text:span> - where you will find a counted string. You may
  want to use <text:span text:style-name="Source_20_Text">PARSE</text:span> instead.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_xor</text:p>
 <text:h text:style-name="Heading_20_3"> XOR ( a# b# -- a#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_xor</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the bitwise-or of the two arguments - it may be unsafe
  use it on logical values. beware.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_left_bracket</text:p>
 <text:h text:style-name="Heading_20_3"> [ ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_left_bracket</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  leave compiling mode - often used inside of a colon-definition
  to make fetch some very constant value and place it into the
  currently compiled colon-defintion with =&gt; , or <text:span text:style-name="Source_20_Text">LITERAL</text:span>
  - the corresponding unleave word is <text:span text:style-name="Source_20_Text">]</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_tick</text:p>
 <text:h text:style-name="Heading_20_3"> ['] ( [name] -- name-xt* ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_tick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will place the execution token of the following word into
  the dictionary. See <text:span text:style-name="Source_20_Text">'</text:span> for non-compiling variant.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_char</text:p>
 <text:h text:style-name="Heading_20_3"> [CHAR] ( [word] -- char# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_char</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  in compile-mode, get the (ascii-)value of the first charachter
  in the following word and compile it as a literal so that it
  will pop up on execution again. See <text:span text:style-name="Source_20_Text">CHAR</text:span> and forth-83 <text:span text:style-name="Source_20_Text">ASCII</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_right_bracket</text:p>
 <text:h text:style-name="Heading_20_3"> ] ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_right_bracket</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  enter compiling mode - often used inside of a colon-definition
  to end a previous <text:span text:style-name="Source_20_Text">[</text:span> - you may find a  =&gt; , or <text:span text:style-name="Source_20_Text">LITERAL</text:span>
  nearby in example texts.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_paren</text:p>
 <text:h text:style-name="Heading_20_3"> ".(" ( [message&lt;closeparen;&gt;] -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_paren</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print the message to the screen while reading a file. This works
  too while compiling, so you can whatch the interpretation/compilation
  to go on. Some Forth-implementations won't even accept a =&gt; ." message"
  outside compile-mode while the (current) pfe does.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_r</text:p>
 <text:h text:style-name="Heading_20_3"> .R ( value# precision# -- | value precision# -- [??] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_r</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print with precision - that is to fill
  a field of the give prec-with with
  right-aligned number from the converted value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_not_equals</text:p>
 <text:h text:style-name="Heading_20_3"> "0&lt;&gt;" ( 0 -- 0 | value! -- value-flag! | value -- value-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_not_equals</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns a logical-value saying if the value was not-zero.
  This is most useful in turning a numerical value into a
  boolean value that can be fed into bitwise words like
  <text:span text:style-name="Source_20_Text">AND</text:span> and <text:span text:style-name="Source_20_Text">XOR</text:span> - a simple <text:span text:style-name="Source_20_Text">IF</text:span> or <text:span text:style-name="Source_20_Text">WHILE</text:span> doesn't
  need it actually.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_greater</text:p>
 <text:h text:style-name="Heading_20_3"> 0&gt; ( 0 -- 0 | value! -- value-flag! | value -- value-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_greater</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return value greater than zero
</text:p><screen>  simulate:    : 0&amp;gt; 0 &amp;gt; ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_to_r</text:p>
 <text:h text:style-name="Heading_20_3"> 2&gt;R ( a,a -- R: a,a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_to_r</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  save a double-cell value onto the return-stack, see <text:span text:style-name="Source_20_Text">&gt;R</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_r_from</text:p>
 <text:h text:style-name="Heading_20_3"> 2R&gt; ( R: a,a -- a,a R: ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_r_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  pop back a double-cell value from the return-stack, see <text:span text:style-name="Source_20_Text">R&gt;</text:span>
  and the earlier used <text:span text:style-name="Source_20_Text">2&gt;R</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_r_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> 2R@ ( R: a,a -- a,a R: a,a ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_r_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch a double-cell value from the return-stack, that had been
  previously been put there with <text:span text:style-name="Source_20_Text">2&gt;R</text:span> - see <text:span text:style-name="Source_20_Text">R@</text:span> for single value.
  This can partly be a two-cell <text:span text:style-name="Source_20_Text">LOCALS|</text:span> value,  without LOCALS-EXT
  there are alos other useful words like <text:span text:style-name="Source_20_Text">2R!</text:span> <text:span text:style-name="Source_20_Text">R'@</text:span> <text:span text:style-name="Source_20_Text">R"@</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_colon_noname_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "(NONAME)" ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_colon_noname_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">:NONAME</text:span>
  (see also <text:span text:style-name="Source_20_Text">(NEST)</text:span> compiled by <text:span text:style-name="Source_20_Text">:</text:span> (execution is identical))
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_colon_noname</text:p>
 <text:h text:style-name="Heading_20_3"> :NONAME ( -- C: noname,word ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_colon_noname</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  start a colon nested-word but do not use <text:span text:style-name="Source_20_Text">CREATE</text:span> - so no name
  is given to the colon-definition that follows. When the definition
  is finished at the corresponding <text:span text:style-name="Source_20_Text">;</text:span> the start-address (ie.
  the execution token) can be found on the outer cs.stack that may
  be stored used elsewhere then.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_not_equals</text:p>
 <text:h text:style-name="Heading_20_3"> "&lt;&gt;" ( a b -- a-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_not_equals</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return true if a and b are not equal, see <text:span text:style-name="Source_20_Text">=</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_do_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((?DO))" ( a b -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_Q_do_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by =&gt; ?DO
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_do</text:p>
 <text:h text:style-name="Heading_20_3"> ?DO ( end# start# | end* start* -- R: some,loop ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_do</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  start a control-loop just like <text:span text:style-name="Source_20_Text">DO</text:span> - but don't execute
  atleast once. Instead jump over the code-piece if the loop's
  variables are not in a range to allow any loop.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_again</text:p>
 <text:h text:style-name="Heading_20_3"> AGAIN ( -- ) [ANS] [REPEAT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_again</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  ends an infinite loop, see <text:span text:style-name="Source_20_Text">BEGIN</text:span> and compare with
  <text:span text:style-name="Source_20_Text">WHILE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_quote_execution</text:p>
 <text:h text:style-name="Heading_20_3"> '((C"))' ( -- string-bstr* ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_c_quote_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">C"</text:span> string"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'C"' ( [string&lt;"&gt;] -- string-bstr* ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  in compiling mode place the following string in the current
  word and return the address of the counted string on execution.
  (in exec-mode use a <text:span text:style-name="Source_20_Text">POCKET</text:span> and leave the bstring-address of it),
  see <text:span text:style-name="Source_20_Text">S"</text:span> string" and the non-portable <text:span text:style-name="Source_20_Text">"</text:span> string"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_case</text:p>
 <text:h text:style-name="Heading_20_3"> CASE ( value -- value ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_case</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  start a CASE construct that ends at <text:span text:style-name="Source_20_Text">ENDCASE</text:span>
  and compares the value on stack at each <text:span text:style-name="Source_20_Text">OF</text:span> place
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_compile_comma</text:p>
 <text:h text:style-name="Heading_20_3"> "COMPILE," ( some-xt* -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_compile_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  place the execution-token on stack into the dictionary - in
  traditional forth this is not even the least different than
  a simple =&gt; , but in call-threaded code there's a big
  difference - so COMPILE, is the portable one. Unlike
  <text:span text:style-name="Source_20_Text">COMPILE</text:span> , <text:span text:style-name="Source_20_Text">[COMPILE]</text:span> and <text:span text:style-name="Source_20_Text">POSTPONE</text:span> this word does
  not need the xt to have actually a name, see <text:span text:style-name="Source_20_Text">:NONAME</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_convert</text:p>
 <text:h text:style-name="Heading_20_3"> CONVERT ( a,a# string-bstr* -- a,a# a-len# ) [ANS] [OLD] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_convert</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  digit conversion, obsolete, superseded by <text:span text:style-name="Source_20_Text">&gt;NUMBER</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_endcase</text:p>
 <text:h text:style-name="Heading_20_3"> ENDCASE ( value -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_endcase</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  ends a <text:span text:style-name="Source_20_Text">CASE</text:span> construct that may surround multiple sections of
  <text:span text:style-name="Source_20_Text">OF</text:span> ... <text:span text:style-name="Source_20_Text">ENDOF</text:span> code-portions. The <text:span text:style-name="Source_20_Text">ENDCASE</text:span> has to resolve the
  branches that are necessary at each <text:span text:style-name="Source_20_Text">ENDOF</text:span> to point to right after
  <text:span text:style-name="Source_20_Text">ENDCASE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_endof</text:p>
 <text:h text:style-name="Heading_20_3"> ENDOF ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_endof</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  resolve the branch need at the previous <text:span text:style-name="Source_20_Text">OF</text:span> to mark
  a code-piece and leave with an unconditional branch
  at the next <text:span text:style-name="Source_20_Text">ENDCASE</text:span> (opened by <text:span text:style-name="Source_20_Text">CASE</text:span> )
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_erase</text:p>
 <text:h text:style-name="Heading_20_3"> ERASE ( buffer-ptr buffer-len -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_erase</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fill an area will zeros.
</text:p><screen>  2000 CREATE DUP ALLOT ERASE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_expect</text:p>
 <text:h text:style-name="Heading_20_3"> EXPECT ( str-ptr str-len -- ) [ANS] [OLD] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_expect</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  input handling, see <text:span text:style-name="Source_20_Text">WORD</text:span> and <text:span text:style-name="Source_20_Text">PARSE</text:span> and <text:span text:style-name="Source_20_Text">QUERY</text:span>
  the input string is placed at str-adr and its length
</text:p><screen>  in =&amp;gt; SPAN - this word is superceded by =&amp;gt; ACCEPT
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_hex</text:p>
 <text:h text:style-name="Heading_20_3"> HEX ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_hex</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the input/output <text:span text:style-name="Source_20_Text">BASE</text:span> to hexadecimal
</text:p><screen>  simulate:        : HEX 16 BASE ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_marker</text:p>
 <text:h text:style-name="Heading_20_3"> MARKER ( 'name' -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_marker</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a named marker that you can use to <text:span text:style-name="Source_20_Text">FORGET</text:span> ,
  running the created word will reset the dict/order variables
  to the state at the creation of this name.
</text:p><screen>  : MARKER PARSE-WORD (MARKER) ;
</screen><text:p text:style-name="Text_20_body">  see also <text:span text:style-name="Source_20_Text">ANEW</text:span> which is not defined in ans-forth but which uses
  the <text:span text:style-name="Source_20_Text">MARKER</text:span> functionality in the way it should have been defined.
</text:p><screen>  : MARKER PARSE-WORD (MARKER) ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nip</text:p>
 <text:h text:style-name="Heading_20_3"> NIP ( a b -- b ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  drop the value under the top of stack, inverse of <text:span text:style-name="Source_20_Text">TUCK</text:span>
</text:p><screen>  simulate:        : NIP SWAP DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_of_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((OF))" ( check val -- check ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_of_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">OF</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_of</text:p>
 <text:h text:style-name="Heading_20_3"> OF ( value test -- value ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_of</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compare the case-value placed lately with the comp-value
  being available since <text:span text:style-name="Source_20_Text">CASE</text:span> - if they are equal run the
  following code-portion up to <text:span text:style-name="Source_20_Text">ENDOF</text:span> after which the
  case-construct ends at the next <text:span text:style-name="Source_20_Text">ENDCASE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_pad</text:p>
 <text:h text:style-name="Heading_20_3"> PAD ( -- pad* ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_pad</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  transient buffer region
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parse</text:p>
 <text:h text:style-name="Heading_20_3"> PARSE ( delim-char# -- buffer-ptr buffer-len ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parse</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  parse a piece of input (not much unlike WORD) and place
  it into the given buffer. The difference with word is
  also that <text:span text:style-name="Source_20_Text">WORD</text:span> would first skip any delim-char while
  <text:span text:style-name="Source_20_Text">PARSE</text:span> does not and thus may yield that one. In a newer
  version, <text:span text:style-name="Source_20_Text">PARSE</text:span> will not copy but just return the word-span
  being seen in the input-buffer - therefore a transient space.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parse_word</text:p>
 <text:h text:style-name="Heading_20_3"> PARSE-WORD ( "chars" -- buffer-ptr buffer-len ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parse_word</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the ANS'94 standard describes this word in a comment
  under <text:span text:style-name="Source_20_Text">PARSE</text:span>, section A.6.2.2008 - quote:
</text:p><text:p text:style-name="Text_20_body">
  Skip leading spaces and parse name delimited by a space. c-addr
  is the address within the input buffer and u is the length of the
  selected string. If the parse area is empty, the resulting string
  has a zero length.
</text:p><text:p text:style-name="Text_20_body">
  If both <text:span text:style-name="Source_20_Text">PARSE</text:span> and <text:span text:style-name="Source_20_Text">PARSE-WORD</text:span> are present, the need for <text:span text:style-name="Source_20_Text">WORD</text:span>
  is largely eliminated. Note that Forth200x calls it <text:span text:style-name="Source_20_Text">PARSE-NAME</text:span>
  and clarifies that non-empty whitespace-only input is returned as
  a zero length string as well.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_pick</text:p>
 <text:h text:style-name="Heading_20_3"> PICK ( value ...[n-1] n -- value ...[n-1] value ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_pick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  pick the nth value from under the top of stack and push it
  note that
</text:p><screen>    0 PICK -&amp;gt; DUP         1 PICK -&amp;gt; OVER
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_refill</text:p>
 <text:h text:style-name="Heading_20_3"> REFILL ( -- refill-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_refill</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  try to get a new input line from the <text:span text:style-name="Source_20_Text">SOURCE</text:span> and set
  <text:span text:style-name="Source_20_Text">&gt;IN</text:span> accordingly. Return a flag if sucessful, which is
  always true if the current input comes from a
  terminal and which is always false if the current input
  comes from <text:span text:style-name="Source_20_Text">EVALUATE</text:span> - and may be either if the
  input comes from a file
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_restore_input</text:p>
 <text:h text:style-name="Heading_20_3"> RESTORE-INPUT ( input...[input-len] input-len -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_restore_input</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  inverse of <text:span text:style-name="Source_20_Text">SAVE-INPUT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_roll</text:p>
 <text:h text:style-name="Heading_20_3"> ROLL ( value ...[n-1] n -- ...[n-1] value ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_roll</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the extended form of <text:span text:style-name="Source_20_Text">ROT</text:span>
</text:p><screen>     2 ROLL -&amp;gt; ROT
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_save_input</text:p>
 <text:h text:style-name="Heading_20_3"> SAVE-INPUT ( -- input...[input-len] input-len ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_save_input</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch the current state of the input-channel which
  may be restored with <text:span text:style-name="Source_20_Text">RESTORE-INPUT</text:span> later
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((TO))" ( value -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_to_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">TO</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to</text:p>
 <text:h text:style-name="Heading_20_3"> TO ( value [name] -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the parameter field of name to the value, this is used
  to change the value of a <text:span text:style-name="Source_20_Text">VALUE</text:span> and it can be also used
  to change the value of <text:span text:style-name="Source_20_Text">LOCALS|</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_tuck</text:p>
 <text:h text:style-name="Heading_20_3"> TUCK ( a b -- b a b ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_tuck</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  shove the top-value under the value beneath. See <text:span text:style-name="Source_20_Text">OVER</text:span>
  and <text:span text:style-name="Source_20_Text">NIP</text:span>
</text:p><screen>  simulate:    : TUCK  SWAP OVER ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_dot_r</text:p>
 <text:h text:style-name="Heading_20_3"> U.R ( value# precision# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_dot_r</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print right-aligned in a prec-field, treat value to
  be unsigned as opposed to =&gt; .R
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_greater_than</text:p>
 <text:h text:style-name="Heading_20_3"> U&gt; ( a b -- a-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_greater_than</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  unsigned comparison of a and b, see <text:span text:style-name="Source_20_Text">&gt;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_unused</text:p>
 <text:h text:style-name="Heading_20_3"> UNUSED ( -- unused-len ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_unused</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the number of cells that are left to be used
  above <text:span text:style-name="Source_20_Text">HERE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_value_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "((VALUE))" ( -- value ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_value_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime compiled by <text:span text:style-name="Source_20_Text">VALUE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_value</text:p>
 <text:h text:style-name="Heading_20_3"> VALUE ( value 'name' -- ) [HIDDEN] [DOES: -- value ] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_value</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CREATE</text:span> a word and initialize it with value. Using it
  later will push the value back onto the stack. Compare with
  <text:span text:style-name="Source_20_Text">VARIABLE</text:span> and <text:span text:style-name="Source_20_Text">CONSTANT</text:span> - look also for <text:span text:style-name="Source_20_Text">LOCALS|</text:span> and
  <text:span text:style-name="Source_20_Text">VAR</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_within</text:p>
 <text:h text:style-name="Heading_20_3"> WITHIN ( a# b# c# -- a-flag | a* b* c* -- a-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_within</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  a widely used word, returns ( b &lt;= a &amp;&amp; a &lt; c ) so
  that is very useful to check an index a of an array
  to be within range b to c
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_compile</text:p>
 <text:h text:style-name="Heading_20_3"> [COMPILE] ( [word] -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_compile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  while compiling the next word will be place in the currently
  defined word no matter if that word is immediate (like <text:span text:style-name="Source_20_Text">IF</text:span> )
  - compare with <text:span text:style-name="Source_20_Text">COMPILE</text:span> and <text:span text:style-name="Source_20_Text">POSTPONE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_quote</text:p>
 <text:h text:style-name="Heading_20_3"> '"' ( [string&lt;"&gt;] -- string-bstr* ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
     or perhaps ( [string&amp;lt;"&amp;gt;] -- string-ptr string-len )
</screen><text:p text:style-name="Text_20_body">   This is the non-portable word which is why the ANSI-committee
   on forth has created the two other words, namely <text:span text:style-name="Source_20_Text">S"</text:span> and <text:span text:style-name="Source_20_Text">C"</text:span> ,
   since each implementation (and in pfe configurable) uses another
   runtime behaviour. FIG-forth did return bstring which is the configure
   default for pfe.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_less_equal</text:p>
 <text:h text:style-name="Heading_20_3"> 0&lt;= ( a -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_less_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate    : 0&amp;lt;= 0&amp;gt; 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_greater_equal</text:p>
 <text:h text:style-name="Heading_20_3"> 0&gt;= ( a -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_greater_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate    : 0&amp;gt;= 0&amp;lt; 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_less_equal</text:p>
 <text:h text:style-name="Heading_20_3"> &lt;= ( a b -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_less_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate    : &amp;lt;= &amp;gt; 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_greater_equal</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;= ( a b -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_greater_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate    : &amp;gt;= &amp;lt; 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_less_equal</text:p>
 <text:h text:style-name="Heading_20_3"> U&lt;= ( a b -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_less_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate    : U&amp;lt;= U&amp;gt; 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_greater_equal</text:p>
 <text:h text:style-name="Heading_20_3"> U&gt;= ( a b -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_greater_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate    : U&amp;gt;= U&amp;lt; 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_max</text:p>
 <text:h text:style-name="Heading_20_3"> UMAX ( a b -- max ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_max</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">MAX</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_min</text:p>
 <text:h text:style-name="Heading_20_3"> UMIN ( a b -- min ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_min</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">MIN</text:span> , <text:span text:style-name="Source_20_Text">MAX</text:span> and <text:span text:style-name="Source_20_Text">UMAX</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_license</text:p>
 <text:h text:style-name="Heading_20_3"> LICENSE ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_license</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show a lisence info - the basic PFE system is licensed under the terms
  of the LGPL (Lesser GNU Public License) - binary modules loaded into
  the system and hooking into the system may carry another <text:span text:style-name="Source_20_Text">LICENSE</text:span>
</text:p><screen>  : LICENSE [ ENVIRONMENT ] FORTH-LICENSE TYPE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_warranty</text:p>
 <text:h text:style-name="Heading_20_3"> WARRANTY ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_warranty</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show a warranty info - the basic PFE system is licensed under the terms
  of the LGPL (Lesser GNU Public License) - which exludes almost any 
  liabilities whatsoever - however loadable binary modules may hook into
  the system and their functionality may have different WARRANTY infos.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_version</text:p>
 <text:h text:style-name="Heading_20_3"> .VERSION ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_version</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show the version of the current PFE system
</text:p><screen>  : .VERSION [ ENVIRONMENT ] FORTH-NAME TYPE FORTH-VERSION TYPE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_date</text:p>
 <text:h text:style-name="Heading_20_3"> .CVERSION ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_date</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show the compile date of the current PFE system
</text:p><screen>  : .CVERSION [ ENVIRONMENT ] FORTH-NAME TYPE FORTH-DATE TYPE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_string_comma</text:p>
 <text:h text:style-name="Heading_20_3"> STRING,               ( str len -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_string_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Store a string in data space as a counted string.
</text:p><screen>  : STRING, HERE  OVER 1+  ALLOT  PLACE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parse_comma</text:p>
 <text:h text:style-name="Heading_20_3"> PARSE,                    ( "chars&lt;"&gt;" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parse_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Store a char-delimited string in data space as a counted
   string. As seen in Bawd's
</text:p><screen>  : ," [CHAR] " PARSE  STRING, ; IMMEDIATE
</screen><text:p text:style-name="Text_20_body">
  this implementation is much different from Bawd's
</text:p><screen>  : PARSE, PARSE STRING, ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parse_comma_quote</text:p>
 <text:h text:style-name="Heading_20_3"> "PARSE,\""  ( "chars&lt;"&gt;" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parse_comma_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Store a quote-delimited string in data space as a counted
   string.
</text:p><screen>  : ," [CHAR] " PARSE  STRING, ; IMMEDIATE
</screen><text:p text:style-name="Text_20_body">
  implemented here as
</text:p><screen>  : PARSE," [CHAR] " PARSE, ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_marker</text:p>
 <text:h text:style-name="Heading_20_3"> "(MARKER)" ( str-ptr str-len -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_marker</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a named marker that you can use to <text:span text:style-name="Source_20_Text">FORGET</text:span> ,
  running the created word will reset the dict/order variables
  to the state at the creation of this name.
</text:p><screen>  : (MARKER) (CREATE) HERE , 
          GET-ORDER DUP , 0 DO ?DUP IF , THEN LOOP 0 , 
          ...
    DOES&amp;gt; DUP @ (FORGET) 
          ...
  ; 
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_anew</text:p>
 <text:h text:style-name="Heading_20_3"> ANEW ( 'name' -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_anew</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  creates a <text:span text:style-name="Source_20_Text">MARKER</text:span> if it doesn't exist,
  or forgets everything after it if it does. (it just gets executed).
</text:p><text:p text:style-name="Text_20_body">
  Note: in PFE the <text:span text:style-name="Source_20_Text">ANEW</text:span> will always work on the <text:span text:style-name="Source_20_Text">ENVIRONMENT-WORDLIST</text:span>
  which has a reason: it is never quite sure whether the same
  <text:span text:style-name="Source_20_Text">DEFINITIONS</text:span> wordlist is in the search <text:span text:style-name="Source_20_Text">ORDER</text:span> that the original
  <text:span text:style-name="Source_20_Text">ANEW</text:span> <text:span text:style-name="Source_20_Text">MARKER</text:span> was defined in. Therefore, <text:span text:style-name="Source_20_Text">ANEW</text:span> would be only safe
  on systems that do always stick to <text:span text:style-name="Source_20_Text">FORTH</text:span> <text:span text:style-name="Source_20_Text">DEFINITIONS</text:span>. Instead
  we will <text:span text:style-name="Source_20_Text">CREATE</text:span> the <text:span text:style-name="Source_20_Text">ANEW</text:span> <text:span text:style-name="Source_20_Text">MARKER</text:span> in the <text:span text:style-name="Source_20_Text">ENVIRONMENT</text:span> and use a 
  simple <text:span text:style-name="Source_20_Text">SEARCH-WORDLIST</text:span> on the <text:span text:style-name="Source_20_Text">ENVIRONMENT-WORDLIST</text:span> upon re-run.
</text:p><screen>  \ old
  : ANEW BL WORD   DUP FIND NIP IF EXECUTE THEN   (MARKER) ;
  \ new
  : ANEW 
    PARSE-WORD  2DUP ENVIRONMENT-WORDLIST SEARCH-WORDLIST IF  EXECUTE  THEN 
    GET-CURRENT &amp;gt;R ENVIRONMENT-WORDLIST SET-CURRENT  (MARKER)  R&amp;gt; SET-CURRENT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_marker_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "((MARKER))" ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/core-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_marker_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime compiled by <text:span text:style-name="Source_20_Text">MARKER</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_strpush</text:p>
 <text:h text:style-name="Heading_20_3"> _strpush_ ( zstr* -- S: str* str# ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_strpush</text:span><text:span text:style-name="Source_20_Text">(const char *s)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  push a C-string onto the SP runtime-stack, as if <text:span text:style-name="Source_20_Text">S"</text:span> string" was used
</text:p><screen>  : _strpush_ s! _strlen_ s! ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_pocket</text:p>
 <text:h text:style-name="Heading_20_3"> _pocket_ ( -- str* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export P4_GCC_MALLOC void*
p4_pocket</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the next pocket for interactive string input.
</text:p><screen>  : _pocket_ _pockets@_ _pocket@_ th  _pocket@_ 1+ _pockets#_ mod to _pocket@_ ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_dash_trailing</text:p>
 <text:h text:style-name="Heading_20_3"> _-trailing_ ( str* str# -- str#' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export P4_GCC_WARN_UNUSED_RESULT int
p4_dash_trailing</text:span><text:span text:style-name="Source_20_Text">(p4_char_t *s, int n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  chop off trailing spaces for the stringbuffer. returns the new length,
  so for an internal counted string, use
</text:p><screen>    &amp;lt;x&amp;gt; dup count _-trailing_ c!
    : _-trailing_ begin dup while
       2dup + c@ bl &amp;lt;&amp;gt; if nip exit then
       1- repeat nip ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_lower</text:p>
 <text:h text:style-name="Heading_20_3"> _lower_ ( str* str# -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_lower</text:span><text:span text:style-name="Source_20_Text">(p4_char_t *p, int n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  _tolower_ applied to a stringbuffer
</text:p><screen>  : _lower_ 0 do dup c@ _tolower_ over c! 1+ loop drop ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_upper</text:p>
 <text:h text:style-name="Heading_20_3"> _upper_ ( str* str# -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_upper</text:span><text:span text:style-name="Source_20_Text">(p4_char_t *p, int n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  _toupper_ applied to a stringbuffer
</text:p><screen>  : _upper_ 0 do dup c@ _toupper_ over c! 1+ loop drop ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_store_c_string</text:p>
 <text:h text:style-name="Heading_20_3"> _zplaced_ ( str* str# dst* max# -- dst* ) [alias] _store_c_string_ </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char*
p4_store_c_string</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *src, int n, char *dst, int max)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  copy stringbuffer into a field as a zero-terminated string.
</text:p><screen>  : _zsplaced_ rot 2dup &amp;gt; if drop 1- else nip then _zplace_ ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_pocket_c_string</text:p>
 <text:h text:style-name="Heading_20_3"> _pocket_zplaced ( str* str# -- pocket* ) [alias] _pocket_c_string_ </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export P4_GCC_MALLOC char*
p4_pocket_c_string</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t* src, int n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store a string-span as a zero-terminated string into another pocket-pad
</text:p><screen>  : _pocket_zplaced _pocket_ _/pocket_ _zplaced_ ;
 
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_store_filename</text:p>
 <text:h text:style-name="Heading_20_3"> _zplaced_filename_ ( str* str# dst* max# -- dst* ) [alias] _store_filename_ </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char*
p4_store_filename</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t* str, int n, char* dst, int max)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  copy stringbuffer into a field as a zero-terminated filename-string,
  a shell-homedir like "~username" will be expanded, and the
  platform-specific dir-delimiter is converted in on the fly ('/' vs. '\\')
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_pocket_filename</text:p>
 <text:h text:style-name="Heading_20_3"> _pocket_fileame_ ( str* str# -- dst* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export P4_GCC_MALLOC char*
p4_pocket_filename</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t* src, int n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  a new pocket with the given filename as asciiz
</text:p><screen>  : _pocket_filename_ _pocket_ /pocket _zplaced_filename_
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_search</text:p>
 <text:h text:style-name="Heading_20_3"> _search_ ( str* str# key* key# -- 0 | key-in-str* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char *
p4_search</text:span><text:span text:style-name="Source_20_Text">(const char *p1, int u1, const char *p2, int u2)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  search for substring p2/u2 in string p1/u1, returns null if not found
  or a pointer into str*,str# that has lenght of key#
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_match</text:p>
 <text:h text:style-name="Heading_20_3"> _match_ ( zpattern* zstring* ignorecase? -- yes? ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_match</text:span><text:span text:style-name="Source_20_Text">(const p4char *pattern, const p4char *str, int len, int ic)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Match string against pattern.
  Pattern knows wildcards `*' and `?' and `\' to escape a wildcard.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_udiv</text:p>
 <text:h text:style-name="Heading_20_3"> _U/_ </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export P4_GCC_CONST udiv_t
p4_udiv</text:span><text:span text:style-name="Source_20_Text">(p4ucell num, p4ucell denom)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  unsigned divide procedure, single prec
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fdiv</text:p>
 <text:h text:style-name="Heading_20_3"> _/_ </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export P4_GCC_CONST fdiv_t
p4_fdiv</text:span><text:span text:style-name="Source_20_Text">(p4cell num, p4cell denom)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  floored divide procedure, single prec
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_d_div</text:p>
 <text:h text:style-name="Heading_20_3"> _ud/_ </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4ucell
p4_u_d_div</text:span><text:span text:style-name="Source_20_Text">(p4udcell *ud, p4ucell denom)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Divides *ud by denom, leaves result in *ud, returns remainder.
  For number output conversion: dividing by BASE.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_d_mul</text:p>
 <text:h text:style-name="Heading_20_3"> _ud*_ </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_u_d_mul</text:span><text:span text:style-name="Source_20_Text">(p4udcell *ud, p4ucell w, p4ucell c)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Computes *ud * w + c, where w is actually only half of a cell in size.
  Leaves result in *ud.
  For number input conversion: multiply by BASE and add digit.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dig2num</text:p>
 <text:h text:style-name="Heading_20_3"> _dig&gt;num_ ( c n* base -- ?ok ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_dig2num</text:span><text:span text:style-name="Source_20_Text">(p4_char_t c, p4ucell *n, p4ucell base)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Get value of digit c into *n, return flag: valid digit.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_num2dig</text:p>
 <text:h text:style-name="Heading_20_3"> _num2dig_ ( val -- c ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export P4_GCC_CONST char
p4_num2dig</text:span><text:span text:style-name="Source_20_Text">(p4ucell n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  make digit
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_number_question</text:p>
 <text:h text:style-name="Heading_20_3"> _?number_ ( str* str# dcell* -- ?ok ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_number_question</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *p, p4ucell n, p4dcell *d)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  try to convert into number, see =&gt; ?NUMBER
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_ud_dot_r</text:p>
 <text:h text:style-name="Heading_20_3"> _ud.r_ ( d,d str* str# base -- str* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char *
p4_str_ud_dot_r</text:span><text:span text:style-name="Source_20_Text">(p4udcell ud, char *p, int w, int base)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  This is for internal use only (SEE and debugger),
  The real <text:span text:style-name="Source_20_Text">UD</text:span>.R etc. words uses <text:span text:style-name="Source_20_Text">HOLD</text:span> and the memory area below <text:span text:style-name="Source_20_Text">PAD</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_d_dot_r</text:p>
 <text:h text:style-name="Heading_20_3"> _d.r_ ( d,d str* str# base -- str* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char *
p4_str_d_dot_r</text:span><text:span text:style-name="Source_20_Text">(p4dcell d, char *p, int w, int base)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  This is for internal use only (SEE and debugger),
  The real <text:span text:style-name="Source_20_Text">UD</text:span>.R etc. words use <text:span text:style-name="Source_20_Text">HOLD</text:span> and the memory area below <text:span text:style-name="Source_20_Text">PAD</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_dot</text:p>
 <text:h text:style-name="Heading_20_3"> _._ ( i str* str# base -- str* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char *
p4_str_dot</text:span><text:span text:style-name="Source_20_Text">(p4cell n, char *p, int base)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  This is for internal use only (SEE and debugger),
  The real =&gt; . etc. words use <text:span text:style-name="Source_20_Text">HOLD</text:span> and the memory area below <text:span text:style-name="Source_20_Text">PAD</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_outc</text:p>
 <text:h text:style-name="Heading_20_3"> _outc_ ( char -- ) [alias] _outc </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_outc</text:span><text:span text:style-name="Source_20_Text">(char c)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  emit single character,
  (output adjusting the <text:span text:style-name="Source_20_Text">OUT</text:span> variable, see <text:span text:style-name="Source_20_Text">_putc_</text:span> to do without)
</text:p><screen>  : _emit_ _putc_ _?xy_ drop out ! ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_outf</text:p>
 <text:h text:style-name="Heading_20_3"> _outf_ ( ... zstr* -- n# ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">int
p4_outf</text:span><text:span text:style-name="Source_20_Text">(const char *s,...)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  type a string with formatting
  (output adjusting the <text:span text:style-name="Source_20_Text">OUT</text:span> variable, see <text:span text:style-name="Source_20_Text">_puts_</text:span> and <text:span text:style-name="Source_20_Text">_outs_</text:span> )
</text:p><screen>  : _outf_ 0x200 lbuffer: buf[]  buf[] _vsprintf_  buf[] _outs_ ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_type_on_line</text:p>
 <text:h text:style-name="Heading_20_3"> _typeline_ ( str* str# -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_type_on_line</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *str, p4cell len)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  type counted string to terminal, if it does not fit in full on
  the current line, emit a <text:span text:style-name="Source_20_Text">CR</text:span> before
  (output adjusting the OUT variable, see <text:span text:style-name="Source_20_Text">_type_</text:span> and <text:span text:style-name="Source_20_Text">_outs_</text:span> )
</text:p><screen>  : _typeline_ out @ over + cols @ &amp;gt; if cr then _type_ ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_emits</text:p>
 <text:h text:style-name="Heading_20_3"> _emits_ ( n# ch -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_emits</text:span><text:span text:style-name="Source_20_Text">(int n, const char c)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  type a string of chars by repeating a single character which
  is usually a space, see <text:span text:style-name="Source_20_Text">SPACES</text:span>
  (output adjusting the OUT variable, see <text:span text:style-name="Source_20_Text">_type_</text:span> and <text:span text:style-name="Source_20_Text">_outs_</text:span> )
</text:p><screen>  : _emits_ swap 0 do dup _putc_ loop drop _flush_ _?xy_ drop out ! ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_tab</text:p>
 <text:h text:style-name="Heading_20_3"> _tab_ ( n# -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_tab</text:span><text:span text:style-name="Source_20_Text">(int n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  type a string of space up to the next tabulator column
  (output adjusting the OUT variable, see <text:span text:style-name="Source_20_Text">_emits</text:span> and <text:span text:style-name="Source_20_Text">_typeonline</text:span> )
</text:p><screen>  : _tab_ dup out @ - swap mod bl _emits_ ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_line</text:p>
 <text:h text:style-name="Heading_20_3"> _.line_ ( file* block# line# -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_dot_line</text:span><text:span text:style-name="Source_20_Text">(p4_File *fid, p4cell n, p4cell l)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_query</text:p>
 <text:h text:style-name="Heading_20_3"> QUERY ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_query</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  source input:  read from terminal using <text:span text:style-name="Source_20_Text">_accept_</text:span> with the
  returned string to show up in <text:span text:style-name="Source_20_Text">TIB</text:span> of <text:span text:style-name="Source_20_Text">/TIB</text:span> size.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_next_line</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_bool_t
p4_next_line</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_size_saved_input</text:p>
 <text:h text:style-name="Heading_20_3"> _size_saved_input_ ( -- iframe-size ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4ucell
p4_size_saved_input</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_link_saved_input</text:p>
 <text:h text:style-name="Heading_20_3"> _link_saved_input_ ( iframe* -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_link_saved_input</text:span><text:span text:style-name="Source_20_Text">(void *p)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">SAVE-INPUT</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_unlink_saved_input</text:p>
 <text:h text:style-name="Heading_20_3"> _unlink_saved_input_ ( iframe* -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_unlink_saved_input</text:span><text:span text:style-name="Source_20_Text">(void *p)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">RESTORE-INPUT</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_skip_delimiter</text:p>
 <text:h text:style-name="Heading_20_3"> _skip_delimiter_ ( del -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_skip_delimiter</text:span><text:span text:style-name="Source_20_Text">(char del)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">SKIP-DELIMITER</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_word_parse</text:p>
 <text:h text:style-name="Heading_20_3"> _word:parse_ ( delim -- &lt;end?&gt; ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_cell_t
p4_word_parse</text:span><text:span text:style-name="Source_20_Text">(char del)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_word_to_here</text:p>
 <text:h text:style-name="Heading_20_3"> _word&gt;here_ ( -- here* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char*
p4_word_to_here</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  complement <text:span text:style-name="Source_20_Text">_word:parse_</text:span> to  arrive at the normal <text:span text:style-name="Source_20_Text">WORD</text:span> implementation
  will also ensure the string is zero-terminated - this makes a lot of
  operations easier since most forth function can receive a string-span
  directly but some need a string-copy and that is usually because it has
  to be passed down into a C-defined function with zerotermined string. Just
  use p4_HERE+1 (which is also the returnvalue of the <text:span text:style-name="Source_20_Text">p4_word_to_here</text:span> function!) to have
  the start of the zero-terminated string. Note that the <text:span text:style-name="Source_20_Text">p4_word_to_here</text:span> function may throw
  with P4_ON_PARSE_OVER if the string is too long (it has set *DP=0 to
  ensure again that <text:span text:style-name="Source_20_Text">THROW</text:span> will report PFE.word. as the offending string)
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_debug</text:p>
 <text:h text:style-name="Heading_20_3"> DEBUG ( "word" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/debug-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_debug</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  this word will place an debug-runtime into
  the <text:span text:style-name="Source_20_Text">CFA</text:span> of the following word. If the
  word gets executed later, the user will
  be prompted and can decide to single-step
  the given word. The debug-stepper is
  interactive and should be self-explanatory.
  (use <text:span text:style-name="Source_20_Text">NO-DEBUG</text:span> to turn it off again)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_no_debug</text:p>
 <text:h text:style-name="Heading_20_3"> NO-DEBUG ( "word" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/debug-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_no_debug</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the inverse of " <text:span text:style-name="Source_20_Text">DEBUG</text:span> word "
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_see</text:p>
 <text:h text:style-name="Heading_20_3"> (SEE) ( some-xt* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/debug-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_see</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  decompile the token-sequence - used
  by <text:span text:style-name="Source_20_Text">SEE</text:span> name
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_addr_to_name</text:p>
 <text:h text:style-name="Heading_20_3"> ADDR&gt;NAME ( word-addr* -- word-nfa*!' | 0 ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/debug-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_namebuf_t const *
p4_addr_to_name</text:span><text:span text:style-name="Source_20_Text">(const p4_byte_t* addr)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  search the next corresponding namefield that address
  is next too. If it is not in the base-dictionary, then
  just return 0 as not-found.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_come_back</text:p>
 <text:h text:style-name="Heading_20_3"> COME_BACK ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/debug-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_come_back</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show the return stack before last exception
  along with the best names as given by <text:span text:style-name="Source_20_Text">ADDR&gt;NAME</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_make_wordlist</text:p>
 <text:h text:style-name="Heading_20_3">  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_Wordl *
p4_make_wordlist</text:span><text:span text:style-name="Source_20_Text">(p4char* nfa)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a word list in the dictionary 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_forget_dp</text:p>
 <text:h text:style-name="Heading_20_3"> ((FORGET))  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_forget_dp</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  remove words from dictionary, free dictionary space, this is the
  runtime helper of <text:span text:style-name="Source_20_Text">(FORGET)</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_forget</text:p>
 <text:h text:style-name="Heading_20_3"> (FORGET) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_forget</text:span><text:span text:style-name="Source_20_Text">(p4_byte_t* above)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  forget anything above address
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_forget_word</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_namebuf_t*
p4_forget_word</text:span><text:span text:style-name="Source_20_Text">(const char *name, p4cell id, p4code ccode, p4cell what)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_tick_nfa</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4char *
p4_tick_nfa</text:span><text:span text:style-name="Source_20_Text">(void) 
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_tick_cfa</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4xt
p4_tick_cfa</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_only_RT</text:p>
 <text:h text:style-name="Heading_20_3"> ONLY ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_only_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the only-vocabulary is special. Calling it will erase
  the search <text:span text:style-name="Source_20_Text">ORDER</text:span> of vocabularies and only allows
  to name some very basic vocabularies. Even <text:span text:style-name="Source_20_Text">ALSO</text:span>
  is not available.
</text:p><screen>  example:
    ONLY FORTH ALSO EXTENSIONS ALSO DEFINITIONS
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_forth_RT</text:p>
 <text:h text:style-name="Heading_20_3"> FORTH ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/dict-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_forth_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  : FORTH FORTH-WORDLIST CONTEXT ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dlinit</text:p>
 <text:h text:style-name="Heading_20_3"> dlfcn: init dl symbol table, dl error  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int 
p4_dlinit</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dlerror</text:p>
 <text:h text:style-name="Heading_20_3"> dlfcn: describe last dl-error  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export const char* 
p4_dlerror</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dlopenext</text:p>
 <text:h text:style-name="Heading_20_3"> dlfcn: load shared-object into program codespace  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void* 
p4_dlopenext</text:span><text:span text:style-name="Source_20_Text">(const char* name)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dlclose</text:p>
 <text:h text:style-name="Heading_20_3"> dlfcn: remove shared-object from program codespace  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int 
p4_dlclose</text:span><text:span text:style-name="Source_20_Text">(const void* lib)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dlsym</text:p>
 <text:h text:style-name="Heading_20_3"> dlfcn: find symbol in loaded object  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void* 
p4_dlsym</text:span><text:span text:style-name="Source_20_Text">(const void* lib, const char* symbol)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dladdr</text:p>
 <text:h text:style-name="Heading_20_3"> dlfcn: find name for address  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export char*
p4_dladdr</text:span><text:span text:style-name="Source_20_Text">(void* addr, int* offset)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slot_use</text:p>
 <text:h text:style-name="Heading_20_3">  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">int
p4_slot_use</text:span><text:span text:style-name="Source_20_Text">(int* var)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  request a slot index. The index is written to the variable arg-address.
  if the arg-address contains a value != 0, we check if that specific
  slot index is free for assignment - or already assigned to this variable.
  a slot_use can be done for the same slot-variable multiple times,
  which will increase a use-counter. Call slot_unuse correspondingly.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slot_unuse</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">int
p4_slot_unuse</text:span><text:span text:style-name="Source_20_Text">(int* var)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_loadm</text:p>
 <text:h text:style-name="Heading_20_3"> (LOADM) ( module-bstr* -- module-sucess# ) [FTH] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_loadm</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_loadm</text:p>
 <text:h text:style-name="Heading_20_3"> LOADM ( "filename" -- ) [FTH] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_loadm</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   dlmap the shared object (or share an already mapped object)
   and run the per-thread initialization code. This is the
   user-convenient function, otherwise use <text:span text:style-name="Source_20_Text">(LOADM)</text:span>
</text:p><screen>  simulate:
    : LOADM  BL WORD   
      ((IS_MODULE_LOADED)) IF EXIT THEN 
      HERE (LOADM)  0= IF ." -- load failed: " HERE COUNT TYPE CR THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_local_dlsym</text:p>
 <text:h text:style-name="Heading_20_3"> LOCAL-DLSYM ( [symbol] -- symbol-addr ) [FTH] [EXEC] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_local_dlsym</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   lookup the symbol that follows and leave the address (or null)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_local_dlcall</text:p>
 <text:h text:style-name="Heading_20_3"> LOCAL_DLCALL ( x...[8] [symbol] -- x...[8] ) [FTH] [EXEC] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_local_dlcall</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   does not do any stack changes, the caller
   must clean up the stack himself. You don't even
   get the return value (sigh)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_lt_dlinit</text:p>
 <text:h text:style-name="Heading_20_3"> lt_dlinit ( -- dlinit-ior# ) [FTH] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_lt_dlinit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  initialiize library, usually open the program itself so that its
  handles can be found under "0"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_lt_dlopenext</text:p>
 <text:h text:style-name="Heading_20_3"> lt_dlopenext ( module-ptr module-len -- module-dl-handle*! | 0 ) [FTH] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_lt_dlopenext</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  walk the searchpath for dlopen and try to open a binary module
  under the given name with the usual file extension for the 
  current system.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_lt_dlsym</text:p>
 <text:h text:style-name="Heading_20_3"> lt_dlsym ( symbol-ptr symbol-len module-dl-handle* -- symbol*! | 0 ) [FTH] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_lt_dlsym</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  try to find the name in the binary module denoted by its handle
  .. if handle is null, use the main body of the program
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_lt_dlcose</text:p>
 <text:h text:style-name="Heading_20_3"> lt_dlclose ( module-dl-handle* -- module-ior# ) [FTH] </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_lt_dlcose</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  close handle that was returned by <text:span text:style-name="Source_20_Text">lt_dlopenext</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_lt_dlerror</text:p>
 <text:h text:style-name="Heading_20_3"> lt_dlerror ( -- dlerror-zstr* ) </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_lt_dlerror</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns string describing the last dlerror as for <text:span text:style-name="Source_20_Text">lt_dlopenext</text:span>
  and <text:span text:style-name="Source_20_Text">lt_dlsym</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_constant_RT</text:p>
 <text:h text:style-name="Heading_20_3"> (2CONSTANT) ( -- x1 x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_two_constant_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime portion of <text:span text:style-name="Source_20_Text">2CONSTANT</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_constant</text:p>
 <text:h text:style-name="Heading_20_3"> 2CONSTANT ( x1 x2 "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_constant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a word that contains the specified twocell number in its body.
  when the name is executed, these numbers are left on the stack
</text:p><screen>    12. 2CONSTANT X .s 
    &amp;lt;emtpy stack&amp;gt; ok
    X .s
    0 12 ok
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_two_literal_execution</text:p>
 <text:h text:style-name="Heading_20_3"> (2LITERAL) ( -- x1 x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_two_literal_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime portion of <text:span text:style-name="Source_20_Text">2LITERAL</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_literal</text:p>
 <text:h text:style-name="Heading_20_3"> 2LITERAL ( x1 x2 -- ) immediate </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_literal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compile a double-cell number to the current definition. When
  run, the doubele-cell is left on the stack for execution.
</text:p><screen>    ( -- x1 x2 )
</screen><text:p text:style-name="Text_20_body">  (in most configurations this word is statesmart and it will do nothing
   in interpret-mode. See <text:span text:style-name="Source_20_Text">2LITERAL,</text:span> for a non-immediate variant)
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_variable</text:p>
 <text:h text:style-name="Heading_20_3"> 2VARIABLE ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_variable</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CREATE</text:span> a new variable definition. When executed leave
  the <text:span text:style-name="Source_20_Text">&gt;BODY</text:span> address on stack. In pfe, the data area
  of a <text:span text:style-name="Source_20_Text">2VARIABLE</text:span> is <text:span text:style-name="Source_20_Text">ERASE</text:span>d initially.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_plus</text:p>
 <text:h text:style-name="Heading_20_3"> D+ ( d1.ud1 d2.ud2 -- d3.ud3 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell sum operation ( <text:span text:style-name="Source_20_Text">+</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_minus</text:p>
 <text:h text:style-name="Heading_20_3"> D-( d1.ud1 d2.ud2 -- d3.ud3 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell diff operation ( <text:span text:style-name="Source_20_Text">-</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_dot_r</text:p>
 <text:h text:style-name="Heading_20_3"> D.R ( d1.d1 n -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_dot_r</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  aligned output for a double-cell number ( =&gt; .R )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_dot</text:p>
 <text:h text:style-name="Heading_20_3"> D. ( d1.d1 -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  freefield output for a double-cell number ( =&gt; . )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_zero_less</text:p>
 <text:h text:style-name="Heading_20_3"> D0&lt; ( d1.d1 -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_zero_less</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell less-than-zero operation ( <text:span text:style-name="Source_20_Text">0&lt;</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_zero_equals</text:p>
 <text:h text:style-name="Heading_20_3"> D0= ( d1.d1 -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_zero_equals</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell equal-to-zero operation ( <text:span text:style-name="Source_20_Text">0=</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_two_star</text:p>
 <text:h text:style-name="Heading_20_3"> D2* ( d1.d1 -- d1.d1' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_two_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell arithmetic shiftleft-by-1 operation ( <text:span text:style-name="Source_20_Text">2*</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_two_slash</text:p>
 <text:h text:style-name="Heading_20_3"> D2/ ( d1.d1 -- d1.d1' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_two_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell arithmetic shiftright-by-1 operation ( <text:span text:style-name="Source_20_Text">2/</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_less</text:p>
 <text:h text:style-name="Heading_20_3"> D&lt; ( d1.d1 d2.d2 -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_less</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell is-less operation ( <text:span text:style-name="Source_20_Text">&lt;</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_to_s</text:p>
 <text:h text:style-name="Heading_20_3"> D&gt;S ( d.d -- n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_to_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  result is the numeric equivalent of d. If the double number was
  greater than what could fit into a single cell number, the 
  modulo cellsize will be left since the higher-significant bits
  are just <text:span text:style-name="Source_20_Text">DROP</text:span>ed
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_equals</text:p>
 <text:h text:style-name="Heading_20_3"> D= ( d1.d1 d2.d2 -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_equals</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell is-equal operation ( <text:span text:style-name="Source_20_Text">=</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_abs</text:p>
 <text:h text:style-name="Heading_20_3"> DABS ( d1.d1 -- d1.d1'  ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_abs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell abs operation ( <text:span text:style-name="Source_20_Text">ABS</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_max</text:p>
 <text:h text:style-name="Heading_20_3"> DMAX ( d1.d1 d2.d2 -- d1.d1|d2.d2  ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_max</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell max operation ( <text:span text:style-name="Source_20_Text">MAX</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_min</text:p>
 <text:h text:style-name="Heading_20_3"> DMIN ( d1.d1 d2.d2 -- d1.d1|d2.d2  ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_min</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell max operation ( <text:span text:style-name="Source_20_Text">MIN</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_negate</text:p>
 <text:h text:style-name="Heading_20_3"> DNEGATE ( d1.d1 -- d1.d1' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_negate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell arithmetic negate operation ( <text:span text:style-name="Source_20_Text">NEGATE</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_m_star_slash</text:p>
 <text:h text:style-name="Heading_20_3"> "M*\/" ( d1.d1 n1 +n2 -- d2.d2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_m_star_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell multiply-divide operation 
  using a triple-cell intermediate result for <text:span text:style-name="Source_20_Text">*</text:span>
  ( <text:span text:style-name="Source_20_Text">*\/</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_m_plus</text:p>
 <text:h text:style-name="Heading_20_3"> "M+" ( d1.d1 n1 -- d2.d2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_m_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell mixed-operand sum operation ( <text:span text:style-name="Source_20_Text">+</text:span> / <text:span text:style-name="Source_20_Text">D+</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_rot</text:p>
 <text:h text:style-name="Heading_20_3"> 2ROT ( d1,d1 d2,d2 d3,d3 -- d2,d2 d3,d3 d1,d1 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_rot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell <text:span text:style-name="Source_20_Text">ROT</text:span> operation.
  actively moves six cells, i.e.
</text:p><screen>    ( x1 x2 x3 x4 x5 x6 -- x3 x4 x5 x6 x1 x2 )
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_u_less</text:p>
 <text:h text:style-name="Heading_20_3"> DU&lt; ( d1,d1 d2,d2 -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_u_less</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the double-cell unsigned-is-less operation ( <text:span text:style-name="Source_20_Text">U&lt;</text:span> )
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_literal_comma</text:p>
 <text:h text:style-name="Heading_20_3"> LITERAL, ( value -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_literal_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  take the value from stack (or cs-stack) and compile a runtime-code and
  the value as for <text:span text:style-name="Source_20_Text">LITERAL</text:span> ... this word is never state-smart, it
  is not immediate, and has therefore no complications with <text:span text:style-name="Source_20_Text">POSTPONE</text:span>
  (compare also with <text:span text:style-name="Source_20_Text">COMPILE,</text:span> to make a call-stub with an exectoken)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_literal_comma</text:p>
 <text:h text:style-name="Heading_20_3"> 2LITERAL, ( x1,x2 -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_literal_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  take the double-value from stack (or cs-stack) and compile a runtime-code 
  and the value as for <text:span text:style-name="Source_20_Text">2LITERAL</text:span> ... this word is never state-smart, it
  is not immediate, and has therefore no complications with <text:span text:style-name="Source_20_Text">POSTPONE</text:span>
  (compare also with <text:span text:style-name="Source_20_Text">COMPILE,</text:span> to make a call-stub with an exectoken)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dcells</text:p>
 <text:h text:style-name="Heading_20_3"> DCELLS ( x -- x' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dcells</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  computes the number of address units for the specified number 
  of double-cells
</text:p><screen>  : DCELLS CELLS 2* ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_shiftleft</text:p>
 <text:h text:style-name="Heading_20_3"> DLSHIFT ( x1,x2 y -- z1,z2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_shiftleft</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  shift-left a double-cell value.
  The shift-count is given as a single-cell.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_d_shiftright</text:p>
 <text:h text:style-name="Heading_20_3"> DRSHIFT ( x1,x2 y -- z1,z2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_d_shiftright</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  shift-right a double-cell value.
  The shift-count is given as a single-cell.
  This is an arithmetic shift as for a signed double-cell value.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_um_plus</text:p>
 <text:h text:style-name="Heading_20_3"> add b to a  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_um_plus</text:span><text:span text:style-name="Source_20_Text">(p4dcell * a, p4ucell b) 
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_d_ummul</text:p>
 <text:h text:style-name="Heading_20_3"> unsigned multiply, mixed precision  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4udcell
p4_d_ummul</text:span><text:span text:style-name="Source_20_Text">(p4ucell a, p4ucell b)	
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_d_mmul</text:p>
 <text:h text:style-name="Heading_20_3"> signed multiply, mixed precision  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4dcell
p4_d_mmul</text:span><text:span text:style-name="Source_20_Text">(p4cell a, p4cell b) 
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_d_umdiv</text:p>
 <text:h text:style-name="Heading_20_3"> unsigned divide procedure, mixed precision  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export udiv_t
p4_d_umdiv</text:span><text:span text:style-name="Source_20_Text">(p4udcell num, p4ucell denom)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_d_smdiv</text:p>
 <text:h text:style-name="Heading_20_3"> symmetric divide procedure, mixed precision  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export fdiv_t
p4_d_smdiv</text:span><text:span text:style-name="Source_20_Text">(p4dcell num, p4cell denom)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_d_fmdiv</text:p>
 <text:h text:style-name="Heading_20_3"> floored divide procedure, mixed precision  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/double-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export fdiv_t
p4_d_fmdiv</text:span><text:span text:style-name="Source_20_Text">(p4dcell num, p4cell denom)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_empty_str</text:p>
 <text:h text:style-name="Heading_20_3"> EMPTY$	( $: -- empty$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_empty_str</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Push the MSA of a fixed, external representation of the empty
  string onto the string stack.  "empty-string"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_newline_str</text:p>
 <text:h text:style-name="Heading_20_3"> \n$		( $: -- newline$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_newline_str</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Push the MSA of a fixed, external string whose body is the
  Unix newline character onto the string stack.
  "newline-string"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parens_m_store</text:p>
 <text:h text:style-name="Heading_20_3"> (M!)	( a.s msa -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parens_m_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  (M!) is the same as Wil Baden's PLACE, except it assumes
  the buffer address msa to be aligned, and stores the ANS
  Forth string a.s as a measured string, zero-filled to
  trailing alignment.  As with PLACE, it is assumed that the
  mstring copy does not clobber the old string, and there is no
  check for room starting at msa.  "parens-m-store"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parse_to_s</text:p>
 <text:h text:style-name="Heading_20_3"> PARSE&gt;S	( [ccc&lt;char;&gt;] char -- addr len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parse_to_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Parse the input stream up to the first occurrence of char,
  which is parsed away.  If executing in compilation mode,
  append run-time semantics to the current definition that
  leaves the ANS Forth string representation on the stack.  In
  interpretation mode, leave the ANS Forth string
  representation for a stored copy, which may be transient in
  the style of <text:span text:style-name="Source_20_Text">S</text:span>".  In either mode, the format of the
  stored string is implementation dependent.
  "parse-to-s"
</text:p><text:p text:style-name="Text_20_body">  NOTE: The interpreted copy is a nontransient in this
  implementation, and both copies are mstrings.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_back_tick</text:p>
 <text:h text:style-name="Heading_20_3"> S`		( [ccc&lt;`&gt;] -- addr len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_back_tick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  An immediate version of parse&gt;s where the delimiter is `.  In
  particular, the stored string in interpret mode is not
  transient. "s-back-tick"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_m_comma_s</text:p>
 <text:h text:style-name="Heading_20_3"> M,S		( addr len -- addr' len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_m_comma_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  ALLOT room and store the ANS Forth string into aligned data
  space as an mstring, leaving data space zero-filled to
  alignment; and leave the length and new body address.  It is
  assumed that len is unsigned.  An error is thrown if len is
  larger than the system parameter <text:span text:style-name="Source_20_Text">MAX_DATA_STR</text:span>.
  "m-comma-s"
</text:p><text:p text:style-name="Text_20_body">  NOTE: <text:span text:style-name="Source_20_Text">MAX_DATA_STR</text:span> is returned by
</text:p><screen>    S" /SCOPY" ENVIRONMENT?
 
</screen><text:p text:style-name="Text_20_body">  NOTE: <text:span text:style-name="Source_20_Text">M,S</text:span> differs from <text:span text:style-name="Source_20_Text">STRING,</text:span> in Wil Baden's Tool
  Belt in that it stores an aligned, measured string with
  zero-filled alignment instead of a counted string, and it
  leaves the ANS Forth string representation of the stored
  string.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_m_count_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> MCOUNT@	( msa -- count ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_m_count_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Fetch the count of the mstring at msa.
  "m-count-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_m_count_store</text:p>
 <text:h text:style-name="Heading_20_3"> MCOUNT!	( count msa -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_m_count_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Store the count in the measured string count field at msa,
  without checking that it fits. 
  "m-count-store"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_m_count</text:p>
 <text:h text:style-name="Heading_20_3"> MCOUNT	( msa -- body.addr count ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_m_count</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Convert the mstring MSA to its ANS Forth string
  representation.  "m-count"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_minus_m_count</text:p>
 <text:h text:style-name="Heading_20_3"> -MCOUNT	( addr len -- msa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_minus_m_count</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Convert the ANS Forth representation of an mstring to its
  MSA.  "minus-m-count"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_strings</text:p>
 <text:h text:style-name="Heading_20_3"> 0STRINGS	( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_strings</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Set all string variables holding bound string values in string
  space to the empty string, and clear string space, including
  the string buffer, string stack, and string stack frames. 
  "zero-strings"
</text:p><text:p text:style-name="Text_20_body">  NOTE:  If used for under the hood development, this word must
  be executed only when string space is in a valid state.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_garbage_Q</text:p>
 <text:h text:style-name="Heading_20_3"> $GARBAGE?	( -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_garbage_Q</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave true if there is garbage in the current string space. 
  Not normally used, since garbage collection is transparent.
  "string-garbage-question"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_gc_off</text:p>
 <text:h text:style-name="Heading_20_3"> $GC-OFF	( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_gc_off</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Disable garbage collection in the current string space.  An
  error will be thrown if garbage collection is attempted.
  "string-g-c-off"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_gc_on</text:p>
 <text:h text:style-name="Heading_20_3"> $GC-ON	( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_gc_on</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Enable garbage collection in the current string space.  This
  is the default.  "string-g-c-on"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_gc_lock_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $GC-LOCK@     ( -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_gc_lock_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Fetch the dstring garbage collection "off" state.  Intended
  for saving the off state for later restoration after a usage
  of <text:span text:style-name="Source_20_Text">$GC-ON</text:span> or <text:span text:style-name="Source_20_Text">$GC-OFF</text:span>.
  "string-g-c-lock-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_gc_lock_store</text:p>
 <text:h text:style-name="Heading_20_3"> $GC-LOCK!    ( flag -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_gc_lock_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Set the dstring garbage collection "off" state according to
  flag.  Intended for restoring the off state previously
  fetched by <text:span text:style-name="Source_20_Text">$GC-LOCK@</text:span>.
  "string-g-c-lock-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_unused</text:p>
 <text:h text:style-name="Heading_20_3"> $UNUSED	( -- u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_unused</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the number of bytes available for dynamic strings and
  string stack entries in the string buffer. 
  "string-unused"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_collect_str_garbage</text:p>
 <text:h text:style-name="Heading_20_3"> COLLECT-$GARBAGE	( -- collected-flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_collect_str_garbage</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  If string space is not marked as containing garbage, return
  false.  If there is garbage, throw an error when garbage
  collection is disabled.  Otherwise remove the garbage and
  return true.  Garbage collection is "transparent", so the
  user would not normally use this word.
  "collect-string-garbage"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_make_str_space</text:p>
 <text:h text:style-name="Heading_20_3"> MAKE-$SPACE		( size #frames -- addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_make_str_space</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Allocate and initialize a string space with size bytes
  available for the string buffer including the string stack,
  and with a string frame stack for frame description entries
  holding up to #frames.  The size is rounded up to cell
  alignment, and the buffer begins and ends with cell alignment.
  Return addr, the address of the string space.  The standard
  word <text:span text:style-name="Source_20_Text">FREE</text:span> with addr as input can be used to release the space.
  "make-string-space"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash_str_buf</text:p>
 <text:h text:style-name="Heading_20_3"> /$BUF	( -- u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash_str_buf</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the size in address units allocated for the current
  string buffer. "slash-string-buf"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_max_num_str_frames</text:p>
 <text:h text:style-name="Heading_20_3"> MAX-#$FRAMES	( -- u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_max_num_str_frames</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the number of string frames allowed on the string frame
  stack for the current string space.
  "max-number-string-frames"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_store</text:p>
 <text:h text:style-name="Heading_20_3"> $!		( $var.dfa $: a$ -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Store the string MSA on the string stack in the variable
  whose DFA is on the parameter stack. 
  "string-store"
</text:p><text:p text:style-name="Text_20_body">  NOTES: The only situation in which <text:span text:style-name="Source_20_Text">$!</text:span> copies the string
  value is when it is a bound string already stored in another
  variable.  In that case, the new copy is the one that is
  stored in the variable.  In particular, external strings are
  not copied.
</text:p><text:p text:style-name="Text_20_body">  If the string value held by the string variable on entry is a
  bound string that is also referenced deeper on the string
  stack, its back link is reset to point to the deepest string
  stack reference.  If it is a bound string not deeper on the
  string stack and not identical to the input string, its back
  link is set to zero, making it garbage.  If it is an external
  string, its MSA in the variable is simply written over by
  that popped from the string stack.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $@		( $var.pfa -- $: a$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the MSA of the string held by the string variable.
  "string-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_quote</text:p>
 <text:h text:style-name="Heading_20_3"> $"		( [ccc&lt;"&gt;] -- $: str ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Parse ccc delimited by " (double quote) and store it in data
  space as an mstring.  If interpreting, leave the MSA on the
  string stack.  If compiling, append run-time semantics to the
  current definition that leaves the MSA on the string stack. 
  A program should not alter the stored string.  An error is
  thrown if the quoted string length is larger than the system
  parameter <text:span text:style-name="Source_20_Text">MAX_DATA_STR</text:span> (see <text:span text:style-name="Source_20_Text">SM,</text:span>).
  "string-quote"
</text:p><text:p text:style-name="Text_20_body">  NOTE:  In contrast to <text:span text:style-name="Source_20_Text">S"</text:span>, the string stored by <text:span text:style-name="Source_20_Text">$"</text:span> when
  interpreting is not transient.
</text:p><text:p text:style-name="Text_20_body">  The implementation is based on PFE code for <text:span text:style-name="Source_20_Text">S"</text:span>.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_back_tick</text:p>
 <text:h text:style-name="Heading_20_3"> $`		( [ccc&lt;`&gt;] -- $: str ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_back_tick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Parse ccc delimited by ` (back-tick).  This is <text:span text:style-name="Source_20_Text">"$""</text:span> with
  back tick instead of double quote as the delimiter.
  "string-back-tick"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_constant</text:p>
 <text:h text:style-name="Heading_20_3"> $CONSTANT		( "name" $: a$ -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_constant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Create a definition for "name" with the execution semantics
  "name" execution:	($: -- a$ )
</text:p><text:p text:style-name="Text_20_body">  It is assumed that the input string resides as a measured,
  unchanging string outside of string space.
  "string-constant"
</text:p><text:p text:style-name="Text_20_body">  For example:
</text:p><screen>    $" This is a sample string." $constant sample$
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_variable</text:p>
 <text:h text:style-name="Heading_20_3"> $VARIABLE		( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_variable</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
    "name" execution:	( -- dfa )
 
</screen><text:p text:style-name="Text_20_body">  Create an ordinary Forth variable and initialize it to the
  address of a fixed, external, measured representation of the
  empty string, such as that pushed onto the string stack by
  <text:span text:style-name="Source_20_Text">EMPTY\$</text:span>.  "string-variable""
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parse_to_str</text:p>
 <text:h text:style-name="Heading_20_3"> PARSE&gt;$	( [ccc&lt;char;&gt;] char -- $: ccc$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parse_to_str</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Parse the input stream up to the first occurrence of char,
  which is parsed away, and store the string as an external
  measured string.  If executing in compilation mode, append
  run-time semantics to the current definition that leaves the
  MSA on the string stack.  In interpretation mode, leave the
  MSA on the string stack, where the stored copy, unlike
  <text:span text:style-name="Source_20_Text">PARSE&gt;S</text:span>, is required to be nontransient.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_two_drop</text:p>
 <text:h text:style-name="Heading_20_3"> $2DROP	( $: a$ b$ --  ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_two_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Drop the two topmost string stack entries, marking them as
  garbage if appropriate.  "string-two-drop"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_two_dup</text:p>
 <text:h text:style-name="Heading_20_3"> $2DUP	( $: a$ b$ -- a$ b$ a$ b$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_two_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave copies of the two topmost string stack entries.  The string
  values are not copied.  "string-two-dupe"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_depth</text:p>
 <text:h text:style-name="Heading_20_3"> $DEPTH	( -- n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_depth</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the number of items on the string stack.
  "string-depth"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_drop</text:p>
 <text:h text:style-name="Heading_20_3"> $DROP	( $:  a$ -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_str_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Drop the topmost string stack entry, marking it as garbage if
  it is initially bound to the top of the string stack.
  "string-drop"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_dup</text:p>
 <text:h text:style-name="Heading_20_3"> $DUP	( $: a$ -- a$ a$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave a copy of the topmost string stack entry.  The string
  value is not copied.  "string-dupe"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_nip</text:p>
 <text:h text:style-name="Heading_20_3"> $NIP	($: a$ b$ -- b$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_nip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Drop the next to top item from the string stack.
  "string-nip"
</text:p><text:p text:style-name="Text_20_body">  NOTE:  Because of essential string  space bookkeeping, the
  system level implementation can be little more efficient than
  the high-level definition:
</text:p><screen>    : $NIP  $SWAP $DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_over</text:p>
 <text:h text:style-name="Heading_20_3"> $OVER	( $: a$ b$ -- a$ b$ a$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_over</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave a copy of the next most accessible string stack entry
  on top of the string stack.  The string value is not copied.
  "string-over"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_pick</text:p>
 <text:h text:style-name="Heading_20_3"> $PICK	( u $: au$ ... a0$ -- au$ ... a0$ au$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_pick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Copy the u-th string stack entry to the top of the string
  stack.  The string value is not copied.  Throw an error if
  the input string stack does not have at least u+1 items. 
  "string-pick"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_swap</text:p>
 <text:h text:style-name="Heading_20_3"> $SWAP	( $: a$ b$ -- b$ a$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_swap</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Exchange the two most accessible strings on the string stack.
  Throw an error if there are less than two strings on the
  stack.  Neither string value is copied.
  "string-swap"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_exchange</text:p>
 <text:h text:style-name="Heading_20_3"> $EXCHANGE	( i j -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_exchange</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body"> 		($: maxth$ ... minth$ ... -- minth$ ... maxth$ ... )
  Exchange the ith and jth strings on the string stack, where
  the top is the 0th.  Throw an error if there are not at least
  max[i,j] + 1 strings on the stack.  Neither string value is
  copied.
  "string-exchange"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_s_from</text:p>
 <text:h text:style-name="Heading_20_3"> $S&gt;		( $: a$ -- S: a.s ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_s_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Drop a$ from the string stack and leave it as a ANS Forth
  string a.s, without copying.
  "string-s-from"
</text:p><text:p text:style-name="Text_20_body">  WARNING:  If a$ is a bound string, it may move or disappear
  at the next garbage collection, making a.s invalid.  This can
  be avoided by sandwiching sections of code where this could
  occur between $GC-OFF and $GC-ON.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_comma_s</text:p>
 <text:h text:style-name="Heading_20_3"> $,S	( $: a$ -- S: a.s ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_comma_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Drop a$ from the string stack, copy it into data space as a
  measured string, and leave it as an ANS Forth string a.s.
  An error is thrown if the string length is larger than the
  system parameter <text:span text:style-name="Source_20_Text">MAX_DATA_STR</text:span> (see <text:span text:style-name="Source_20_Text">M,S</text:span>).
  "string-comma-s"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_s_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $S@ 	( $: a$ -- a$ S: a.s ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_s_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the string stack unchanged, and leave the string body
  address and length on the data stack. 
  "string-s-fetch"
</text:p><text:p text:style-name="Text_20_body">  WARNING:  If a$ is a bound string, it may move at the next
  garbage collection, making a.s invalid.  This can be avoided
  by sandwiching sections of code where this could occur
  between $GC-OFF and $GC-ON.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_tuck</text:p>
 <text:h text:style-name="Heading_20_3"> $TUCK	($: a$ b$ -- b$ a$ b$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_tuck</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Copy the top string stack item just below the second item.  The
  string value is not copied.  "string-tuck"
</text:p><text:p text:style-name="Text_20_body">  NOTE:  Because of essential string  space bookkeeping, the
  system level implementation can be little more efficient than
  the high-level definition:
</text:p><screen>    : $TUCK  $SWAP $OVER ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_str_s</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;$S		( a.s -- $: a$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_str_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Push the external ANS Forth string a.s onto the string
  stack, without copying the string value into the string
  buffer.  It is an unchecked error if the Forth string a.s
  is not stored as an external measured string.
  "to-string-s"
</text:p><text:p text:style-name="Text_20_body">  WARNING: If the string value of a.s is actually in the
  string buffer and not external, the push operation may
  generate a garbage collection that invalidates its MSA.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_str_s_copy</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;$S-COPY	( a.s -- $: a$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_str_s_copy</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Copy the external string value whose body address and count
  are on the parameter stack into the string buffer and push it
  onto the string stack.  Errors are thrown if the count is
  larger than <text:span text:style-name="Source_20_Text">MAX_MCOUNT</text:span>, if there is not enough room in string
  space, even after garbage collection, or if there is an
  unterminated string concatenation.  The input external string
  need not exist as a measured string. 
  "to-string-s-copy"
</text:p><text:p text:style-name="Text_20_body">  NOTE:  <text:span text:style-name="Source_20_Text">MAX_MCOUNT</text:span> is the largest size the count field of a
  measured string can hold, e.g., 255, 64K-1, or 4,096M-1.  It
  is returned by:
</text:p><screen>    S" /DYNAMIC-STRING" ENVIRONMENT?
 
</screen><text:p text:style-name="Text_20_body">  WARNING: This word should not be used when the input string
  is a bound string because the copy operation may generate a
  garbage collection which invalidates its MSA.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_plus</text:p>
 <text:h text:style-name="Heading_20_3"> $+		($: a$ -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  If a$ is the empty string, drop it and do nothing else.
</text:p><text:p text:style-name="Text_20_body">  In particular, do not start a new concatenation, which would
  lock string space against new nonconcatenating copies.
</text:p><text:p text:style-name="Text_20_body">  Otherwise append the string body to the end of the string
  currently being concatenated as the last string in the string
  buffer, and update its count field.  If there is no
  concatenating string, start one.  An error is thrown if the
  size of the combined string would be larger than
  <text:span text:style-name="Source_20_Text">MAX_MCOUNT</text:span> or if there is not enough room in string space
  even after a garbage collection.
</text:p><text:p text:style-name="Text_20_body">  If garbage collection occurs, a$ remains valid even when
  it is in the string buffer.
</text:p><text:p text:style-name="Text_20_body">  When there is a concatenating string, concatenation is the
  only basic string operation that can copy a string into the
  string buffer.  "string-plus"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_parse_s_plus</text:p>
 <text:h text:style-name="Heading_20_3"> PARSE-S+	( [ccc&lt;char;&gt;] char -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_parse_s_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Parse the input stream up to the first occurrence of char,
  which is parsed away.  If executing in compilation mode,
  append run-time semantics to the current definition that
  concatenates the characters parsed from the string. 
  Otherwise concatenate the characters. 
  "parse-s-plus"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_endcat</text:p>
 <text:h text:style-name="Heading_20_3"> ENDCAT	( -- $: cat$ | empty$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_endcat</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  If there is no concatenating string, do nothing but leave the
  empty string.  If there is, leave it as a string bound to the
  top of the string stack, and terminate concatenation,
  permitting normal copies into the string buffer. 
  "end-cat"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_plus_quote</text:p>
 <text:h text:style-name="Heading_20_3"> $+"	( [ccc&lt;quote;&gt;] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_plus_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  This word is immediate.  In compilation mode it appends
  run-time semantics to the current definition that
  concatenates the quoted string according to the specification
  for <text:span text:style-name="Source_20_Text">$+</text:span>.  In interpretation mode it concatenates the
  string.  An error is thrown if the length of the quoted
  string is longer than the system parameter <text:span text:style-name="Source_20_Text">MAX_DATA_STR</text:span>
  (see <text:span text:style-name="Source_20_Text">M,S</text:span>).  "string-plus-quote"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_plus_back_tick</text:p>
 <text:h text:style-name="Heading_20_3"> $+`	( [ccc&lt;backtick;&gt;] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_plus_back_tick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  The same as <text:span text:style-name="Source_20_Text">$+"</text:span> but with back tick instead of double
  quote as delimiter.  "string-plus-back-tick"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_num_str_args</text:p>
 <text:h text:style-name="Heading_20_3"> #$ARGS	( -- u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_num_str_args</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the number of entries in the topmost string frame.
  Throw an error if the frame stack is empty.
  "number-string-args"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_args_brace</text:p>
 <text:h text:style-name="Heading_20_3"> $ARGS{	 ( arg1'$ ... argN'$ "arg1 ... argN &lt;}&gt;" --  ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_args_brace</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
     compilation: ( -- $: arg1$ ... argN$ )
</screen><text:p text:style-name="Text_20_body">  Immediate and compilation-only.
</text:p><text:p text:style-name="Text_20_body">  Copy the argument strings across lines to the string buffer,
  push them onto the string stack with "argN" the most
  accessible, and make them into the top compile-time string
  stack frame.  Compile the run-time code to make an argument
  frame out of the N most accessible run-time string stack
  entries.  Inform the system text interpreter that it should
  compile run-time code for any white-space delimited argument
  encountered in the text of the definition, that concatenates
  the corresponding string in the run-time frame.  At the
  semicolon terminating the definition, drop the compile-time
  argument frame and compile code to drop the run-time argument
  frame.
</text:p><text:p text:style-name="Text_20_body">  The code between <text:span text:style-name="Source_20_Text">$ARGS{</text:span> ... <text:span text:style-name="Source_20_Text">}</text:span> and the terminating
  semicolon is not allowed to make a net change in the string
  stack depth, because that would interfere with the automatic
  dropping of the string argument frame at the semicolon.
  "string-args-brace"
</text:p><text:p text:style-name="Text_20_body">  Syntax for defining a string macro GEORGE:
</text:p><screen> 
      : george  ($: a$ b$ c$ -- cat$ )
        $ARGS{ arg1 arg2 arg3 }
        cat" This is arg1:  " arg1 cat" ." ENDCAT $. ;
 
</screen><text:p text:style-name="Text_20_body">  The blank following the last argument is required.  For a
  macro with no arguments, <text:span text:style-name="Source_20_Text">$ARGS{ }</text:span> does nothing but add
  useless overhead and should be omitted.  Two of the
  arguments in this example are ignored and could have been
  left out.  Note that <text:span text:style-name="Source_20_Text">ENDCAT</text:span> would not be legal in this
  word without something like <text:span text:style-name="Source_20_Text">$.</text:span> to remove the concatenated
  string from the string stack before the terminating
  semicolon.  It is normal to use an <text:span text:style-name="Source_20_Text">$ARGS{ }</text:span> word as a step
  in a concatenation that is terminated elsewhere.
</text:p><text:p text:style-name="Text_20_body">  Sample syntax using the string macro <text:span text:style-name="Source_20_Text">george</text:span>:
</text:p><screen> 
      $" bill"  $" sue"  $" marie"  george $.
 
</screen><text:p text:style-name="Text_20_body">  The resulting display is:
</text:p><screen> 
      This is arg1:  bill.
 
</screen><text:p text:style-name="Text_20_body">  NOTE: Macro argument labels must be distinct from each other
  and from any local labels that appear in the same definition,
  and there is no check for that.
</text:p><text:p text:style-name="Text_20_body">  NOTE: At the moment the semantics of <text:span text:style-name="Source_20_Text">$ARGS{</text:span> is undefined
  before <text:span text:style-name="Source_20_Text">DOES&gt;</text:span>.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_frame</text:p>
 <text:h text:style-name="Heading_20_3"> $FRAME	( u -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_frame</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Push the description of a string stack frame starting at the
  top of the string stack and containing u entries onto the
  string frame stack.  Errors are thrown if the frame stack
  would overflow or if the depth of the string stack above the
  top frame, if there is one, is less than u.  The value u = 0
  is allowed.  "string-frame"
</text:p><text:p text:style-name="Text_20_body">  NOTE: This implementation pushes u and the string stack
  pointer onto the frame stack.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_frame_depth</text:p>
 <text:h text:style-name="Heading_20_3"> $FRAME-DEPTH	( -- u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_frame_depth</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the number of string frames currently on the string
  frame stack.  "string-frame-depth"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_drop_str_frame</text:p>
 <text:h text:style-name="Heading_20_3"> DROP-$FRAME	 ($: frame*$ i*$ -- i*s ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_drop_str_frame</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Drop the topmost string frame from the string frame stack,
  and the corresponding strings, frame*$, from the string
  stack.  An error is thrown if either stack would underflow. 
  The cases where the frame has zero entries on the string
  stack and/or there are zero or more items on the string stack
  above the top frame item are handled properly.
  "drop-string-frame"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_find_str_arg</text:p>
 <text:h text:style-name="Heading_20_3"> FIND-$ARG	( s -- u true | false ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_find_str_arg</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave true and its index u in the top string frame if the
  ANS Forth string matches an element of the frame, else leave
  false.  The index of the top frame element is zero.
  "find-string-arg"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_th_str_arg</text:p>
 <text:h text:style-name="Heading_20_3"> TH-$ARG	( u -- $: arg$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_th_str_arg</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave the u-th string in the topmost string frame, where the
  index u of the top element is zero. Throw an error if the
  frame stack is empty or if the top frame contains less than
  u+1 strings. "th-string-arg"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_do_drop_str_frame</text:p>
 <text:h text:style-name="Heading_20_3"> (DROP-$FRAME)	( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_do_drop_str_frame</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Cleanup code for the end of a definition that uses
  <text:span text:style-name="Source_20_Text">$ARGS{</text:span>.  <text:span text:style-name="Source_20_Text">;</text:span>-semicolon should be overloaded to compile
  it automatically if dynamic string arguments were in use.
  "paren-drop-string-frame-paren"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_pop</text:p>
 <text:h text:style-name="Heading_20_3"> $POP	( $:  a$ -- s: a$) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_pop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Abort if the string stack would underflow when popped.
</text:p><text:p text:style-name="Text_20_body">  Otherwise pop the top of the string stack and push it onto
  the data stack.
</text:p><text:p text:style-name="Text_20_body">  If the string is in the current string space and initially
  bound to the top of the string stack, mark it as garbage by
  setting its back link to <text:span text:style-name="Source_20_Text">NULL</text:span> and set the garbage flag.
</text:p><text:p text:style-name="Text_20_body">  This word violates the rule that only ANS Forth strings
  should appear on the data stack, and so is under the hood.
  "string-pop"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_push_ext</text:p>
 <text:h text:style-name="Heading_20_3"> $PUSH-EXT  	( a$ -- $: a$ ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_push_ext</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Pop an external mstring address from the data stack and push
  it onto the string stack after checking for room, invoking
  garbage collection if necessary.  Not to be used with a
  dynamic string because a garbage collection can invalidate
  its address.
</text:p><text:p text:style-name="Text_20_body">  This word violates the normal rule that only ANS Forth
  strings should appear on the data stack, and so is under the
  hood.
  "string-push-ext"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_breakp_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $BREAKP@	( -- $stack.break.addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_breakp_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "string-break-p-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_bufp_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $BUFP@	( -- $buffer.addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_bufp_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "string-buf-p-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_fbreakp_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $FBREAKP@	( -- frame.stack.break.addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_fbreakp_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "string-f-break-p-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_fsp0_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $FSP0@	( -- initial.frame.stack.top.addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_fsp0_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "string-f-s-p-zero-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_fsp_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $FSP@	( -- frame.stack.top.addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_fsp_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "string-f-s-p-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_sp0_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $SP0@	( -- initial.string.stack.top.addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_sp0_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "string-s-p-zero-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_sp_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> $SP@	( -- string.stack.top.addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_sp_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "string-s-p-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash_str_frame_item</text:p>
 <text:h text:style-name="Heading_20_3"> /$SFRAME-ITEM	( -- frame.stack.item.size ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash_str_frame_item</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "slash-string-frame-item"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash_str_frame_stack</text:p>
 <text:h text:style-name="Heading_20_3"> /$SFRAME-STACK	( -- max.frame.stack.size ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash_str_frame_stack</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "slash-string-frame-stack"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash_str_space_header</text:p>
 <text:h text:style-name="Heading_20_3"> /$SPACE-HEADER	( -- $space.header.size ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash_str_space_header</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "slash-string-space-header"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zero_str_space</text:p>
 <text:h text:style-name="Heading_20_3"> 0$SPACE	( $space.addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zero_str_space</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Clear the string buffer, string stack, and string frame stack
  in the string space starting at space.addr.  Any string
  variables holding strings in the string buffer are left
  pointing into limbo.  This may be executed with the string
  space in an invalid state, as long as the <text:span text:style-name="Source_20_Text">/$BUF</text:span> and
  <text:span text:style-name="Source_20_Text">MAX-#$FRAMES</text:span> fields of its string space structure are
  intact. "zero-string-space"
</text:p><text:p text:style-name="Text_20_body">  NOTE: This word does not zero fill the string buffer.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cat_str_p_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> CAT$P@	( -- cat$.msa | 0 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cat_str_p_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  "cat-string-fetch"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_in_str_buffer_Q</text:p>
 <text:h text:style-name="Heading_20_3"> IN-$BUFFER?	( msa -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-config.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_in_str_buffer_Q</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Leave true if the mstring is in the string buffer.
  "in-string-buffer-question"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  David N.Williams           (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2001-2004, 2006, 2008 David N. Williams
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_edit_block</text:p>
 <text:h text:style-name="Heading_20_3"> EDIT-BLOCK ( blk -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/edit-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_edit_block</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  start the internal block-editor on the assigned block
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2000.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_edit_text</text:p>
 <text:h text:style-name="Heading_20_3"> EDIT-TEXT name ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/edit-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_edit_text</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  start an external <text:span text:style-name="Source_20_Text">EDITOR</text:span> with the specified filename
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2000.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_edit_error</text:p>
 <text:h text:style-name="Heading_20_3"> EDIT-ERROR ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/edit-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_edit_error</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if an error occured, this routine can be called to invoke
  an appropriate <text:span text:style-name="Source_20_Text">EDITOR</text:span> (see also <text:span text:style-name="Source_20_Text">EDIT-BLOCK</text:span>)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2000.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Exec</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-set.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_Exec</text:span><text:span text:style-name="Source_20_Text">(p4_threadP th)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_call_stop</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_call_stop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_call_loop</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_call_loop</text:span><text:span text:style-name="Source_20_Text">(p4xt xt)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_call</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_call</text:span><text:span text:style-name="Source_20_Text">(p4xt xt)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_normal_execute</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_normal_execute</text:span><text:span text:style-name="Source_20_Text">(p4xt xt)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_simple_execute</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_simple_execute</text:span><text:span text:style-name="Source_20_Text">(p4xt xt)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_interpret</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_interpret</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_include_file</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_include_file</text:span><text:span text:style-name="Source_20_Text">(p4_File *fid)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_included1</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_included1</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *name, int len, int throws)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_included</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_included</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t* name, int len)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_closeall_files</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_closeall_files</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ok</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ok</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_interpret_loop</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_interpret_loop</text:span><text:span text:style-name="Source_20_Text">(P4_VOID)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cold_system</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cold_system</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_boot_system</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/engine-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_boot_system</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_include_required</text:p>
 <text:h text:style-name="Heading_20_3"> REQUIRED ( ... str-ptr str-len -- ??? ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/environ-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_include_required</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the filename argument is loaded via <text:span text:style-name="Source_20_Text">INCLUDED</text:span> as
  an extension package to the current system. The filename
  is registered in the current <text:span text:style-name="Source_20_Text">ENVIRONMENT</text:span> so that it is
  only <text:span text:style-name="Source_20_Text">INCLUDED</text:span> once (!!) if called multiple times via
  <text:span text:style-name="Source_20_Text">REQUIRED</text:span> or <text:span text:style-name="Source_20_Text">REQUIRES</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_include_require</text:p>
 <text:h text:style-name="Heading_20_3"> REQUIRE ( ... "file-name" -- ... ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/environ-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_include_require</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  parses the next <text:span text:style-name="Source_20_Text">WORD</text:span> and passes it to <text:span text:style-name="Source_20_Text">REQUIRED</text:span>
  this is the self-parsing version of <text:span text:style-name="Source_20_Text">REQUIRED</text:span> and
  it does parrallel <text:span text:style-name="Source_20_Text">INCLUDE</text:span> w.r.t. <text:span text:style-name="Source_20_Text">INCLUDED</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_environment</text:p>
 <text:h text:style-name="Heading_20_3"> ENVIRONMENT ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/environ-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_environment</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execute the <text:span text:style-name="Source_20_Text">VOCABULARY</text:span> runtime for the <text:span text:style-name="Source_20_Text">ENVIRONMENT-WORDLIST</text:span>
</text:p><screen>  : ENVIRONMENT  ENVIRONMENT-WORDLIST CONTEXT ! ;
  ' ENVIRONMENT  ALIAS [ENV] IMMEDIATE
</screen><text:p text:style-name="Text_20_body">  see newstyle <text:span text:style-name="Source_20_Text">ENVIRONMENT?</text:span> 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_environment_Q</text:p>
 <text:h text:style-name="Heading_20_3"> ENVIRONMENT? ( a1 n1 -- false | ?? true ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/environ-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4_char_t*
p4_environment_Q</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t* str, p4cell l)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check the environment for a property, usually
  a condition like questioning the existance of 
  specified wordset, but it can also return some
  implementation properties like "WORDLISTS"
  (the length of the search-order) or "#LOCALS"
  (the maximum number of locals) 
</text:p><text:p text:style-name="Text_20_body">  Here it implements the environment queries as a <text:span text:style-name="Source_20_Text">SEARCH-WORDLIST</text:span> 
  in a user-visible vocabulary called <text:span text:style-name="Source_20_Text">ENVIRONMENT</text:span>
</text:p><screen>  : ENVIRONMENT?
    ['] ENVIRONMENT &amp;gt;WORDLIST SEARCH-WORDLIST
    IF  EXECUTE TRUE ELSE  FALSE THEN ;
 
</screen><text:p text:style-name="Text_20_body">  special extension: a search for CORE will also find a definition
  of CORE-EXT or CORE-EXT-EXT or CORE-EXT-EXT-EXT - it just has to
  be below the ansi-standard maximum length of 31 chars.
</text:p><text:p text:style-name="Text_20_body">  if a name like "dstrings-ext" is given, and no such entry
  can be found, then envQ will try to trigger a <text:span text:style-name="Source_20_Text">(LOADM)</text:span> of
  that module, in the hope that this implicit-load does in fact
  define the answer. Use with care, it's a very new feature.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_needs_environment</text:p>
 <text:h text:style-name="Heading_20_3"> NEEDS ( name -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/environ-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_needs_environment</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  A self-parsing variant of an environment-query check. It is similar
  to a simulation like
</text:p><screen> 
  : NEEDS PARSE-WORD 2DUP ENVIRONMENT? 
    IF DROP ( extra value ) 2DROP ( success - be silent )
    ELSE TYPE ." not available " CR THEN ;
 
</screen><text:p text:style-name="Text_20_body">  however that would only match those worset-envqueries which return a
  single extra item under the uppermost TRUE flag in the success case.
  Instead it works more like
</text:p><screen> 
  : NEEDS PARSE-WORD 2DUP ENVIRONMENT-WORDLIST SEARCH-WORDLIST
    IF 2DROP ( success - be silent and just drop the parsed word )
    ELSE TYPE ." not available " CR THEN ;
 
</screen><text:p text:style-name="Text_20_body">  however we add the same extension as in <text:span text:style-name="Source_20_Text">ENVIRONMENT</text:span>? as that
  it can automatically load a wordset module to fullfil a query
  that looks like "[wordsetname]-ext". Therefore, the following
  two lines are pretty much identical:
</text:p><screen> 
  LOADM floating
  NEEDS floating-ext
 
</screen><text:p text:style-name="Text_20_body">  the difference between the two: if somebody did provide a forth
  level implementation of floating-ext then that implementation might
  have registered a hint "floating-ext" in the environment-wordlist.
  This extra-hint will inhibit loading of the binary module even if
  it exists and not been loaded so far. The <text:span text:style-name="Source_20_Text">LOADM</text:span> however will
  not check the <text:span text:style-name="Source_20_Text">ENVIRONMENT-WORDLIST</text:span> and only check its loadlist
  of binary wordset modules in the system.
</text:p><text:p text:style-name="Text_20_body">
  It is therefore recommended to use <text:span text:style-name="Source_20_Text">NEEDS</text:span> instead of <text:span text:style-name="Source_20_Text">LOADM</text:span>
  unless you know you want the binary module, quickly and uncondtionally.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_catch</text:p>
 <text:h text:style-name="Heading_20_3"> CATCH ( catch-xt* -- 0 | throw#! ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_catch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execute the given execution-token and catch
  any exception that can be caught therein.
  software can arbitrarily raise an exception
  using <text:span text:style-name="Source_20_Text">THROW</text:span> - the value 0 means there
  was no exception, other denote implementation
  dependent exception-codes.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_throw</text:p>
 <text:h text:style-name="Heading_20_3"> THROW ( throw#! -- [THROW] | throw# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_throw</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  raise an exception - it will adjust the depth
  of all stacks and start interpreting at the point 
  of the latest <text:span text:style-name="Source_20_Text">CATCH</text:span> 
  if n is null nothing happens, the -1 (ie. <text:span text:style-name="Source_20_Text">FALSE</text:span> )
  is the raise-code of <text:span text:style-name="Source_20_Text">ABORT</text:span> - the other codes
  are implementation dependent and will result in
  something quite like <text:span text:style-name="Source_20_Text">ABORT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_abort</text:p>
 <text:h text:style-name="Heading_20_3"> ABORT ( -- [THROW] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_abort</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  throw - cleanup some things and go back to the QUIT routine
</text:p><screen>  : ABORT -1 THROW ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_abort_quote_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((ABORT")) ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_abort_quote_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">ABORT"</text:span> what"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_abort_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'ABORT"' ( [string&lt;"&gt;] -- [THROW] ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_abort_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  throw like <text:span text:style-name="Source_20_Text">ABORT</text:span> but print an additional error-message
  to stdout telling what has happened.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_exception_string</text:p>
 <text:h text:style-name="Heading_20_3"> (EXCEPTION-STRING: ( exception# [description&lt;closeparen;&gt;] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_exception_string</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  append a node with the given id and a pointer to an 
  extern zstring to the <text:span text:style-name="Source_20_Text">NEXT-EXCEPTION</text:span> chain-list.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_longjmp_loop</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_longjmp_loop</text:span><text:span text:style-name="Source_20_Text">(int arg)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_throws</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/exception-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_throws</text:span><text:span text:style-name="Source_20_Text">(int id, const p4_char_t* description, int len)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_at_x_y</text:p>
 <text:h text:style-name="Heading_20_3"> AT-XY ( col# row# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_at_x_y</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  move the cursor position to the given row and column
  of the screen. If the output device is not a terminal
  this will have no effect but can still send an
  escape sequence.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_key_question</text:p>
 <text:h text:style-name="Heading_20_3"> KEY? ( -- key-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_key_question</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if a character is available from the keyboard, return true.
  The <text:span text:style-name="Source_20_Text">KEY</text:span> word will retrieve the actual character.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ekey</text:p>
 <text:h text:style-name="Heading_20_3"> EKEY ( -- key-code# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ekey</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a keyboard event, the encoding may differ, esp.
  that it can contain special keys.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ekey_to_char</text:p>
 <text:h text:style-name="Heading_20_3"> EKEY&gt;CHAR ( key-code# -- key-code# 0 | char# true! ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ekey_to_char</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ekey_question</text:p>
 <text:h text:style-name="Heading_20_3"> EKEY? ( -- ekey-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ekey_question</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check if a character is available from the keyboard
  to be received - unlike <text:span text:style-name="Source_20_Text">KEY</text:span>? it will not discard
  non-visible codes.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_emit_question</text:p>
 <text:h text:style-name="Heading_20_3"> EMIT? ( -- emit-flag ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_emit_question</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if <text:span text:style-name="Source_20_Text">EMIT</text:span> can safely output characters without
  blocking the forth by waiting for an indefinite time.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ms</text:p>
 <text:h text:style-name="Heading_20_3"> MS ( milliseconds# -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ms</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  wait at least the specified milliseconds
  (suspend the forth tasklet)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_time_and_date</text:p>
 <text:h text:style-name="Heading_20_3"> TIME&amp;amp;DATE ( -- sec# min# hrs# day# month# year# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_time_and_date</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the broken down current time
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_clrscr</text:p>
 <text:h text:style-name="Heading_20_3"> PAGE ( -- ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">extern FCodep4_dot_clrscr</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CLRSCR</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ignore_line</text:p>
 <text:h text:style-name="Heading_20_3"> #! ( "...&lt;eol;&gt;" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ignore_line</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  ignores the rest of the line,
  defining `#!' is used to support forth scripts
  executed by the unix kernel
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_clock_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> CLOCK@ ( --- clock-ticks# ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/facility-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_clock_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return clock(2) - the number of clocks of this process.
  To get the number of seconds, divide by <text:span text:style-name="Source_20_Text">CLOCKS_PER_SEC</text:span>
  as represented in the <text:span text:style-name="Source_20_Text">ENVIROMENT</text:span> for a hosted forth system.
  A similar scheme is used by <text:span text:style-name="Source_20_Text">MS@</text:span> to compute the clock time
  rounded to milliseconds (named in similarity with <text:span text:style-name="Source_20_Text">MS</text:span> sleep).
</text:p><text:p text:style-name="Text_20_body">
  Remember that the process clock will wrap around at some point,
  therefore only use difference values between two clock reads.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bin</text:p>
 <text:h text:style-name="Heading_20_3"> BIN ( access-mode# -- access-mode#' ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bin</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  modify the give file access-mode to be a binary-mode
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_delete_file</text:p>
 <text:h text:style-name="Heading_20_3"> DELETE-FILE ( name-ptr name-len -- name-errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_delete_file</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  delete the named file and return a status code
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_position</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-POSITION ( some-file* -- p,pos# some-errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_position</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the current position in the file and
  return a status code. A code of zero means success.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_size</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-SIZE ( some-file* -- s,size# some-errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_size</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the current size of the file and
  return a status code. A code of zero means success.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_write_line</text:p>
 <text:h text:style-name="Heading_20_3"> WRITE-LINE ( buf-ptr buf-len some-file* -- some-errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_write_line</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  write characters from the string buffer to a file,
  and add the line-terminator to the end of it.
  returns a status code.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_status</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-STATUS ( file-ptr file-len -- file-subcode# file-errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_status</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check the named file - if it exists
  the status errno code is zero. The status subcode
  is implementation-specific and usually matches the
  file access permission bits of the filesystem.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_flush_file</text:p>
 <text:h text:style-name="Heading_20_3"> FLUSH-FILE ( some-file* -- some-errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_flush_file</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  flush all unsaved buffers of the file to disk.
  A status code of zero means success.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rename_file</text:p>
 <text:h text:style-name="Heading_20_3"> RENAME-FILE ( oldname-ptr oldname-len newname-ptr newname-len -- newname-errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rename_file</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  rename the file named by "oldname" to the name of "newname"
  returns a status-code where zero means success.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_include</text:p>
 <text:h text:style-name="Heading_20_3"> INCLUDE ( "filename" -- ??? ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_include</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  load the specified file, see also <text:span text:style-name="Source_20_Text">LOAD"</text:span> filename"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_copy_file</text:p>
 <text:h text:style-name="Heading_20_3"> COPY-FILE ( src-ptr src-len dst-ptr dst-len -- copy-errno# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_copy_file</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">RENAME-FILE</text:span>, copies the file from src-name to dst-name
  and returns an error-code or null
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_move_file</text:p>
 <text:h text:style-name="Heading_20_3"> MOVE-FILE ( src-ptr src-len dst-ptr dst-len -- move-errno# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_move_file</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">RENAME-FILE</text:span>, but also across-volumes 
  moves the file from src-name to dst-name and returns an
  error-code or null
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_rw</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-R/W ( buffer* use-block# flag? some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_rw</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like FIG-Forth <text:span text:style-name="Source_20_Text"> R/W </text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_block</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-BLOCK ( use-block# some-file* -- buffer* ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_block</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_buffer</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-BUFFER ( use-block# some-file* -- buffer* ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_buffer</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_empty_buffers</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-EMPTY-BUFFERS ( some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_empty_buffers</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_flush</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-FLUSH ( some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_flush</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate      : FILE-FLUSH DUP FILE-SAVE-BUFFERS FILE-EMTPY-BUFFERS ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_list</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-LIST ( use-block# some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_list</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_load</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-LOAD ( use-block# some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_load</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_save_buffers</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-SAVE-BUFFERS ( some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_save_buffers</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_thru</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-THRU ( lo-block# hi-block# some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_thru</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">THRU</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_update</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-UPDATE ( some-file* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/file-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_update</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dfaligned</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4cell
p4_dfaligned</text:span><text:span text:style-name="Source_20_Text">(p4cell n)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_to_float</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_to_float</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *p, p4cell n, double *r)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_f_to_d</text:p>
 <text:h text:style-name="Heading_20_3"> ( f: a -- n,n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_to_d</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  b is the integer representation of a
</text:p><text:p text:style-name="Text_20_body">
  we use truncation towards zero.
  compare with <text:span text:style-name="Source_20_Text">F&gt;S</text:span> and its <text:span text:style-name="Source_20_Text">"FROUND&gt;S"</text:span> / <text:span text:style-name="Source_20_Text">"FTRUNC&gt;S"</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_p_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> FP@ ( -- addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_p_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns the floating point stack pointer 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_p_store</text:p>
 <text:h text:style-name="Heading_20_3"> FP! ( addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_p_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  sets the floating point stack pointer -
  this is the inverse of <text:span text:style-name="Source_20_Text">FP@</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_equal</text:p>
 <text:h text:style-name="Heading_20_3"> F? ( f: a b -- s: a==b ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_not_equal</text:p>
 <text:h text:style-name="Heading_20_3"> F&lt;&gt; ( f: a b -- s: a!=b ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_not_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_to_f</text:p>
 <text:h text:style-name="Heading_20_3"> S&gt;F  ( n -- f: x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_to_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  it's inverse is <text:span text:style-name="Source_20_Text">F&gt;S</text:span> - convert a cell parameter to floating-point.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_trunc_to_s</text:p>
 <text:h text:style-name="Heading_20_3"> FTRUNC&gt;S  (f: x -- s: n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_trunc_to_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  The word <text:span text:style-name="Source_20_Text">F&gt;S</text:span> was sometimes defined with a different behavior 
  than <text:span text:style-name="Source_20_Text">FTRUNC&gt;S</text:span> which is the type-cast behaviour of C according 
  to C99 section 6.3.1.4 - truncation would also match the ANS-Forth
  specification for <text:span text:style-name="Source_20_Text">F&gt;D</text:span>.
</text:p><text:p text:style-name="Text_20_body">
  Some systems used <text:span text:style-name="Source_20_Text">F&gt;S</text:span> defined to <text:span text:style-name="Source_20_Text">FROUND&gt;S</text:span> instead. The pfe
  provides explicit words for both conversions, the word <text:span text:style-name="Source_20_Text">FROUND&gt;S</text:span>
  and <text:span text:style-name="Source_20_Text">FTRUNC&gt;S</text:span> which return single-cell parameters for a floating
  point number with the conversion method of <text:span text:style-name="Source_20_Text">FTRUNC</text:span> or <text:span text:style-name="Source_20_Text">FROUND</text:span>.
</text:p><text:p text:style-name="Text_20_body">
  In PFE, <text:span text:style-name="Source_20_Text">F&gt;S</text:span> is a synonym pointing to <text:span text:style-name="Source_20_Text">FTRUNC&gt;S</text:span> in analogy 
  of the behavior of <text:span text:style-name="Source_20_Text">F&gt;D</text:span> where no explicit word exists. The
  inverse of <text:span text:style-name="Source_20_Text">F&gt;S</text:span> is the cast conversion of <text:span text:style-name="Source_20_Text">S&gt;F</text:span>.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_round_to_s</text:p>
 <text:h text:style-name="Heading_20_3"> FROUND&gt;S (f: x -- s: n) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_round_to_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  complements <text:span text:style-name="Source_20_Text">FTRUNC&gt;S</text:span> for applications that expect <text:span text:style-name="Source_20_Text">F&gt;S</text:span> to
  be defined with a rounding behavior like 
</text:p><screen>  : FROUND&amp;gt;S FROUND FTRUNC&amp;gt;S ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_trunc</text:p>
 <text:h text:style-name="Heading_20_3"> FTRUNC (f: x -- x' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_trunc</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  truncate towards zero, discard a fractional part. See also <text:span text:style-name="Source_20_Text">FTRUNC&gt;S</text:span>
  conversion and the <text:span text:style-name="Source_20_Text">FROUND</text:span> and <text:span text:style-name="Source_20_Text">FLOOR</text:span> adaptors.
</text:p><screen>  : FTRUNC FDUP F0&amp;lt; IF FCEIL ELSE FLOOR THEN ;
</screen><text:p text:style-name="Text_20_body">  (When available, uses a single call to C99 trunc() internally)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_minus_f_rot</text:p>
 <text:h text:style-name="Heading_20_3"> -FROT  (f: x1 x2 x3 -- x3 x1 x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_minus_f_rot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  F-stack equivalent of <text:span text:style-name="Source_20_Text">-ROT</text:span>
</text:p><text:p text:style-name="Text_20_body">
  note, some systems call this work F-ROT,
  here it is the inverse of <text:span text:style-name="Source_20_Text">FROT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_nip</text:p>
 <text:h text:style-name="Heading_20_3"> FNIP  (f: x1 x2 -- x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_nip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  F-stack equivalent of <text:span text:style-name="Source_20_Text">NIP</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_tuck</text:p>
 <text:h text:style-name="Heading_20_3"> FTUCK  (f: x1 x2 -- x2 x1 x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_tuck</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  F-stack equivalent of <text:span text:style-name="Source_20_Text">TUCK</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_one_over_f</text:p>
 <text:h text:style-name="Heading_20_3"> 1/F  (f: x -- 1/x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_one_over_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_square</text:p>
 <text:h text:style-name="Heading_20_3"> F^2  (f: x -- x^2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_square</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_power_n</text:p>
 <text:h text:style-name="Heading_20_3"> F^N  ( u f: x -- x^u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_power_n</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  For large exponents, use F** instead.  Of course u=-1 is large. 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_two_slash</text:p>
 <text:h text:style-name="Heading_20_3"> F2/  (f: x -- x/2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_two_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_two_star</text:p>
 <text:h text:style-name="Heading_20_3"> F2*  (f: x -- x*2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_two_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_zero_greater</text:p>
 <text:h text:style-name="Heading_20_3"> F0&gt;  (f: x -- s: flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_zero_greater</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_f_zero_not_equal</text:p>
 <text:h text:style-name="Heading_20_3"> F0&lt;&gt;  (f: x -- s: flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/floating-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_f_zero_not_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_plus</text:p>
 <text:h text:style-name="Heading_20_3"> 2+ ( a# -- a#' | a* -- a*' | a -- a' [??] ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   add 2 to the value on stack (and leave the result there)
</text:p><screen>  simulate:
    : 2+ 2 + ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_minus</text:p>
 <text:h text:style-name="Heading_20_3"> 2- ( a# -- a#' | a* -- a*' | a -- a' [??] ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   substract 2 from the value on stack (and leave the result there)
</text:p><screen>  simulate:
    : 2- 2 - ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_compile</text:p>
 <text:h text:style-name="Heading_20_3"> COMPILE ( "word" -- )  [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_compile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compile the next word. The next word should not be immediate,
  in which case you would have to use <text:span text:style-name="Source_20_Text">[COMPILE]</text:span>. For this
  reason, you should use the word <text:span text:style-name="Source_20_Text">POSTPONE</text:span>, which takes care
  it.
</text:p><screen>  simulate:
    : COMPILE  R&amp;gt; DUP @ , CELL+ &amp;gt;R ;  ( not immediate !!! )
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_vocabulary_RT</text:p>
 <text:h text:style-name="Heading_20_3"> ((VOCABULARY)) ( -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_vocabulary_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime of a <text:span text:style-name="Source_20_Text">VOCABULARY</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_vocabulary</text:p>
 <text:h text:style-name="Heading_20_3"> VOCABULARY ( "name" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_vocabulary</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a vocabulary of that name. If the named vocabulary
  is called later, it will run <text:span text:style-name="Source_20_Text">((VOCABULARY))</text:span> , thereby
  putting it into the current search order.
  Special pfe-extensions are accessible via 
  <text:span text:style-name="Source_20_Text">CASE-SENSITIVE-VOC</text:span> and <text:span text:style-name="Source_20_Text">SEARCH-ALSO-VOC</text:span>
</text:p><screen>  simulate:
    : VOCABULARY  CREATE ALLOT-WORDLIST
         DOES&amp;gt; ( the ((VOCABULARY)) runtime )
           CONTEXT ! 
    ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_next_block</text:p>
 <text:h text:style-name="Heading_20_3"> --&gt; ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_next_block</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  does increase <text:span text:style-name="Source_20_Text">BLK</text:span> and refills the input-buffer
  from there. Does hence break interpretation of the
  current BLK and starts with the next. Old-style
  forth mechanism. You should use <text:span text:style-name="Source_20_Text">INCLUDE</text:span>
</text:p><screen>  : --&amp;gt; ?LOADING REFILL ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_k</text:p>
 <text:h text:style-name="Heading_20_3"> K ( -- k# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_k</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the 3rd loop index just like <text:span text:style-name="Source_20_Text">I</text:span> and <text:span text:style-name="Source_20_Text">J</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_octal</text:p>
 <text:h text:style-name="Heading_20_3"> OCTAL ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_octal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  sets <text:span text:style-name="Source_20_Text">BASE</text:span> to 8. Compare with <text:span text:style-name="Source_20_Text">HEX</text:span> and <text:span text:style-name="Source_20_Text">DECIMAL</text:span>
</text:p><screen>  simulate:
    : OCTAL  8 BASE ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_p_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> SP@ ( -- sp-cell* ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_p_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the address of the top of stack. Does save it onto
  the stack. You could do 
</text:p><screen>    : DUP  SP@ @ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_store_bits</text:p>
 <text:h text:style-name="Heading_20_3"> !BITS ( x-bits# x-addr mask# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_store_bits</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  at the cell pointed to by addr, change only the bits that
  are enabled in mask
</text:p><screen>  simulate:
    : !BITS  &amp;gt;R 2DUP @ R NOT AND SWAP R&amp;gt; AND OR SWAP ! DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_power</text:p>
 <text:h text:style-name="Heading_20_3"> ** ( a# b# -- power-a# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_power</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  raise second to top power
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_byte_swap</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;&lt; ( a -- a' ) [FTH] [OLD] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_byte_swap</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  byte-swap a word
</text:p><text:p text:style-name="Text_20_body">
  depracated: use <text:span text:style-name="Source_20_Text">NTOHS</text:span> which does the same as this word when
  the local byte-order seems to have no match, and be otherwise
  a no-op. Note that only the two lower bytes of the top-of-cell
  are swapped.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_byte_swap_move</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;MOVE&lt; ( from-addr* to-addr* count# -- ) [FTH] [OLD] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_byte_swap_move</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">MOVE</text:span> , does byte-swap for each word underway. 
</text:p><text:p text:style-name="Text_20_body">
  depracated: this word has not been very useful lately. It does
  still stem from times of 16bit forth systems that wanted to
  interchange data blocks. It is better to use functionality
  based on <text:span text:style-name="Source_20_Text">NTOHS</text:span> or <text:span text:style-name="Source_20_Text">NTOHL</text:span>. Note that this word <text:span text:style-name="Source_20_Text">&gt;MOVE&lt;</text:span>
  does swap each 2byte. It is not useful for byte-swapping
  <text:span text:style-name="Source_20_Text">WCHAR</text:span> strings as the count is given in bytes, not wchar items.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fetch_bits</text:p>
 <text:h text:style-name="Heading_20_3"> @BITS ( x-addr mask# -- x-value# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_fetch_bits</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see the companion word =&gt; !BITS
</text:p><screen>  simulate:
    : @BITS  SWAP @ AND ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_seal</text:p>
 <text:h text:style-name="Heading_20_3"> SEAL ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-83-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_seal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  looks through the search-order and kills the ONLY wordset -
  hence you can't access the primary vocabularies from there.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_plus_store</text:p>
 <text:h text:style-name="Heading_20_3"> C+!  ( n addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_plus_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Add the low-order byte of _n_ to the byte at _addr_,
   removing both from the stack.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_wordlist</text:p>
 <text:h text:style-name="Heading_20_3"> "&gt;WORDLIST" ( xt -- wordl* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_wordlist</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  convert a <text:span text:style-name="Source_20_Text">VOCABULARY</text:span>-xt into its wordlist reference
  (as in win32forth)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bounds</text:p>
 <text:h text:style-name="Heading_20_3"> BOUNDS                ( str len -- str+len str ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bounds</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Convert _str len_ to range for DO-loop.
</text:p><screen>  : BOUNDS  ( str len -- str+len str )  OVER + SWAP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_off_store</text:p>
 <text:h text:style-name="Heading_20_3"> OFF                   ( addr  -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_off_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Store 0 at _addr_. Defined in f84 as <text:span text:style-name="Source_20_Text">OFF</text:span>. See antonym <text:span text:style-name="Source_20_Text">ON!</text:span>.
</text:p><screen>   : OFF  ( addr -- )  0 SWAP ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_on_store</text:p>
 <text:h text:style-name="Heading_20_3"> ON!                    ( addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_on_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Store -1 at _addr_. Defined in f83 as <text:span text:style-name="Source_20_Text">ON</text:span>. See antonym <text:span text:style-name="Source_20_Text">OFF!</text:span>.
</text:p><screen>   : ON!  ( addr -- )  -1 SWAP ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_append</text:p>
 <text:h text:style-name="Heading_20_3"> +PLACE                ( str len add2 -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_append</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Append string _str len_ to the counted string at _addr_.
   a.k.a. <text:span text:style-name="Source_20_Text">APPEND</text:span> (being a <text:span text:style-name="Source_20_Text">SYNONYM</text:span> now)
</text:p><screen>  : +PLACE   2DUP 2&amp;gt;R  COUNT +  SWAP MOVE ( ) 2R&amp;gt; C+! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_append_char</text:p>
 <text:h text:style-name="Heading_20_3"> C+PLACE           ( char addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_append_char</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Append _char_ to the counted string at _addr_.
   a.k.a. <text:span text:style-name="Source_20_Text">APPEND-CHAR</text:span> (being a <text:span text:style-name="Source_20_Text">SYNONYM</text:span> now)
</text:p><screen>  : C+PLACE   DUP &amp;gt;R  COUNT  DUP 1+ R&amp;gt; C!  +  C! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_place</text:p>
 <text:h text:style-name="Heading_20_3"> PLACE                 ( str len addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_place</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Place the string _str len_ at _addr_, formatting it as a
   counted string.
</text:p><screen>  : PLACE  2DUP 2&amp;gt;R  1+ SWAP  MOVE  2R&amp;gt; C! ;
  : PLACE  2DUP C!   1+ SWAP CMOVE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_question_leave</text:p>
 <text:h text:style-name="Heading_20_3"> ?LEAVE ( cond -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_question_leave</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  leave a (innermost) loop if condition is true
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_noop</text:p>
 <text:h text:style-name="Heading_20_3"> NOOP ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">extern FCode p4_noop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  do nothing, used as a place-holder where 
  an execution word is needed
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_p_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> RP@ ( -- addr )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_p_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns the return stack pointer 
</text:p><screen>  example:
    : R@ RP@ @ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_p_store</text:p>
 <text:h text:style-name="Heading_20_3"> RP! ( addr -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_p_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  sets the return stack pointer, reverse of <text:span text:style-name="Source_20_Text">RP@</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_p_store</text:p>
 <text:h text:style-name="Heading_20_3"> SP! ( ... addr -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_p_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  sets the stack pointer, reverse of <text:span text:style-name="Source_20_Text">SP@</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dash_rot</text:p>
 <text:h text:style-name="Heading_20_3"> -ROT ( a b c -- c a b ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dash_rot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  inverse of <text:span text:style-name="Source_20_Text">ROT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_set</text:p>
 <text:h text:style-name="Heading_20_3"> CSET ( n addr -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_set</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set bits in byte at given address 
</text:p><screen>  simulate:
    : CSET  TUCK @ SWAP OR SWAP ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_reset</text:p>
 <text:h text:style-name="Heading_20_3"> CRESET ( n addr -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_reset</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   reset bits in byte at given address 
</text:p><screen>  simulate:
    : CRESET  TUCK @ SWAP NOT AND SWAP ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_toggle</text:p>
 <text:h text:style-name="Heading_20_3"> CTOGGLE ( n addr -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_toggle</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  toggle bits in byte at given address 
</text:p><screen>  simulate:
    : CTOGGLE  TUCK @ SWAP XOR SWAP ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_toggle</text:p>
 <text:h text:style-name="Heading_20_3"> TOGGLE ( c-addr charmask -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_toggle</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  toggle the bits given in charmask, see also <text:span text:style-name="Source_20_Text">SMUDGE</text:span> and = UNSMUDGE
</text:p><screen>  example: the fig-style SMUDGE had been defined such
    : FIG-SMUDGE LATEST &amp;gt;FFA (SMUDGE#) TOGGLE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_three_dup</text:p>
 <text:h text:style-name="Heading_20_3"> 3DUP                ( x y z -- x y z x y z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_three_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Copy top three elements on the stack onto top of stack.
</text:p><screen>  : 3DUP   THIRD THIRD THIRD ;
</screen><text:p text:style-name="Text_20_body">
  or
</text:p><screen>  : 3DUP  3 PICK 3 PICK 3 PICK ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_three_drop</text:p>
 <text:h text:style-name="Heading_20_3"> 3DROP               ( x y z -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_three_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Drop the top three elements from the stack.
</text:p><screen>  : 3DROP   DROP 2DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_four_dup</text:p>
 <text:h text:style-name="Heading_20_3"> 4DUP ( a b c d -- a b c d a b c d ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_four_dup</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate:
   : 4DUP  4 PICK 4 PICK 4 PICK 4 PICK ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_four_drop</text:p>
 <text:h text:style-name="Heading_20_3"> 4DROP               ( x y z -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_four_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Drop the top three elements from the stack.
</text:p><screen>  : 4DROP   2DROP 2DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_toupper</text:p>
 <text:h text:style-name="Heading_20_3"> TOUPPER ( c1 -- c2 )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_toupper</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  convert a single character to upper case 
</text:p><screen>    : TOUPPER  &amp;gt;R _toupper ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ascii</text:p>
 <text:h text:style-name="Heading_20_3"> ASCII ( [word] -- val ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ascii</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  state smart version of <text:span text:style-name="Source_20_Text">CHAR</text:span> or <text:span text:style-name="Source_20_Text">[CHAR]</text:span> resp.
</text:p><screen>  simulate:
    : ASCII  [COMPILE] [CHAR] 
             STATE @ IF [COMPILE] LITERAL THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_control</text:p>
 <text:h text:style-name="Heading_20_3"> CONTROL ( [word] -- val ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_control</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">ASCII</text:span>, but returns char - '@' 
</text:p><screen>  simulate:
    : CONTROL  [COMPILE] [CHAR]  [CHAR] @ -  
               STATE @ IF [COMPILE] LITERAL THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_vocs</text:p>
 <text:h text:style-name="Heading_20_3"> VOCS ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_vocs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  list all vocabularies in the system
</text:p><screen>  simulate:
    : VOCS VOC-LINK @ BEGIN DUP WHILE
                            DUP -&amp;gt;WORDLIST.NAME @ ID.
                            -&amp;gt;WORDLIST.LINK @
                      REPEAT DROP ; 
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fetch_execute</text:p>
 <text:h text:style-name="Heading_20_3"> @EXECUTE ( xt -- ? ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_fetch_execute</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  same as <text:span text:style-name="Source_20_Text">@</text:span> <text:span text:style-name="Source_20_Text">EXECUTE</text:span> , but checks for null as xt and
  silently ignores it. Same as in most forths where defined.
</text:p><screen>  simulate:
    : @EXECUTE  @ ?DUP IF EXECUTE THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_file_check</text:p>
 <text:h text:style-name="Heading_20_3"> FILE-CHECK        ( n -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_file_check</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Check for file access error.
</text:p><screen>  \ : FILE-CHECK    ( n -- )  THROW ;
  : FILE-CHECK      ( n -- )  ABORT" File Access Error " ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_memory_check</text:p>
 <text:h text:style-name="Heading_20_3"> MEMORY-CHECK      ( n -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_memory_check</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Check for memory allocation error.
</text:p><screen>  \ : MEMORY-CHECK  ( n -- )  THROW ;
  : MEMORY-CHECK    ( n -- )  ABORT" Memory Allocation Error " ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_plus</text:p>
 <text:h text:style-name="Heading_20_3"> ++                  ( addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_plus_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Increment the value at _addr_.
</text:p><screen>  : ++  ( addr -- )  1 SWAP +! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fetch_plus_plus</text:p>
 <text:h text:style-name="Heading_20_3"> @++                  ( addr -- addr' x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_fetch_plus_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Fetch the value _x_ from _addr_, and increment the address
   by one cell.
</text:p><screen>  : @++  ( addr -- addr' x )  DUP CELL+ SWAP  @ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_store_plus_plus</text:p>
 <text:h text:style-name="Heading_20_3"> !++                  ( addr x -- addr' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/forth-usual-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_store_plus_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Store the value _x_ into _addr_, and increment the address
   by one cell.
</text:p><screen>  : !++  ( addr x -- addr' )  OVER !  CELL+ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nofp_dfaligned</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4cell
p4_nofp_dfaligned</text:span><text:span text:style-name="Source_20_Text">(p4cell n)	
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_to_float</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_nofp_to_float</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t *p, p4cell n, double *r)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_s_to_f</text:p>
 <text:h text:style-name="Heading_20_3"> S&gt;F  ( n -- x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_s_to_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_trunc_to_s</text:p>
 <text:h text:style-name="Heading_20_3"> FTRUNC&gt;S  ( x -- n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_trunc_to_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_round_to_s</text:p>
 <text:h text:style-name="Heading_20_3"> FROUND&gt;S ( x -- n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_round_to_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_trunc</text:p>
 <text:h text:style-name="Heading_20_3"> FTRUNC ( x -- x' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_trunc</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_minus_f_rot</text:p>
 <text:h text:style-name="Heading_20_3"> -FROT  ( x1 x2 x3 -- x3 x1 x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_minus_f_rot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_nip</text:p>
 <text:h text:style-name="Heading_20_3"> FNIP  ( x1 x2 -- x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_nip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_tuck</text:p>
 <text:h text:style-name="Heading_20_3"> FTUCK  ( x1 x2 -- x2 x1 x2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_tuck</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_one_over_f</text:p>
 <text:h text:style-name="Heading_20_3"> 1/F  ( x -- 1/x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_one_over_f</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_square</text:p>
 <text:h text:style-name="Heading_20_3"> F^2  ( x -- x^2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_square</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_power_n</text:p>
 <text:h text:style-name="Heading_20_3"> F^N  ( x u -- x^u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_power_n</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  For large exponents, use F** instead.  Of course u=-1 is large. 
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_two_slash</text:p>
 <text:h text:style-name="Heading_20_3"> F2/  ( x -- x/2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_two_slash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_two_star</text:p>
 <text:h text:style-name="Heading_20_3"> F2*  ( x -- x*2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_two_star</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_zero_greater</text:p>
 <text:h text:style-name="Heading_20_3"> F0&gt;  ( x -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_zero_greater</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_nofp_f_zero_not_equal</text:p>
 <text:h text:style-name="Heading_20_3"> F0&lt;&gt;  ( x -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;math.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nofp_f_zero_not_equal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_gforth_open_dir</text:p>
 <text:h text:style-name="Heading_20_3"> open-dir   ( c_addr u -- wdirid wior )  gforth  open_dir </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_gforth_open_dir</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will vanish without warning. see gforth documentation.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_gforth_read_dir</text:p>
 <text:h text:style-name="Heading_20_3"> read-dir   ( c_addr u1 wdirid -- u2 flag wior )  gforth  read_dir </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_gforth_read_dir</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will vanish without warning. see gforth documentation.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_gforth_close_dir</text:p>
 <text:h text:style-name="Heading_20_3"> close-dir       ( wdirid -- wior )      gforth  close_dir </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_gforth_close_dir</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will vanish without warning. see gforth documentation.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_gforth_linked</text:p>
 <text:h text:style-name="Heading_20_3"> linked ( list -- ) \ gforth </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_gforth_linked</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  : linked        here over @ a, swap ! ;
</screen><text:p text:style-name="Text_20_body">  (note: win32forth calls it "link," )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_gforth_chained</text:p>
 <text:h text:style-name="Heading_20_3"> chained       ( xt list -- ) \ gforth </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_gforth_chained</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  generic chains
</text:p><screen>  : chained  linked , ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_gforth_chainperform</text:p>
 <text:h text:style-name="Heading_20_3"> chainperform  ( list -- ) \ gforth </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_gforth_chainperform</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
</text:p><screen>  : chainperform  BEGIN @ dup WHILE dup cell+ perform REPEAT drop ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_to_name</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;NAME ( cfa -- nfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_name</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the code-field (CFA) to point
  then to the corresponding name-field (NFA)
</text:p><screen>  implementation-specific simulation:
    : &amp;gt;NAME  &amp;gt;LINK L&amp;gt;NAME ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_link</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;LINK ( cfa -- lfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_link</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the code-field (CFA) to point
  then to the corresponding link-field (LFA) - in some configurations
  this can be a very slow operation since the system might need to walk
  through all header-words in the system, looking for a <text:span text:style-name="Source_20_Text">&gt;NAME</text:span> that
  has the cfa and *then* returning the "N&gt;LINK" result here - which might
  be none at all if the word is a <text:span text:style-name="Source_20_Text">:NONAME</text:span>. Use always <text:span text:style-name="Source_20_Text">&gt;NAME</text:span> and
  treat this word as non-portable just like any assumption about the
  contents of the <text:span text:style-name="Source_20_Text">&gt;LINK</text:span>-field.
  Only in fig-mode and for traditional fig-mode programs, this word may
  possibly have enough extra assertions to be somewhat reliable.
  (and fig-mode did not know about <text:span text:style-name="Source_20_Text">SYNONYM</text:span>s - see note at <text:span text:style-name="Source_20_Text">LINK&gt;</text:span>).
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_body_from</text:p>
 <text:h text:style-name="Heading_20_3"> BODY&gt; ( pfa -- cfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_body_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  trying to convert a pointer to the parameter-field (PFA) to point
  then to the corresponding code-field (CFA) - note that this is not
  necessarily the inverse of <text:span text:style-name="Source_20_Text">&gt;BODY</text:span> instead it is a fast implementation
  assuming a <text:span text:style-name="Source_20_Text">VARIABLE</text:span> thing had been used. Every use of "BODY&gt;" is
  warned in the logfile.
</text:p><screen>  implementation-specific simulation:
    : BODY&amp;gt; CELL - ;
</screen><text:p text:style-name="Text_20_body">
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_name_from</text:p>
 <text:h text:style-name="Heading_20_3"> NAME&gt; ( nfa -- cfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_name_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the name-field (NFA) to point
  then to the corresponding code-field (CFA)
</text:p><text:p text:style-name="Text_20_body">
  In all cases but a <text:span text:style-name="Source_20_Text">SYNONYM</text:span> the pfe will behave not unlike the
  original fig-forth did - being identical to <text:span text:style-name="Source_20_Text">N&gt;LINK</text:span> <text:span text:style-name="Source_20_Text">LINK&gt;</text:span> .
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_link_from</text:p>
 <text:h text:style-name="Heading_20_3"> LINK&gt; ( lfa -- cfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_link_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the link-field (LFA) to point
  then to the corresponding code-field (CFA)
</text:p><text:p text:style-name="Text_20_body">
  BEWARE: this one does not care about <text:span text:style-name="Source_20_Text">SYNONYM</text:span>s and it is the
  only way to get at the data of a <text:span text:style-name="Source_20_Text">SYNONYM</text:span>. Therefore, if you have
  a synonym called A for an old word B then there is a different
  result using "NAME&gt;" on an A-nfa or using "N&gt;LINK LINK&gt;" since the
  first "NAME&gt;" will return the xt of B while the latter will return
  the xt of A - but executing an xt of A is an error and it will <text:span text:style-name="Source_20_Text">THROW</text:span>
</text:p><text:p text:style-name="Text_20_body">
  this difference is intentional to allow knowledgable persons to
  do weird things looking around in the dictionary. The forth standard
  words will not give you much of a chance to get hold of the nfa of
  a <text:span text:style-name="Source_20_Text">SYNONYM</text:span> word anyway - asking <text:span text:style-name="Source_20_Text">FIND</text:span> for a word A will return
  the execution token of B immediatly and "NAME&gt;" on that one lead to
  the nfa of B and not that of A.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_l_to_name</text:p>
 <text:h text:style-name="Heading_20_3"> L&gt;NAME ( lfa -- nfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_l_to_name</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the link-field (LFA) to point
  then to the corresponding name-field (CFA) - this one is one of
  the slowest operation available. One should always use the inverse
  operation <text:span text:style-name="Source_20_Text">N&gt;LINK</text:span> and cache an older value if that is needed.
  Some words might be linked but they do not have a name-field (just
  the other fields) but this word can not detect that and will try to look
  into the bits of the dictionary anway in the assumption that there is 
  something - and if done in the wrong place it might even segfault.
  Only in fig-mode and for traditional fig-mode programs, this word may
  possibly have enough extra assertions to be somewhat reliable.
  (and fig-mode did not know about <text:span text:style-name="Source_20_Text">SYNONYM</text:span>s - see note at <text:span text:style-name="Source_20_Text">LINK&gt;</text:span>).
</text:p><screen> 
  implementation-specific configure-dependent fig-only simulation:
  : L&amp;gt;NAME BEGIN DUP C@ 128 AND 0= WHILE 1- REPEAT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_n_to_link</text:p>
 <text:h text:style-name="Heading_20_3"> N&gt;LINK ( nfa -- lfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_n_to_link</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the name-field (NFA) to point
  then to the corresponding link-field (LFA) - this operation
  is quicker than the inverse <text:span text:style-name="Source_20_Text">L&gt;NAME</text:span>. This word is a specific
  implementation detail and should not be used by normal users - instead
  use always <text:span text:style-name="Source_20_Text">NAME&gt;</text:span> which is much more portable. Many systems may
  possibly not even have a <text:span text:style-name="Source_20_Text">&gt;LINK</text:span>-field in the sense that a <text:span text:style-name="Source_20_Text">@</text:span> on
  this adress will lead to another <text:span text:style-name="Source_20_Text">&gt;NAME</text:span>. Any operation on the 
  resulting <text:span text:style-name="Source_20_Text">&gt;LINK</text:span>-adress is even dependent on the current configuration
  of PFE - only in fig-mode you are asserted to have the classic detail.
  (and fig-mode did not know about <text:span text:style-name="Source_20_Text">SYNONYM</text:span>s - see note at <text:span text:style-name="Source_20_Text">LINK&gt;</text:span>).
</text:p><screen> 
  implementation-specific configure-dependent fig-only simulation:
    : N&amp;gt;LINK  C@ + ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_ffa</text:p>
 <text:h text:style-name="Heading_20_3"> &gt;FFA ( nfa -- ffa ) obsolete </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_to_ffa</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the name-field (NFA) to point
  then to the corresponding flag-field (FFA) - in traditinal
  Forth this is the same address. pfe _can_ do different.
</text:p><screen>  implementation-specific configure-dependent simulation:
    : FFA  1- ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ffa_from</text:p>
 <text:h text:style-name="Heading_20_3"> FFA&gt; ( ffa -- nfa ) obsolete </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ffa_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  converts a pointer to the flag-field (FFA) to point
  then to the corresponding name-field (NFA) - in traditinal
  Forth this is the same address. pfe _can_ do different.
</text:p><screen>  implementation-specific configure-dependent simulation:
    : FFA  1+ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_name_to_string</text:p>
 <text:h text:style-name="Heading_20_3"> NAME&gt;STRING        ( name-token -- str-ptr str-len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_name_to_string</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  convert a name-token into a string-span, used to detect the
  name for a word and print it. The word <text:span text:style-name="Source_20_Text">ID.</text:span> can be defined as
</text:p><screen>  : ID. NAME&amp;gt;STRING TYPE ;
</screen><text:p text:style-name="Text_20_body">  the implementation of <text:span text:style-name="Source_20_Text">NAME&gt;STRING</text:span> depends on the header layout
  that is defined during the configuration of the forth system.
</text:p><screen>  : NAME&amp;gt;STRING COUNT 31 AND ; ( for fig-like names )
  : NAME&amp;gt;STRING COUNT ;        ( default, name is a simple counted string )
  : NAME&amp;gt;STRING @ ZCOUNT ;     ( name-token is a pointer to a C-level string )
  : NAME&amp;gt;STRING COUNT 31 AND   ( hybrid of fig-like and zero-terminated )
       DUP 31 = IF DROP 1+ ZCOUNT THEN
  ;
  : NAME&amp;gt;STRING HEAD:: COUNT CODE:: PAD PLACE PAD ; ( different i86 segments )
 
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_header_comma</text:p>
 <text:h text:style-name="Heading_20_3"> HEADER, ( str-ptr str-len -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_header_comma</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CREATE</text:span> a new header in the dictionary from the given string, without CFA
</text:p><screen>  usage: : VARIABLE  BL WORD COUNT HEADER, DOVAR , ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_str_header</text:p>
 <text:h text:style-name="Heading_20_3"> $HEADER ( bstring -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_str_header</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CREATE</text:span> a new header in the dictionary from the given string
  with the variable runtime (see <text:span text:style-name="Source_20_Text">HEADER,</text:span> and <text:span text:style-name="Source_20_Text">CREATE:</text:span>)
</text:p><screen>  usage: : VARIABLE  BL WORD $HEADER ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_latest</text:p>
 <text:h text:style-name="Heading_20_3"> LATEST ( -- nfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_latest</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the NFA of the lateset definition in the
  <text:span text:style-name="Source_20_Text">CURRENT</text:span> vocabulary
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_smudge</text:p>
 <text:h text:style-name="Heading_20_3"> SMUGDE ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_smudge</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the FIG definition toggles the <text:span text:style-name="Source_20_Text">SMUDGE</text:span> bit, and not all systems have
  a smudge bit - instead one should use <text:span text:style-name="Source_20_Text">REVEAL</text:span> or <text:span text:style-name="Source_20_Text">HIDE</text:span>
</text:p><screen>  : SMUDGE LAST @ &amp;gt;FFA SMUDGE-MASK TOGGLE ;
  : SMUDGE LAST @ NAME-FLAGS@ SMUDGE-MASK XOR LAST @ NAME-FLAGS! ;
  : HIDE   LAST @ NAME-FLAGS@ SMUDGE-MASK  OR LAST @ NAME-FLAGS! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_hide</text:p>
 <text:h text:style-name="Heading_20_3"> HIDE ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_hide</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the FIG definition toggles the <text:span text:style-name="Source_20_Text">SMUDGE</text:span> bit, and not all systems have
  a smudge bit - instead one should use <text:span text:style-name="Source_20_Text">REVEAL</text:span> or <text:span text:style-name="Source_20_Text">HIDE</text:span>
</text:p><screen>  : HIDE LAST @ FLAGS@ SMUDGE-MASK XOR LAST @ FLAGS! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_reveal</text:p>
 <text:h text:style-name="Heading_20_3"> REVEAL ( -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_reveal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the FIG definition toggles the <text:span text:style-name="Source_20_Text">SMUDGE</text:span> bit, and not all systems have
  a smudge bit - instead one should use <text:span text:style-name="Source_20_Text">REVEAL</text:span> or <text:span text:style-name="Source_20_Text">HIDE</text:span>
</text:p><screen>  : REVEAL LAST @ FLAGS@ SMUDGE-MASK INVERT AND LAST @ FLAGS! ;
  : REVEAL LAST @ CHAIN-INTO-CURRENT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_name_flags_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> NAME-FLAGS@ ( nfa -- nfa-flags ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_name_flags_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the nfa-flags that corresponds to the nfa given. Note that
  in the fig-style would include the nfa-count in the lower bits.
  (see <text:span text:style-name="Source_20_Text">NAME-FLAGS!</text:span>)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_name_flags_store</text:p>
 <text:h text:style-name="Heading_20_3"> NAME-FLAGS! ( nfa-flags nfa -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_name_flags_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the nfa-flags of nfa given. Note that in the fig-style the nfa-flags
  would include the nfa-count in the lower bits - therefore this should only
  set bits that had been previously retrieved with <text:span text:style-name="Source_20_Text">NAME-FLAGS@</text:span>
</text:p><screen>  : IMMEDIATE LAST @ NAME-FLAGS@ IMMEDIATE-MASK OR LAST @ NAME-FLAGS! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_defer_RT</text:p>
 <text:h text:style-name="Heading_20_3"> ((DEFER)) ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_defer_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  runtime of <text:span text:style-name="Source_20_Text">DEFER</text:span> words
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_defer</text:p>
 <text:h text:style-name="Heading_20_3"> DEFER ( 'word' -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_defer</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a new word with ((DEFER))-semantics
</text:p><screen>  simulate:
    : DEFER  CREATE 0, DOES&amp;gt; ( the ((DEFER)) runtime ) 
       @ ?DUP IF EXECUTE THEN ;
    : DEFER  DEFER-RT HEADER 0 , ;
</screen><text:p text:style-name="Text_20_body">
  declare as <text:span text:style-name="Source_20_Text">"DEFER deferword"</text:span>  
  and set as <text:span text:style-name="Source_20_Text">"['] executionword IS deferword"</text:span>
  (in pfe, you can also use <text:span text:style-name="Source_20_Text">TO deferword</text:span> to set the execution)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_is</text:p>
 <text:h text:style-name="Heading_20_3"> IS ( xt-value [word] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_is</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set a <text:span text:style-name="Source_20_Text">DEFER</text:span> word
  (in pfe: set the DOES-field - which is the BODY-field in ans-mode
   and therefore the same as <text:span text:style-name="Source_20_Text">TO</text:span> /  in fig-mode the DOES-field is
   one cell higher up than for a <text:span text:style-name="Source_20_Text">CREATE:</text:span> <text:span text:style-name="Source_20_Text">VARIABLE</text:span> 
   Use <text:span text:style-name="Source_20_Text">IS</text:span> freely on each DOES-words in both modes).
</text:p><screen>  : IS ' 
    STATE @ IF LITERAL, POSTPONE &amp;gt;DOES-BODY POSTPONE ! 
    ELSE &amp;gt;DOES-BODY ! THEN 
  ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_action_of</text:p>
 <text:h text:style-name="Heading_20_3"> ACTION-OF ( [word] -- xt-value ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_action_of</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the <text:span text:style-name="Source_20_Text">BEHAVIOR</text:span> of a <text:span text:style-name="Source_20_Text">DEFER</text:span> word when executed. If being
  compiled then the ACTION-OF will be the value of [word] at the
  time of execution and not that of compilation time (non-constant). 
</text:p><text:p text:style-name="Text_20_body">
  In PFE it does actually pick whatever is stored in the DOES-field
  of a word and therefore ACTION-OF may applied to all DOES-words.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_defer_store</text:p>
 <text:h text:style-name="Heading_20_3"> DEFER! ( xt-value xt-defer -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_defer_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  A Forth200x definition that is not very useful.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_defer_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> DEFER@ ( xt1 -- xt2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_defer_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the execution token xt2 that would be executed by the <text:span text:style-name="Source_20_Text">DEFER</text:span>
  identified by xt1.
</text:p><text:p text:style-name="Text_20_body">
  This command is used to obtain the execution contents of a deferred
  word. A typical use would be to retrieve and save the execution
  behavior of the deferred word, set the deferred word to a new behavior,
  and then later restore the old behavior.
</text:p><text:p text:style-name="Text_20_body">
  If the deferred word identified by _xt1_ is associated with some
  other deferred word, _xt2_ is the execution token of that other
  deferred word. To retrieve the execution token of the word currently
  associated with that other deferred word, use the phrase DEFER@ DEFER@ .
</text:p><text:p text:style-name="Text_20_body">
  Experience:
       BEHAVIOR was used many years in OpenBoot and OpenFirmware systems.
</text:p><text:p text:style-name="Text_20_body">
  In PFE it is the inverse of an <text:span text:style-name="Source_20_Text">IS</text:span> operation and it will never fail
  if applied to a word with atleast a body. That's just like <text:span text:style-name="Source_20_Text">IS</text:span> can
  be applied to almost every <text:span text:style-name="Source_20_Text">DOES&gt;</text:span> word where <text:span text:style-name="Source_20_Text">DEFER@</text:span> will get
  the value back.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_alias</text:p>
 <text:h text:style-name="Heading_20_3"> ALIAS ( some-xt* "name" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_alias</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a defer word that is initialized with the given x-token.
                                                            <text:span text:style-name="Source_20_Text">DO-ALIAS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_synonym_RT</text:p>
 <text:h text:style-name="Heading_20_3"> ((SYNONYM)) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_synonym_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  should not actually be called ever.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_obsoleted_RT</text:p>
 <text:h text:style-name="Heading_20_3"> ((OBSOLETED)) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_obsoleted_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  should not actually be called ever.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_synonym</text:p>
 <text:h text:style-name="Heading_20_3"> SYNONYM ( "newname" "oldname" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_synonym</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  make an name-alias for a word - this is very different from a <text:span text:style-name="Source_20_Text">DEFER</text:span>
  since a <text:span text:style-name="Source_20_Text">DEFER</text:span> will resolve at runtime. Changing the target of a
  <text:span text:style-name="Source_20_Text">DEFER</text:span> via <text:span text:style-name="Source_20_Text">IS</text:span> will result in changing the <text:span text:style-name="Source_20_Text">BEHAVIOR</text:span> of all
  words defined earlier and containing the name of the <text:span text:style-name="Source_20_Text">DEFER</text:span>.
</text:p><text:p text:style-name="Text_20_body">
  A <text:span text:style-name="Source_20_Text">SYNONYM</text:span> however does not have any data field (theoretically not
  even an execution token), instead it gets resolved at compile time.
  In theory, you can try to <text:span text:style-name="Source_20_Text">FIND</text:span> the name of the <text:span text:style-name="Source_20_Text">SYNONYM</text:span> but as
  soon as you apply <text:span text:style-name="Source_20_Text">NAME&gt;</text:span> the execution token of the end-point is
  returned. This has also the effect that using the inverse <text:span text:style-name="Source_20_Text">&gt;NAME</text:span>
  operation will result in the name-token of the other name. 
</text:p><screen> 
    SYNONYM CREATE &amp;lt;BUILDS ( like it is in ANS Forth )
    : FOO CREATE DOES&amp;gt; @ ;
    SEE FOO
    : foo &amp;lt;builds
      does&amp;gt; @ ;
    SYNONYM CREATE CREATE:
    : BAR CREATE 10 ALLOT ;
    SEE BAR
    : bar create: 10 allot ;
</screen><text:p text:style-name="Text_20_body">                       (only <text:span text:style-name="Source_20_Text">LINK&gt;</text:span> does not care about <text:span text:style-name="Source_20_Text">SYNONYM</text:span>s)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_obsoleted</text:p>
 <text:h text:style-name="Heading_20_3"> "SYNONYM-OBSOLETED ( "newname" "oldname" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_obsoleted</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  same as <text:span text:style-name="Source_20_Text">SYNONYM</text:span> but on the first use an error message will be
  displayed on both the screen and the sys-log.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_deprecated</text:p>
 <text:h text:style-name="Heading_20_3"> (DEPRECATED: ( "newname" [message&lt;closeparen;&gt;] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_deprecated</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  add a message for the following word "newname" that should
  be shown once upon using the following word. Use it like
</text:p><screen>    (DEPRECATED: myword is obsoleted in Forth200X)
    : myword ." hello world" ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_check_deprecated</text:p>
 <text:h text:style-name="Heading_20_3"> (CHECK-DEPRECATED) ( nfa* -- nfa* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_check_deprecated</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  an internal function that will check a word name
  to have any deprecation attribution - some words have
  a (one time) message to be shown to the user, while
  <text:span text:style-name="Source_20_Text">OBSOLETED-SYNONYM</text:span> will show a message and rebuild
  itself as a normal SYNONYM. - Note that most deprecations
  are only shown once and that they are not emitted when
  having REDEFINED-MSG OFF.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_extern_deprecated</text:p>
 <text:h text:style-name="Heading_20_3"> EXTERN,-DEPRECATED: ( "newname" zstring* -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_extern_deprecated</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compile a pointer to an extern (loader) z-string
  to the dictionary and on execution show a deprecation
  message once. Note: the new name is smudged+immediate,
  so it you can not <text:span text:style-name="Source_20_Text">FIND</text:span> it right after compilation.
</text:p><text:p text:style-name="Text_20_body">
  see also <text:span text:style-name="Source_20_Text">(DEPRECATED:</text:span> name message) for the real thing
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_logmessage</text:p>
 <text:h text:style-name="Heading_20_3"> EXTERN,-LOGMESSAGE: ( "newname" zstring* -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_logmessage</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compile a pointer to an extern (loader) z-string
  to the dictionary and on execution show a logging
  message once. Note: this name is NOT smudged+immediate.
</text:p><text:p text:style-name="Text_20_body">
  see also <text:span text:style-name="Source_20_Text">(DEPRECATED:</text:span> name message) for 
  deprecation messages
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dictvar_RT</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_dictvar_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dictget_RT</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/header-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_dictget_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_help</text:p>
 <text:h text:style-name="Heading_20_3"> (HELP) ( str-ptr str-len -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/help-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_help</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  display help for the specified word
  (not functional yet)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_open_terminal_logfile</text:p>
 <text:h text:style-name="Heading_20_3"> OPEN-TERMINAL-LOGFILE ( s-buf s-len -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/main-k12.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_open_terminal_logfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  open terminal logfile named by the string-buffer
  all further output to the terminal window is also logged into
  this file. This is especially useful in embedded environments
  where the terminal connection is often not used or it is
  directed to a different location that does not easily allow to
  redirect the forth output to a file for further examination.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_close_terminal_logfile</text:p>
 <text:h text:style-name="Heading_20_3"> CLOSE-TERMINAL-LOGFILE ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/main-k12.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_close_terminal_logfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  close terminal logfile opened with <text:span text:style-name="Source_20_Text">OPEN-TERMINAL-LOGFILE</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_terminal_answer_link</text:p>
 <text:h text:style-name="Heading_20_3"> TERMINAL-ANSWER-LINK ( -- sap#* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/main-k12.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_terminal_answer_link</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  send terminal-output as a data-message to the specified link sap.
  Unlike <text:span text:style-name="Source_20_Text">TERMINAL-OUTPUT-LINK</text:span> the data-messages are in line-mode.
  The flushed characters are buffered until a non-printable character
  is seen. This is somewhat more useful when treating pfe as a print
  service and testing machine, but can not provide for interactivity.
</text:p><screen>  60 TERMINAL-ANSWER-LINK !
  ...
  TERMINAL-ANSWER-LINK OFF
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_terminal_output_link</text:p>
 <text:h text:style-name="Heading_20_3"> TERMINAL-OUTPUT-LINK ( -- sap#* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/main-k12.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_terminal_output_link</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  send terminal-output as a data-message to the specified link sap.
  This can be used in an embedded systems for a terminal session simulation.
  setting zero-sap will disable sending message-frames (the zero sap is
  therefore not usable for output-to-link). The startup default is zero.
</text:p><screen>  60 TERMINAL-OUTPUT-LINK !
  ...
  TERMINAL-OUTPUT-LINK OFF
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_terminal_input_link</text:p>
 <text:h text:style-name="Heading_20_3"> TERMINAL-INPUT-LINK ( -- sap#* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/main-k12.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_terminal_input_link</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  let the forth stdin-handling look for data-messages on this link too.
  These will be interpreted like messages that come from the interactive
  forth terminal. This can be used in an embedded systems for a terminal 
  session simulation. setting zero-sap will disable interpreting these
  incoming data-frames as keyboard-strings (so that the zero sap is
  therefore not usable for an input-link!). The startup default is zero.
</text:p><screen>  60 TERMINAL-INPUT-LINK !
  ...
  TERMINAL-INPUT-LINK OFF
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_terminal_emulation_state</text:p>
 <text:h text:style-name="Heading_20_3"> TERMINAL-EMULATION-STATE ( -- state* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/main-k12.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_terminal_emulation_state</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns the address of the emulations state variable so it can be
  read and explicitly changed to another value from forth text. This is
  a very questionable thing to do as the emulation-state is actually
  an enumerated value, the ESE will just show question-marks setting 
  this variable to something not understood.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_local</text:p>
 <text:h text:style-name="Heading_20_3"> (LOCAL)          ( strptr strcnt -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/locals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_local</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  this word is used to create compiling words that can
  declare <text:span text:style-name="Source_20_Text">LOCALS|</text:span> - it shall not be used directly
  to declare a local, the pfe provides <text:span text:style-name="Source_20_Text">LVALUE</text:span> for
  that a purpose beyond <text:span text:style-name="Source_20_Text">LOCALS|</text:span> 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_locals_bar</text:p>
 <text:h text:style-name="Heading_20_3"> LOCALS|   ( xN ... x2 x1 [name1 .. nameN &lt;|&gt;] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/locals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_locals_bar</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create local identifiers to be used in the current definition.
  At runtime, each identifier will be assigned a value from
  the parameter stack. 
  The identifiers may be treated as if being a <text:span text:style-name="Source_20_Text">VALUE</text:span> , it does
  also implement the ansi <text:span text:style-name="Source_20_Text">TO</text:span> extensions for locals. Note that
  the identifiers are only valid inside the currently compiled
  word, the <text:span text:style-name="Source_20_Text">SEE</text:span> decompiled word will show them as 
  <text:span text:style-name="Source_20_Text">&lt;A&gt;</text:span> <text:span text:style-name="Source_20_Text">&lt;B&gt;</text:span> ... <text:span text:style-name="Source_20_Text">&lt;N&gt;</text:span> a.s.o.   
  see also <text:span text:style-name="Source_20_Text">LVALUE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_local_value</text:p>
 <text:h text:style-name="Heading_20_3"> LVALUE ( value [name] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/locals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_local_value</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  declares a single local <text:span text:style-name="Source_20_Text">VALUE</text:span> using <text:span text:style-name="Source_20_Text">(LOCAL)</text:span> - a 
  sequence of <text:span text:style-name="Source_20_Text">LVALUE</text:span> declarations can replace a 
  <text:span text:style-name="Source_20_Text">LOCALS|</text:span> argument, ie. <text:span text:style-name="Source_20_Text"> LOCALS| a b c | </text:span> 
  is the same as <text:span text:style-name="Source_20_Text"> LVALUE a  LVALUE b  LVALUE c </text:span>.
  This should also clarify the runtime stack behaviour of
  <text:span text:style-name="Source_20_Text">LOCALS|</text:span> where the stack parameters seem to be
  assigned in reverse order as opposed to their textual
  identifier declarations. 
  compare with <text:span text:style-name="Source_20_Text">VALUE</text:span> and the pfe's convenience word
  <text:span text:style-name="Source_20_Text">VAR</text:span>.
</text:p><text:p text:style-name="Text_20_body">
</text:p><screen>  : LVALUE 
    STATE @ IF 
      VALUE 
    ELSE 
      BL WORD COUNT DUP (LOCAL) (TO)
    THEN
  ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_local_buffer_var</text:p>
 <text:h text:style-name="Heading_20_3"> LBUFFER: ( size [name] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/locals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_local_buffer_var</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  declares a single local <text:span text:style-name="Source_20_Text">VALUE</text:span> using <text:span text:style-name="Source_20_Text">(LOCAL)</text:span> - which
  will hold the address of an area like <text:span text:style-name="Source_20_Text">BUFFER:</text:span> but carved
  from the return-stack (as in C with alloca). This local buffer
  will be automatically given up at the end of the word. The
  return-stack-pointer will be increased only at the time of
  the <text:span text:style-name="Source_20_Text">p4_local_buffer_var</text:span> function (and the address assigned to the <text:span text:style-name="Source_20_Text">LVALUE</text:span>)
  so that the provided size gets determined at runtime. Note
  that in some configurations the forth-return-stack area is
  quite small - for large string operations you should consider
  to use a <text:span text:style-name="Source_20_Text">POCKET-PAD</text:span> in pfe.
</text:p><screen>  : LBUFFER:
    STATE @ IF 
      BUFFER:
    ELSE 
      :NONAME ( size -- rp* ) R&amp;gt; RP@ - DUP RP! SWAP &amp;gt;R ;NONAME
      COMPILE, POSTPONE LVALUE
    THEN
  ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_emu_sendme_command</text:p>
 <text:h text:style-name="Heading_20_3"> BEWARE: helper function, make sure to save LEM context and setup the </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/main-k12.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">status_t
p4_emu_sendme_command</text:span><text:span text:style-name="Source_20_Text">(k12_emu_type_t* emul_id, const u8_t* str, int len)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">           forth's REGTH (if it uses a cpu register for that).
  the <text:span text:style-name="Source_20_Text">p4_emu_sendme_command</text:span> function will create an eventbuffer that will land
  in the term-k12 getevent loop - it will work as if the
  the string has been magically typed on the terminal. It
  can be used to send a string from LEM-context (during a
  config-request) to the PFE-context (in its getevent loop).
  The string will be implicitly terminated with a CR to start
  execution in the engine's interpret_loop.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_allocate</text:p>
 <text:h text:style-name="Heading_20_3"> ALLOCATE ( size# -- alloc*! 0 | 0 errno#! ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/memory-alloc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_allocate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Allocate a chunk of memory from the system heap.
  use <text:span text:style-name="Source_20_Text">FREE</text:span> to release the memory area back to the system. 
  A code of zero means success.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_free</text:p>
 <text:h text:style-name="Heading_20_3"> FREE ( alloc* -- errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/memory-alloc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_free</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Free the memory from <text:span text:style-name="Source_20_Text">ALLOCATE</text:span>
  A code of zero means success.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_resize</text:p>
 <text:h text:style-name="Heading_20_3"> RESIZE ( alloc* newsize# -- alloc*' errno# ) [ANS] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/memory-alloc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_resize</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Resize the system memory chunk. A code of zero means success.
  Our implementation returns the old pointer on failure.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dict_allocate</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/os-string.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void*
p4_dict_allocate</text:span><text:span text:style-name="Source_20_Text">(int items, int size, int align, 
		  void** lower, void** upper)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>








 <text:p text:style-name="Preformatted_20_Text">p4_cold</text:p>
 <text:h text:style-name="Heading_20_3"> COLD ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cold</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  cold abort - reinitialize everything and go to <text:span text:style-name="Source_20_Text">QUIT</text:span> routine
  ... this routine is implemented as a warm-boot in pfe.
</text:p><screen>  : COLD [ ALSO ENVIRONMENT ] EMPTY SCRIPT-FILE INCLUDED QUIT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_d_dot_r</text:p>
 <text:h text:style-name="Heading_20_3"> UD.R ( x,x# r# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_d_dot_r</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_u_d_dot</text:p>
 <text:h text:style-name="Heading_20_3"> UD. ( x,x# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_u_d_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see also <text:span text:style-name="Source_20_Text">UD</text:span>.R
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_id_dot</text:p>
 <text:h text:style-name="Heading_20_3"> ID. ( some-nfa* -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_id_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print the name-field pointed to by the nfa-argument.
  a synonym for .NAME - but this word is more portable due its
  heritage from fig-forth.
</text:p><text:p text:style-name="Text_20_body">
  in fig-forth the name-field is effectivly a bstring with some flags,
  so the nfa's count has to be masked out, e.g.
</text:p><screen>  : .NAME COUNT 32 AND TYPE ;
</screen><text:p text:style-name="Text_20_body">
  in other pfe configurations, the name might not contain the flags it
  it just a counted string - and there may be even more possibilities.
</text:p><screen>  : .NAME COUNT TYPE ;
</screen><text:p text:style-name="Text_20_body">
  you should more and more convert your code to use the sequence
  <text:span text:style-name="Source_20_Text">NAME&gt;STRING</text:span> <text:span text:style-name="Source_20_Text">TYPE</text:span> which is widely regarded as the better
  variant.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dash_roll</text:p>
 <text:h text:style-name="Heading_20_3"> -ROLL ( x...[n-1] y n# -- y x...[n-1] |  num# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dash_roll</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the inverse of <text:span text:style-name="Source_20_Text">ROLL</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_random</text:p>
 <text:h text:style-name="Heading_20_3"> RANDOM ( n# -- random# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_random</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns random number with 0 &lt;= n2 &lt; n1)
</text:p><screen>  : RANDOM ?DUP IF _random SWAP MOD ELSE _random THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_srand</text:p>
 <text:h text:style-name="Heading_20_3"> SRAND ( seed# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_srand</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_under</text:p>
 <text:h text:style-name="Heading_20_3"> +UNDER ( n1 x n2 -- n1+n2 x ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_plus_under</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">      quicker than
</text:p><screen>  : UNDER+  ROT + SWAP ;
</screen><text:p text:style-name="Text_20_body">  Note: the old pfe version of UNDER+ is obsolete as it is in conflict
  with a comus word of the same name. The behavior of this word will
  continue to exist under the name of <text:span text:style-name="Source_20_Text">(UNDER+)</text:span>. Users are encouraged
  to use the comus behavior of UNDER+ which does already exist under
  the name of <text:span text:style-name="Source_20_Text">+UNDER</text:span>. In the future pfe will be changed to pick up
  the comus behavior making UNDER+ and +UNDER to be synonyms. In the
  current version there will be load-time warning on usages of "UNDER+".
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_under_plus</text:p>
 <text:h text:style-name="Heading_20_3"> "(UNDER+)" ( n1 n2 -- n1+n2 n2 ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_under_plus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  quicker than
</text:p><screen>  : (UNDER+) TUCK + SWAP ; or : (UNDER+) DUP UNDER+ ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_to_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((+TO)) ( val -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_plus_to_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">+TO</text:span>
  adds the stack-val to the lvalue compiled
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_to_local_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((+TO.local)) ( val -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_plus_to_local_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  same as <text:span text:style-name="Source_20_Text">((+TO))</text:span> when the lvalue is a <text:span text:style-name="Source_20_Text">LOCALS|</text:span> value
   compiled by <text:span text:style-name="Source_20_Text">+TO</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_to</text:p>
 <text:h text:style-name="Heading_20_3"> +TO ( val [name] -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_plus_to</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  add the val to the named <text:span text:style-name="Source_20_Text">VALUE</text:span> or <text:span text:style-name="Source_20_Text">LOCALS|</text:span> value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_build_array</text:p>
 <text:h text:style-name="Heading_20_3"> BUILD-ARRAY ( x#...[dim] dim# -- memsize# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_build_array</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  writes X, n1, ... nX into the dictionary -
  returns product n1 * n2 * ... * nX
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_access_array</text:p>
 <text:h text:style-name="Heading_20_3"> ACCESS-ARRAY ( x#...[dim#] array* --- array* value# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_access_array</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">BUILD-ARRAY</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_source_line</text:p>
 <text:h text:style-name="Heading_20_3"> SOURCE-LINE ( -- source-line# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_source_line</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if <text:span text:style-name="Source_20_Text">SOURCE</text:span> is from <text:span text:style-name="Source_20_Text">EVALUATE</text:span> (or <text:span text:style-name="Source_20_Text">QUERY</text:span> ) then
  the result is 0 else the line-numbers start from 1
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_source_name</text:p>
 <text:h text:style-name="Heading_20_3"> SOURCE-NAME ( -- source-name-ptr source-name-len ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_source_name</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if <text:span text:style-name="Source_20_Text">SOURCE</text:span> is from <text:span text:style-name="Source_20_Text">INCLUDE</text:span> then the result is the filename,
  otherwise a generic name for the SOURCE-ID is given.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_th_pocket</text:p>
 <text:h text:style-name="Heading_20_3"> TH'POCKET ( pocket# -- pocket-ptr pocket-len ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_th_pocket</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns the specified pocket as a <text:span text:style-name="Source_20_Text">S"</text:span> string reference
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_pocket_pad</text:p>
 <text:h text:style-name="Heading_20_3"> POCKET-PAD ( -- pocket-ptr ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_pocket_pad</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">The <text:span text:style-name="Source_20_Text">p4_pocket_pad</text:span> function  Returns the next pocket.
  A pocket has usually the size of a maxstring, see <text:span text:style-name="Source_20_Text">ENVIRONMENT /STRING</text:span>
  (but can be configured to be different, mostly when MAXPATH &gt; /STRING )
  Note that a pocket is a temporary and forth internal functions do
  sometimes call <text:span text:style-name="Source_20_Text">POCKET-PAD</text:span> too, especially when building filenames
  and getting a literal (but temporary) string from the keyboard.
  Functions are not expected to hold references to this transient
  area any longer than building a name and calling another word with it.
</text:p><text:p text:style-name="Text_20_body">  Usage of a pocket pad is a good way to make local temporary buffers
  superfluous that are only used to construct a temporary string that
  usually gets swallowed by another function.
</text:p><screen>  depracated code:
    create temp-buffer 255 allot
    : make-temp ( str buf )
           temp-buffer place  " .tmp" count temp-buffer append
           temp-buffer count make-file ;
  replace with this:
    : make-temp ( str buf )
         pocket-pad &amp;gt;r
         r place  " .tmp" count r append
         r&amp;gt; count make-file
    ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_wl_hash</text:p>
 <text:h text:style-name="Heading_20_3"> WL-HASH ( buf-ptr buf-len -- buf-hash# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_wl_hash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calc hash-code for selection of thread
  in a threaded-vocabulary
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_topmost</text:p>
 <text:h text:style-name="Heading_20_3"> TOPMOST ( some-wordlist* -- some-topmost-nfa* ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_topmost</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  that last valid word in the specified vocabulary
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_words</text:p>
 <text:h text:style-name="Heading_20_3"> LS.WORDS ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_words</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_primitives</text:p>
 <text:h text:style-name="Heading_20_3"> LS.PRIMITIVES ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_primitives</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_cdefs</text:p>
 <text:h text:style-name="Heading_20_3"> LS.COLON-DEFS ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_cdefs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_ddefs</text:p>
 <text:h text:style-name="Heading_20_3"> LS.DOES-DEFS ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_ddefs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_constants</text:p>
 <text:h text:style-name="Heading_20_3"> LS.CONSTANTS ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_constants</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_variables</text:p>
 <text:h text:style-name="Heading_20_3"> LS.VARIABLES ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_variables</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_vocabularies</text:p>
 <text:h text:style-name="Heading_20_3"> LS.VOCABULARIES ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_vocabularies</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ls_markers</text:p>
 <text:h text:style-name="Heading_20_3"> LS.MARKERS ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ls_markers</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">WORDS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_w_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> W@ ( some-wchar* -- some-wchar# | some* -- some# [?] ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_w_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch a 2byte-val from address
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_w_store</text:p>
 <text:h text:style-name="Heading_20_3"> W! ( value#  some-wchar* -- | value# wchar* -- [?] ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_w_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store a 2byte-val at addressed 2byte-value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_w_plus_store</text:p>
 <text:h text:style-name="Heading_20_3"> W+! ( value# some-wchar* -- | value# wchar* -- [?] ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_w_plus_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  add a 2byte-val to addressed 2byte-value
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_backspace</text:p>
 <text:h text:style-name="Heading_20_3"> BACKSPACE ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_backspace</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  reverse of <text:span text:style-name="Source_20_Text">SPACE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_stop</text:p>
 <text:h text:style-name="Heading_20_3"> ?STOP ( -- stop-flag ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_stop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check for 'q' pressed
  - see =&gt; ?CR
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_start_Q_cr</text:p>
 <text:h text:style-name="Heading_20_3"> START?CR ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_start_Q_cr</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  initialized for more-like effect
  - see =&gt; ?CR
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_cr</text:p>
 <text:h text:style-name="Heading_20_3"> ?CR ( -- cr-flag ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_cr</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">CR</text:span> , stop 25 lines past <text:span text:style-name="Source_20_Text">START</text:span>?CR
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_close_all_files</text:p>
 <text:h text:style-name="Heading_20_3"> CLOSE-ALL-FILES ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_close_all_files</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_memory</text:p>
 <text:h text:style-name="Heading_20_3"> .MEMORY ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_memory</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_status</text:p>
 <text:h text:style-name="Heading_20_3"> .STATUS ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_status</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  display internal variables
</text:p><screen>  : .STATUS .VERSION .CVERSION .MEMORY .SEARCHPATHS .DICTVARS .REGSUSED ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_emit</text:p>
 <text:h text:style-name="Heading_20_3"> (EMIT) ( char# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_emit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">EMIT</text:span> and always to screen
  - the routine to be put into <text:span text:style-name="Source_20_Text">*EMIT*</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_expect</text:p>
 <text:h text:style-name="Heading_20_3"> (EXPECT) ( a b -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_expect</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">EXPECT</text:span> and always from screen
  - the routine to be put into <text:span text:style-name="Source_20_Text">*EXPECT*</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_key</text:p>
 <text:h text:style-name="Heading_20_3"> (KEY) ( -- key# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_key</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">KEY</text:span> and always from screen
  - the routine to be put into <text:span text:style-name="Source_20_Text">*KEY*</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_type</text:p>
 <text:h text:style-name="Heading_20_3"> (TYPE) ( str* len# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_type</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  like <text:span text:style-name="Source_20_Text">TYPE</text:span> and always to screen
  - the routine to be put into <text:span text:style-name="Source_20_Text">*TYPE*</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_standard_io</text:p>
 <text:h text:style-name="Heading_20_3"> STANDARD-I/O ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_standard_io</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  initialize <text:span text:style-name="Source_20_Text">*TYPE*</text:span> , <text:span text:style-name="Source_20_Text">*EMIT*</text:span> , <text:span text:style-name="Source_20_Text">*EXPECT*</text:span> and <text:span text:style-name="Source_20_Text">*KEY*</text:span>
  to point directly to the screen I/O routines, 
  namely <text:span text:style-name="Source_20_Text">(TYPE)</text:span> , <text:span text:style-name="Source_20_Text">(EMIT)</text:span> , <text:span text:style-name="Source_20_Text">(EXPECT)</text:span> , <text:span text:style-name="Source_20_Text">(KEY)</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_executes_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((EXECUTES)) ( fkey# -- ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_executes_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">EXECUTES</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_executes</text:p>
 <text:h text:style-name="Heading_20_3"> EXECUTES ( fkey# [word] -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_executes</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  stores the execution token of following word into
  the callback pointer for the specified function-key
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_help</text:p>
 <text:h text:style-name="Heading_20_3"> HELP ( "name" -- ) [FTH] [EXEC] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_help</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will load the help module in the background and hand over the
  parsed name to <text:span text:style-name="Source_20_Text">(HELP)</text:span> to be resolved. If no <text:span text:style-name="Source_20_Text">(HELP)</text:span> word
  can be loaded, nothing will happen.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_edit_blockfile</text:p>
 <text:h text:style-name="Heading_20_3"> EDIT-BLOCKFILE ( "name" -- ) [FTH] [EXEC] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_edit_blockfile</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will load the edit module in the background and look for a word
  called <text:span text:style-name="Source_20_Text">EDIT-BLOCK</text:span> that could be used to edit the blockfile.
  If no <text:span text:style-name="Source_20_Text">EDIT-BLOCKFILE</text:span> word can be loaded, nothing will happen.
  Otherwise, <text:span text:style-name="Source_20_Text">OPEN-BLOCKFILE</text:span> is called followed by <text:span text:style-name="Source_20_Text">0</text:span> <text:span text:style-name="Source_20_Text">EDIT-BLOCK</text:span>
  to start editing the file at the first block.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_argc</text:p>
 <text:h text:style-name="Heading_20_3"> ARGC ( -- arg-count ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_argc</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_argv</text:p>
 <text:h text:style-name="Heading_20_3"> ARGV ( arg-n# -- arg-ptr arg-len ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_argv</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_expand_fn</text:p>
 <text:h text:style-name="Heading_20_3"> EXPAND-FN ( name-ptr name-len buf-ptr -- buf-ptr buf-len ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_expand_fn</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  : e.g. s" includefile" POCKET-PAD EXPAND-FN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_load_quote_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((LOAD")) ( -- ? ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_load_quote_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_load_quote</text:p>
 <text:h text:style-name="Heading_20_3"> LOAD"  ( [filename&lt;"&gt;] -- ??? ) [FTH] [OLD] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_load_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  load the specified file - this word can be compiled into a word-definition
  obsolete! use <text:span text:style-name="Source_20_Text">OPEN-BLOCKFILE</text:span> name <text:span text:style-name="Source_20_Text">LOAD</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_system</text:p>
 <text:h text:style-name="Heading_20_3"> SYSTEM ( command-ptr command-len -- command-exitcode# ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_system</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  run a shell command  (note: embedded systems have no shell)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_system_quote_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((SYSTEM")) ( ... -- exitcode# ) [HIDDEN] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_system_quote_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">SYSTEM"</text:span> commandline"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_system_quote</text:p>
 <text:h text:style-name="Heading_20_3"> SYSTEM" ( [command-line&lt;"&gt;] -- command-exitcode# ) [FTH] [OLD] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_system_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  run a shell command (note:embedded systems have no shell)
  obsolete! use <text:span text:style-name="Source_20_Text">S"</text:span> string" <text:span text:style-name="Source_20_Text">SYSTEM</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_create_var</text:p>
 <text:h text:style-name="Heading_20_3"> CREATE: ( "name" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_create_var</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  this creates a name with the <text:span text:style-name="Source_20_Text">VARIABLE</text:span> runtime.
  Note that this is the FIG-implemenation of <text:span text:style-name="Source_20_Text">CREATE</text:span> whereas in
  ANS-Forth mode we have a <text:span text:style-name="Source_20_Text">CREATE</text:span> identical to FIG-style <text:span text:style-name="Source_20_Text">&lt;BUILDS</text:span>
</text:p><screen>  : CREATE: BL WORD $HEADER DOVAR A, ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_buffer_var</text:p>
 <text:h text:style-name="Heading_20_3"> BUFFER: ( size# "name" -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_buffer_var</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  this creates a name with the <text:span text:style-name="Source_20_Text">VARIABLE</text:span> runtime and <text:span text:style-name="Source_20_Text">ALLOT</text:span>s memory
</text:p><screen>  : BUFFER: BL WORD $HEADER DOVAR A, ALLOT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_tick_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> R'@ ( R: a b -- a R: a b ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_tick_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch the next-under value from the returnstack.
  used to interpret the returnstack to hold two <text:span text:style-name="Source_20_Text">LOCALS|</text:span> values.
  ( <text:span text:style-name="Source_20_Text">R@</text:span> / <text:span text:style-name="Source_20_Text">2R@</text:span> / <text:span text:style-name="Source_20_Text">R&gt;DROP</text:span> / <text:span text:style-name="Source_20_Text">R"@</text:span>)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_tick_store</text:p>
 <text:h text:style-name="Heading_20_3"> R'! ( x R: a b -- R: x b ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_tick_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store the value into the next-under value in the returnstack.
  used to interpret the returnstack to hold two <text:span text:style-name="Source_20_Text">LOCALS|</text:span> values.
  see <text:span text:style-name="Source_20_Text">R'@</text:span> for inverse operation
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_quote_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> R"@ ( R: a b c -- a R: a b c ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_quote_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fetch the second-under value from the returnstack.
  used to interpret the returnstack to hold three <text:span text:style-name="Source_20_Text">LOCALS|</text:span> values.
  see <text:span text:style-name="Source_20_Text">R"!</text:span> for inverse operation ( <text:span text:style-name="Source_20_Text">R'@</text:span> <text:span text:style-name="Source_20_Text">R@</text:span> / <text:span text:style-name="Source_20_Text">2R@</text:span> / <text:span text:style-name="Source_20_Text">R&gt;DROP</text:span> )
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_quote_store</text:p>
 <text:h text:style-name="Heading_20_3"> R"! ( x R: a b c -- R: x b c ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_quote_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store the value into the second-under value in the returnstack.
  used to interpret the returnstack to hold three <text:span text:style-name="Source_20_Text">LOCALS|</text:span> values.
  see <text:span text:style-name="Source_20_Text">R"@</text:span> for inverse operation
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_store</text:p>
 <text:h text:style-name="Heading_20_3"> R! ( x R: a -- R: x ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store the value as the topmost value in the returnstack.
  see <text:span text:style-name="Source_20_Text">R@</text:span> for inverse operation ( <text:span text:style-name="Source_20_Text">R'@</text:span> / <text:span text:style-name="Source_20_Text">R"@</text:span> / <text:span text:style-name="Source_20_Text">2R@</text:span> / <text:span text:style-name="Source_20_Text">2R!</text:span>)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_r_store</text:p>
 <text:h text:style-name="Heading_20_3"> 2R! ( x y R: a b -- R: x y ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_r_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  store the value as the topmost value in the returnstack.
  see <text:span text:style-name="Source_20_Text">2R@</text:span> for inverse operation ( <text:span text:style-name="Source_20_Text">R'@</text:span> / <text:span text:style-name="Source_20_Text">R"@</text:span> / <text:span text:style-name="Source_20_Text">2R@</text:span> / <text:span text:style-name="Source_20_Text">2R!</text:span>)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dup_to_r</text:p>
 <text:h text:style-name="Heading_20_3"> DUP&gt;R ( val -- val R: val ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dup_to_r</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  shortcut, see <text:span text:style-name="Source_20_Text">R&gt;DROP</text:span>
   note again that the following will fail:
</text:p><screen>  : DUP&amp;gt;R DUP &amp;gt;R ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_r_from_drop</text:p>
 <text:h text:style-name="Heading_20_3"> R&gt;DROP ( R: val -- R: ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_r_from_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  shortcut (e.g. in CSI-Forth)
   note that the access to R is configuration dependent - only in
  a traditional fig-forth each NEST will be one cell wide - in case that
  there are no <text:span text:style-name="Source_20_Text">LOCALS|</text:span> of course. And remember, the word above reads
  like the sequence <text:span text:style-name="Source_20_Text">R&gt;</text:span> and <text:span text:style-name="Source_20_Text">DROP</text:span> but that is not quite true.
</text:p><screen>  : R&amp;gt;DROP R&amp;gt; DROP ; ( is bad - correct might be )  : R&amp;gt;DROP R&amp;gt; R&amp;gt; DROP &amp;gt;R ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_r_from_drop</text:p>
 <text:h text:style-name="Heading_20_3"> 2R&gt;2DROP ( R: a b -- R: ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_r_from_drop</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  this is two times <text:span text:style-name="Source_20_Text">R&gt;DROP</text:span> but a bit quicker.
  it is however really quick compared to the sequence <text:span text:style-name="Source_20_Text">2R&gt;</text:span> and <text:span text:style-name="Source_20_Text">2DROP</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_clearstack</text:p>
 <text:h text:style-name="Heading_20_3"> CLEARSTACK ( -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/misc-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_clearstack</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  reset the parameter stack to be empty
</text:p><screen>  : CLEARSTACK  S0 SP! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_module</text:p>
 <text:h text:style-name="Heading_20_3"> MODULE ( "name" -- old-current ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_module</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a new <text:span text:style-name="Source_20_Text">WORDLIST</text:span> with the given name. It
  will also have an implicit hidden vocabulary just as
  well and all <text:span text:style-name="Source_20_Text">DEFINITIONS</text:span> will go into that
  hidden wordlist. Therefore the old <text:span text:style-name="Source_20_Text">CURRENT</text:span> is
  memorized on the cs-stack.
</text:p><text:p text:style-name="Text_20_body">
  effectivly, CONTEXT[1] will have the wordlist-id
  of the public wordlist "name" and CONTEXT[0] will
  have the hidden wordlist contained in "name" - the
  hidden wordlist will always be known as HIDDEN' so
  that it can be re-referenced without need to use
  <text:span text:style-name="Source_20_Text">ALSO</text:span> just to access a single definition from 
  just another vocabulary. Note that HIDDEN' is 
  defined immediate (a <text:span text:style-name="Source_20_Text">VOCABULARY'</text:span> ) to modify
  the <text:span text:style-name="Source_20_Text">ORDER</text:span> inside a colon definition.
</text:p><screen>  : MODULE
    CURRENT @ ( -- old-current )
    VOCABULARY
    ALSO LATEST NAME&amp;gt; EXECUTE ALSO DEFINITIONS
    C" HIDDEN'" $CREATE WORDLIST CONTEXT !
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_end_module</text:p>
 <text:h text:style-name="Heading_20_3"> END-MODULE ( old-current -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_end_module</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  clean up the cs-stack from the last <text:span text:style-name="Source_20_Text">MODULE</text:span> 
  definition. Effectivly, MODULE definitions can
  be nested.
</text:p><screen>  : END-MODULE ( old-current )
    PREVIOUS PREVIOUS CURRENT ! 
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_export</text:p>
 <text:h text:style-name="Heading_20_3"> EXPORT ( old-current "name" -- old-current ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_export</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the named word in the hidden dictionary (i.e. 
  the wordlist referenced in <text:span text:style-name="Source_20_Text">CURRENT</text:span>) is exported
  into the public wordlist of it (i.e. which is in
  this implementation <text:span text:style-name="Source_20_Text">CONTEXT</text:span>[1]). The actual
  implemenation will create a <text:span text:style-name="Source_20_Text">DEFER</text:span>-word in the
  public wordlist withits parameter area pointing
  to the cfa of the hidden implementation.
</text:p><screen>  : EXPORT
    CURRENT @ CONTEXT CELL+ @ CURRENT !
    DEFER CURRENT !
    LATEST COUNT CURRENT @ SEARCH-WORDLIST
    IF LATEST NAME&amp;gt; &amp;gt;BODY ! ELSE ABORT" can't find word to export" THEN
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_expose_module</text:p>
 <text:h text:style-name="Heading_20_3"> EXPOSE-MODULE ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_expose_module</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  affects the search order, ALSO module-wid CONTEXT ! hidden'
</text:p><screen>  : EXPOSE-MODULE 
     ALSO S" HIDDEN'" 
     ' DUP VOC? ABORT?" is no vocabulary" &amp;gt;VOC 
     SEARCH-WORDLIST 0= IF " no hidden vocabulary found" THEN
     DUP VOC? ABORT?" hidden is no vocabulary" EXECUTE
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_also_module</text:p>
 <text:h text:style-name="Heading_20_3"> ALSO-MODULE ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_also_module</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  affects the search-order, ALSO module-wid CONTEXT ! 
</text:p><screen>  : ALSO-MODULE
    ' DUP VOC? ABORT?" is no vocabulary" 
    ALSO EXECUTE
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nvram_words</text:p>
 <text:h text:style-name="Heading_20_3"> NVRAM,WORDS ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nvram_words</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  Print a list of <text:span text:style-name="Source_20_Text">WORDS</text:span> in the NVRAM buffer. Try to show also the
  current value, atleast for NVRAM numbers and strings. Words can be
  added or changed with the help of <text:span text:style-name="Source_20_Text">NVRAM</text:span>,SET or <text:span text:style-name="Source_20_Text">NVRAM</text:span>,USE
</text:p><text:p text:style-name="Text_20_body">
  Values in the NVRAM buffer will survive a <text:span text:style-name="Source_20_Text">COLD</text:span> reboot, in many
  hosted environments however the NVRAM will be lost on program exit.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2001 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nvram_as</text:p>
 <text:h text:style-name="Heading_20_3"> NVRAM,AS ( str-ptr str-len "varname" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nvram_as</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the NVRAM variable to the specified string.
</text:p><text:p text:style-name="Text_20_body">
  Some NVRAM strings do not take effect until next <text:span text:style-name="Source_20_Text">COLD</text:span> reboot.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2001 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nvram_to</text:p>
 <text:h text:style-name="Heading_20_3"> NVRAM,TO ( number "varname" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nvram_to</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the NVRAM variable to the specified number.
</text:p><text:p text:style-name="Text_20_body">
  Most NVRAM numbers do not take effect until next <text:span text:style-name="Source_20_Text">COLD</text:span> reboot.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2001 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nvram_z_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> NVRAM,Z@ ( "varname" -- z-str ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nvram_z_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  Return the string pointer of the NVRAM string item, or null if no
  such item exists.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2001 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nvram_s_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> NVRAM,S@ ( "varname" -- str-ptr str-len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nvram_s_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  Return the string span of the NVRAM string item, or double null if no
  such item exists.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2001 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_nvram_Q_fetch</text:p>
 <text:h text:style-name="Heading_20_3"> NVRAM,?@ ( number "varname" -- number' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_nvram_Q_fetch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">
  Return the value of the NVRAM value item, or leave the original
  number untouched (i.e. the default value for your option).
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2001 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_SetOptionsDefault</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-set.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_SetOptionsDefault</text:span><text:span text:style-name="Source_20_Text">(p4_sessionP set, int len)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_AddOptions</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-set.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_AddOptions</text:span><text:span text:style-name="Source_20_Text">(p4_sessionP set, int argc, const char** argv)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_SetOptions</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-set.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_SetOptions</text:span><text:span text:style-name="Source_20_Text">(p4_sessionP set, int len, int argc, const char** argv)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_FreeOptions</text:p>
 <text:h text:style-name="Heading_20_3">  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-set.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_FreeOptions</text:span><text:span text:style-name="Source_20_Text">(int returncode, p4_sessionP set)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  de-init the session struct
</text:p><text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">p4_SetOptions</text:span> , <text:span text:style-name="Source_20_Text">p4_AddOptions</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_SetModules</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/option-set.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export int
p4_SetModules</text:span><text:span text:style-name="Source_20_Text">(p4_sessionP set, p4Words* modules)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2003.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_gettimeofday</text:p>
 <text:h text:style-name="Heading_20_3">  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_gettimeofday</text:span><text:span text:style-name="Source_20_Text">(p4ucell* sec, p4ucell* usec)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  helper function - both arg pointers MUST be given
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ntohs</text:p>
 <text:h text:style-name="Heading_20_3"> NTOHS ( w -- w' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;netinet/in.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ntohs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if current host-encoding is bigendian, this is a NOOP
  otherwise byteswap the lower 16-bit bits of the topofstack.
  see <text:span text:style-name="Source_20_Text">W@</text:span> and <text:span text:style-name="Source_20_Text">W!</text:span>
  (on some platforms, the upper bits are erased, on others not)
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ntohl</text:p>
 <text:h text:style-name="Heading_20_3"> NTOHL ( l -- l' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;netinet/in.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ntohl</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if current host-encoding is bigendian, this is a NOOP
  otherwise byteswap the lower 32-bit bits of the topofstack.
  see <text:span text:style-name="Source_20_Text">L@</text:span> and <text:span text:style-name="Source_20_Text">L!</text:span> (being usually just <text:span text:style-name="Source_20_Text">@</text:span> and <text:span text:style-name="Source_20_Text">!</text:span> )
  (on some platforms, the upper bits are erased, on others not)
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_definitions</text:p>
 <text:h text:style-name="Heading_20_3"> DEFINITIONS ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_definitions</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  make the current context-vocabulary the definition-vocabulary,
  that is where new names are declared in. see <text:span text:style-name="Source_20_Text">ORDER</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_get_current</text:p>
 <text:h text:style-name="Heading_20_3"> GET-CURRENT ( -- voc ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_get_current</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return the current definition vocabulary, see <text:span text:style-name="Source_20_Text">DEFINITIONS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_get_order</text:p>
 <text:h text:style-name="Heading_20_3"> GET-ORDER ( -- vocn ... voc1 n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_get_order</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the current search order onto the stack, see <text:span text:style-name="Source_20_Text">SET-ORDER</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_search_wordlist</text:p>
 <text:h text:style-name="Heading_20_3"> SEARCH-WORDLIST ( str-ptr str-len voc -- 0 | xt 1 | xt -1 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_search_wordlist</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  almost like <text:span text:style-name="Source_20_Text">FIND</text:span> or <text:span text:style-name="Source_20_Text">(FIND)</text:span> -- but searches only the
  specified vocabulary.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_set_current</text:p>
 <text:h text:style-name="Heading_20_3"> SET-CURRENT ( voc -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_set_current</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the definition-vocabulary. see <text:span text:style-name="Source_20_Text">DEFINITIONS</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_set_order</text:p>
 <text:h text:style-name="Heading_20_3"> SET-ORDER ( vocn ... voc1 n -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_set_order</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the search-order -- probably saved beforehand using
  <text:span text:style-name="Source_20_Text">GET-ORDER</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_wordlist</text:p>
 <text:h text:style-name="Heading_20_3"> WORDLIST ( -- voc ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_wordlist</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  return a new vocabulary-body for private definitions.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_also</text:p>
 <text:h text:style-name="Heading_20_3"> ALSO ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_also</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  a <text:span text:style-name="Source_20_Text">DUP</text:span> on the search <text:span text:style-name="Source_20_Text">ORDER</text:span> - each named vocabulary
  replaces the topmost <text:span text:style-name="Source_20_Text">ORDER</text:span> vocabulary. Using <text:span text:style-name="Source_20_Text">ALSO</text:span>
  will make it fixed to the search-order. (but it is 
  not nailed in trap-conditions as if using <text:span text:style-name="Source_20_Text">DEFAULT-ORDER</text:span> )
</text:p><screen>  order:   vocn ... voc2 voc1 -- vocn ... voc2 voc1 voc1
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_order</text:p>
 <text:h text:style-name="Heading_20_3"> ORDER ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_order</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show the current search-order, followed by 
  the <text:span text:style-name="Source_20_Text">CURRENT</text:span> <text:span text:style-name="Source_20_Text">DEFINITIONS</text:span> vocabulary 
  and the <text:span text:style-name="Source_20_Text">ONLY</text:span> base vocabulary
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_previous</text:p>
 <text:h text:style-name="Heading_20_3"> PREVIOUS ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_previous</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the invers of <text:span text:style-name="Source_20_Text">ALSO</text:span> , does a <text:span text:style-name="Source_20_Text">DROP</text:span> on the search <text:span text:style-name="Source_20_Text">ORDER</text:span>
  of vocabularies.
</text:p><screen>  order: vocn ... voc2 voc1 -- vocn ... voc2 
  example: ALSO PRIVATE-VOC DEFINTIONS (...do some...) PREVIOUS DEFINITIONS
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_default_order</text:p>
 <text:h text:style-name="Heading_20_3"> DEFAULT-ORDER ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_default_order</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  nail the current search <text:span text:style-name="Source_20_Text">ORDER</text:span> so that it will even
  survive a trap-condition. This default-order can be
  explicitly loaded with <text:span text:style-name="Source_20_Text">RESET-ORDER</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_reset_order</text:p>
 <text:h text:style-name="Heading_20_3"> RESET-ORDER ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_reset_order</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  load the <text:span text:style-name="Source_20_Text">DEFAULT-ORDER</text:span> into the current search <text:span text:style-name="Source_20_Text">ORDER</text:span>
  - this is implicitly done when a trap is encountered.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_search_init</text:p>
 <text:h text:style-name="Heading_20_3"> "ENVIRONMENT WORDLISTS" ( -- value ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/search-order-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_search_init</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the maximum number of wordlists in the search order
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_getpid</text:p>
 <text:h text:style-name="Heading_20_3"> $PID ( -- pid ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_getpid</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> getpid </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_getuid</text:p>
 <text:h text:style-name="Heading_20_3"> $UID ( -- val ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_getuid</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> getuid </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_geteuid</text:p>
 <text:h text:style-name="Heading_20_3"> $EUID ( -- val ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_geteuid</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> geteuid </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_getgid</text:p>
 <text:h text:style-name="Heading_20_3"> $GID ( -- val ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_getgid</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> getgid </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_umask</text:p>
 <text:h text:style-name="Heading_20_3"> UMASK ( val -- ret ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_umask</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> umask </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_home</text:p>
 <text:h text:style-name="Heading_20_3"> $HOME ( -- str-ptr str-len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_home</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> getenv(HOME) </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_user</text:p>
 <text:h text:style-name="Heading_20_3"> $USER ( -- str-ptr str-len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_user</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> getenv(USER) </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cwd</text:p>
 <text:h text:style-name="Heading_20_3"> $CWD ( -- str-ptr str-len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cwd</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> getcwd </text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_pwd</text:p>
 <text:h text:style-name="Heading_20_3"> PWD ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_pwd</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  calls system's <text:span text:style-name="Source_20_Text"> getcwd </text:span> and prints it to the screen
</text:p><screen>  : PWD  $CWD TYPE ;
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_chdir</text:p>
 <text:h text:style-name="Heading_20_3"> CHDIR ( bstring -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/def-comp.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_chdir</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  change the current directory. 
  ( (under VxWorks it is global! do not use in scripts!!) )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_install_signal_handlers</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/signals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_install_signal_handlers</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_swap_signals</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/signals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_swap_signals</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_forth_signal</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/signals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export p4xt
p4_forth_signal</text:span><text:span text:style-name="Source_20_Text">(int sig, p4xt xt)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_load_signals</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/signals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_load_signals</text:span><text:span text:style-name="Source_20_Text">(p4_Wordl *wid)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_raise</text:p>
 <text:h text:style-name="Heading_20_3"> (RAISE) ( signal# -- ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/signals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_raise</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  send a <text:span text:style-name="Source_20_Text">SIGNAL</text:span> to self
  OLD: use RAISE-SIGNAL
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_raise_signal</text:p>
 <text:h text:style-name="Heading_20_3"> RAISE-SIGNAL ( signal# -- ior ) [FTH] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/signals-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_raise_signal</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_smart_interpret_char</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/smart-go-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">p4xt 
p4_smart_interpret_char</text:span><text:span text:style-name="Source_20_Text">(char c) 
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">_p4_smart_interpret_init</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/smart-go-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">p4_char_t*
_p4_smart_interpret_init</text:span><text:span text:style-name="Source_20_Text">(char c, char const * nm, int l)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_smart_interpret_init</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/smart-go-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">void
p4_smart_interpret_init</text:span><text:span text:style-name="Source_20_Text">(char c, char const * nm, int l)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_smart_interpret_store</text:p>
 <text:h text:style-name="Heading_20_3"> SMART-INTERPRET! ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/smart-go-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_smart_interpret_store</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  enables/disables the SMART-INTERPRET extension in <text:span text:style-name="Source_20_Text">INTERPRET</text:span> ,
  (actually stores an XT in <text:span text:style-name="Source_20_Text">DEFER</text:span> inside the mainloop interpreter)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_changer</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-CHANGER(" ( changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_changer</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_inputlist</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-INPUTLIST(" ( changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_inputlist</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_outputlist</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-OUTPUTLIST(" ( changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_outputlist</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_input_variant</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-INPUT-VARIANT(" ( variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_input_variant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  0 = default, 1 = 'S', 2 = 'R', ... 4 = 'P', ... 7 = 'M', .. 14 = 'F' 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_output_variant</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-OUTPUT-VARIANT(" ( variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_output_variant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_input_stack</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-INPUT-STACK(" ( stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_input_stack</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  0 = default, 1 = 'S', 2 = 'R', ... 4 = 'P', ... 7 = 'M', .. 14 = 'F' 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_output_stack</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-OUTPUT-STACK(" ( stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_output_stack</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_input_argument</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-INPUT-ARGUMENT(" ( arg# stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_input_argument</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  0 = default, 1 = 'S', 2 = 'R', ... 4 = 'P', ... 7 = 'M', .. 14 = 'F' 
  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_output_argument</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-OUTPUT-ARGUMENT(" ( arg# stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_output_argument</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_input_argument_name</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-INPUT-ARGUMENT-NAME(" ( arg# stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_input_argument_name</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  0 = default, 1 = 'S', 2 = 'R', ... 4 = 'P', ... 7 = 'M', .. 14 = 'F' 
  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_output_argument_name</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-OUTPUT-ARGUMENT-NAME(" ( arg# stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_output_argument_name</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_input_argument_type</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-INPUT-ARGUMENT-TYPE(" ( arg# stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_input_argument_type</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  0 = default, 1 = 'S', 2 = 'R', ... 4 = 'P', ... 7 = 'M', .. 14 = 'F' 
  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_output_argument_type</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-OUTPUT-ARGUMENT-TYPE(" ( arg# stk-char which# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_output_argument_type</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_canonic_input_type</text:p>
 <text:h text:style-name="Heading_20_3"> "CANONIC-INPUT-TYPE(" ( arg# stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_canonic_input_type</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  0 = default, 1 = 'S', 2 = 'R', ... 4 = 'P', ... 7 = 'M', .. 14 = 'F' 
  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_canonic_output_type</text:p>
 <text:h text:style-name="Heading_20_3"> "CANONIC-OUTPUT-TYPE(" ( arg# stk-char variant# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_canonic_output_type</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  arg# is [0] = TOS and [1] = UNDER, same as the pick values where
  3 2 1 0 2 pick . =:= 2
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewriter_test</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITER-TEST(" ( "tracked-stack -- input-stack&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_rewriter_test</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  suppose that the left side is a tracked stack line during compiling
  and the right side is a candidate changer input stack. Test whethr
  the candidate does match and the complete changer would be allowed
  to run a rewrite in the track stack buffer.
</text:p><text:p text:style-name="Text_20_body">
  Possible conditions include:
    the left side has not enough arguments or...
       any argument on the right side has a type specialization
       that does not match as a valid suffix to their counterpart
       on the left side.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewriter_input_arg</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITER-INPUT-ARG(" ( arg# "tracked-stack -- changer&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_rewriter_input_arg</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  suppose that the left side is a tracked stack line during compiling
  and the right side is a candidate changer input stack. Assume the
  righthand candidate does match - look at the given argument on the
  left side and show the prefix being copied to the output trackstack
  when the rewrite-rule is gettin applied later.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_line</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-LINE(" ( "stack-layout&lt;rp;&gt;" -- )  [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewrite_line</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  fill rewrite-buffer with a stack-layout to be processed.
  see <text:span text:style-name="Source_20_Text">REWRITE-SHOW.</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_show</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-SHOW." ( -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewrite_show</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show current rewrite-buffer.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_stack_test</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-STACK-TEST(" ( "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewrite_stack_test</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   check whether this stackhelp does match on current rewrite-buffer
   and say oK/No respectivly.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_input_arg</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-INPUT-ARG(" ( arg# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_rewrite_input_arg</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   check whether this stackhelp does match on current rewrite-buffer
   and in the given input match show us the argument but only the
   good prefix i.e. the type constraint being cut off already.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_stack_result</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-STACK-RESULT(" ( "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewrite_stack_result</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  rewrite the current rewrite-buffer and show the result that
  would occur with this stackhelp being applied.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_input_notation</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-INPUT-NOTATION(" ( notation# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_input_notation</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_output_notation</text:p>
 <text:h text:style-name="Heading_20_3"> "NARROW-OUTPUT-NOTATION(" ( notation# changer# "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_narrow_output_notation</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_stackdef_test</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-STACKDEF-TEST(" ( "stackdef&lt;rp;&gt;" )  [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewrite_stackdef_test</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   match a stackdef (single variant of stacks).
   assume: single variant in rewrite-buffer and
           single variant in stackdef-arg and
           only one changer in arg-stackhelp
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_stackdef_result</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-STACKDEF-RESULT(" ( "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewrite_stackdef_result</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   assume:
        only one changer (if more are provided then only the first is used)
        only one stackdef variant in inputlist
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewrite_test</text:p>
 <text:h text:style-name="Heading_20_3"> "REWRITE-TEST(" ( "stackhelp&lt;rp;&gt;" -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewrite_test</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Test whether the given changer would match the current line.
  assume:
       only one changer (if more are provided then only the first is used)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_narrow_inputdef_for_stackdef</text:p>
 <text:h text:style-name="Heading_20_3"> return 1 if "inputlist" was narrowed. </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">int
p4_narrow_inputdef_for_stackdef</text:span><text:span text:style-name="Source_20_Text">(pair_t inputlist, pair_t stackdef)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   return 0 if no good inputdef was found in inputlist variants. 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_find_stackhelp_body</text:p>
 <text:h text:style-name="Heading_20_3"> FIND word in the search-order </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">stackhelp_body* p4_find_stackhelp_body</text:span><text:span text:style-name="Source_20_Text">(const p4_char_t* word, p4cell len) 
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   and find a matching stackhelp entry in the stackhelp-wordlist.
   We do check for a matching XT to allow for multiple words with
   the same name. If this find-routine is too specific then try
   again with a direct search.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_stackhelpcomment</text:p>
 <text:h text:style-name="Heading_20_3"> "|(" ( [string&lt;rp;&gt;] -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_stackhelpcomment</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   add a checkstack notation for the LAST word or just try to
   match the given notation with the stacklayout traced so
   far - possibly casting a few types as needed.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_stackhelps</text:p>
 <text:h text:style-name="Heading_20_3"> implicit PFE.word.ptr / PFE.word.len args  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">void p4_stackhelps</text:span><text:span text:style-name="Source_20_Text">(void)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_stackhelp</text:p>
 <text:h text:style-name="Heading_20_3"> STACKHELP ( [name] -- ) [EXT] </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_stackhelp</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   show the stackhelp info registered for this name.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_stackhelp_execute_procs</text:p>
 <text:h text:style-name="Heading_20_3"> call it after p4_stackhelp_rewrite : it does consume any </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">int p4_stackhelp_execute_procs</text:span><text:span text:style-name="Source_20_Text">(const char* str, const char* end)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   stackhelp infos that ought to be executed to be a check.
   This applies also to exitpoints!  - no argument as it does
   work on the CHK.line internal buffer 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_search_stackhelp</text:p>
 <text:h text:style-name="Heading_20_3"> or fallback to first stackhelp available  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/stackhelp-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">___ p4char* nfa = p4_search_stackhelp</text:span><text:span text:style-name="Source_20_Text">(word, len)</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash_string</text:p>
 <text:h text:style-name="Heading_20_3"> /STRING ( str-ptr str-len n -- str-ptr' str-len' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/string-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash_string</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  shorten the buffer from the beginning by n characters, i.e.
</text:p><screen>   str-ptr += n ;
   str-len -= n; 
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_blank</text:p>
 <text:h text:style-name="Heading_20_3"> BLANK ( str-ptr str-len -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/string-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_blank</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">FILL</text:span> a given buffer with <text:span text:style-name="Source_20_Text">BL</text:span> blanks
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cmove</text:p>
 <text:h text:style-name="Heading_20_3"> CMOVE ( from-ptr to-ptr len# -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/string-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cmove</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   memcpy an area from-&gt;to for len bytes, starting at
   the lower addresses, see <text:span text:style-name="Source_20_Text">CMOVE&gt;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cmove_up</text:p>
 <text:h text:style-name="Heading_20_3"> CMOVE&gt; ( from-ptr to-ptr len# -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/string-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cmove_up</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   memcpy an area from-&gt;to for len bytes, starting 
   with the higher addresses, see <text:span text:style-name="Source_20_Text">CMOVE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_compare</text:p>
 <text:h text:style-name="Heading_20_3"> COMPARE ( str1-ptr str1-len str2-ptr str2-len -- diff# ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/string-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_compare</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compare both str-buffers, return 0 if they are equal,
  -1 if lower or shorter, and 1 if greater or longer
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sliteral</text:p>
 <text:h text:style-name="Heading_20_3"> SLITERAL ( C: str-ptr str-len -- S: str-ptr str-len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/string-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sliteral</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  this word does almost the same as <text:span text:style-name="Source_20_Text">LITERAL</text:span> - it takes
  an <text:span text:style-name="Source_20_Text">S"</text:span> string as specified in the CS-STACK at compile
  time and compiles into the current definition where it is
  returned as if there were a direct string-literal. This
  can be used to compute a string-literal at compile-time
  and hardwire it.
</text:p><screen>  example:
    : ORIGINAL-HOME  [ $HOME COUNT ] SLITERAL ; ( -- str-ptr str-len )
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_field</text:p>
 <text:h text:style-name="Heading_20_3"> FIELD ( offset size "name" -- offset+size ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_field</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a field - the workhorse for both <text:span text:style-name="Source_20_Text">STRUCT</text:span> and <text:span text:style-name="Source_20_Text">STRUCTURE</text:span>
  implementations. The created fieldname is an <text:span text:style-name="Source_20_Text">OFFSET:</text:span>-word 
  that memorizes the current offset in its PFA and will add
  that offset on runtime. This forth-word does *not* align.
</text:p><screen>  : FIELD CREATE
    OVER ,
    +
  DOES&amp;gt;
     @ +
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sizeof_XT</text:p>
 <text:h text:style-name="Heading_20_3"> SIZEOF ( "name" -- size )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_sizeof_XT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the size-value from a previous structure definition
</text:p><screen>  : SIZEOF   ' &amp;gt;BODY @  STATE @ IF [COMPILE] LITERAL THEN ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_structure_RT</text:p>
 <text:h text:style-name="Heading_20_3"> STRUCTURE ( "name" -- here zero-offset ) exec </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_structure_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  start a structure definition 
</text:p><screen>  : STRUCTURE: CREATE !CSP
    HERE
    0 DUP ,
  DOES&amp;gt;
    CREATE @ ALLOT
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_endstructure</text:p>
 <text:h text:style-name="Heading_20_3"> ENDSTRUCTURE ( here some-offset -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_endstructure</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  finalize a previously started <text:span text:style-name="Source_20_Text">STRUCTURE</text:span> definition
</text:p><screen>  : ENDSTRUCTURE  SWAP !  ?CSP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_struct</text:p>
 <text:h text:style-name="Heading_20_3"> STRUCT ( "name" -- here zero-offset ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_struct</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  begin definition of a new structure (mpe.000)
</text:p><screen>  : STRUCT CREATE  !CSP
    HERE
    0 DUP ,
  DOES&amp;gt;
    @
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_end_struct</text:p>
 <text:h text:style-name="Heading_20_3"> END-STRUCT ( here some-offset -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_end_struct</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  terminate definition of a new structure (mpe.000)
</text:p><screen>  : END-STRUCT  SWAP !  ?CSP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_subrecord</text:p>
 <text:h text:style-name="Heading_20_3"> SUBRECORD ( outer-offset "name" -- outer-offset here zero-offset ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_subrecord</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  begin definition of a subrecord (mpe.000)
</text:p><screen>  : STRUCT CREATE  
    HERE
    0 DUP ,
  DOES&amp;gt;
    @
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_end_subrecord</text:p>
 <text:h text:style-name="Heading_20_3"> END-SUBRECORD ( outer-offset here some-offset -- outer-offset+some ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_end_subrecord</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  end definition of a subrecord (mpe.000)
</text:p><screen>  : END-SUBRECORD  TUCK SWAP !  + ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_array_of</text:p>
 <text:h text:style-name="Heading_20_3"> ARRAY-OF ( some-offset n len "name" -- some-offset ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_array_of</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  a <text:span text:style-name="Source_20_Text">FIELD</text:span>-array
</text:p><screen>  : ARRAY-OF * FIELD ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_variant</text:p>
 <text:h text:style-name="Heading_20_3"> VARIANT ( outer-offset "name" -- outer-offset here zero-offset ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_variant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Variant records describe an alternative view of the 
  current record or subrecord from the start to the current point. 
  The variant need not be of the same length, but the larger is taken 
</text:p><screen>  : VARIANT SUBRECORD ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_end_variant</text:p>
 <text:h text:style-name="Heading_20_3"> END-VARIANT ( outer-offset here some-offset -- outer-offset ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_end_variant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  terminate definition of a new variant (mpe.000)
</text:p><screen>  : END-STRUCT  TUCK SWAP !  2DUP &amp;lt; IF NIP ELSE DROP THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_instance</text:p>
 <text:h text:style-name="Heading_20_3"> INSTANCE ( len "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_instance</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Create a named instance of a named structure. 
</text:p><screen>  : INSTANCE  CREATE ALLOT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_instance_addr</text:p>
 <text:h text:style-name="Heading_20_3"> INSTANCE-ADDR ( len -- addr ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_instance_addr</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Create nameless instance of a structure and return base address. 
</text:p><screen>  : INSTANCE-ADDR  HERE SWAP ALLOT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">   Copyright (C) 2000 - 2001 Guido U. Draheim
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_backward_mark</text:p>
 <text:h text:style-name="Heading_20_3"> &lt;MARK ( -- DP-mark ) compile-only </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/system-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_backward_mark</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  memorizes the current <text:span text:style-name="Source_20_Text">DP</text:span> on the CS-STACK
  used for <text:span text:style-name="Source_20_Text">&lt;RESOLVE</text:span> later. Useful for creation of 
  compiling words, eg. <text:span text:style-name="Source_20_Text">BEGIN</text:span> , see <text:span text:style-name="Source_20_Text">AHEAD</text:span>
</text:p><screen>  simulate:
    : &amp;lt;MARK ?COMP  HERE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_backward_resolve</text:p>
 <text:h text:style-name="Heading_20_3"> &lt;RESOLVE ( DP-mark -- ) compile-only </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/system-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_backward_resolve</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  resolves a previous <text:span text:style-name="Source_20_Text">&lt;MARK</text:span> , actually pushes
  the DP-address memorized at &lt;MARK into the dictionary.
  Mostly used after <text:span text:style-name="Source_20_Text">BRANCH</text:span> or =&gt; ?BRANCH in compiling
  words like <text:span text:style-name="Source_20_Text">UNTIL</text:span>
</text:p><screen>  simulate:
    : &amp;lt;RESOLVE ?COMP  , ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_forward_mark</text:p>
 <text:h text:style-name="Heading_20_3"> MARK&gt; ( -- DP-mark ) compile-only </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/system-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_forward_mark</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  makes room for a pointer in the dictionary to
  be resolved through <text:span text:style-name="Source_20_Text">RESOLVE&gt;</text:span> and does therefore
  memorize that cell's address on the CS-STACK
  Mostly used after <text:span text:style-name="Source_20_Text">BRANCH</text:span> or =&gt; ?BRANCH in compiling
  words like <text:span text:style-name="Source_20_Text">IF</text:span> or <text:span text:style-name="Source_20_Text">ELSE</text:span>
</text:p><screen>  simulate:
    : MARK&amp;gt; ?COMP  HERE 0 , ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_forward_resolve</text:p>
 <text:h text:style-name="Heading_20_3"> RESOLVE&gt; ( DP-mark -- ) compile-only </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/system-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_forward_resolve</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  resolves a pointer created by <text:span text:style-name="Source_20_Text">MARK&gt;</text:span>
  Mostly used in compiling words like <text:span text:style-name="Source_20_Text">THEN</text:span>
</text:p><screen>  simulate:
    : RESOLVE&amp;gt; ?COMP  HERE SWAP ! ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_branch</text:p>
 <text:h text:style-name="Heading_20_3"> BRANCH ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/system-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_branch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiles a branch-runtime into the dictionary that
  can be resolved with <text:span text:style-name="Source_20_Text">MARK&amp;lt;</text:span>d or <text:span text:style-name="Source_20_Text">&amp;lt;RESOLVE</text:span>.
  Usage:
</text:p><screen>      BRANCH MARK&amp;amp;lt;     or
      BRANCH &amp;amp;gt;RESOLVE  or ...
</screen><text:p text:style-name="Text_20_body">  this is the runtime-portion of <text:span text:style-name="Source_20_Text">ELSE</text:span> - the use of
  <text:span text:style-name="Source_20_Text">ELSE</text:span> should be preferred. See also =&gt; ?BRANCH
</text:p><screen>  : BRANCH COMPILE (BRANCH) ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_q_branch</text:p>
 <text:h text:style-name="Heading_20_3"> ?BRANCH ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/system-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_q_branch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiles a cond-branch-runtime into the dictionary that
  can be resolved with <text:span text:style-name="Source_20_Text">&amp;gt;MARK&amp;</text:span>d or <text:span text:style-name="Source_20_Text">RESOLVE&amp;gt;</text:span>.
  Usage:
</text:p><screen>      ?BRANCH MARK&amp;amp;lt;     or
      ?BRANCH &amp;amp;gt;RESOLVE  or ...
</screen><text:p text:style-name="Text_20_body">  this is the runtime-portion of <text:span text:style-name="Source_20_Text">IF</text:span> - the use of
  <text:span text:style-name="Source_20_Text">IF</text:span> should be preferred. See also <text:span text:style-name="Source_20_Text">BRANCH</text:span>
</text:p><screen>  : ?BRANCH COMPILE (?BRANCH) ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_show_control_strings</text:p>
 <text:h text:style-name="Heading_20_3"> SHOW-TERM-CONTROLS ( -- ) for debugging </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_show_control_strings</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show the current mappings for the terminal output 
  may give hints about what is wrong if the output
  seems to miss some functionality
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_show_rawkey_strings</text:p>
 <text:h text:style-name="Heading_20_3"> SHOW-TERM-ESC-KEYS ( -- ) for debugging </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_show_rawkey_strings</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show the current mappings for the terminal input
  may give hints about what is wrong if the input
  seems to miss some functionality
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_show_termcap</text:p>
 <text:h text:style-name="Heading_20_3"> SHOW-TERMCAP ( -- ) for debugging </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_show_termcap</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print the termcap strings used for input and output
  may give hints about what is wrong if the terminal
  seems to miss some functionality
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_assume_vt100</text:p>
 <text:h text:style-name="Heading_20_3"> ASSUME_VT100 ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_assume_vt100</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  load hardwired VT100-termcap into the terminal-driver
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_assume_dumbterm</text:p>
 <text:h text:style-name="Heading_20_3"> ASSUME_DUMBTERM ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_assume_dumbterm</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  load hardwired DUMBTERM-termcap into the terminal-driver
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_gotoxy</text:p>
 <text:h text:style-name="Heading_20_3"> GOTOXY ( x y -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_gotoxy</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  move the cursor to the specified position on the screen -
  this is usually done by sending a corresponding esc-sequence
  to the terminal. 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_question_xy</text:p>
 <text:h text:style-name="Heading_20_3"> ?XY ( -- x y ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_question_xy</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  returns the cursor position on screen, on a real unix system
  this includes a special call to the screen driver, in remote
  systems this can be the expected position as seen on the
  client side's terminal driver.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ekey_to_fkey</text:p>
 <text:h text:style-name="Heading_20_3"> EKEY&gt;FKEY ( key-code# -- key-code# 0 | fkey-code# true! ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/term-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_ekey_to_fkey</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  If the input ekey value was not an extended key
  then flag is set to FALSE and the value is left
  unchanged. Compare to EKEY&gt;CHAR for the inverse.
</text:p><text:p text:style-name="Text_20_body">
  If the input eky was an extended key then the value 
  will be modified such that shifted values are transposed
  to their base EKEY plus <text:span text:style-name="Source_20_Text">K-SHIFT-MASK</text:span> - therefore the
  K-SHIFT-MASK is only apropriate for the result fkey-code
  values of the <text:span text:style-name="Source_20_Text">p4_ekey_to_fkey</text:span> function.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc, 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_termcatch</text:p>
 <text:h text:style-name="Heading_20_3"> TERMCATCH ( str-ptr str-len some-xt* -- str-ptr str-len' catch-code# ) </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_termcatch</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   create a catch-domain around the token to be executed. This works
   the same as <text:span text:style-name="Source_20_Text">CATCH</text:span>. Additionally all terminal output of that word
   is being captured to the buffer being provided as an argument. The
   maximum length input argument is modified flagging the actual length
   of captured output stream as the output argument. Note that in most
   cases a <text:span text:style-name="Source_20_Text">POCKET-PAD</text:span> is just not big enough, atleast many error
   condition notifications tend to be quite lengthy for byte counted
   forth strings.
</text:p><screen>  : TERMCATCH TERM-CAPTURE-ON CATCH &amp;gt;R TERM-CAPTURE-OFF R&amp;gt; ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_defined</text:p>
 <text:h text:style-name="Heading_20_3"> [DEFINED]           ( "name" -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">extern FCodep4_defined</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Search the dictionary for _name_. If _name_ is found,
   return TRUE; otherwise return FALSE. Immediate for use in
   definitions.
</text:p><text:p text:style-name="Text_20_body">  [DEFINED] word       ( -- nfa|0 ) immediate
  does check for the word using find (so it does not throw like <text:span text:style-name="Source_20_Text">'</text:span> )
  and puts it on stack. As it is immediate it does work in compile-mode
  too, so it places its argument in the cs-stack then. This is most
  useful with a directly following <text:span text:style-name="Source_20_Text">[IF]</text:span> clause, so that sth. like
  an <text:span text:style-name="Source_20_Text">[IFDEF] word</text:span> can be simulated through <text:span text:style-name="Source_20_Text">[DEFINED] word [IF]</text:span>
</text:p><screen> 
  : [DEFINED] BL WORD FIND NIP ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_undefined</text:p>
 <text:h text:style-name="Heading_20_3"> [UNDEFINED]         ( "name" -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">extern FCode p4_undefined</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Search the dictionary for _name_. If _name_ is found,
   return FALSE; otherwise return TRUE. Immediate for use in
   definitions.
</text:p><text:p text:style-name="Text_20_body">
   see <text:span text:style-name="Source_20_Text">[DEFINED]</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_empty</text:p>
 <text:h text:style-name="Heading_20_3"> EMPTY               ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_empty</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Reset the dictionary to a predefined golden state,
   discarding all definitions and releasing all allocated
   data space beyond that state.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_third</text:p>
 <text:h text:style-name="Heading_20_3"> THIRD               ( x y z -- x y z x ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_third</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Copy third element on the stack onto top of stack.
</text:p><screen>  : THIRD   2 PICK ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fourth</text:p>
 <text:h text:style-name="Heading_20_3"> FOURTH              ( w x y z -- w x y z w ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_fourth</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Copy fourth element on the stack onto top of stack.
</text:p><screen>  : FOURTH  3 PICK ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_two_nip</text:p>
 <text:h text:style-name="Heading_20_3"> 2NIP                ( w x y z -- y z ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_two_nip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Drop the third and fourth elements from the stack.
</text:p><screen>  : 2NIP   2SWAP 2DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_andif</text:p>
 <text:h text:style-name="Heading_20_3"> ANDIF               ( p ... -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_andif</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Given `p ANDIF q THEN`,  _q_ will not be performed if
   _p_ is false.
</text:p><screen>  : ANDIF  S" DUP IF DROP " EVALUATE ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_orif</text:p>
 <text:h text:style-name="Heading_20_3"> ORIF                ( p ... -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_orif</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Given `p ORIF q THEN`,  _q_ will not be performed if
   _p_ is true.
</text:p><screen>  : ORIF   S" DUP 0= IF DROP " EVALUATE ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_scan</text:p>
 <text:h text:style-name="Heading_20_3"> SCAN            ( str len char -- str+i len-i ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_scan</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Look for a particular character in the specified string.
</text:p><screen>  : SCAN     
     &amp;gt;R  BEGIN  DUP WHILE  OVER C@ R@ -
         WHILE  1 /STRING  REPEAT THEN
     R&amp;gt; DROP ;
</screen><text:p text:style-name="Text_20_body">
  ie.
  scan for first occurence of c in string 
</text:p><screen>    : SCAN &amp;gt;R BEGIN DUP OVER C@ R@ = 0= OR WHILE 
                     1- SWAP 1- SWAP REPEAT R&amp;gt; DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_skip</text:p>
 <text:h text:style-name="Heading_20_3"> SKIP            ( str len char -- str+i len-i ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_skip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Advance past leading characters in the specified string.
</text:p><screen>  : SKIP     
    &amp;gt;R  BEGIN  DUP WHILE  OVER C@ R@ =
         WHILE  1 /STRING  REPEAT THEN
     R&amp;gt; DROP ;
</screen><text:p text:style-name="Text_20_body">
  ie.
  skip leading characters c 
</text:p><screen>    : SKIP  &amp;gt;R BEGIN DUP OVER C@ R@ = OR WHILE 
                     1- SWAP 1- SWAP REPEAT R&amp;gt; DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_back</text:p>
 <text:h text:style-name="Heading_20_3"> BACK            ( str len char -- str len-i ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_back</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Look for a particular character in the string from the
   back toward the front.
</text:p><screen>  : BACK     
     &amp;gt;R  BEGIN  DUP WHILE
         1-  2DUP + C@  R@ =
     UNTIL 1+ THEN
     R&amp;gt; DROP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_div_split</text:p>
 <text:h text:style-name="Heading_20_3"> /SPLIT          ( a m a+i m-i -- a+i m-i a i ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_div_split</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Split a character string _a m_ at place given by _a+i m-i_.
   Called "cut-split" because "slash-split" is a tongue
   twister.
</text:p><screen>  : /SPLIT  DUP &amp;gt;R  2SWAP  R&amp;gt; - ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_is_white</text:p>
 <text:h text:style-name="Heading_20_3"> IS-WHITE        ( char -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_is_white</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Test char for white space.
</text:p><screen>  : IS-WHITE   33 - 0&amp;lt; ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_trim</text:p>
 <text:h text:style-name="Heading_20_3"> TRIM            ( str len -- str len-i ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_trim</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Trim white space from end of string.
</text:p><screen>  : TRIM    
     BEGIN  DUP WHILE
         1-  2DUP + C@ IS-WHITE NOT
     UNTIL 1+ THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bl_scan</text:p>
 <text:h text:style-name="Heading_20_3"> BL-SCAN         ( str len -- str+i len-i ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_bl_scan</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Look for white space from start of string
</text:p><screen>  : BL-SCAN 
     BEGIN  DUP WHILE  OVER C@ IS-WHITE NOT
     WHILE  1 /STRING  REPEAT THEN ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bl_skip</text:p>
 <text:h text:style-name="Heading_20_3"> BL-SKIP         ( str len -- str+i len-i ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_bl_skip</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Skip over white space at start of string.
</text:p><screen>  : BL-SKIP 
     BEGIN  DUP WHILE  OVER C@ IS-WHITE
     WHILE  1 /STRING  REPEAT THEN ;
 
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_starts_Q</text:p>
 <text:h text:style-name="Heading_20_3"> STARTS?         ( str len pattern len2 -- str len flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_starts_Q</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Check start of string.
</text:p><screen>  : STARTS?   DUP &amp;gt;R  2OVER  R&amp;gt; MIN  COMPARE 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_ends_Q</text:p>
 <text:h text:style-name="Heading_20_3"> ENDS?           ( str len pattern len2 -- str len flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_ends_Q</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Check end of string.
</text:p><screen>  : ENDS?   DUP &amp;gt;R  2OVER  DUP R&amp;gt; - /STRING  COMPARE 0= ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_is_digit</text:p>
 <text:h text:style-name="Heading_20_3"> IS-DIGIT        ( char -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_is_digit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Test _char_ for digit [0-9].
</text:p><screen>  : IS-DIGIT   [CHAR] 0 -  10 U&amp;lt; ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_is_alpha</text:p>
 <text:h text:style-name="Heading_20_3"> IS-ALPHA        ( char -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_is_alpha</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Test _char_ for alphabetic [A-Za-z].
</text:p><screen>  : IS-ALPHA  32 OR  [CHAR] a -  26 U&amp;lt; ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_is_alnum</text:p>
 <text:h text:style-name="Heading_20_3"> IS-ALNUM        ( char -- flag ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_is_alnum</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Test _char_ for alphanumeric [A-Za-z0-9].
</text:p><screen>  : IS-ALNUM  
     DUP IS-ALPHA  ORIF  DUP IS-DIGIT  THEN  NIP ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_split_next_line</text:p>
 <text:h text:style-name="Heading_20_3"> SPLIT-NEXT-LINE     ( src . -- src' . str len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_split_next_line</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Split the next line from the string.
</text:p><screen>  : SPLIT-NEXT-LINE 
     2DUP #EOL-CHAR SCAN  
     DUP &amp;gt;R  1 /STRING  2SWAP R&amp;gt; - ;
</screen><text:p text:style-name="Text_20_body">  FIXME: inform Neil Bawd that this is probably
  not what he wanted. replace /STRING with /SPLIT here. 
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_view_next_line</text:p>
 <text:h text:style-name="Heading_20_3"> VIEW-NEXT-LINE    ( src . str len -- src . str len str2 len2 ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_view_next_line</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Copy next line above current line.
</text:p><screen>  : VIEW-NEXT-LINE 
     2OVER 2DUP #EOL-CHAR SCAN NIP - ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_next_word</text:p>
 <text:h text:style-name="Heading_20_3"> NEXT-WORD             ( -- str len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_next_word</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Get the next word across line breaks as a character
   string. _len_ will be 0 at end of file.
</text:p><screen>  : NEXT-WORD         
     BEGIN   BL WORD COUNT      ( str len )
         DUP IF EXIT THEN
         REFILL
     WHILE  2DROP ( ) REPEAT ;  
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_lexeme</text:p>
 <text:h text:style-name="Heading_20_3"> LEXEME                ( "name" -- str len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_lexeme</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Get the next word on the line as a character string.
   If it's a single character, use it as the delimiter to
   get a phrase.
</text:p><screen>  : LEXEME             
     BL WORD ( addr) DUP C@ 1 =
         IF  CHAR+ C@ WORD  THEN
     COUNT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_h_sh</text:p>
 <text:h text:style-name="Heading_20_3"> H#                    ( "hexnumber" -- n ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_h_sh</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Get the next word in the input stream as a hex
   single-number literal.  (Adopted from Open Firmware.)
</text:p><screen>  : H#  ( "hexnumber" -- n )  \  Simplified for easy porting.
     0 0 BL WORD COUNT                  
     BASE @ &amp;gt;R  HEX  &amp;gt;NUMBER  R&amp;gt; BASE !
         ABORT" Not Hex " 2DROP          ( n)
     STATE @ IF  POSTPONE LITERAL  THEN
     ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_backslash_backslash</text:p>
 <text:h text:style-name="Heading_20_3"> \\                    ( "...&lt;eof;&gt;" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_backslash_backslash</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Ignore the rest of the input stream.
</text:p><screen>  : \\   BEGIN  -1 PARSE  2DROP  REFILL 0= UNTIL ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_tick_th</text:p>
 <text:h text:style-name="Heading_20_3"> 'th             ( n "addr" -- &amp;addr[n] ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_tick_th</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Address `n CELLS addr +`.
</text:p><screen>  : 'th     ( n "addr" -- &amp;amp;addr[n] )
     S" 2 LSHIFT " EVALUATE
     BL WORD COUNT EVALUATE
     S" + " EVALUATE
     ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_dot</text:p>
 <text:h text:style-name="Heading_20_3"> (.)             ( n -- addr u ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_paren_dot</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Convert _n_ to characters, without punctuation, as for `.`
   (dot), returning the address and length of the resulting
   string.
</text:p><screen>  : (.)  ( n -- addr u )  DUP ABS 0 &amp;lt;# #S ROT SIGN #&amp;gt; ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cell_minus</text:p>
 <text:h text:style-name="Heading_20_3"> CELL-               ( addr -- addr' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_cell_minus</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Decrement address by one cell
</text:p><screen>  : CELL-  ( addr -- addr' )  CELL - ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_hiword</text:p>
 <text:h text:style-name="Heading_20_3"> HIWORD          ( xxyy -- xx ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_hiword</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   The high half of the value.
</text:p><screen>  : HIWORD  ( xxyy -- xx )  16 RSHIFT ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_loword</text:p>
 <text:h text:style-name="Heading_20_3"> LOWORD          ( xxyy -- yy ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_loword</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   The low half of the value.
</text:p><screen>  : LOWORD  ( xxyy -- yy )  65535 AND ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_rewind_file</text:p>
 <text:h text:style-name="Heading_20_3"> REWIND-FILE     ( file-id -- ior ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_rewind_file</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   Rewind the file.
</text:p><screen>  : REWIND-FILE       ( file-id -- ior )
     0 0 ROT REPOSITION-FILE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2001 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_s</text:p>
 <text:h text:style-name="Heading_20_3"> .S ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_s</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">      print the stack content in vertical nice format.
      tries to show cell-stack and float-stack side-by-side,
</text:p><text:p text:style-name="Text_20_body">
 	 Depending on configuration,
 	there are two parameter stacks: for integers and for
 	floating point operations. If both stacks are empty, <text:span text:style-name="Source_20_Text">.S</text:span>
 	will display the message <text:span text:style-name="Source_20_Text">&amp;lt;stacks empty&amp;gt;</text:span>.
</text:p><text:p text:style-name="Text_20_body">
 	If only the floating point stack is empty, <text:span text:style-name="Source_20_Text">.S</text:span> displays
 	the integer stack items  in one column, one item per line,
 	both in hex and in decimal like this (the first item is topmost):
</text:p><screen>  12345 HEX 67890 .S
     	424080 [00067890]
          12345 [00003039] ok
</screen><text:p text:style-name="Text_20_body">
       If both stacks ar not empty, =&gt; .S displays both stacks, in two
 	columns, one item per line
</text:p><screen>  HEX 123456.78E90 ok
  DECIMAL 123456.78E90 .S
     	   291 [00000123]          1.234568E+95
     1164414608 [45678E90] ok
</screen><text:p text:style-name="Text_20_body">  	Confusing example? Remember that floating point input only works
  	when the <text:span text:style-name="Source_20_Text">BASE</text:span> number is <text:span text:style-name="Source_20_Text">DECIMAL</text:span>. The first number looks like
  	a floating point but it is a goodhex double integer too - the number
  	base is <text:span text:style-name="Source_20_Text">HEX</text:span>. Thus it is accepted as a hex number. Second try 
       with a decimal base will input the floating point number.
</text:p><text:p text:style-name="Text_20_body">
       If only the integer stack is empty, =&gt; .S shows two columns, but
       he first columns is called <constant>&amp;lt;stack empty&amp;gt;</constant>, and the
       second column is the floating point stack, topmost item first.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_question</text:p>
 <text:h text:style-name="Heading_20_3"> ? ( addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_question</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Display the (integer) content of at address <constant>addr</constant>.
  This word is sensitive to <text:span text:style-name="Source_20_Text">BASE</text:span>
</text:p><screen>  simulate:
    : ?  @ . ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dump</text:p>
 <text:h text:style-name="Heading_20_3"> DUMP ( addr len -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dump</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  show a hex-dump of the given area, if it's more than a screenful
  it will ask using =&gt; ?CR
</text:p><text:p text:style-name="Text_20_body">
  You can easily cause a segmentation fault of something like that
  by accessing memory that does not belong to the pfe-process.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_see</text:p>
 <text:h text:style-name="Heading_20_3"> SEE ( "word" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_see</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   decompile word - tries to show it in re-compilable form.
</text:p><text:p text:style-name="Text_20_body">
   <text:span text:style-name="Source_20_Text">(SEE)</text:span> tries to display the word as a reasonable indented
   source text. If you defined your own control structures or
   use extended control-flow patterns, the indentation may be
   suboptimal.
</text:p><screen>  simulate:
    : SEE  [COMPILE] ' (SEE) ; 
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_words</text:p>
 <text:h text:style-name="Heading_20_3"> WORDS ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_words</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  uses CONTEXT and lists the words defined in that vocabulary.
  usually the vocabulary to list is named directly in before.
</text:p><screen>  example:
     FORTH WORDS  or  LOADED WORDS
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_new_ahead</text:p>
 <text:h text:style-name="Heading_20_3"> AHEAD ( -- DP-mark ORIG-magic ) compile-only </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_new_ahead</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <screen> 
  simulate:
    : AHEAD  BRANCH MARK&amp;gt; (ORIG#) ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bye</text:p>
 <text:h text:style-name="Heading_20_3"> BYE ( -- ) no-return </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bye</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  should quit the forth environment completly
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cs_pick</text:p>
 <text:h text:style-name="Heading_20_3"> CS-PICK ( 2a 2b 2c ... n -- 2a 2b 2c ... 2a ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cs_pick</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  pick a value in the compilation-stack - note that the compilation
  stack _can_ be seperate in some forth-implemenations. In PFE
  the parameter-stack is used in a double-cell fashion, so CS-PICK
  would 2PICK a DP-mark and a COMP-magic, see <text:span text:style-name="Source_20_Text">PICK</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_cs_roll</text:p>
 <text:h text:style-name="Heading_20_3"> CS-ROLL ( 2a 2b 2c ... n -- 2b 2c ... 2a ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_cs_roll</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  roll a value in the compilation-stack - note that the compilation
  stack _can_ be seperate in some forth-implemenations. In PFE
  the parameter-stack is used in a double-cell fashion, so CS-ROLL
  would 2ROLL a DP-mark and a COMP-magic, see <text:span text:style-name="Source_20_Text">ROLL</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_else</text:p>
 <text:h text:style-name="Heading_20_3"> [ELSE] ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_else</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  eat up everything upto and including the next [THEN]. count
  nested [IF] ... [THEN] constructs. see <text:span text:style-name="Source_20_Text">[IF]</text:span>
</text:p><screen>  this word provides a simple pre-compiler mechanism
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_if</text:p>
 <text:h text:style-name="Heading_20_3"> [IF] ( flag -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_if</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check the condition in the CS-STACK. If true let the following
  text flow into <text:span text:style-name="Source_20_Text">INTERPRET</text:span> , otherwise eat up everything upto
  and including the next <text:span text:style-name="Source_20_Text">[ELSE]</text:span> or <text:span text:style-name="Source_20_Text">[THEN]</text:span> . In case of 
  skipping, count nested [IF] ... [THEN] constructs.
</text:p><screen>  this word provides a simple pre-compiler mechanism
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_assembler</text:p>
 <text:h text:style-name="Heading_20_3"> ASSEMBLER ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_assembler</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  set the <text:span text:style-name="Source_20_Text">ASSEMBLER-WORDLIST</text:span> as current <text:span text:style-name="Source_20_Text">CONTEXT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_create_code</text:p>
 <text:h text:style-name="Heading_20_3"> CODE ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_create_code</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  <text:span text:style-name="Source_20_Text">CREATE</text:span> a new name and put PFA adress into the CFA place. 
</text:p><text:p text:style-name="Text_20_body">
  NOTE: this description (PFA into CFA) is only correct for traditional
  indirect threaded code (ITC). The other variants use a block info
  in the CFA - there we will start a normal colon word which is cut
  off immediately by a <text:span text:style-name="Source_20_Text">;CODE</text:span> directive to enter the machine-level.
</text:p><text:p text:style-name="Text_20_body">
  BE AWARE:
  The TOOLS-EXT will not provide an <text:span text:style-name="Source_20_Text">END-CODE</text:span> or any other word in the
  <text:span text:style-name="Source_20_Text">ASSEMBLER</text:span> wordlist which is required to start any useful assembler 
  programming. After requiring ASSEMBLER-EXT you will see a second "CODE"
  in the <text:span text:style-name="Source_20_Text">EXTENSIONS</text:span> wordlist that will also provide an optimized execution
  than the result of this standard-forth implemenation.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_semicolon_code_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ;CODE ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_semicolon_code_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Does end the latest word (being usually some DOES&gt; part) and enters
  machine-level (in EXEC-mode). 
</text:p><text:p text:style-name="Text_20_body">
  BE AWARE:
  The TOOLS-EXT will not provide an <text:span text:style-name="Source_20_Text">END-CODE</text:span> or any other word in the
  <text:span text:style-name="Source_20_Text">ASSEMBLER</text:span> wordlist which is required to start any useful assembler 
  programming. After requiring ASSEMBLER-EXT you will see a second ";CODE"
  in the <text:span text:style-name="Source_20_Text">EXTENSIONS</text:span> wordlist that will also provide an optimized execution
  than the result of this standard-forth implemenation.
</text:p><text:p text:style-name="Text_20_body">
  The Standard-Forth implementation will actually compile a derivate of
  <text:span text:style-name="Source_20_Text">BRANCH</text:span> into the dictionary followed by <text:span text:style-name="Source_20_Text">;</text:span>. The compiled word
  will not jump to the target adress (following the execution token)
  but it will call the target adress via the host C stack. The target
  machine level word (C domain) will just return here for being
  returned (Forth domain). Hence <text:span text:style-name="Source_20_Text">END-CODE</text:span> may be a simple RET, comma!
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_end_code</text:p>
 <text:h text:style-name="Heading_20_3"> END-CODE ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_end_code</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  call <text:span text:style-name="Source_20_Text">PREVIOUS</text:span> and  add PROC LEAVE assembler snippet as needed
  for the architecture -  usually includes bits to "return from
  subroutine". Remember that not all architectures are support and
  PFE usually does only do variants of call-threading with a separate
  loop for the inner interpreter that does "call into subroutine".
</text:p><text:p text:style-name="Text_20_body">
  Some forth implementations do "jump into routine" and the PROC
  LEAVE part would do "jump to next routine" also known as 
  next-threading. The sbr-call-threading is usually similar to the
  native subroutine-coding of the host operating system. See <text:span text:style-name="Source_20_Text">CODE</text:span>
</text:p><text:p text:style-name="Text_20_body">
  On some machine types, this word is NOT DEFINED!
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_vlist</text:p>
 <text:h text:style-name="Heading_20_3"> VLIST ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_vlist</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   The VLIST command had been present in FIG and other forth
   implementations. It has to list all accessible words. In PFE
   it list all words in the search order. Well, the point is,
   that we do really just look into the search order and are
   then calling <text:span text:style-name="Source_20_Text">WORDS</text:span> on that Wordl. That way you can see
   all accessible words in the order they might be found.
   Uses =&gt; ?CR
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_store_csp</text:p>
 <text:h text:style-name="Heading_20_3"> !CSP ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_store_csp</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  put <text:span text:style-name="Source_20_Text">SP</text:span> into <text:span text:style-name="Source_20_Text">CSP</text:span>
   used in control-words
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_csp</text:p>
 <text:h text:style-name="Heading_20_3"> ?CSP ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_csp</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check that <text:span text:style-name="Source_20_Text">SP</text:span> == <text:span text:style-name="Source_20_Text">CSP</text:span> otherwise <text:span text:style-name="Source_20_Text">THROW</text:span>
   used in control-words
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_comp</text:p>
 <text:h text:style-name="Heading_20_3"> ?COMP ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_comp</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check that the current <text:span text:style-name="Source_20_Text">STATE</text:span> is compiling
  otherwise <text:span text:style-name="Source_20_Text">THROW</text:span>
   often used in control-words
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_exec</text:p>
 <text:h text:style-name="Heading_20_3"> ?EXEC ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_exec</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check that the current <text:span text:style-name="Source_20_Text">STATE</text:span> is executing
  otherwise <text:span text:style-name="Source_20_Text">THROW</text:span>
   often used in control-words
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_file</text:p>
 <text:h text:style-name="Heading_20_3"> ?FILE ( file-id -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_file</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check the file-id otherwise (fixme)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_loading</text:p>
 <text:h text:style-name="Heading_20_3"> ?LOADING ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_loading</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check that the currently interpreted text is 
  from a file/block, otherwise <text:span text:style-name="Source_20_Text">THROW</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_pairs</text:p>
 <text:h text:style-name="Heading_20_3"> ?PAIRS ( a b -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_pairs</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  if compiling, check that the two magics on
  the <text:span text:style-name="Source_20_Text">CS-STACK</text:span> are identical, otherwise throw
   used in control-words
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_stack</text:p>
 <text:h text:style-name="Heading_20_3"> ?STACK ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_Q_stack</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check all stacks for underflow and overflow conditions,
  and if such an error condition is detected <text:span text:style-name="Source_20_Text">THROW</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_forget</text:p>
 <text:h text:style-name="Heading_20_3"> (FORGET) ( addr -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_paren_forget</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  forget everything above addr
  - used by <text:span text:style-name="Source_20_Text">FORGET</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_dictlimit</text:p>
 <text:h text:style-name="Heading_20_3"> (DICTLIMIT)   ( -- constvalue ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_paren_dictlimit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the upper limit of the forth writeable memory space,
  the variable <text:span text:style-name="Source_20_Text">DICTLIMIT</text:span> must be below this line.
  stack-space and other space-areas are often allocated
  above <text:span text:style-name="Source_20_Text">DICTLIMIT</text:span> upto this constant.
</text:p><text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">DICTFENCE</text:span> is the lower end of the writeable dictionary
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_dictfence</text:p>
 <text:h text:style-name="Heading_20_3"> (DICTFENCE)   ( -- constvalue ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-mix.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_paren_dictfence</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the lower limit of the forth writeable memory space,
  the variable <text:span text:style-name="Source_20_Text">DICTFENCE</text:span> must be above this line.
  Some code-areas are often moved in between <text:span text:style-name="Source_20_Text">DICTFENCE</text:span> and
  this constant. To guard normal Forth code from deletion
  the usual practice goes with the <text:span text:style-name="Source_20_Text">FENCE</text:span> variable
</text:p><text:p text:style-name="Text_20_body">
  <text:span text:style-name="Source_20_Text">DICTLIMIT</text:span> is the upper end of the writeable dictionary
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_Q_file_open</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_Q_file_open</text:span><text:span text:style-name="Source_20_Text">(p4_File *fid)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_abortq</text:p>
 <text:h text:style-name="Heading_20_3">... </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/tools-sub.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">_export void
p4_abortq</text:span><text:span text:style-name="Source_20_Text">(const char *fmt,...)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">(missing description)</text:p>

<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_to_compile</text:p>
 <text:h text:style-name="Heading_20_3">  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">void p4_to_compile</text:span><text:span text:style-name="Source_20_Text">(p4xt xt)
</text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  see <text:span text:style-name="Source_20_Text">&gt;COMPILE</text:span>  and <text:span text:style-name="Source_20_Text">POSTPONE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_prefix_begin</text:p>
 <text:h text:style-name="Heading_20_3"> "($" ( [word] -- cs-token ) compile-only </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_prefix_begin</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   takes the execution token of the following word and
   saves it on the compile-stack. The correspondig closing
   <text:span text:style-name="Source_20_Text">)</text:span> will then feed it into <text:span text:style-name="Source_20_Text">&gt;COMPILE</text:span> - so this pair
   of word provides you with a prefix-operation syntax
   that you may have been seen in lisp-like languages.
</text:p><screen>    ($ IF ($ 0= A1 @ )) ($ THEN ." hello " )
</screen><text:p text:style-name="Text_20_body">  Note that an opening simple <text:span text:style-name="Source_20_Text">(</text:span> paren is a comment.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_prefix_end</text:p>
 <text:h text:style-name="Heading_20_3"> ")" ( cs-token -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_prefix_end</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  takes the execution-token from <text:span text:style-name="Source_20_Text">(\$</text:span> and compiles
  it using <text:span text:style-name="Source_20_Text">&gt;COMPILE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_prefix_end_doubled</text:p>
 <text:h text:style-name="Heading_20_3"> "))" ( cs-token cs-token -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_prefix_end_doubled</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  takes two execution-tokens from two of <text:span text:style-name="Source_20_Text">(\$</text:span> and compiles
  them on after another using <text:span text:style-name="Source_20_Text">&gt;COMPILE</text:span>
</text:p><screen>  simulate:
     : )) [COMPILE] ) [COMPILE] ) ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_sprintf</text:p>
 <text:h text:style-name="Heading_20_3"> PFE-SPRINTF ( args ... format$ dest$ -- len-dest )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_sprintf</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  just like the standard sprintf() function in C, but
  the format is a counted string and accepts %#s to
  be the format-symbol for a forth-counted string.
  The result is a zeroterminated string at dest$ having
  a length being returned. To create a forth-counted
  string, you could use:
</text:p><screen>    variable A 256 ALLOT
    15 " example" " the %#s value is %i" A 1+ SPRINTF A C!
    A COUNT TYPE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_printf</text:p>
 <text:h text:style-name="Heading_20_3"> PFE-PRINTF ( args ... format$ -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_printf</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  uses <text:span text:style-name="Source_20_Text">SPRINTF</text:span> to print to a temporary 256-char buffer
  and prints it to stdout afterwards. See the example
  at <text:span text:style-name="Source_20_Text">SPRINTF</text:span> of what it does internally.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_loadf</text:p>
 <text:h text:style-name="Heading_20_3"> LOADF ( "filename" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_loadf</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   loads a file just like <text:span text:style-name="Source_20_Text">INCLUDE</text:span> but does also put
   a <text:span text:style-name="Source_20_Text">MARKER</text:span> in the <text:span text:style-name="Source_20_Text">LOADED</text:span> dictionary that you can
   do a <text:span text:style-name="Source_20_Text">FORGET</text:span> on to kill everything being loaded
   from that file.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_paren_loadf_locate</text:p>
 <text:h text:style-name="Heading_20_3"> "(LOADF-LOCATE)" ( xt -- nfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_paren_loadf_locate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  the implementation of <text:span text:style-name="Source_20_Text">LOADF-LOCATE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_loadf_locate</text:p>
 <text:h text:style-name="Heading_20_3"> LOADF-LOCATE ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_loadf_locate</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  look for the filename created by <text:span text:style-name="Source_20_Text">LOADF</text:span> that had been
  defining the given name. <text:span text:style-name="Source_20_Text">LOADF</text:span> has created a marker
  that is <text:span text:style-name="Emphasis">above</text:span> the <text:span text:style-name="Source_20_Text">INCLUDED</text:span> file and that
  marker has a body-value just <text:span text:style-name="Emphasis">below</text:span> the 
  <text:span text:style-name="Source_20_Text">INCLUDED</text:span> file. Hence the symbol was defined during
  <text:span text:style-name="Source_20_Text">LOADF</text:span> execution of that file.
</text:p><screen>  : LOADF-LOCATE ?EXEC POSTPONE ' (LOADF-LOCATE) .NAME ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_semicolon_and_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "(;AND)" ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_semicolon_and_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">;AND</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_semicolon_and</text:p>
 <text:h text:style-name="Heading_20_3"> ";AND" ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_semicolon_and</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  For the code piece between <text:span text:style-name="Source_20_Text">MAKE</text:span> and <text:span text:style-name="Source_20_Text">;AND</text:span> , this word
  will do just an <text:span text:style-name="Source_20_Text">EXIT</text:span> . For the code outside of
  the <text:span text:style-name="Source_20_Text">MAKE</text:span> construct a branch-around must be resolved then.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_make_to_local_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((MAKE-))" ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_make_to_local_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">MAKE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_make_to_execution</text:p>
 <text:h text:style-name="Heading_20_3"> "((MAKE))" ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_make_to_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">MAKE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_make</text:p>
 <text:h text:style-name="Heading_20_3"> MAKE ( [word] -- ) ... ;AND </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_make</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  make a seperated piece of code between <text:span text:style-name="Source_20_Text">MAKE</text:span> and <text:span text:style-name="Source_20_Text">;AND</text:span> 
  and on execution of the <text:span text:style-name="Source_20_Text">MAKE</text:span> the named word is twisted
  to point to this piece of code. The word is usually 
  a <text:span text:style-name="Source_20_Text">DOER</text:span> but the current implementation works 
  on <text:span text:style-name="Source_20_Text">DEFER</text:span> just as well, just as it does on other words who
  expect to find an execution-token in its PFA. You could even
  create a colon-word that starts with <text:span text:style-name="Source_20_Text">NOOP</text:span> and can then make
  that colon-word be prefixed with the execution of the code piece. 
  This <text:span text:style-name="Source_20_Text">MAKE</text:span>
  does even work on <text:span text:style-name="Source_20_Text">LOCALS|</text:span> and <text:span text:style-name="Source_20_Text">VAR</text:span> but it is uncertain
  what that is good for.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_offset_RT</text:p>
 <text:h text:style-name="Heading_20_3"> OFFSET-RT ( value -- value+offset ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_offset_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">   this runtime will add the body-value to the value at top-of-stack.
   used heavily in structure access words, compiled by <text:span text:style-name="Source_20_Text">/FIELD</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_offset_constant</text:p>
 <text:h text:style-name="Heading_20_3"> +CONSTANT ( offset "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_offset_constant</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a new offsetword. The word is created and upon execution
  it adds the offset, ie. compiling the <text:span text:style-name="Source_20_Text">OFFSET-RT</text:span> runtime:
</text:p><screen>        ( address -- address+offset )
</screen><text:p text:style-name="Text_20_body">  This word is just a convenience word, just use the word <text:span text:style-name="Source_20_Text">+FIELD</text:span> 
  directly and choose a <text:span text:style-name="Source_20_Text">DROP</text:span> to flag the end of a current
  offset-field declaration series. See also <text:span text:style-name="Source_20_Text">/FIELD</text:span> series to
  declare simple structures which end with a final <text:span text:style-name="Source_20_Text">CONSTANT</text:span> to
  memorize the complete size. The <text:span text:style-name="Source_20_Text">/FIELD</text:span> style is more traditional.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_plus_field</text:p>
 <text:h text:style-name="Heading_20_3"> +FIELD: ( offset "name" -- offset ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_plus_field</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  created a new name with an <text:span text:style-name="Source_20_Text">OFFSET-RT</text:span> runtime using the given offset. 
  Leave the offset-value untouched, so it can be modified with words
  like <text:span text:style-name="Source_20_Text">CHAR+</text:span> and <text:span text:style-name="Source_20_Text">CELL+</text:span> and <text:span text:style-name="Source_20_Text">SFLOAT+</text:span> ; This word is the simplest way 
  to declared structure access words in forth - the two <text:span text:style-name="Source_20_Text">STRUCT</text:span> modules 
  contain a more elaborate series of words. Use this one like:
</text:p><screen>  0                        ( a fresh definition is started )
  +FIELD: zapp.a+ CHAR+     ( zero offset from the base of the struct )
  +FIELD: zapp.b+ CELL+     ( no alignment, starts off at 1 from base )
  +FIELD: zapp+   DROP      ( store size of complete zap structure )
 
  0 zapp+                  ( extend the zap structure )
  +FIELD: zappx.c+ CELL+    ( a new field )
  +FIELD: zappx+   DROP     ( and save it again )
 
  CREATE zapp1  0 zapp+ ALLOT ( a way to allocate a strucutre )
 
  zapp2 zapp.b+ @         ( read a value from the field )
  16 zapp2 zapp.b+ !      ( store a value in there )
 
</screen><text:p text:style-name="Text_20_body">  this form is not the traditional form used in forth, it is however
  quite simple. Use the simplefield declaration with <text:span text:style-name="Source_20_Text">/FIELD</text:span> to
  be compatible with traditional styles that build on top of sizeof
  constants in forth (which are not part of the ANS Forth standard).
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_slash_field</text:p>
 <text:h text:style-name="Heading_20_3"> /FIELD ( offset size "name" -- offset+size ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_slash_field</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  created a new <text:span text:style-name="Source_20_Text">+FIELD</text:span> name with an <text:span text:style-name="Source_20_Text">OFFSET-RT</text:span>
  of offset. Then add the size value to the offset so that
  the next <text:span text:style-name="Source_20_Text">/FIELD</text:span> declaration will start at the end of the
  field currently declared. This word is the simplest way to
  declared structure access words in forth - the two <text:span text:style-name="Source_20_Text">STRUCT</text:span> modules 
  contain a more elaborate series of words. This one is used like:
</text:p><screen>  0                        ( a fresh definition is started )
  /CHAR /FIELD -&amp;gt;zapp.a    ( zero offset from the base of the struct )
  /CELL /FIELD -&amp;gt;zapp.b    ( no alignment, starts off at 1 from base )
  CONSTANT /zapp           ( store size of complete zap structure )
 
  /zapp                    ( extend the zap structure )
  /CELL /FIELD -&amp;gt;zappx.c   ( a new field )
  CONSTANT /zappx          ( and save it again )
 
  CREATE zapp1 /zapp ALLOT ( a way to allocate a strucutre )
  /zapp BUFFER: zapp2      ( another way to do it, semi-standard )
 
  zapp2 -&amp;gt;zapp.b @         ( read a value from the field )
  16 zapp2 -&amp;gt;zapp.b !      ( store a value in there )
 
</screen><text:p text:style-name="Text_20_body">  compare also with <text:span text:style-name="Source_20_Text">/CHAR</text:span> <text:span text:style-name="Source_20_Text">/WCHAR</text:span> <text:span text:style-name="Source_20_Text">/CELL</text:span> <text:span text:style-name="Source_20_Text">/DCELL</text:span>
  and use <text:span text:style-name="Source_20_Text">+FIELD</text:span> as the lowlevel word, can simulate as
</text:p><screen>  : /FIELD SWAP +FIELD + ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_not</text:p>
 <text:h text:style-name="Heading_20_3"> [NOT] ( a -- a' ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_not</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  executes <text:span text:style-name="Source_20_Text">0=</text:span> but this word is immediate so that it does 
  affect the cs-stack while compiling rather than compiling
  anything. This is useful just before words like <text:span text:style-name="Source_20_Text">[IF]</text:span> to
  provide semantics of an <text:span text:style-name="Source_20_Text">[IFNOT]</text:span>. It is most useful in
  conjunction with "=&gt; [DEFINED] word" as it the sequence
  "<text:span text:style-name="Source_20_Text">[DEFINED] word [NOT] [IF]</text:span>" can simulate "<text:span text:style-name="Source_20_Text">[IFNOTDEF] word</text:span>"
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_replace_in</text:p>
 <text:h text:style-name="Heading_20_3"> REPLACE-IN ( to-xt from-xt n "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_replace_in</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will handle the body of the named word as a sequence of cells (or tokens) 
  and replaces the n'th occurences of from-xt into to-xt. A negative value
  will change all occurences. A zero value will not change any.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_x_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'X"' ( "hex-q" -- bstring )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_x_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  places a counted string on stack
  containing bytes specified by hex-string
  - the hex string may contain spaces which will delimit the bytes
</text:p><screen>  example: 
     X" 41 42 4344" COUNT TYPE ( shows ABCD )
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_evaluate_with</text:p>
 <text:h text:style-name="Heading_20_3"> EVALUATE-WITH ( i*x addr len xt[i*x--j*x] -- j*x )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_evaluate_with</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  added to be visible on the forth command line on request by MLG,
  he has explained the usage before a lot, you can get an idea from:
</text:p><screen>     : EVALUATE ['] INTERPRET EVALUATE-WITH ;
</screen><text:p text:style-name="Text_20_body">  The word is used internally in PFE for the loadlist evaluation of
  the binary modules: where previously each loadercode had its own
  CREATE-execution we do now call the original forthish CREATE-word
  like, so bootstrapping a <text:span text:style-name="Source_20_Text">VARIABLE</text:span> will now call VARIABLE itself
  and of course we need to set up the TIB-area to point to the name
  of the variable that shall be created in the forth dictionary:
</text:p><screen>  : LOAD-WORD ( arg-value str-ptr str-len loader-code -- )
       CASE
         #LOAD-VARIABLE OF ['] VARIABLE EVALUATE-WITH ENDOF
         ....
       ENDCASE
       CLEARSTACK
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_vocabulary</text:p>
 <text:h text:style-name="Heading_20_3"> [VOCABULARY] ( "name" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_vocabulary</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create an immediate vocabulary. Provides for basic 
  modularization.
</text:p><screen>  : [VOCABULARY] VOCABULARY IMMEDIATE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_possibly</text:p>
 <text:h text:style-name="Heading_20_3"> [POSSIBLY] ( [name] -- ?? ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_possibly</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  check if the name exists, and execute it immediatly
  if found. Derived from POSSIBLY as seen in other forth systems.
</text:p><screen>  : [POSSIBLY] (') ?DUP IF EXECUTE THEN ; IMMEDIATE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_def</text:p>
 <text:h text:style-name="Heading_20_3"> [DEF] ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_def</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  immediatly set topmost <text:span text:style-name="Source_20_Text">CONTEXT</text:span> voc to <text:span text:style-name="Source_20_Text">CURRENT</text:span> compilation voc.
</text:p><screen>  : DEF' CURRENT @ CONTEXT ! ; IMMEDIATE
</screen><text:p text:style-name="Text_20_body">  note that in PFE most basic vocabularies are immediate, so that
  you can use a sequence of
</text:p><screen>  FORTH ALSO  DEFINITIONS
  [DEF] : GET-FIND-3  [ANS] ['] FIND  [FIG] ['] FIND  [DEF] ['] FIND ;
</screen><text:p text:style-name="Text_20_body">  where the first wordlist to be searched via the search order are
  [ANS] and [FIG] and FORTH (in this order) and which may or may not 
  yield different flavours of the FIND routine (i.e. different XTs)
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_context_Q</text:p>
 <text:h text:style-name="Heading_20_3"> CONTEXT? ( -- number ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_context_Q</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  GET-CONTEXT and count how many times it is in the order but
  the CONTEXT variable itself. The returned number is therefore
  minus one the occurences in the complete search-order.
  usage:
</text:p><screen>    ALSO EXTENSIONS CONTEXT? [IF] PREVIOUS [THEN]
    ALSO DEF' DEFAULT-ORDER
  : CONTEXT? 
    0 LVALUE _count
    GET-ORDER 1- SWAP  LVALUE _context
    0 ?DO _context = IF 1 +TO _count THEN LOOP
    _count
  ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_defs_are_case_sensitive</text:p>
 <text:h text:style-name="Heading_20_3"> DEFS-ARE-CASE-SENSITIVE ( -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_defs_are_case_sensitive</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  accesses <text:span text:style-name="Source_20_Text">CURRENT</text:span> which is generally the last wordlist that the
  <text:span text:style-name="Source_20_Text">DEFINITIONS</text:span> shall go in. sets there a flag in the vocabulary-definition
  so that words are matched case-sensitive. 
</text:p><screen>  example: 
     VOCABULARY MY-VOC  MY-VOC DEFINITIONS DEFS-ARE-CASE-SENSITIVE
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_case_sensitive_voc</text:p>
 <text:h text:style-name="Heading_20_3"> CASE-SENSITIVE-VOC ( -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_case_sensitive_voc</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  accesses <text:span text:style-name="Source_20_Text">CONTEXT</text:span> which is generally the last named <text:span text:style-name="Source_20_Text">VOCABULARY</text:span> .
  sets a flag in the vocabulary-definition so that words are matched
  case-sensitive. 
</text:p><screen>  example: 
     VOCABULARY MY-VOC  MY-VOC CASE-SENSITIVE-VOC
</screen><text:p text:style-name="Text_20_body">  OBSOLETE! use <text:span text:style-name="Source_20_Text">DEFS-ARE-CASE-SENSITIVE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_defs_are_searched_also</text:p>
 <text:h text:style-name="Heading_20_3"> DEFS-ARE-SEARCHED-ALSO ( -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_defs_are_searched_also</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  binds <text:span text:style-name="Source_20_Text">CONTEXT</text:span> with <text:span text:style-name="Source_20_Text">CURRENT</text:span>. If the <text:span text:style-name="Source_20_Text">CURRENT</text:span> <text:span text:style-name="Source_20_Text">VOCABULARY</text:span> is in
  the search-order (later), then the <text:span text:style-name="Source_20_Text">CONTEXT</text:span> vocabulary will 
  be searched also. If the result of this word could lead into 
  a recursive lookup with <text:span text:style-name="Source_20_Text">FIND</text:span> it will throw <text:span text:style-name="Source_20_Text">CURRENT_DELETED</text:span>
  and leave the <text:span text:style-name="Source_20_Text">CURRENT</text:span> <text:span text:style-name="Source_20_Text">VOCABULARY</text:span> unaltered.
</text:p><screen>  example:
</screen><text:p text:style-name="Text_20_body">  MY-VOC DEFINITIONS  MY-VOC-PRIVATE DEFS-ARE-SEARCHED-ALSO
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_bracket_execute</text:p>
 <text:h text:style-name="Heading_20_3"> [EXECUTE] ( [word] -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/useful-ext.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_bracket_execute</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  ticks the following word, and executes it - even in compiling mode.
</text:p><screen>  : [EXECUTE] ' EXECUTE ;
  
</screen>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 1998 - 2001.
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_spy_on</text:p>
 <text:h text:style-name="Heading_20_3"> SPY_ON ( -- ) </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_spy_on</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  change the runtime-code of <text:span text:style-name="Source_20_Text">(NEST)</text:span> 
  to call a special word that prints info
  to the screen whenever a colon word is 
  entered. It will print the name and
  the current stack, and results in a kind
  of execution trace over <text:span text:style-name="Source_20_Text">SPY' :</text:span>-colon nested
  words.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2000 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_spy_off</text:p>
 <text:h text:style-name="Heading_20_3"> SPY_OFF ( -- ) </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_spy_off</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  disable <text:span text:style-name="Source_20_Text">SPY_ON</text:span> nest-trace.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2000 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_spy_colon_RT</text:p>
 <text:h text:style-name="Heading_20_3"> "SPY' (NEST)" ( -- )  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_RT p4_spy_colon_RT</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiled by <text:span text:style-name="Source_20_Text">:</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2000 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_spy_colon</text:p>
 <text:h text:style-name="Heading_20_3"> "SPY:" ( name -- )  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_spy_colon</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  create a header for a nesting word and go to compiling
  mode then. This word is usually ended with <text:span text:style-name="Source_20_Text">;</text:span> but
  the execution of the resulting colon-word can also 
  return with <text:span text:style-name="Source_20_Text">EXIT</text:span>
  this is the spy-version <text:span text:style-name="Source_20_Text">SPY_ON</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2000 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_spy_semicolon</text:p>
 <text:h text:style-name="Heading_20_3"> ";SPY" ( -- )  </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_spy_semicolon</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  compiles <text:span text:style-name="Source_20_Text">((;))</text:span> which does <text:span text:style-name="Source_20_Text">EXIT</text:span> the current
  colon-definition. It does then end compile-mode
  and returns to execute-mode. See <text:span text:style-name="Source_20_Text">:</text:span> and <text:span text:style-name="Source_20_Text">:NONAME</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2000 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_spy_exit</text:p>
 <text:h text:style-name="Heading_20_3"> "SPY-EXIT" ( -- ) </text:h>




<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_spy_exit</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will unnest the current colon-word so it will actually
  return the word calling it. This can be found in the
  middle of a colon-sequence between <text:span text:style-name="Source_20_Text">:</text:span> and <text:span text:style-name="Source_20_Text">;</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) Tektronix, Inc. 2000 - 2001. 
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_tick_from</text:p>
 <text:h text:style-name="Heading_20_3"> "'&gt;" ( [name] -- xt ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_tick_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  get the execution-token, ie the CFA, of the word following.
  This word is fully state-smart while the ANSI standard words
  namely <text:span text:style-name="Source_20_Text">'</text:span> and <text:span text:style-name="Source_20_Text">[']</text:span> are not.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_fetch_from</text:p>
 <text:h text:style-name="Heading_20_3"> @&gt; ( [name] -- value ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_fetch_from</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  does fetch the value from the PFA of the named item, which
  may be about everything, including a <text:span text:style-name="Source_20_Text">VARIABLE</text:span> , <text:span text:style-name="Source_20_Text">VALUE</text:span>
  <text:span text:style-name="Source_20_Text">LVALUE</text:span> , <text:span text:style-name="Source_20_Text">LOCALS|</text:span> , <text:span text:style-name="Source_20_Text">VAR</text:span> , <text:span text:style-name="Source_20_Text">DEFER</text:span> , <text:span text:style-name="Source_20_Text">DOER</text:span> , <text:span text:style-name="Source_20_Text">DOES&gt;</text:span>
  and more.
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_into_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((INTO)) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_into_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">INTO</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_into_local_execution</text:p>
 <text:h text:style-name="Heading_20_3"> ((INTO-)) ( -- value )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode_XE p4_into_local_execution</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  execution compiled by <text:span text:style-name="Source_20_Text">INTO</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_into</text:p>
 <text:h text:style-name="Heading_20_3"> INTO ( [name] -- pfa ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_into</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  will return the parameter-field address of the following word.
  Unlike others, this word will also return the address of
  <text:span text:style-name="Source_20_Text">LOCALS|</text:span> and local <text:span text:style-name="Source_20_Text">LVALUE</text:span> - so in fact a <text:span text:style-name="Source_20_Text">TO A</text:span> and 
  <text:span text:style-name="Source_20_Text">INTO A !</text:span> are the same. This word is most useful when calling
  C-exported function with a temporary local-VAR as a return-place
  argument - so the address of a local has to be given as an arg.
  Beware that you should not try to save the address anywhere else,
  since a local's address does always depend of the RP-depth -
  EXIT from a colon-word and the value may soon get overwritten.
  (see also <text:span text:style-name="Source_20_Text">TO</text:span> )
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_dot_h2</text:p>
 <text:h text:style-name="Heading_20_3"> .H2 ( value -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_dot_h2</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  print hexadecimal, but with per-byte 0-padding
</text:p><screen>    0x0     -&amp;gt; 00
    0xf     -&amp;gt; 0f
    0x12    -&amp;gt; 12
    0x123   -&amp;gt; 0123
    0x1234  -&amp;gt; 1234
    0x12345 -&amp;gt; 012345
  
</screen>









 <text:p text:style-name="Preformatted_20_Text">p4_here_word</text:p>
 <text:h text:style-name="Heading_20_3"> HERE-WORD ( char "name&lt;char;&gt;" -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_here_word</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  a FIG-compatible WORD. Where ANSI says "skip leading delimiters"
  this one acts as "skip leading whitespace". And it will not return
  anything and have the string parsed to <text:span text:style-name="Source_20_Text">HERE</text:span>
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'Z"'           ( [chars&lt;"&gt;] -- z* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCodep4_z_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  scan the input to the next doublequote and create a buffer
  that holds the chars - return the address of that zero-terminated
  string-buffer, either <text:span text:style-name="Source_20_Text">POCKET-PAD</text:span> or <text:span text:style-name="Source_20_Text">ALLOT</text:span>ed into the dictionary.
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zcount</text:p>
 <text:h text:style-name="Heading_20_3"> ZCOUNT    ( z* -- z* len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zcount</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  push length of z-string, additionally to the string addr itself.
</text:p><screen>  : ZSTRLEN ZCOUNT NIP ;
</screen><text:p text:style-name="Text_20_body">  (see libc strlen(3)) / compare with <text:span text:style-name="Source_20_Text">COUNT</text:span> / <text:span text:style-name="Source_20_Text">ZSTRLEN</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zstrlen</text:p>
 <text:h text:style-name="Heading_20_3"> ZSTRLEN    ( z* -- len ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zstrlen</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  push length of z-string.
</text:p><screen>  : ZSTRLEN ZCOUNT NIP ;
</screen><text:p text:style-name="Text_20_body">  (see libc strlen(3)) / compare with <text:span text:style-name="Source_20_Text">ZMOVE</text:span> / <text:span text:style-name="Source_20_Text">CMOVE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zmove</text:p>
 <text:h text:style-name="Heading_20_3"> ZMOVE      ( zsrc* zdest* -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zmove</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  copy a zero terminated string
  (see libc strcpy(3)) / compare with <text:span text:style-name="Source_20_Text">ZSTRLEN</text:span> / <text:span text:style-name="Source_20_Text">COUNT</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_appendz</text:p>
 <text:h text:style-name="Heading_20_3"> +ZPLACE    ( caddr* u zdest* -- )  </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_appendz</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  Add the string defined by CADDR LEN to the zero terminated string 
  at ZDEST - (for older scripts the <text:span text:style-name="Source_20_Text">SYNONYM</text:span> named <text:span text:style-name="Source_20_Text">APPENDZ</text:span> exists)
  (see libc strncat(3)) / compare with <text:span text:style-name="Source_20_Text">ZPLACE</text:span> / <text:span text:style-name="Source_20_Text">+PLACE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_zplace</text:p>
 <text:h text:style-name="Heading_20_3"> ZPLACE  ( addr* len zaddr* -- ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_zplace</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  copy string and place as 0 terminated
  (see libc strncpy(3)) / see also <text:span text:style-name="Source_20_Text">+ZPLACE</text:span> / <text:span text:style-name="Source_20_Text">Z+PLACE</text:span>
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_c_backslash_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'C\\\"' ( [backslashed-strings_&lt;"&gt;] -- bstr* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_c_backslash_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  scan the following text to create a literal just
  like <text:span text:style-name="Source_20_Text">C"</text:span> does, but backslashes can be used to
  escape special chars. The rules for the backslashes
  follow C literals, implemented techniques are
  \n \r \b \a \f \v \e \777
  and all non-alnum chars represent themselves, esp.
  \" \' \ \? \! \% \( \) \[ \] \{ \} etcetera.
  most importantly the doublequote itself can be escaped.
  but be also informed that the usage of \' and \" is not
  portable as some systems preferred to map [\'] into ["].
  Here I use the experimental addition to map [\q] to ["] and [\i] to [']
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_s_backslash_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'S\\\"' ( [backslashed-strings_&lt;"&gt;] -- str cnt ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_s_backslash_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  scan the following text to create a literal just
  like <text:span text:style-name="Source_20_Text">S"</text:span> does, but backslashes can be used to
  escape special chars. The rules for the backslashes
  follow C literals, implemented techniques are
  \n \r \b \a \f \v \e \777
  and all non-alnum chars represent themselves, esp.
  \" \' \ \? \! \% \( \) \[ \] \{ \} etcetera.
  most importantly the doublequote itself can be escaped.
  but be also informed that the usage of \' and \" is not
  portable as some systems preferred to map [\'] into ["].
  Here I use the experimental addition to map [\q] to ["] and [\i] to [']
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>









 <text:p text:style-name="Preformatted_20_Text">p4_z_backslash_quote</text:p>
 <text:h text:style-name="Heading_20_3"> 'Z\\\"' ( [backslashed-strings_&lt;"&gt;] -- zstr* ) </text:h>





<text:p text:style-name="Preformatted_20_Text">#include &lt;pfe/pfe-base.h&gt;
</text:p>
<text:p text:style-name="Preformatted_20_Text"><text:span text:style-name="Source_20_Text">FCode p4_z_backslash_quote</text:span><text:span text:style-name="Source_20_Text"> --- </text:span></text:p>




<text:h text:style-name="Heading_20_2">Description</text:h> <text:p text:style-name="Text_20_body">  scan the following text to create a literal just
  like <text:span text:style-name="Source_20_Text">Z"</text:span> does, but backslashes can be used to
  escape special chars. The rules for the backslashes
  follow C literals, implemented techniques are
  \n \r \b \a \f \v \e \777
  and all non-alnum chars represent themselves, esp.
  \" \' \ \? \! \% \( \) \[ \] \{ \} etcetera.
  most importantly the doublequote itself can be escaped
  but be also informed that the usage of \' and \" is not
  portable as some systems preferred to map [\'] into ["].
  Here I use the experimental addition to map [\q] to ["] and [\i] to [']
</text:p>


<text:h text:style-name="Heading_20_2">Author</text:h> <text:ordered-list>
 <text:list-item><text:p text:style-name="Text_20_body">  Guido U. Draheim            (modified by $Author: guidod $)</text:p></text:list-item></text:ordered-list>

<text:h text:style-name="Heading_20_2">Copyright</text:h> <text:p text:style-name="Text_20_body">
   Copyright (C) 2000 - 2004 Guido U. Draheim &lt;guidod@gmx.de&gt;
   Copyright (C) 2005 - 2008 Guido U. Draheim &lt;guidod@gmx.de&gt;
</text:p>



</reference>

</office:body> </office:document-content>
