This wordset is the place to add any additional primitives you might wish. A set of words do already live here that must be bound statically into the main pfe-object to work out smart and nicely.
(IMMEDIATE#) ( -- bit-mask )
(SMUDGE#) ( -- bit-mask )
>COMPILE ( xt -- )
($ word ( -- cs-token )
compile-only
) ( cs-token -- )
@> name ( -- value )
!> name ( value -- )
'> name ( -- xt )
INTO word ( -- pfa )
VAR name ( -- )
SMART-INTERPRET-INIT
SMART-INTERPRET-OFF
SMART-INTERPRET-ON
<<CPU>> ( -- )
CPU# ( -- )
.H2 ( value -- )
PRINTF ( args ... format$ -- )
SPRINTF ( args ... format$ dest$ -- len-dest )
LOADF filename ( -- )
DEFER word ( -- )
MAKE word ... ;AND ( -- )
;AND ( -- )
[DEFINED] word ( -- nfa|0 )
immediate
[NOT] ( a -- a' )
(IMMEDIATE#) ( -- bit-mask )
" my-word" FIND IF >FFA C@ (IMMEDIATE#) AND IF ." immediate" THEN ELSE DROP THEN
reference: p4_immediate_bit in ../src/yours.c:0100, export CO (IMMEDIATE#)
(SMUDGE#) ( -- bit-mask )
" my-word" FIND IF >FFA C@ (SMUDGE#) AND IF ." smudge" THEN ELSE DROP THEN
reference: p4_smudge_bit in ../src/yours.c:0110, export CO (SMUDGE#)
>COMPILE ( xt -- )
POSTPONE
IF
THEN
POSTPONE
COMPILE
[COMPILE]
INTERPRET
reference: p4_to_compile in ../src/yours.c:0135, export CO >COMPILE
($ word ( -- cs-token )
compile-only )
>COMPILE
($ IF ($ 0= A1 @ )) ($ THEN ." hello " )Note that an opening simple
(
reference: p4_prefix_begin in ../src/yours.c:0152, export CI ($
) ( cs-token -- )
($
>COMPILE
reference: p4_prefix_end in ../src/yours.c:0163, export CI )
@> name ( -- value )
VARIABLE
VALUE
LVALUE
LOCALS|
VAR
DEFER
DOER
DOES>
reference: p4_fetch_from in ../src/yours.c:0199, export CS @>
!> name ( value -- )
TO
reference: p4_store_to in ../src/yours.c:0696, export CS !>
'> name ( -- xt )
'
[']
reference: p4_tick_from in ../src/yours.c:0679, export CS '>
INTO word ( -- pfa )
LOCALS|
VAR
TO A
INTO A !
reference: p4_into in ../src/yours.c:0733, export CS INTO
VAR name ( -- )
VALUE
LVALUE
VALUE
LVALUE
reference: p4_var in ../src/yours.c:0780, export CS VAR
SMART-INTERPRET-INIT
IMMEDIATE
DEFER
SMART-INTERPRET-INIT
"hello"
" hello"
\if-unix
\if-unknown
reference: p4_smart_interpret_init in ../src/yours.c:0298, export CO SMART-INTERPRET-INIT
SMART-INTERPRET-OFF
INTERPRET
SMART-INTERPRET-INIT
reference: p4_smart_interpret_off in ../src/yours.c:0317, export CO SMART-INTERPRET-OFF
SMART-INTERPRET-ON
INTERPRET
SMART-INTERPRET-INIT
reference: p4_smart_interpret_on in ../src/yours.c:0327, export CO SMART-INTERPRET-ON
<<CPU>> ( -- )
reference: p4_load_cpus in ../src/yours.c:0357, export CX __cpus__
CPU# ( -- )
reference: p4_cpu_nr in ../src/yours.c:0379, export CO CPU#
.H2 ( value -- )
0x0 -> 00 0xf -> 0f 0x12 -> 12 0x123 -> 0123 0x1234 -> 1234 0x12345 -> 012345
reference: p4_dot_h2 in ../src/yours.c:0523, export CO .H2
PRINTF ( args ... format$ -- )
SPRINTF
SPRINTF
reference: p4_printf in ../src/yours.c:0507, export CO PRINTF
SPRINTF ( args ... format$ dest$ -- len-dest )
variable A 256 ALLOT 15 " example" " the %#s value is %i" A 1+ SPRINTF A C! A COUNT TYPE
reference: p4_sprintf in ../src/yours.c:0497, export CO SPRINTF
LOADF filename ( -- )
INCLUDE
MARKER
LOADED
FORGET
reference: p4_loadf in ../src/yours.c:0552, export CO LOADF
DEFER word ( -- )
simulate: : DEFER CREATE 0, DOES> ( the ((DEFER)) runtime ) @ ?DUP IF EXECUTE THEN ;declare as
"DEFER deferword"
"['] executionword TO deferword"
reference: p4_defer in ../src/lpf83.c:0386, export CO DOER
MAKE word ... ;AND ( -- )
MAKE
;AND
MAKE
DOER
DEFER
NOOP
MAKE
LOCALS|
VAR
reference: p4_make in ../src/yours.c:0617, export CS MAKE
;AND ( -- )
MAKE
;AND
EXIT
MAKE
reference: p4_semicolon_and in ../src/yours.c:0653, export CS ;AND
[DEFINED] word ( -- nfa|0 )
immediate '
[IF]
[IFDEF] word
[DEFINED] word [IF]
reference: p4_bracket_defined in ../src/yours.c:0803, export CI [DEFINED]
[NOT] ( a -- a' )
0=
[IF]
[IFNOT]
[DEFINED]
[DEFINED] word [NOT] [IF]
[IFNOTDEF] word
reference: p4_bracket_not in ../src/yours.c:0821, export CI [NOT]