pfe-system-ext ? System-extension wordset from forth-83
<MARK ( -- DP-mark ) ?=>? ( | ) ; | ? |
"FORTH"
;<RESOLVE ( DP-mark -- ) ?=>? ( | ) ; | ? |
"FORTH"
;MARK> ( -- DP-mark ) ?=>? ( | ) ; | ? |
"FORTH"
;RESOLVE> ( DP-mark -- ) ?=>? ( | ) ; | ? |
"FORTH"
;BRANCH ( -- ) ?=>? ( | ) ; | ? |
"FORTH"
;?BRANCH ( -- ) ?=>? ( | ) ; | ? |
"FORTH"
;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: : <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: : <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> ?COMP HERE 0 , ;
RESOLVE> ( DP-mark -- ) compile-only => "FORTH"
resolves a pointer created by MARK>
Mostly used in compiling words like THEN
simulate: : RESOLVE> ?COMP HERE SWAP ! ;
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) ;
?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) ;