Fix floating point conversion and printing.
authorburkphil <burkphil@b0a0988d-7f52-0410-8c73-4f6cdee1a2cf>
Tue, 13 Aug 2013 15:41:07 +0000 (15:41 +0000)
committerburkphil <burkphil@b0a0988d-7f52-0410-8c73-4f6cdee1a2cf>
Tue, 13 Aug 2013 15:41:07 +0000 (15:41 +0000)
D>F and F>D were broken for 64-bit versions of Forth.
A fix was proposed by Denis Bernard. Thanks Denis.

csrc/pfinnrfp.h

index 0428b25..e6c0104 100644 (file)
@@ -22,8 +22,8 @@
 ***************************************************************/\r
 \r
 #ifdef PF_SUPPORT_FP\r
 ***************************************************************/\r
 \r
 #ifdef PF_SUPPORT_FP\r
-\r
-#define FP_DHI1  (((PF_FLOAT)0x40000000)*4.0)\r
+
+#define FP_DHI1 (((PF_FLOAT)(1L<<(sizeof(cell_t)*8-2)))*4.0)\r
 \r
        case ID_FP_D_TO_F: /* ( dlo dhi -- ) ( F: -- r ) */\r
                PUSH_FP_TOS;\r
 \r
        case ID_FP_D_TO_F: /* ( dlo dhi -- ) ( F: -- r ) */\r
                PUSH_FP_TOS;\r