       IMPORT cx, cy, m_count
       EXPORT fract_loop
       
       TEXT
fract_loop:
       
       fmove.s  cx,FP2
       fmove.s  cy,FP3
       fmovecr  #$0F,FP4
       fmovecr  #$0F,FP5
       clr.l    D0
       move.w   m_count,D1
       
loop:  fmove    FP4,FP6
       fmul     FP6,FP6     ; zx2 = zx * zx
       fmove    FP5,FP7
       fmul     FP7,FP7     ; zy2 = zy * zy
       
       fmove    FP6,FP0     ; zx2 + zy2
       fadd     FP7,FP0
       
       fcmp     #4.0,FP0    ; < 4?
       fbgt    exit_loop
       
       cmp.w    D0,D1       ; count < m_count ?
       blt     exit_loop
       
       fmove    FP6,FP0     ; zx2 
       fmove    #2.0,FP1    ; 2.0
       fsub     FP7,FP0     ; - zy2       
       fmul     FP4,FP1     ; * zx
       fadd     FP2,FP0     ; + cx
       fmul     FP5,FP1     ; * zy
       fadd     FP3,FP1     ; + cy
       fmove    FP1,FP5     ; = zy
       
       fmove    FP0,FP4     ; = zx
       
       addq.w   #1,D0
       bra      loop
exit_loop:       
       rts
       
       end