From 3a9405358d42bcde7b9f3853848e65d1bc669ade Mon Sep 17 00:00:00 2001 From: Phil Burk Date: Wed, 27 Apr 2016 09:14:49 -0700 Subject: [PATCH] Implement FROUND --- csrc/pf_float.h | 1 + csrc/pf_save.c | 2 +- csrc/pfinnrfp.h | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/csrc/pf_float.h b/csrc/pf_float.h index 1e4439e..4a7f4b6 100644 --- a/csrc/pf_float.h +++ b/csrc/pf_float.h @@ -39,5 +39,6 @@ typedef double PF_FLOAT; #define fp_sqrt sqrt #define fp_tan tan #define fp_tanh tanh +#define fp_round round #endif diff --git a/csrc/pf_save.c b/csrc/pf_save.c index 2baf297..455b847 100644 --- a/csrc/pf_save.c +++ b/csrc/pf_save.c @@ -486,7 +486,7 @@ cell_t ffSaveForth( const char *FileName, ExecToken EntryPoint, cell_t NameSize, if( WriteChunkToFile( fid, ID_P4CD, (char *) CODE_BASE, CodeChunkSize ) < 0 ) goto error; - FormSize = sdTellFile( fid ) - 8; + FormSize = (uint32_t) sdTellFile( fid ) - 8; sdSeekFile( fid, 4, PF_SEEK_SET ); if( Write32ToFile( fid, FormSize ) < 0 ) goto error; diff --git a/csrc/pfinnrfp.h b/csrc/pfinnrfp.h index b74b045..6e2c628 100644 --- a/csrc/pfinnrfp.h +++ b/csrc/pfinnrfp.h @@ -206,7 +206,9 @@ break; case ID_FP_FROUND: - ERR("\nID_FP_FROUND - Not Yet!! FIXME\n"); + PUSH_TOS; + TOS = fp_round(FP_TOS); + M_FP_DROP; break; case ID_FP_FSWAP: /* ( -- ) ( F: r1 r2 -- r2 r1 ) */ -- 2.20.1