;C prototype: void DrawSquareUp (unsigned char *sprt1, unsigned char *sptr2, unsigned char *sprt3, unsigned char *sprt4, void *dest); ; ;void DrawSquareUp (register unsigned char *sprt1 asm("%a2"), ; register unsigned char *sprt2 asm("%a3"), ; register unsigned char *sprt3 asm("%a4"), ; register unsigned long *sprt4 asm("%a5"), ; register void *dest asm("%a0")); xdef DrawSquareUp DrawSquareUp: move.w d3,-(a7) move.l d4,-(a7) move.l d5,-(a7) lea 6000(a0),a1 moveq.l #7,d5 bcl_draw_sprite8: moveq.l #0,d0 moveq.l #0,d3 move.b (a4)+,d0 move.b (a4)+,d3 ;Corner left move.b (a2)+,(a0)+ move.b (a2)+,(a1)+ ;Up x 3 move.b d0,(a0)+ move.b d0,(a0)+ move.b d0,(a0)+ move.b d3,(a1)+ move.b d3,(a1)+ move.b d3,(a1)+ ;Doors move.l (a5),(a0)+ move.l 4(a5),(a1)+ ;Up x 12 ;Long gris clair clr.l d1 clr.l d2 move.b d0,d1 rol.w #8,d0 or.w d0,d1 move.l d1,d2 swap.l d1 or.l d1,d2 ;Long gris foncé clr.l d1 clr.l d4 move.b d3,d1 rol.w #8,d3 or.w d3,d1 move.l d1,d4 swap.l d1 or.l d1,d4 move.l d2,(a0)+ move.l d2,(a0)+ move.l d2,(a0)+ move.l d4,(a1)+ move.l d4,(a1)+ move.l d4,(a1)+ ;Doors move.l (a5)+,(a0)+ move.l (a5)+,(a1)+ ;Up x 3 move.l d2,(a0)+ move.l d4,(a1)+ ;Corner right move.b (a3)+,-1(a0) move.b (a3)+,-1(a1) addq.l #2,a0 addq.l #2,a1 dbf d5,bcl_draw_sprite8 move.l (a7)+,d5 move.l (a7)+,d4 move.w (a7)+,d3 rts