fif4.s 542 B

1234567891011121314151617181920212223
  1. .sect .text; .sect .rom; .sect .data; .sect .bss
  2. .sect .text
  3. .define fif4
  4. fif4:
  5. move.l (4,sp),d1
  6. move.l (8,sp),d0
  7. jsr (Fmuls) ! result in d0
  8. jsr (Fstod) ! convert to double
  9. lea (4,sp),a0 ! build stack for modf
  10. move.l a0,-(sp)
  11. move.l d1,-(sp)
  12. move.l d0,-(sp)
  13. jsr (_modf)
  14. lea (12,sp),sp
  15. jsr (Fdtos) ! convert result to single
  16. move.l d0,-(sp) ! save it
  17. move.l (8,sp),d0 ! also convert integer part to single
  18. move.l (12,sp),d1
  19. jsr (Fdtos)
  20. move.l d0,(8,sp) ! integer part
  21. move.l (sp)+,d0
  22. move.l d0,(8,sp) ! fraction part
  23. rts