beautypg.com

Motorola DSP96002 User Manual

Page 596

background image

MOTOROLA

DSP96002 USER’S MANUAL

B-77

Program

ICycles

Words

; Calculate dx and dy

fsub.s d6,d2 d2.s,d4.s 1 1

fsub.s d7,d3 d3.s,d5.s 1 1

; Determine whether to increment x or y

fcmpm d3,d2 1 1

fjge _inc_x 2 2

; Switch endpoints if necessary

_inc_y

ftst d3 d2.s,d0.s 1 1

ftfr.s d4,d6 fflt 1 1

ftfr.s d5,d7 fflt 1 1

; Fix y0 and dy

int d7 d3.s,d1.s 1 1

int d1 1 1

neg d1 iflt 1 1

jeq _draw1_y 2 2

; Calculate dx/dy

fseedd d3,d4 1 1

fmpy.s d3,d4,d5 d9.s,d2.s 1 1

fmpy d0,d4,d0 fsub.s d5,d2 d2.s,d3.s 1 1

fmpy.s d5,d2,d5 d2.s,d4.s 1 1

fmpy d0,d4,d0 fsub.s d5,d3 1 1

fmpy.s d0,d3,d0 d6.s,d2.s 1 1

; Draw first point

int d6 1 1

jsr _draw_point application dependent

; d0 = dx/dy d1 = dy d6 = x0 d7 = y0

do d1.l,_end_y 2 3

fadd.x d0,d2 1 1

inc d7 d2.s,d6.s 1 1

int d6 1 1

jsr _draw_point application dependent

_end_y

rts 2 2

_draw1_y

int d6 1 1

jsr _draw_point application dependent

rts 2 2