toolkit definitions



p4_ahead_ : AHEAD ( -- DP-mark ORIG-magic ) compile-only

 simulate:
   : AHEAD  MARK> (ORIG#) ;

reference: ../src/toolkit.c:0254

p4_bracket_else_ : [ELSE] ( -- )

eat up everything upto and including the next [THEN]. count nested [IF] ... [THEN] constructs. see [IF]
 this word provides a simple pre-compiler mechanism

reference: ../src/toolkit.c:0321

p4_bracket_if_ : [IF] ( flag -- )

check the condition in the CS-STACK. If true let the following text flow into INTERPRET , otherwise eat up everything upto and including the next [ELSE] or [THEN] . In case of skipping, count nested [IF] ... [THEN] constructs.
 this word provides a simple pre-compiler mechanism

reference: ../src/toolkit.c:0354

p4_bye_ : BYE ( -- ) no-return

should quit the forth environment completly

reference: ../src/toolkit.c:0263

p4_cs_pick_ : CS-PICK ( 2a 2b 2c ... n -- 2a 2b 2c ... 2a )

pick a value in the compilation-stack - note that the compilation stack _can_ be seperate in some forth-implemenations. In PFE the parameter-stack is used in a double-cell fashion, so CS-PICK would 2PICK a DP-mark and a COMP-magic, see PICK

reference: ../src/toolkit.c:0283

p4_cs_roll_ : CS-ROLL ( 2a 2b 2c ... n -- 2b 2c ... 2a )

roll a value in the compilation-stack - note that the compilation stack _can_ be seperate in some forth-implemenations. In PFE the parameter-stack is used in a double-cell fashion, so CS-ROLL would 2ROLL a DP-mark and a COMP-magic, see ROLL

reference: ../src/toolkit.c:0296

p4_dot_s_ : .S ( -- )

print the stack content in vertical nice format. tries to show cell-stack and float-stack side-by-side,

Depending on configuration, there are two parameter stacks: for integers and for floating point operations. If both stacks are empty, .S will display the message <stacks empty>.

If only the floating point stack is empty, .S displays the integer stack items in one column, one item per line, both in hex and in decimal like this (the first item is topmost):

 12345 HEX 67890 .S
    	424080 [00067890]
         12345 [00003039] ok
If both stacks ar not empty, .S displays both stacks, in two columns, one item per line
 HEX 123456.78E90 ok
 DECIMAL 123456.78E90 .S
    	   291 [00000123]          1.234568E+95
    1164414608 [45678E90] ok
Confusing example? Remember that floating point input only works when the BASE number is DECIMAL. The first number looks like a floating point but it is a goodhex double integer too - the number base is HEX. Thus it is accepted as a hex number. Second try with a decimal base will input the floating point number.

If only the integer stack is empty, .S shows two columns, but he first columns is called <stack empty>, and the second column is the floating point stack, topmost item first.

reference: ../src/toolkit.c:0084

p4_dump_ : DUMP ( addr len -- )

show a hex-dump of the given area, if it's more than a screenful it will ask using ?CR

You can easily cause a segmentation fault of something like that by accessing memory that does not belong to the pfe-process.

reference: ../src/toolkit.c:0159

p4_forget

reference: ../src/yours.c:0543

p4_forget_ : FORGET word ( -- )

 simulate:
   : FORGET  [COMPILE] '  >NAME (FORGET) ; IMMEDIATE

reference: ../src/toolkit.c:0309

p4_question_ : ? ( addr -- )

Display the (integer) content of at address addr. This word is sensitive to BASE
 simulate:
   : ?  @ . ;

reference: ../src/toolkit.c:0146

p4_see_ : SEE word ( -- )

decompile word - tries to show it in re-compilable form.

(SEE) tries to display the word as a reasonable indented source text. If you defined your own control structures or use extended control-flow patterns, the indentation may be suboptimal.

 simulate:
   : SEE  [COMPILE] ' (SEE) ; 

reference: ../src/toolkit.c:0196

p4_vlist_ : VLIST ( -- )

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. Uses ?CR

reference: ../src/toolkit.c:0225

p4_words_ : WORDS ( -- )

uses CONTEXT and lists the words defined in that vocabulary. usually the vocabulary to list is named directly in before.
 example:
    FORTH WORDS  or  LOADED WORDS

reference: ../src/toolkit.c:0211

p4_decompile

reference: ../src/toolkit.c:0202

p4_outc

reference: ../src/toolkit.c:0268

p4_prCell

reference: ../src/toolkit.c:0131

p4_wild_words

reference: ../src/toolkit.c:0239