home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / sfbugs.fix < prev    next >
Text File  |  1990-08-20  |  8KB  |  222 lines

  1. \ SFBUGS.FIX   A list of bugs and possible fixes to SFLOAT
  2.  
  3. # 1     June 25, 1988
  4.         Error in F+ at 0C $: + 5
  5.         Was:
  6.                 JNC     12 $
  7.                 XOR     CH, # 80
  8.  
  9.         Should be:
  10.                 JA      12 $            \ Branch if F1 > F2 and high part <> 0
  11.                 JC      1C $            \ Branch if F1 < F2
  12.                 OR      SI, SI
  13.                 JNZ     12 $            \ Br if F1 > F2, low part <> 0
  14.          0C $:  XOR     CH, # 80
  15.  
  16.  
  17. # 2     06/27/88 11:46
  18.         Missing # operator in SFLOAT1 and SFLOAT2
  19.         Line 1019 in SFLOAT1.SEQ:
  20.         Was:
  21.                 MOV     AX, -1
  22.  
  23.         Should be:
  24.                 MOV     AX, # -1
  25.  
  26.         Line 866 in SFLOAT2.SEQ:
  27.         Was:
  28.                 MOV     AX, -1
  29.  
  30.         Should be:
  31.                 MOV     AX, # -1
  32.  
  33. # 3     06/27/88 12:26         Reported by Jay McKnight
  34.         In SFLOAT2.SEQ, insert after line 45:
  35.  
  36.         8DDE 935D 4001 FCONSTANT FLN10.0
  37.  
  38.         In SFLOAT3.SEQ, change line 402.
  39.         Was:
  40.                 F10.0 F* FEXP ;
  41.  
  42.         Should be:
  43.                 FLN10.0 F* FEXP ;
  44.  
  45. # 4     06/27/88 12:59         Reported by Jay McKnight
  46.         After FLOATS mode set, single numbers were treated as floating.
  47.         In SFLOAT3.SEQ, change line 807:
  48.         Was:
  49.                 ELSE  DROP DPL @ FLTS @ AND
  50.  
  51.         Should read:
  52.                 ELSE  DROP DPL @ 0> FLTS @ AND
  53.  
  54. # 5      06/27/88 13:05         Reported by Jay McKnight
  55.         Put in Help word for FALOG
  56.  
  57. # 6      06/28/88 02:02         Reported by Jay McKnight and Tom Zimmer
  58.         (Error in F.)  Change line 554 in SFLOAT2.SEQ:
  59.         Was:
  60.                 JC      0E $
  61.  
  62.         Should be:
  63.                 JC      11 $
  64.  
  65. # 7      06/28/88 07:53         Reported by Jay McKnight and Tom Zimmer
  66.         (Error in F. )  In SFLOAT3.SEQ:
  67.         Line 567 was:
  68.                 : (F.1)  ( F: r1 -- r2 r3 ; #pl -- sign flag )
  69.  
  70.         Should be:
  71.                 : (F.1)  ( F: r1 -- r2 r3 ; #pl -- sign #pl flag )
  72.  
  73.         Line 577 was:
  74.                 IF  FNIP [ LAST @ NAME> ] ...
  75.  
  76.         Should be:
  77.                 IF  DROP FNIP [ LAST @ NAME> ] ...
  78.  
  79.         Line 584 was:
  80.                 IF  F2DROP [ LAST @ NAME> ] ...
  81.  
  82.         Should be:
  83.                 IF  DROP FDROP [ LAST @ NAME> ] ...
  84.  
  85.  
  86. # 8      06/29/88 06:29         Reported by Jay McKnight.
  87.         (Error in FALOG reported)
  88.         In SFLOAT3.SEQ:
  89.         Line 38 was:
  90.                 3FFF , DE45 , 5D58 ,   3FFF , FD1D , E618 ,
  91.  
  92.         Should be:
  93.                 3FFF , DE45 , 5DF8 ,   3FFF , FD1D , E618 ,
  94.  
  95.  
  96. # 9      06/29/88 07:05         Suggested by ??? at local FIG meeting.
  97.         In SFLOAT3, the function FTRIG0 was added.  This is based on
  98.         a function in APL (A Programming Language).  The most obvious
  99.         way to implement this function is not the most accurate.
  100.  
  101.  
  102. # 10     06/29/88 23:39         Bug reported by Jay McKnight
  103.         The declaration for FCONSTANT F0.5 moved from SFLOAT3.SEQ
  104.         to SFLOAT2.SEQ, line 49.  The bug was an error in FIX .
  105.  
  106.  
  107. # 11     06/29/88 23:49         Bug reported by Jay McKnight (See # 10)
  108.         In SFLOAT2.SEQ, Line 121:
  109.         Was:
  110.                 MOV     BX, 4 [BX]
  111.  
  112.         Should be:
  113.                 MOV     DI, 4 [BX]
  114.                 ADD     BX, # 6
  115.                 MOV     FSP BX
  116.                 MOV     BX, DI
  117.  
  118.  
  119. # 12     06/30/88 01:17         Bug reported by Jay McKnight
  120.         Bug report was that UNPACK hangs the system.
  121.         In SFLOAT3.SEQ :
  122.         Replace UNPACK with the following:
  123.  
  124.    : UNPACK   ( F: r -- ; -- d n )
  125.         FDUP0=                                  \ Check for 0.0
  126.         IF   FDROP 0 0 0 FPUSH EXIT  THEN       \ Handle 0.0
  127.         FPSEXP FABS FDUP FLOG FLOOR 1+ >R       \ Save Sign, output exp.
  128.         09 R@ - F10.0 F**N*                     \ Scale the number
  129.         F0.5 F+ FINT                            \ Round the result
  130.         FDUP 2800 EE6B 401D FPUSH ( 10^9 )
  131.         F< 0=                                   \ Compare with 10^9
  132.         IF   F10.0 F/ R> 1+                     \ If too large, divide by 10
  133.         ELSE R>
  134.         THEN
  135.         SWAP 0<
  136.         IF   FNEGATE  THEN
  137.         >R INT R> 9 - ;
  138.  
  139. # 13     06/30/88 02:58         Bug report by Jay McKnight
  140.         Report that  F#  didn't work as advertised.
  141.         In SFLOAT3.SEQ, replace  F#  with the following:
  142.  
  143.         : F#   ( F: -- r ; fnumber --- )
  144.                 BL WORD FNUMBER 0< 0=
  145.                 IF      DUP 0<
  146.                         IF      DABS 0 TFLOAT FNEGATE
  147.                         ELSE    0 TFLOAT
  148.                         THEN
  149.                         DPL @ 0>
  150.                         IF      DPL @ NEGATE F10.0 F**N*
  151.                         THEN
  152.                 THEN ;
  153.  
  154. # 14     07/16/88 07:06         Suggestion by Jay McKnight
  155.         FDEPTH was changed to return the number of floating point words on
  156.         the floating point stack (rather than the number of bytes).
  157.  
  158. # 15     07/16/88 07:08
  159.         It is also worth noting that a few changes have been made in F-PC
  160.         which are relected in some small changes in SFLOAT, or in its action.
  161.         One example is that the F-83 word  .2  was changed to  .2W  so that
  162.         it would not be confused with a double integer or a floating point
  163.         number.  Another example is that the phrase  R> DROP  has been
  164.         reduced to a single word  R>DROP .
  165.  
  166. #16      07/20/88 00:27
  167.         Tom Zimmer added to FNUMBER the ability to enter literals with
  168.         a prefix indicating hexadecimal or character strings.
  169.  
  170. #17      08/01/88 02:17:15.23
  171.         Rename F\ROT to F-ROT for consistency with other Floating
  172.         Point packages.
  173.  
  174. #18      08/01/88 02:18:27.51
  175.         Added a new function: FXSWAP .  This is a close as I am willing
  176.         to go toward a "FROLL" function.  This performs an exchange of
  177.         the top floating point stack item with the n-th floating point
  178.         stack item, counting from 0.  Thus  1 FNSWAP  is equivalent to
  179.         FSWAP .
  180.  
  181. #19      09/22/88 10:48:12.19
  182.         Corrected a bug in FLN which caused computer to hang when FLN
  183.         was applied to a negative number.
  184.  
  185. #20      09/26/88 03:53:43.68
  186.         Mark Smiley noted that F0.0 F. left garbage on the normal stack.
  187.         Bug was fixed.  Version number now V2.07.
  188.  
  189. #21      12/03/88 01:20:03.89
  190.         Fixed an error in F= .  Sped up FNSWAP .
  191.  
  192. #22      05/20/89 16:35:38.33
  193.         Minor fix allows large number of digits in numeric input.
  194.  
  195. #23      05/26/89 23:55:05.37
  196.         Tom Zimmer discovered a bug in FSQRT where BP register not
  197.         restored for certain error condition.  Fix was simple.
  198.  
  199. #24      10/23/89 10:20:02.90
  200.         Mark Smiley discovered a bug in F+ where an infinite loop may
  201.         occur. To fix add a label to line 369:
  202.  
  203.                 1D:     AND BH, BH
  204.  
  205.         Also change line 397:
  206.  
  207.                         JMP 1D $
  208.  
  209. #25      02/11/90 14:30:10.19
  210.         A bug in FLN was reported from the East Coast Forth Board,
  211.         via Mark Smiley.  As a result, I discovered one very bad value
  212.         in LOGTAB1 , and 3 minor errors.  The worst one was that the
  213.         value D227 at 6 words from the end of LOGTAB1 should be DA27 .
  214.         I also changed the version number to 2.20.
  215.  
  216. #25      08/20/90 11:01:30.04
  217.         Jerry Modrow reported that  F0>  did not work properly (clobbered
  218.         the floating point stack).  Bug fixed and tested.  Version
  219.         number now 2.21.
  220.  
  221.  
  222.