With the code...
FVARIABLE X
FVARIABLE Y
FVARIABLE Z
FVARIABLE T
FVARIABLE L
: D_RPNS ( -- ) \ print out Stack ONLY for debugging purpose
CR
." X " X F@ F. CR
." Y " Y F@ F. CR
." Z " Z F@ F. CR
." T " T F@ F. CR
." L " L F@ F. CR
CR
F.S
CR
: TEST ( -- )
CLEARSTACK
2.0e FDUP Y F!
CR D_RPNS
5.0e FDUP X F!
CR ." Test function prior start PERE12" D_RPNS
;
The Terminal output is..
test
X 0.
Y 2.
Z 0.
T 0.
L 0.
<2>
1.000000000000E0 2.000000000000E0
Test function prior start PERE12
X 5.
Y 2.
Z 0.
T 0.
L 0.
<3>
1.000000000000E0 2.000000000000E0 5.000000000000E0
Where is the 1.000000000000E0 coming from? Is it a bug? It can be deleted from the stack with FNIP. But for me this is weird FNIP must be used to delete a number which appeared in the stack.
Then it turns to be ok
: TEST ( -- )
CLEARSTACK
2.0e FDUP Y F!
FNIP
CR D_RPNS
5.0e FDUP X F!
CR ." Test function prior start PERE12" D_RPNS
;
then the output is fine,,,
test
X 0.
Y 2.
Z 0.
T 0.
L 0.
<1> 2.000000000000E0
Test function prior start PERE12
X 5.
Y 2.
Z 0.
T 0.
L 0.
<2> 2.000000000000E0 5.000000000000E0
gforth 0.7.3 fromDebian 11.
uname -a
Linux ProDesk 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux
apt list gforth
Listing... Done
gforth/stable,now 0.7.3+dfsg-9+b1 amd64 [installed]
gforth/stable 0.7.3+dfsg-9+b1 i386
Any remark / comment is welcome.