Name

pfe-system-ext ? System-extension wordset from forth-83

Synopsis

<MARK ( -- DP-mark ) ?=>? ();?
"FORTH";
?
<RESOLVE ( DP-mark -- ) ?=>? ();?
"FORTH";
?
MARK> ( -- DP-mark ) ?=>? ();?
"FORTH";
?
RESOLVE> ( DP-mark -- ) ?=>? ();?
"FORTH";
?
BRANCH ( -- ) ?=>? ();?
"FORTH";
?
?BRANCH ( -- ) ?=>? ();?
"FORTH";
?

Description

CURRENT ( addr -- ) * The variable that holds the or the topmost compile-order * wordlist. The new ansforth standard suggests the use * of =>"SET-CURRENT" and =>"GET-CURRENT" instead of * using => CURRENT => ! and => CURRENT => @

<MARK ( -- DP-mark ) compile-only => "FORTH"

memorizes the current DP on the CS-STACK used for <RESOLVE later. Useful for creation of compiling words, eg. BEGIN , see AHEAD

  simulate:
    : &lt;MARK ?COMP  HERE ;
  

<RESOLVE ( DP-mark -- ) compile-only => "FORTH"

resolves a previous <MARK , actually pushes the DP-address memorized at <MARK into the dictionary. Mostly used after BRANCH or => ?BRANCH in compiling words like UNTIL

  simulate:
    : &lt;RESOLVE ?COMP  , ;
  

MARK> ( -- DP-mark ) compile-only => "FORTH"

makes room for a pointer in the dictionary to be resolved through RESOLVE> and does therefore memorize that cell's address on the CS-STACK Mostly used after BRANCH or => ?BRANCH in compiling words like IF or ELSE

  simulate:
    : MARK&gt; ?COMP  HERE 0 , ;
  

RESOLVE> ( DP-mark -- ) compile-only => "FORTH"

resolves a pointer created by MARK> Mostly used in compiling words like THEN

  simulate:
    : RESOLVE&gt; ?COMP  HERE SWAP ! ;
  

BRANCH ( -- ) => "FORTH"

compiles a branch-runtime into the dictionary that can be resolved with MARK&lt;d or &lt;RESOLVE. Usage:

      BRANCH MARK&amp;lt;     or
      BRANCH &amp;gt;RESOLVE  or ...

this is the runtime-portion of ELSE - the use of ELSE should be preferred. See also => ?BRANCH

  : BRANCH COMPILE (BRANCH) ;
  

?BRANCH ( -- ) => "FORTH"

compiles a cond-branch-runtime into the dictionary that can be resolved with &gt;MARK&d or RESOLVE&gt;. Usage:

      ?BRANCH MARK&amp;lt;     or
      ?BRANCH &amp;gt;RESOLVE  or ...

this is the runtime-portion of IF - the use of IF should be preferred. See also BRANCH

  : ?BRANCH COMPILE (?BRANCH) ;