EXTENDED Floating Point math capability
Brief: The Franklin Software version 6 compiler, a part of the Release VIII software package, has new and extended floating point capability. C51 now includes IEEE 754, reverse IEEE 754, BCD, BCD long, and BCD long double floating point math.
Applicability: All users who need the power (but not the hassle) of extended or enhanced floating point on the 8051. Ideal for medical, numeric control, remote processing, analog metrics, and other high speed and precision result applications.
Summary: The V6 compiler re-introduces support for the original IEEE 754 floating point specification as found in Franklin and Keil 8051 software tools through version 4.x. In version 5 of both Franklin and Keil tools, the reverse IEEE 754 floating point specification was introduced to permit better integration with the new Intel 251 family of devices, and the older standard orientation was dropped.
This step had caused some consternation among users who found themselves having to re-engineer their older software due to these changes, forcing all users to rewrite their floating point display and control code to accommodate the new Intel oriented conventions. In addition, numerous users found serious math and internal bugs in the V5 tool set math libraries.
With this shortcoming in mind, the V6 tool set math libraries were aggressively re-written to enable the Franklin tools to accept and manage both the older (pre-V5) floating point format, and the newer (V5) format. All known math bugs have been eliminated.
The introduction of BCD in V6 brings far greater precision to math results for those users who must have those levels of precision from programs written for the 8051.
Using a simple switch button in the compiler options window, the user can configure one of six floating point options: NONE, IEEE754 (V4 and earlier compliant), Reverse IEEE754 (V5 only compliant), BCD, Long BCD, and Long Double BCD.
It should be further noted that all of the floating point formats can be accommodated in a program without restriction. This is especially useful in that all three BCD formats can be configured for use concurrently.
For an example of precision, run the nn nn example in the 8051/examples directory. Then try to run that example on your earlier versions of Franklin or Keil tools. You might also want to try them on any other compiler you have, just for comparison.