home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / DRI-archive / roche / falconer_r3.txt < prev    next >
Text File  |  2009-12-11  |  3KB  |  64 lines

  1. On or about Sun, 22 May 2005 
  2. group: alt.folklore.computers
  3. subject: PDP-8 Floating Point
  4. From: CBFalconer
  5.  
  6. Since an interest has been expressed, here are some quotations from
  7. the original source.
  8.  
  9. ;
  10. ;--------------------------------
  11. ; Floating point arithmetic system for YALE 8080-based
  12. ; computers -- by Charles B. FALCONER, April 1976
  13. ;
  14. ; Real representation can express values in the absolute value
  15. ; range 0.29388 * 10^-38 through 1.7018 * 10^+38, and zero,
  16. ; together with sign, with approximately 4.8 decimal digit
  17. ; accuracy. The resolution of a value between 1 and 2 is
  18. ; approximately 0.00003. The system is designed to maximize
  19. ; register (as opposed to memory) use during computation.
  20. ;
  21. ; A real (floating point) value is represented by a unipolar
  22. ; 16 bit mantissa, whose value is in the range 1.0 > mantissa
  23. ; > -1.0. The mantissa absolute value is always >= 0.5.
  24. ; Thus, the high order bit of the mantissa is always a "one",
  25. ; and is replaced by a sign bit in internal representation.
  26. ; A "one" sign bit represents negative values.
  27. ;
  28. ; Real values are stored in 3 adjacent memory bytes:
  29. ; Lowest address: exponent
  30. ; Next address: least significant byte of mantissa
  31. ; Highest address: most significant byte of mantissa
  32. ;
  33. ; Real operands can appear in either of two 8080 internal
  34. ; register configurations. The normal position (considered
  35. ; the real accumulator) is the DE.H register, in which the
  36. ; D and E registers hold the mantissa (sign bit in D), and
  37. ; the H register holds the exponent. A second operand may
  38. ; be held in the BC.L register, where the B and C registers
  39. ; hold the mantissa, and the L register holds the exponent.
  40.  
  41. What was omitted above was that a zero value in the exponent always
  42. represented a floating zero, regardless of any stray bits in the
  43. mantissa (actually significand) portion. This simplified zero
  44. detection. All routines detected over and underflow, when they
  45. jammed the result to either max (of the appropriate sign) or zero
  46. and returned with carry set.
  47.  
  48. In addition the following format was used for i/o, and routines
  49. were provided to convert between the two formats. This format made
  50. it convenient to control rounding and field sizes.
  51.  
  52. ;
  53. ; "Fixed" point representation consist of a 16 bit positive
  54. ; integer (in the range 0 to 65535), and a 7 bit offset (by
  55. ; 40H) integer exponent, which represents a power of ten
  56. ; multiplier. The eighth exponent bit represents the sign
  57. ; of the mantissa. This representation is used for input/
  58. ; output only.
  59.  
  60. The system included a full set of trignometric, exponential,
  61. logarithmic and square root functions.
  62.  
  63. -- 
  64.