From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- .../avr8/lib/forth2012/core/fm-slash-mod.frt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 amforth-6.5/avr8/lib/forth2012/core/fm-slash-mod.frt (limited to 'amforth-6.5/avr8/lib/forth2012/core/fm-slash-mod.frt') diff --git a/amforth-6.5/avr8/lib/forth2012/core/fm-slash-mod.frt b/amforth-6.5/avr8/lib/forth2012/core/fm-slash-mod.frt new file mode 100644 index 0000000..dfb10e9 --- /dev/null +++ b/amforth-6.5/avr8/lib/forth2012/core/fm-slash-mod.frt @@ -0,0 +1,22 @@ + + +: fm/mod ( d1 n1 -- n2 n3 ) + dup >r + 2dup xor >r + >r + dabs r@ abs um/mod + swap r> ?negate swap + r> 0< if + negate + over if + r@ rot - swap 1- + then + then + r> drop +; + +\ alternative solution +\ +\ : FM/MOD \ ( d m -- r q ) signed floored division +\ DUP >R SM/REM 2DUP 0< AND IF 1- SWAP R> + SWAP ELSE R> DROP THEN ; +\ \ No newline at end of file -- cgit v1.2.3