PFE - Portable Forth Environment - pfe Forth Wordsets

  PFE 0.33.71 Homepage SourceForge Download Documentation -Overview -The PFE Manual old manual / (book) -ChangeLog -Authors -License (LGPL) -Wordsets / (book) -Functions .. (book) -Dp of ANS Forth -The 4thTutor -Forthprimer.pdf - Old Wordsets - Old Words List Forth Links * Forth Repository * Taygeta Compilation * TinyBoot FirmWare * FiCL, Free Forth * Research Vienna * Research Bournemouth * zForth WebRing Other Links * Tektronix/MPT * Forth Org. (FIG) * Forth Inc. * MPE Ltd. Forths * SF Win32Forth * PD Win32Forth * Neil Bawd generated (C) Guido U. Draheim guidod@gmx.de | ## System-extension wordset from forth-83 `<MARK``( -- DP-mark )``compile-only` => `"FORTH"` memorizes the current `DP` on the CS-STACK used for `later. Useful for creation of compiling words, eg. `BEGIN` , see `AHEAD``
        simulate:
          : <MARK ?COMP  HERE ;
  primitive code = [p4_backward_mark] `<RESOLVE``( DP-mark -- )``compile-only` => `"FORTH"` resolves a previous `, actually pushes the DP-address memorized at BRANCH` or => ?BRANCH in compiling words like `UNTIL`
        simulate:
          : <RESOLVE ?COMP  , ;
  primitive code = [p4_backward_resolve] `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> ?COMP  HERE 0 , ;
  primitive code = [p4_forward_mark] `RESOLVE>``( DP-mark -- )``compile-only` => `"FORTH"` resolves a pointer created by `MARK>` Mostly used in compiling words like `THEN`
        simulate:
          : RESOLVE> ?COMP  HERE SWAP ! ;
  primitive code = [p4_forward_resolve] `BRANCH``( -- )``` => `"FORTH"` compiles a branch-runtime into the dictionary that can be resolved with `MARK<`d or `<RESOLVE`. Usage:
            BRANCH MARK&lt;     or
            BRANCH &gt;RESOLVE  or ...
  this is the runtime-portion of `ELSE` - the use of `ELSE` should be preferred. See also => ?BRANCH
        : BRANCH COMPILE (BRANCH) ;
  immediate code = [p4_branch] `?BRANCH``( -- )``` => `"FORTH"` compiles a cond-branch-runtime into the dictionary that can be resolved with `>MARK&`d or `RESOLVE>`. Usage:
            ?BRANCH MARK&lt;     or
            ?BRANCH &gt;RESOLVE  or ...
  this is the runtime-portion of `IF` - the use of `IF` should be preferred. See also `BRANCH`
        : ?BRANCH COMPILE (?BRANCH) ;
immediate code = [p4_q_branch]