;C prototype: void DrawAbsSprite (short x, short y, short w, short h,void *sprite, void *dest); ; ;void DrawAbsSprite (register short x asm("%d0"), ; register short y asm("%d1"), ; register short w asm("%d2"), ; register short h asm("%d3"), ; register void *sprite asm("%a1"), ; register void *dest asm("%a0")); xdef DrawAbsSprite DrawAbsSprite: move.w d4,-(a7) move.w d1,d4 lsl.w #5,d1 add.w d4,d4 sub.w d4,d1 move.w (a7)+,d4 ;x add.w d0,d1 adda.w d1,a0 moveq.l #0,d0 move.w d3,d0 subq.w #1,d0 moveq.l #0,d1 sub.w #1,d2 \bcl_line: move.w d2,d1 \bcl_draw_lightplane: move.b (a1)+,(a0)+ dbf d1,\bcl_draw_lightplane move.w d2,d1 sub.w d1,a0 subq.l #1,a0 \bcl_draw_darkplane: move.b (a1)+,6000(a0) addq.l #1,a0 dbf d1,\bcl_draw_darkplane move.w #29,d1 sub.w d2,d1 adda.w d1,a0 dbf d0,\bcl_line rts