--- gforth/stuff.fs 2003/01/25 20:11:30 1.28
+++ gforth/stuff.fs 2004/05/08 17:14:30 1.33
@@ -1,6 +1,6 @@
\ miscelleneous words
-\ Copyright (C) 1996,1997,1998,2000 Free Software Foundation, Inc.
+\ Copyright (C) 1996,1997,1998,2000,2003 Free Software Foundation, Inc.
\ This file is part of Gforth.
@@ -106,7 +106,7 @@ AUser CSP
POSTPONE (const-does>)
POSTPONE ;
noname : POSTPONE rdrop
- lastxt r> cell+ ! \ patch the literal
+ latestxt r> cell+ ! \ patch the literal
; immediate
\ !! rewrite slurp-file using slurp-fid
@@ -210,7 +210,7 @@ AUser CSP
endif
1 max ur min ;
-: f>buf-rdp ( rf c-addr +nr nd np -- ) \ gforth
+: f>buf-rdp ( rf c-addr +nr +nd +np -- ) \ gforth
\G Convert @i{rf} into a string at @i{c-addr nr}. The conversion
\G rules and the meanings of @i{nr nd np} are the same as for
\G @code{f.rdp}.
@@ -236,19 +236,21 @@ AUser CSP
: f.rdp ( rf +nr +nd +np -- ) \ gforth
\G Print float @i{rf} formatted. The total width of the output is
-\G @i{nr}, the number of digits after the decimal point is @i{+nd},
-\G the minimum number of significant digits for fixed-point notation
-\G is @i{np}. @code{Set-precision} has no effect on @code{f.rdp}.
-\G Fixed-point notation is used if the number of siginicant digits
-\G would be larger than @i{np} and if the number of digits before the
-\G decimal point would fit. If fixed-point notation is not used,
-\G exponential notation is used, and if that does not fit, asterisks
-\G are printed. We recommend using @i{nr}>=7 to avoid the risk of
-\G numbers not fitting at all. We recommend @i{nr}>=@i{np}+5 to avoid
-\G cases where @code{f.rdp} switches to exponential notation because
-\G fixed-point notation would have too few significant digits, yet
-\G exponential notation offers fewer significant digits. We recomment
-\G @i{nr}>=@i{nd}+2, if you want to have fixed-point notation for some
+\G @i{nr}. For fixed-point notation, the number of digits after the
+\G decimal point is @i{+nd} and the minimum number of significant
+\G digits is @i{np}. @code{Set-precision} has no effect on
+\G @code{f.rdp}. Fixed-point notation is used if the number of
+\G siginicant digits would be at least @i{np} and if the number of
+\G digits before the decimal point would fit. If fixed-point notation
+\G is not used, exponential notation is used, and if that does not
+\G fit, asterisks are printed. We recommend using @i{nr}>=7 to avoid
+\G the risk of numbers not fitting at all. We recommend
+\G @i{nr}>=@i{np}+5 to avoid cases where @code{f.rdp} switches to
+\G exponential notation because fixed-point notation would have too
+\G few significant digits, yet exponential notation offers fewer
+\G significant digits. We recommend @i{nr}>=@i{nd}+2, if you want to
+\G have fixed-point notation for some numbers. We recommend
+\G @i{np}>@i{nr}, if you want to have exponential notation for all
\G numbers.
f>str-rdp type ;
@@ -273,3 +275,9 @@ AUser CSP
10e f*
loop ;
[then]
+
+: f.s ( -- ) \ gforth f-dot-s
+ \G Display the number of items on the floating-point stack,
+ \G followed by a list of the items; TOS is the right-most item.
+ ." <" fdepth 0 .r ." > " fdepth 0 max maxdepth-.s @ min dup 0
+ ?DO dup i - 1- floats fp@ + f@ 16 5 11 f.rdp space LOOP drop ;