home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
forth
/
compiler
/
fpc
/
sfbugs.fix
< prev
next >
Wrap
Text File
|
1990-08-20
|
8KB
|
222 lines
\ SFBUGS.FIX A list of bugs and possible fixes to SFLOAT
# 1 June 25, 1988
Error in F+ at 0C $: + 5
Was:
JNC 12 $
XOR CH, # 80
Should be:
JA 12 $ \ Branch if F1 > F2 and high part <> 0
JC 1C $ \ Branch if F1 < F2
OR SI, SI
JNZ 12 $ \ Br if F1 > F2, low part <> 0
0C $: XOR CH, # 80
# 2 06/27/88 11:46
Missing # operator in SFLOAT1 and SFLOAT2
Line 1019 in SFLOAT1.SEQ:
Was:
MOV AX, -1
Should be:
MOV AX, # -1
Line 866 in SFLOAT2.SEQ:
Was:
MOV AX, -1
Should be:
MOV AX, # -1
# 3 06/27/88 12:26 Reported by Jay McKnight
In SFLOAT2.SEQ, insert after line 45:
8DDE 935D 4001 FCONSTANT FLN10.0
In SFLOAT3.SEQ, change line 402.
Was:
F10.0 F* FEXP ;
Should be:
FLN10.0 F* FEXP ;
# 4 06/27/88 12:59 Reported by Jay McKnight
After FLOATS mode set, single numbers were treated as floating.
In SFLOAT3.SEQ, change line 807:
Was:
ELSE DROP DPL @ FLTS @ AND
Should read:
ELSE DROP DPL @ 0> FLTS @ AND
# 5 06/27/88 13:05 Reported by Jay McKnight
Put in Help word for FALOG
# 6 06/28/88 02:02 Reported by Jay McKnight and Tom Zimmer
(Error in F.) Change line 554 in SFLOAT2.SEQ:
Was:
JC 0E $
Should be:
JC 11 $
# 7 06/28/88 07:53 Reported by Jay McKnight and Tom Zimmer
(Error in F. ) In SFLOAT3.SEQ:
Line 567 was:
: (F.1) ( F: r1 -- r2 r3 ; #pl -- sign flag )
Should be:
: (F.1) ( F: r1 -- r2 r3 ; #pl -- sign #pl flag )
Line 577 was:
IF FNIP [ LAST @ NAME> ] ...
Should be:
IF DROP FNIP [ LAST @ NAME> ] ...
Line 584 was:
IF F2DROP [ LAST @ NAME> ] ...
Should be:
IF DROP FDROP [ LAST @ NAME> ] ...
# 8 06/29/88 06:29 Reported by Jay McKnight.
(Error in FALOG reported)
In SFLOAT3.SEQ:
Line 38 was:
3FFF , DE45 , 5D58 , 3FFF , FD1D , E618 ,
Should be:
3FFF , DE45 , 5DF8 , 3FFF , FD1D , E618 ,
# 9 06/29/88 07:05 Suggested by ??? at local FIG meeting.
In SFLOAT3, the function FTRIG0 was added. This is based on
a function in APL (A Programming Language). The most obvious
way to implement this function is not the most accurate.
# 10 06/29/88 23:39 Bug reported by Jay McKnight
The declaration for FCONSTANT F0.5 moved from SFLOAT3.SEQ
to SFLOAT2.SEQ, line 49. The bug was an error in FIX .
# 11 06/29/88 23:49 Bug reported by Jay McKnight (See # 10)
In SFLOAT2.SEQ, Line 121:
Was:
MOV BX, 4 [BX]
Should be:
MOV DI, 4 [BX]
ADD BX, # 6
MOV FSP BX
MOV BX, DI
# 12 06/30/88 01:17 Bug reported by Jay McKnight
Bug report was that UNPACK hangs the system.
In SFLOAT3.SEQ :
Replace UNPACK with the following:
: UNPACK ( F: r -- ; -- d n )
FDUP0= \ Check for 0.0
IF FDROP 0 0 0 FPUSH EXIT THEN \ Handle 0.0
FPSEXP FABS FDUP FLOG FLOOR 1+ >R \ Save Sign, output exp.
09 R@ - F10.0 F**N* \ Scale the number
F0.5 F+ FINT \ Round the result
FDUP 2800 EE6B 401D FPUSH ( 10^9 )
F< 0= \ Compare with 10^9
IF F10.0 F/ R> 1+ \ If too large, divide by 10
ELSE R>
THEN
SWAP 0<
IF FNEGATE THEN
>R INT R> 9 - ;
# 13 06/30/88 02:58 Bug report by Jay McKnight
Report that F# didn't work as advertised.
In SFLOAT3.SEQ, replace F# with the following:
: F# ( F: -- r ; fnumber --- )
BL WORD FNUMBER 0< 0=
IF DUP 0<
IF DABS 0 TFLOAT FNEGATE
ELSE 0 TFLOAT
THEN
DPL @ 0>
IF DPL @ NEGATE F10.0 F**N*
THEN
THEN ;
# 14 07/16/88 07:06 Suggestion by Jay McKnight
FDEPTH was changed to return the number of floating point words on
the floating point stack (rather than the number of bytes).
# 15 07/16/88 07:08
It is also worth noting that a few changes have been made in F-PC
which are relected in some small changes in SFLOAT, or in its action.
One example is that the F-83 word .2 was changed to .2W so that
it would not be confused with a double integer or a floating point
number. Another example is that the phrase R> DROP has been
reduced to a single word R>DROP .
#16 07/20/88 00:27
Tom Zimmer added to FNUMBER the ability to enter literals with
a prefix indicating hexadecimal or character strings.
#17 08/01/88 02:17:15.23
Rename F\ROT to F-ROT for consistency with other Floating
Point packages.
#18 08/01/88 02:18:27.51
Added a new function: FXSWAP . This is a close as I am willing
to go toward a "FROLL" function. This performs an exchange of
the top floating point stack item with the n-th floating point
stack item, counting from 0. Thus 1 FNSWAP is equivalent to
FSWAP .
#19 09/22/88 10:48:12.19
Corrected a bug in FLN which caused computer to hang when FLN
was applied to a negative number.
#20 09/26/88 03:53:43.68
Mark Smiley noted that F0.0 F. left garbage on the normal stack.
Bug was fixed. Version number now V2.07.
#21 12/03/88 01:20:03.89
Fixed an error in F= . Sped up FNSWAP .
#22 05/20/89 16:35:38.33
Minor fix allows large number of digits in numeric input.
#23 05/26/89 23:55:05.37
Tom Zimmer discovered a bug in FSQRT where BP register not
restored for certain error condition. Fix was simple.
#24 10/23/89 10:20:02.90
Mark Smiley discovered a bug in F+ where an infinite loop may
occur. To fix add a label to line 369:
1D: AND BH, BH
Also change line 397:
JMP 1D $
#25 02/11/90 14:30:10.19
A bug in FLN was reported from the East Coast Forth Board,
via Mark Smiley. As a result, I discovered one very bad value
in LOGTAB1 , and 3 minor errors. The worst one was that the
value D227 at 6 words from the end of LOGTAB1 should be DA27 .
I also changed the version number to 2.20.
#25 08/20/90 11:01:30.04
Jerry Modrow reported that F0> did not work properly (clobbered
the floating point stack). Bug fixed and tested. Version
number now 2.21.