.so macro .he 'FLOAT''FLOAT' .n NAME float - floating point number formats .d DESCRIPTION .ti +5 Regulus supports two formats of single precision floating point numbers. They are the Motorola 'Fast Floating Point' and the 'IEEE standard'. Both types are stored in 32-bit entities. They are not compatible. .sp .ti +5 The FFP format consists of a 24 bit mantissa, 1 bit of sign, and 7 bits of exponent. The exponent is stored in it's two's complement form. .sp .na .nf .in +3 [ | | | | | | | ~~~~ | | | | | | | | | | | | | | | | ] |------------ Mantissa --------------|S|---- Exp ----| .in -3 .fi .ad .sp The IEEE format consists of 1 sign bit, 8 bits of exponent, and 23 bits of mantissa. The exponent is store in it's Excess 127 format. .sp .na .nf .in +3 [ | | | | | | | | | | | | | | | ~~~~ | | | | | | | | ] |S|----- Exp -----|---------- Mantissa --------------| .in -3 .fi .ad .sp The floating point numbers represented by the IEEE format are : (-1)^S * 1.F * 2^E, the FFP floating point numbers are of the form : (-1)^S * 0.F * 2^E. .sp .ti +5 The IEEE format will be used if the -e flag is given to the compiler or if the -lE flag is given to the loader. The FFP format will be used if the -f flag is given to the compiler or if the -lF flag is given to the loader. These flags cause floating point constants of the appropriate flavor to be generated and the appropriate library to be loaded. .sp .ti +5 The IEEE floating point values lose some precision due to the fact that calculations use the fast floating point routines, and a translation to and from the FFP format. .sa SEE ALSO cc(cmnd), lo(cmnd)