/* This C language subroutine seperates the integer part of a floating point number from its fractional part. The Run Time Library for the C Language. Gordon A. Sterling (617) 461 - 3076 DSP Development Tools Engineering Created on 04/25/90 Updated on 5/94 by AS Updated on 3/95 by AS - separated polymorphic functions #include
float modff(float x, float *iptr); */ #include "lib_glob.h" #include "mth_glob.h" .SEGMENT/CODE Code_Space_Name; .FILE RTL_FILENAME; .GLOBAL ___modffP; ___modffP: F2=PASS F4, R1=MODE1; modff_core: BIT SET MODE1 32768; /*Set rounding mode to truncate*/ R0=FIX F4, pm_ptr=R8; /*Find integer part of number*/ IF NOT AV F2=FLOAT R0; /*Refloat integer part*/ F0=F4-F2, MODE1=R1; pm_write: PM(pm_ptr,0)=F2; FETCH_RETURN /* Must be done again */ restore_state: RETURN (DB); RESTORE_STACK RESTORE_FRAME .ENDSEG;