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 | ## TOOLS-Misc Compatibility words `VLIST``( -- )``` => `[FORTH]` 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 `WORDS` on that Wordl. That way you can see all accessible words in the order they might be found. Uses => ?CR primitive code = [p4_vlist] `!CSP``( -- )``` => `[FORTH]` put `SP` into `CSP` used in control-words primitive code = [p4_store_csp] `?CSP``( -- )``` => `[FORTH]` check that `SP` == `CSP` otherwise `THROW` used in control-words primitive code = [p4_Q_csp] `CS-SWAP``` => `[FORTH]` (no description) primitive code = [p4_two_swap] `CS-DROP``` => `[FORTH]` (no description) primitive code = [p4_two_drop] `?COMP``( -- )``` => `[FORTH]` check that the current `STATE` is compiling otherwise `THROW` often used in control-words primitive code = [p4_Q_comp] `?EXEC``( -- )``` => `[FORTH]` check that the current `STATE` is executing otherwise `THROW` often used in control-words primitive code = [p4_Q_exec] `?FILE``( file-id -- )``` => `[FORTH]` check the file-id otherwise (fixme) primitive code = [p4_Q_file] `?LOADING``( -- )``` => `[FORTH]` check that the currently interpreted text is from a file/block, otherwise `THROW` primitive code = [p4_Q_loading] `?PAIRS``( a b -- )``` => `[FORTH]` if compiling, check that the two magics on the `CS-STACK` are identical, otherwise throw used in control-words primitive code = [p4_Q_pairs] `?STACK``( -- )``` => `[FORTH]` check all stacks for underflow and overflow conditions, and if such an error condition is detected `THROW` primitive code = [p4_Q_stack] `DEFINED``( "name" -- flag )``` => `[FORTH]` Search the dictionary for _name_. If _name_ is found, return TRUE; otherwise return FALSE. Immediate for use in definitions. This word will actually return what `FIND` returns (the NFA). does check for the word using find (so it does not throw like `'` ) 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 `[IF]` clause, so that sth. like an `[IFDEF] word` can be simulated through `[DEFINED] word [IF]`
        : DEFINED BL WORD COUNT (FIND-NFA) ;
  primitive code = [p4_defined] `[DEFINED]``( "name" -- flag )``` => `[FORTH]` Search the dictionary for _name_. If _name_ is found, return TRUE; otherwise return FALSE. Immediate for use in definitions. [DEFINED] word ( -- nfa|0 ) immediate does check for the word using find (so it does not throw like `'` ) 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 `[IF]` clause, so that sth. like an `[IFDEF] word` can be simulated through `[DEFINED] word [IF]`
        : [DEFINED] BL WORD FIND NIP ; IMMEDIATE
immediate code = [p4_defined] `[UNDEFINED]``( "name" -- flag )``` => `[FORTH]` Search the dictionary for _name_. If _name_ is found, return FALSE; otherwise return TRUE. Immediate for use in definitions. see `[DEFINED]` immediate code = [p4_undefined] `(FORGET)``` => `"EXTENSIONS"` (no description) primitive code = [p4_paren_forget] `(DICTLIMIT)``` => `"EXTENSIONS"` (no description) primitive code = [p4_paren_dictlimit] `(DICTFENCE)``` => `"EXTENSIONS"` (no description) primitive code = [p4_paren_dictfence]