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 | ## String + extensions `-TRAILING``( str-ptr str-len -- str-ptr str-len' )``` => `"[ANS] FORTH"` check the given buffer if it contains whitespace at its end. If so, shorten str-len to meet the last non-whitespace character in the buffer. primitive code = [p4_dash_trailing] `/STRING``( str-ptr str-len n -- str-ptr' str-len' )``` => `"[ANS] FORTH"` shorten the buffer from the beginning by n characters, i.e.
         str-ptr += n ;
         str-len -= n;
  primitive code = [p4_slash_string] `BLANK``( str-ptr str-len -- )``` => `"[ANS] FORTH"` `FILL` a given buffer with `BL` blanks primitive code = [p4_blank] `CMOVE``( from-ptr to-ptr len# -- )``` => `"[ANS] FORTH"` memcpy an area from->to for len bytes, starting at the lower addresses, see `CMOVE>` primitive code = [p4_cmove] `CMOVE>``( from-ptr to-ptr len# -- )``` => `"[ANS] FORTH"` memcpy an area from->to for len bytes, starting with the higher addresses, see `CMOVE` primitive code = [p4_cmove_up] `COMPARE``( str1-ptr str1-len str2-ptr str2-len -- diff# )``` => `"[ANS] FORTH"` compare both str-buffers, return 0 if they are equal, -1 if lower or shorter, and 1 if greater or longer primitive code = [p4_compare] `SEARCH``( str1-ptr str1-len str2-ptr str2-len -- str1-ptr' str1-len' flag )``` => `"[ANS] FORTH"` search the str-buffer1 for the text of str-buffer2, if it is contained return TRUE and return buffer-values that point to the contained string, otherwise return FALSE and leave the original str-buffer1. primitive code = [p4_search] `SLITERAL``( C: str-ptr str-len -- S: str-ptr str-len )``` => `"[ANS] FORTH"` this word does almost the same as `LITERAL` - it takes an `S"` 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.
        example:
          : ORIGINAL-HOME  [ $HOME COUNT ] SLITERAL ; ( -- str-ptr str-len )
compiling word = [p4_sliteral]