Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v102/libe/ffpabs.s
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

69 lines
3.1 KiB
ArmAsm

ttl fast floating point abs/neg (ffpabs/ffpneg)
***************************************
* (c) copyright 1981 by motorola inc. *
***************************************
*************************************************************
* ffpabs *
* fast floating point absolute value *
* *
* input: d7 - fast floating point argument *
* *
* output: d7 - fast floating point absolute value result *
* *
* condition codes: *
* n - cleared *
* z - set if result is zero *
* v - cleared *
* c - undefined *
* x - undefined *
* *
* all registers transparent *
* *
*************************************************************
page
ffpabs idnt 1,1 ffp abs/neg
xdef ffpabs fast floating point absolute value
xref ffpcpyrt copyright notice
section 9
******************************
* absolute value entry point *
******************************
ffpabs and.b #$7f,d7 clear the sign bit
rts and return to the caller
page
*************************************************************
* ffpneg *
* fast floating point negate *
* *
* input: d7 - fast floating point argument *
* *
* output: d7 - fast floating point negated result *
* *
* condition codes: *
* n - set if result is negative *
* z - set if result is zero *
* v - cleared *
* c - undefined *
* x - undefined *
* *
* all registers transparent *
* *
*************************************************************
page
xdef ffpneg fast floating point negate
**********************
* negate entry point *
**********************
ffpneg tst.b d7 ? is argument a zero
beq.s ffprtn return if so
eor.b #$80,d7 invert the sign bit
ffprtn rts and return to caller
end