Geekboy

Untitled

Feb 11th, 2012
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. p_ArcTan:
  2.     .db __ArcTanEnd-1-$
  3.     ex  de,hl       ;de = y
  4.     pop hl
  5.     ex  (sp),hl     ;hl = x
  6.     push    hl
  7.     ld  a,h     ;Get pairity
  8.     xor d
  9.     jp  m,__ArcTanSS-p_ArcTan-1
  10.     add hl,de       ; |
  11.     jr  __ArcTanDS  ; |
  12. __ArcTanSS:         ; |hl = x +- y
  13.     sbc hl,de       ; |
  14. __ArcTanDS:         ;/
  15.     ex  de,hl       ;de = x +- y
  16.     ld  b,6     ;\
  17. __ArcTan64:         ; |
  18.     add hl,hl       ; |hl = 64y
  19.     djnz    __ArcTan64  ;/
  20.     call    $3F00+sub_SDiv  ;hl = 64y/(x +- y)
  21. x_ArcTanEntry2:
  22.     pop af      ;\
  23.     rla         ; |Right side, fine
  24.     ret nc      ;/
  25.     sbc a,a     ;\
  26.     sub h       ; |Reverse sign extend
  27.     ld  h,a     ;/
  28.     ld  a,l     ;\
  29.     add a,128       ; |Add or sub 128
  30.     ld  l,a     ;/
  31.     ret
  32. __ArcTanEnd:
Advertisement
Add Comment
Please, Sign In to add comment