version 1.43, 2005/06/28 06:49:41
|
version 1.45, 2005/10/02 11:30:32
|
Line 123 AUser CSP
|
Line 123 AUser CSP
|
2dup r@ read-file throw over <> abort" could not read whole file" |
2dup r@ read-file throw over <> abort" could not read whole file" |
r> close-file throw ; |
r> close-file throw ; |
|
|
: slurp-fid { fid -- addr u } \ gforth |
: slurp-fid ( fid -- addr u ) \ gforth |
\G @var{addr u} is the content of the file @var{fid} |
\G @var{addr u} is the content of the file @var{fid} |
|
{ fid } |
0 0 begin ( awhole uwhole ) |
0 0 begin ( awhole uwhole ) |
dup 1024 + dup >r extend-mem ( anew awhole uwhole R: unew ) |
dup 1024 + dup >r extend-mem ( anew awhole uwhole R: unew ) |
rot r@ fid read-file throw ( awhole uwhole uread R: unew ) |
rot r@ fid read-file throw ( awhole uwhole uread R: unew ) |
Line 199 AUser CSP
|
Line 200 AUser CSP
|
ur nd - 1- dup { beforep } fsign + nexp 0 max >= and if |
ur nd - 1- dup { beforep } fsign + nexp 0 max >= and if |
\ fixed-point notation |
\ fixed-point notation |
c-addr ur beforep nexp - dup { befored } '0 push-right |
c-addr ur beforep nexp - dup { befored } '0 push-right |
|
befored 1+ ur >= if \ <=1 digit left, will be pushed out by '.' |
|
rf fabs f2* 0.1e nd s>d d>f f** f> if \ round last digit |
|
'1 c-addr befored + 1- c! |
|
endif |
|
endif |
c-addr beforep 1- befored min dup { beforez } 0 max bl fill |
c-addr beforep 1- befored min dup { beforez } 0 max bl fill |
fsign if |
fsign if |
'- c-addr beforez 1- 0 max + c! |
'- c-addr beforez 1- 0 max + c! |