Advertisement
PT_

Untitled

PT_
Sep 16th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. _FP_Cos:
  2. ld a, l
  3. add a, 64
  4. ld l, a
  5. _FP_Sin:
  6. push hl
  7. ld a, l
  8. and a, %11000000
  9. jr z, _FP_DoSinI
  10. cp a, %01000000
  11. jr z, _FP_DoSinII
  12. cp a, %10000000
  13. jr z, _FP_DoSinIII
  14. _FP_DoSinIV:
  15. xor a, a
  16. jr +_
  17. _FP_DoSinIII:
  18. ld a, l
  19. sub a, 128
  20. jr _FP_DoSinI
  21. _FP_DoSinII:
  22. ld a, 128
  23. _: sub a, l
  24. _FP_DoSinI:
  25. cp a, 64
  26. jr nz, +_
  27. ld hl, 00100h
  28. jr _FP_Stop
  29. _: add a, a
  30. add a, a
  31. ld l, a
  32. ld h, 0
  33. ld d, 1 ; pi/2 in fixed point format (1+146/256)
  34. ld e, 146
  35. call _FP_Mul
  36. push hl
  37. sra h
  38. rr l
  39. ld d, h
  40. ld e, l
  41. call _FP_Mul
  42. push hl ; x^2/4
  43. sra h
  44. rr l
  45. ld d, h
  46. ld e, l
  47. call _FP_Mul
  48. sra h
  49. rr l
  50. inc h
  51. ex (sp), hl ; x^4/128+1 is on stack, HL=x^2/4
  52. xor a, a
  53. ld d, a
  54. ld b, h
  55. ld c, l
  56. add.s hl, hl \ rla
  57. add.s hl, hl \ rla
  58. add.s hl, bc \ adc a, d
  59. ld b, h
  60. ld c, l
  61. add.s hl, hl \ rla
  62. add.s hl, hl \ rla
  63. add.s hl, hl \ rla
  64. add.s hl, hl \ rla
  65. add.s hl, bc \ adc a, d
  66. ld e, l
  67. ld l, h
  68. ld h, a
  69. rl e
  70. adc.s hl, hl
  71. rl e
  72. jr nc, $+3
  73. inc hl
  74. pop de
  75. ex de, hl
  76. or a, a
  77. sbc hl, de
  78. pop de
  79. call _FP_Mul
  80. _FP_Stop:
  81. pop de
  82. bit 7, e
  83. ret z
  84. ex de, hl
  85. sbc hl, hl
  86. sbc hl, de
  87. ret
  88. _FP_Mul:
  89. ; Inputs: H.L * D.E
  90. ; Output: H.L
  91. ; Speed:
  92. ; 154 cycles
  93. ld a, e
  94. push hl
  95. ld b, l
  96. ld c, d
  97. ld l, d
  98. ld d, h
  99. mlt hl
  100. mlt de
  101. mlt bc
  102. add hl, hl
  103. add hl, hl
  104. add hl, hl
  105. add hl, hl
  106. add hl, hl
  107. add hl, hl
  108. add hl, hl
  109. add hl, hl
  110. add hl, de
  111. add hl, bc
  112. pop de
  113. ld d, a
  114. mlt de
  115. ld e, d
  116. ld d, 0
  117. add hl, de
  118. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement